KDE PlasmaなどでAlacrittyのアイコンがバグる問題に対処した
公開日:
最終更新日:
はじめに
Rust製超高速ターミナルエミュレータとして有名なAlacrittyですが、KDE Plasmaなどのデスクトップ環境でそのアイコンがうまく描画されない問題が、だいぶ前からあります。いつまで待ってもなんともならないため、アップストリーム側の修正を待つのではなく自力で解決させようとしました。とりあえずなんとかなってくれたので、ここにその方法を書き残します。
環境
- Manjaro Linux
- KDE Plasma Version
- 5.26.5
- KDE Frameworks Version
- 5.103.0
- Qt Version
- 5.15.8
- Alacritty
- 0.11.0
そもそもこの問題はなんなのか
これは、SVG形式で保存されたAlacrittyのアイコンを、KDE Plasmaなどで使われているQtのレンダラーがうまく描画できていないことが原因です。おそらくKDE Plasmaに非はありません。Qt側にもIssueは作成されていますが、Out of ScopeやUnresolvedと表示されており、よくわからないですが無理っぽい雰囲気です。
ちなみにInkscapeやFirefoxではうまく描画されます。Alacritty側の問題ではないということで、AlacrittyのGitHubにあるIssueはcloseされています。Issue作成日時などを見ればわかる通り、この問題は長い間未解決のままでずっとあり続けています。ユーザー側でなんとかできないものでしょうか?
ユーザー側での解決を試みる
そのSVGファイルがDolphin(ファイルエクスプローラー)でうまくプレビューされない問題はもうどうしようもないので諦めるとして。タスクマネージャー(タスクバー)などに表示されるアイコンくらいは、Inkscapeなどで事前に生成しておいたPNGのようなファイルに、どうにかして置き換えられないものでしょうか。
デスクトップ環境がアプリケーションを認識するときには、デスクトップエントリというファイルが使われています。そしてデスクトップエントリについて解説したArchWikiのページでは、プログラムがアイコン画像を探索するディレクトリの優先順位が書かれています。
$HOME/.icons
(後方互換性のため)$XDG_DATA_DIRS/icons
/usr/share/pixmaps
雰囲気的に$XDG_DATA_HOME/icons
の中に置けばオーバーライドできそうです。
inkscape \
--export-width=256 \
--export-background-opacity=0 \
--export-filename=$XDG_DATA_HOME/icons/Alacritty.png \
/usr/share/pixmaps/Alacritty.svg
試してみたらうまくいきました。
おわりに
PKGBUILDを書くほどではない気がしたので手動生成です。よしとします。