isblocks.conf는 onclick 이벤트를 생성합니다(URL로 Firefox 열기).

isblocks.conf는 onclick 이벤트를 생성합니다(URL로 Firefox 열기).

이 블록이 있어요/etc/i3blocks.conf

[rss]
command=rsstail -n1 -1 -N -u https://news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT | head -c 50
color=#00FF00
interval=300

firefox이 블록을 클릭하고 올바른 URL로 열고 싶습니다 .

URL을 사용하여 Firefox를 여는 블록입니다.

[clickme]
align=center
full_text=Click me!
command=/usr/bin/firefox --new-tab https://www.stackexchange.com/

나는 그것들을 결합하는 방법을 모른다.여기문서입니다.

여기링크를 얻는 방법:

rsstail -l -n1 -1 -N -u https://news.ycombinator.com/rss | sed -n 2p

rsstail링크를 일부 "블록 변수"에 저장한 다음 명령에서 사용해야 할 수도 있습니다 .

지금까지 나는 다음과 같은 해결책을 가지고 있습니다.

[rss]
command=rsstail -n1 -1 -N -u https://news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT # | head -c 40
color=#00FF00
interval=300

[clickme]
align=center
full_text=*
command=firefox --new-tab `rsstail -l -n1 -1 -N -u https://news.ycombinator.com/rss | sed -n 2p`

클릭하면 링크가 열립니다 *. 그래서 제목을 클릭하는 대신 *제목 옆에 있는 제목을 클릭합니다. 하지만 링크가 제목과 아무 관련이 없을 수도 있어서 제가 원하지 않습니다. 링크를 일종의 변수(가능한 경우 블록 변수나 환경 변수 등)에 전달해야 합니다.

답변1

이게 생각보다 훨씬 어려웠어요. 이를 위해서는 별도의 bash 스크립트를 생성해야 합니다. i3blocks 파일에 경로가 올바르게 설정되어 있다고 가정합니다 config.

피드용 bash 스크립트 만들기

테마를 표시하는 데 필요한 정보와 클릭 시 올바른 웹 페이지가 열리는지 읽는 bash를 생성해야 합니다.

경고하다:이를 인지하지 못할 경우 문제를 일으킬 수 있는 숨겨진 제한 사항이 있습니다. URL 길이는 최대 32자까지 가능합니다.인스턴스 변수그것이 정의된 방법입니다. 더 긴 URL을 사용하려면 URL 단축기를 사용해야 합니다. (대본에도 언급되어 있어요!)

이라는 bash 스크립트를 만들어 디렉토리 rss에 배치했습니다 rss. 내 경로는 다음과 같습니다 ~/Build/i3blocks/blocklets/rss/rss.

i3blocks 구성에는 전역 명령이 있습니다.

command=$SCRIPT_DIR/$BLOCK_NAME/$BLOCK_NAME

i3 구성에는 다음이 있습니다.

bar {
       # status_command i3status
       status_command SCRIPT_DIR=~/Build/i3blocks/blocklets i3blocks
}

스크립트 rss:

#!/usr/bin/env bash

# WARNING: This has a LIMIT of 32 characters for now!
# If your URL is longer you should use an URL shortener
# Caused by https://github.com/vivien/i3blocks/blob/01a4f4a9ca1e3d0b3c95d1d62000ad8506bdff1a/include/block.h#L50

# if BLOCK_INSTANCE is empty try a default value page instead
rss_url="${BLOCK_INSTANCE:-https://news.ycombinator.com/rss}"

if [[ "${url}" = "" ]]; then
  exit 1
fi

# get the title to show on bar
rss_title=$(rsstail -n1 -1 -N -u "${rss_url}" | iconv -f UTF-8 -t ASCII//TRANSLIT | head -c 40)
# the link to web page that will be displayed
rss_link=$(rsstail -l -n1 -1 -N -u "${rss_url}" | sed -n 2p)

if [[ "${rss_title}" = *404* ]]; then
  echo "${rss_url}"
  echo "${rss_url}"
  echo ""
  exit 1
fi

if [[ "${BLOCK_BUTTON}" -eq 1 ]]; then
  /usr/bin/firefox --new-tab "${rss_link}"
fi

echo "${rss_title}"
echo "${rss_title}"
echo ""

i3blocks 구성 파일에 블록 추가

[rss]
instance=https://news.ycombinator.com/rss
label=
interval=300

노트:태그는 RSS의 유니코드 기호인데 왜 unix SE가 이를 볼 수 없는지 모르겠습니다.

최종 결과를 공유하기로 결정했습니다. 먼저 RSS 피드를 본 다음 클릭했습니다.

RSS 피드는 막대에 있으며 클릭하면

답변2

URL을 통해 Firefox를 실행하려면 onclick을 포함하세요.

[rss]
command=rsstail -n1 -1 -N -u https://news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT | head -c 50
color=#00FF00
interval=300
markup=pango
onclick=/usr/bin/firefox --new-tab "$(rsstail -l -n1 -1 -N -u https://news.ycombinator.com/rss | sed -n 2p)"

markup=pango블록 텍스트에 pango 태그를 사용할 수 있도록 합니다. 기본 텍스트 서식 지정에는 필요하지 않지만 유용합니다.

onclick이벤트는 URL을 사용하여 Firefox를 시작하고 rsstail 명령을 실행하고 출력의 두 번째 줄을 추출합니다.

변경 사항을 적용하려면 i3block을 다시 로드하세요.pkill -RTMIN+10 i3blocks

RSS 블록을 클릭하면 올바른 URL로 Firefox가 시작됩니다.

i3blocks 스크립트

i3blocks-gaps pango 라벨 색상은 색상 이름과 함께 사용됩니다.

20 다른 사람의 코드를 사용하여 i3 – i3 블록의 모양 변경

i3blocks-contrib

i3blocks에서 동적 텍스트를 어떻게 클릭할 수 있나요?

클릭 가능한 i3block?

별도의 블록을 사용해 보세요.

[start_firefox]
command=/usr/bin/firefox --new-tab https://news.ycombinator.com/
interval=once

[rss]
command=echo "<a href='signal:USR1:start_firefox'>$(rsstail -n1 -1 -N -u https://news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT | head -c 50)</a>"
color=#00FF00
interval=300
markup=pango

아니요 <a href></a>:

[start_firefox]
command=/usr/bin/firefox --new-tab https://news.ycombinator.com/
interval=once

[rss]
command=$(rsstail -n1 -1 -N -u https://news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT | head -c 50)
color=#00FF00
interval=300
markup=pango

없이 head -c 50:pango

[start_firefox]
command=/usr/bin/firefox --new-tab https://news.ycombinator.com/
interval=once

[rss]
command=$(rsstail -n1 -1 -N -u https://news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT)
color=#00FF00
interval=300

head -c 50 문제가 발생할 수 있음

명령이 오류 없이 단독으로 실행되는지 확인하십시오.

rsstail -n1 -1 -N -u news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT | head -c 50 
rsstail -n1 -1 -N -u news.ycombinator.com/rss | iconv -f UTF-8 -t ASCII//TRANSLIT

기타 오류:

  • 경로 확인/usr/bin/firefox
  • 인식되고 --new-tab, 유무에 관계없이 시도되었습니다.
  • interval값 변경300
  • rss블록의 형식이 올바른가요?
  • rsstail명령이 제대로 작동하나요?
  • iconv필요한
  • 명령을 개별적으로 실행할 수 있나요?
  • 당신은 어떤 버전을 가지고 있나요
  • i3blocks터미널에서 실행하면 다음 블록이 표시됩니까?
  • 편집했어?~/.config/i3/config

관련 정보