xra*_*alf 5 scripting shell-script rss-aggregator i3
我有这个块/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
Run Code Online (Sandbox Code Playgroud)
我想单击此块并firefox使用正确的 URL 打开。
这是一个使用 URL 打开 Firefox 的块。
[clickme]
align=center
full_text=Click me!
command=/usr/bin/firefox --new-tab https://www.stackexchange.com/
Run Code Online (Sandbox Code Playgroud)
我不知道如何将它们结合在一起。这是一个文档。
以下是获取链接的方法:
rsstail -l -n1 -1 -N -u https://news.ycombinator.com/rss | sed -n 2p
Run Code Online (Sandbox Code Playgroud)
我可能需要保存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`
Run Code Online (Sandbox Code Playgroud)
当我单击 时,它会打开链接*。所以,我不是点击标题,而是点击*标题旁边的标题。但链接可能与标题无关,这是我不想要的。我需要将链接传递给某种变量(例如块变量或环境变量,只要可能)。
这比我想象的要困难得多。您必须创建一个单独的 bash 脚本才能实现这一点。我假设您在 i3blocks 文件中正确设置了路径config。
您需要创建一个 bash 来读取显示主题所需的信息,以及单击时是否会打开正确的网页。
\n警告:存在一个隐藏的限制,如果您不知道它可能会导致问题。URL 长度最多可达 32 个字符,只要实例变量是这样定义的。如果您想使用更长的 URL,则需要使用 URL 缩短器。(剧本里也提到了!)
\n我创建了一个名为 的 bash 脚本rss,并将其放置在一个rss目录中。我的路径是:~/Build/i3blocks/blocklets/rss/rss.
在 i3blocks 配置中,我有一个全局命令:
\ncommand=$SCRIPT_DIR/$BLOCK_NAME/$BLOCK_NAME
在 i3 配置中我有:
\nbar {\n # status_command i3status\n status_command SCRIPT_DIR=~/Build/i3blocks/blocklets i3blocks\n}\nRun Code Online (Sandbox Code Playgroud)\n剧本rss:
bar {\n # status_command i3status\n status_command SCRIPT_DIR=~/Build/i3blocks/blocklets i3blocks\n}\nRun Code Online (Sandbox Code Playgroud)\n[rss]\ninstance=https://news.ycombinator.com/rss\nlabel=\xef\x82\x9e\ninterval=300\nRun Code Online (Sandbox Code Playgroud)\n注意:该标签是RSS的Unicode符号,我不知道为什么unix SE看不到它。
\n我决定分享我的最终结果。首先我看到了 RSS feed,然后我点击了它:
\n\n