こんにちは、山田ハヤオです。今回はAlter Linuxの不具合についてのお話です。
これまでの経緯
FascodeのLINE OpenChatやDiscordなどで不具合で相談に来る人が結構いますが、半分以上は上流であるArch Linuxが原因の場合が多いです。
Arch Linuxは不具合の多いディストリビューションの代表例なので仕方がない面もありますが、そういった不具合の場合はだいたいが公式で修正方法などをアナウンスしてくれています。
純粋なArch Linuxユーザーやコアなユーザーは定期的にチェックしていると思いますが、Alter Linuxで初めてArch系に触れた方はそもそもニュースの存在を知らない場合も多いと思います。
そこで、LINEのオープンチャットをきっかけに「最新のニュースを表示するツール」を作ることになりました。
インストールと使い方
インストール
AURに公開したのでyayでインストールします。
依存関係のビルドがあるのでちょっと時間がかかります。
yay -S archnews
設定
起動時に未読のニュースを表示するためにはいくつか設定が必要です。
日本語に設定する
コマンドを実行して日本語にします。(ファイルを強引に書き換えてるので後々修正します。)
sed -i 's|^Exec=/usr/bin/archnews$|Exec=/usr/bin/archnews --japanese|g' '/usr/share/applications/show-archnews.desktop'
自動起動を設定する
ターミナルを起動して以下のコマンドを入力します
archnews --startup
Info: Enable autostart
と表示されれば完了です。
自動起動を無効化するには同じコマンドをもう一度実行します。
再起動する
次回起動時にニュースが表示されれば成功です。
手動でニュースを表示する
消してしまったニュースを再び開きたい場合は以下のコマンドで見ることができます。
archnews -gfj
キャッシュの話
~/.local/state/archnews.latest
に最後に確認したニュースのURLを格納しています。
スクリプト起動時に最新のニュースをRSSから取得し、このファイルに書かれたURLと比較して既読か未読かを判断しています。
使用技術
以前に紹介したBashライブラリのFasBashLibとShellShocar-jpnさんのParsrsを利用しています。
GUIウィンドウの表示にZenityを利用しています。
終わり
正直コードはきれいなものではない上にライブラリ依存があるのでできれば別言語で書き直したいです。
GoかDLangの勉強にちょうどいい題材かもしれない。
最後にソースコードを載せておきます。
ソースコード
ソースコードはGitHub Gists上で管理しています。
コメント