経緯
Chromebook で Linux アプリを入れていると、どうしても一部のアプリでアイコンが表示されないものがあり、ずっと気になっていました。正直どうでもいい部分でもありますが、やはりアイコンがすべて一緒だとどこにアプリがあるのか探すのが大変で、それはそれで非効率だと感じました。
せっかく Linux を使っているので、CLI からコマンドで起動できるものならそうしても良いですが、いちいちターミナルを立ち上げてコマンドを打つのも面倒なときがあります。
なかなかこれと言った対処方法がネットでも見つかず思いの外苦戦しましたが、とりあえずの解決方法を見つけることができましたのでシェアしたいと思います。かわいいペンギンになってしまったアプリに個性を与えてあげましょう!
概要
この記事では GNOME Terminal を例にアイコンを修正していきます。
結論から書くと、大きく分けて以下の作業をするだけです。
- 表示したいアプリに対応するアイコン画像の名前を調べる
- アイコン画像を所定の場所に配置する
環境
- Acer Chromebook CB715
- Google Chrome (Chrome OS) Stable 64bit
- Crostini Container (penguin)
- Linux x86_64
- Debian GNU/Linux 10 (buster)
現状
かわいいですね…でもこれではパッと見なんのアプリか分かりません。
表示したいアプリに対応するアイコン画像の名前を調べる
ChromeOS 側では恐らく以下のディレクトリに保存されているデスクトップファイル(非表示に設定されていないもの)を読み込んでシェルフに表示しています。
/usr/share/applications/
~/Desktop/
試しに見てみます。
$ ls /usr/share/applications/
audacity.desktop garcon_host_browser.desktop org.gnome.ColorProfileViewer.desktop
chromium.desktop gcm-calibrate.desktop org.gnome.FontManager.desktop
code-url-handler.desktop gcm-import.desktop org.gnome.FontViewer.desktop
code.desktop gcm-picker.desktop org.gnome.Nautilus.desktop
debian-uxterm.desktop gcr-prompter.desktop org.gnome.Terminal.desktop
debian-xterm.desktop gcr-viewer.desktop org.gnome.gedit.desktop
defaults.list gimp.desktop org.gnome.tweaks.desktop
display-im6.q16.desktop gnome-system-monitor-kde.desktop python2.7.desktop
eog.desktop gnome-system-monitor.desktop python3.7.desktop
fcitx-config-gtk2.desktop im-config.desktop setup-mozc.desktop
fcitx-config-gtk3.desktop inkscape.desktop vim.desktop
fcitx-configtool.desktop mimeinfo.cache vlc.desktop
fcitx-skin-installer.desktop nautilus-autorun-software.desktop xdg-desktop-portal-gtk.desktop
fcitx.desktop notification-daemon.desktop yelp.desktop
$ ls ~/Desktop/
arduino-arduinoide.desktop
この中から表示したいアプリと思われるものを探し、中身を確認します。
今回は GNOME Terminal のデスクトップファイルを確認したいので、それらしい org.gnome.Terminal.desktop
の中身を見てみます。なお、Icon
に対応する値が所定のアイコン名のようです(行数が多いので一部省略しています)。
つまり今回の場合、utilities-terminal
が GNOME Terminal のアイコン画像の名前になっているはずです。
$ cat /usr/share/applications/org.gnome.Terminal.desktop
[Desktop Entry] # 一部省略
Name=Terminal
Name[ja]=端末
Icon=utilities-terminal
アイコン画像を所定の場所に配置する
まず、アイコン画像が既に存在しているか確認します。
/usr/share/icons/
のディレクトリにアイコン画像が保存されている(「参考」に記載のリンク参照)ので、そこに該当のアイコン画像があるかどうか検索します。
$ find /usr/share/icons/ -iname '*utilities-terminal*' -print
/usr/share/icons/Adwaita/16x16/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/16x16/apps/utilities-terminal.png
/usr/share/icons/Adwaita/22x22/apps/utilities-terminal.png
/usr/share/icons/Adwaita/24x24/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/24x24/apps/utilities-terminal.png
/usr/share/icons/Adwaita/32x32/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/32x32/apps/utilities-terminal.png
/usr/share/icons/Adwaita/48x48/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/48x48/apps/utilities-terminal.png
/usr/share/icons/Adwaita/512x512/apps/utilities-terminal.png
/usr/share/icons/Adwaita/64x64/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/96x96/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/scalable/apps/utilities-terminal-symbolic.svg
/usr/share/icons/HighContrast/16x16/apps/utilities-terminal.png
/usr/share/icons/HighContrast/22x22/apps/utilities-terminal.png
/usr/share/icons/HighContrast/24x24/apps/utilities-terminal.png
/usr/share/icons/HighContrast/256x256/apps/utilities-terminal.png
/usr/share/icons/HighContrast/32x32/apps/utilities-terminal.png
/usr/share/icons/HighContrast/48x48/apps/utilities-terminal.png
/usr/share/icons/HighContrast/scalable/apps/utilities-terminal.svg
アイコン画像の存在を確認することはできましたが、どこに配置すれば良いのかわからないため、正しいアイコン表示のアプリを確認してみます。今回は Audacity と Chromium と GIMP がインストール済みだったので、それらのアイコンがどのように保存されているのかを確認してみます。
audacity
$ find /usr/share/icons/ -iname '*audacity*' -print
/usr/share/icons/hicolor/16x16/apps/audacity.png
/usr/share/icons/hicolor/22x22/apps/audacity.png
/usr/share/icons/hicolor/24x24/apps/audacity.png
/usr/share/icons/hicolor/32x32/apps/audacity.png
/usr/share/icons/hicolor/48x48/apps/audacity.png
/usr/share/icons/hicolor/scalable/apps/audacity.svg
chromium
$ find /usr/share/icons/ -iname '*chromium*' -print
/usr/share/icons/hicolor/128x128/apps/chromium.png
/usr/share/icons/hicolor/16x16/apps/chromium.png
/usr/share/icons/hicolor/24x24/apps/chromium.png
/usr/share/icons/hicolor/256x256/apps/chromium.png
/usr/share/icons/hicolor/32x32/apps/chromium.png
/usr/share/icons/hicolor/48x48/apps/chromium.png
/usr/share/icons/hicolor/64x64/apps/chromium.png
gimp
$ find /usr/share/icons/ -iname '*gimp*' -print
/usr/share/icons/hicolor/16x16/apps/gimp.png
/usr/share/icons/hicolor/22x22/apps/gimp.png
/usr/share/icons/hicolor/24x24/apps/gimp.png
/usr/share/icons/hicolor/256x256/apps/gimp.png
/usr/share/icons/hicolor/32x32/apps/gimp.png
/usr/share/icons/hicolor/48x48/apps/gimp.png
/usr/share/icons/HighContrast/16x16/apps/gimp.png
/usr/share/icons/HighContrast/22x22/apps/gimp.png
/usr/share/icons/HighContrast/24x24/apps/gimp.png
/usr/share/icons/HighContrast/256x256/apps/gimp.png
/usr/share/icons/HighContrast/32x32/apps/gimp.png
/usr/share/icons/HighContrast/48x48/apps/gimp.png
上記で共通しているのは、以下の4つのファイルです。(確実に以下の4つだけでいいのか、4つも必要ないのかまでは検証していません)
/usr/share/icons/hicolor/16x16/apps/\*.png
/usr/share/icons/hicolor/24x24/apps/\*.png
/usr/share/icons/hicolor/32x32/apps/\*.png
/usr/share/icons/hicolor/48x48/apps/\*.png
正しいアイコンがどこに保存されているのかの憶測がたったところで、正しく表示されていないアプリ、今回は GNOME Terminal を確認します。すると、以下を見てもらえると分かる通り、上記では確認できた /usr/share/icons/hicolor/
にはアイコンとなる画像データが保存されていない事が確認できます。
$ find /usr/share/icons/ -iname '*utilities-terminal*' -print
/usr/share/icons/Adwaita/16x16/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/16x16/apps/utilities-terminal.png
/usr/share/icons/Adwaita/22x22/apps/utilities-terminal.png
/usr/share/icons/Adwaita/24x24/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/24x24/apps/utilities-terminal.png
/usr/share/icons/Adwaita/32x32/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/32x32/apps/utilities-terminal.png
/usr/share/icons/Adwaita/48x48/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/48x48/apps/utilities-terminal.png
/usr/share/icons/Adwaita/512x512/apps/utilities-terminal.png
/usr/share/icons/Adwaita/64x64/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/96x96/apps/utilities-terminal-symbolic.symbolic.png
/usr/share/icons/Adwaita/scalable/apps/utilities-terminal-symbolic.svg
/usr/share/icons/HighContrast/16x16/apps/utilities-terminal.png
/usr/share/icons/HighContrast/22x22/apps/utilities-terminal.png
/usr/share/icons/HighContrast/24x24/apps/utilities-terminal.png
/usr/share/icons/HighContrast/256x256/apps/utilities-terminal.png
/usr/share/icons/HighContrast/32x32/apps/utilities-terminal.png
/usr/share/icons/HighContrast/48x48/apps/utilities-terminal.png
/usr/share/icons/HighContrast/scalable/apps/utilities-terminal.svg
試しに /usr/share/icons/Adwaita/
から /usr/share/icons/hicolor/
へ配置(コピペ)して、コンテナを再起動します。
$ sudo cp /usr/share/icons/Adwaita/16x16/apps/utilities-terminal.png /usr/share/icons/hicolor/16x16/apps/utilities-terminal.png
$ sudo cp /usr/share/icons/Adwaita/24x24/apps/utilities-terminal.png /usr/share/icons/hicolor/24x24/apps/utilities-terminal.png
$ sudo cp /usr/share/icons/Adwaita/32x32/apps/utilities-terminal.png /usr/share/icons/hicolor/32x32/apps/utilities-terminal.png
$ sudo cp /usr/share/icons/Adwaita/48x48/apps/utilities-terminal.png /usr/share/icons/hicolor/48x48/apps/utilities-terminal.png
なお、今回は既にアイコン画像があることが確認できたので、とりあえず既にあるアイコンの画像データ .png
をコピーして配置しました。
アイコンがない場合は自分で所定のサイズで PNG 形式で作成すれば、それを表示できると思います。もともと参考にしたページではデフォルトのアイコンを変更する、という趣旨だったため、好きな画像をアイコンにすることもできるかもしれませんね。
反映されない場合やアイコンがおかしい場合は、再インストールを試してみてください。
最後に
分かりそうで分からないことも多かったので補足・修正等も大歓迎です!
最後まで読んでくださってありがとうございます!
参考