/usr/share/icons
で利用可能なすべてのアイコンテーマを一覧表示するシンプルなグラフィカルZenity + Bashスクリプトを作成しようとしています。ユーザーが1つを選択し、「OK」をクリックしてgtk-icon-theme-name="Humanity"
の~/.gtkrc-2.0.mine
を置き換えて、選択したテーマ名をHumanityの代わりに言います。 Openboxでアイコンテーマを選択するためのグラフィカルな方法を提供するためにこれを行っています。これはまだ主流のプログラムがないためです。
これは私がこれまでに持っているものです:
#!/bin/bash
ICONS=$(ls -I "*.*" /usr/share/icons); SELECTED=$(zenity --list --column=/usr/share/icons \ $ICONS); echo 'gtk-icon-theme-name="$SELECTED"' >~/.gtkrc-2.0.mine
これは機能しますが、echoは引数を取り、ユーザーの選択に置き換える代わりに、実際にテキストファイルに$SELECTED
を書き込みます。
これとZenityの基本を習得するのを手伝ってくれる人に感謝します。
@ TungTran の答えに加えて、スクリプトはいくつかの改善を求めています。
スクリプトを1行に詰め込むと、読み取り/理解/デバッグが困難になります。 1行に1つのコマンドを記述します。
#!/bin/bash
ICONS=$(ls -I "*.*" /usr/share/icons)
SELECTED=$(zenity --list --column=/usr/share/icons \ $ICONS)
echo "gtk-icon-theme-name=\"$SELECTED\"" >~/.gtkrc-2.0.mine
テキスト出力に変数を埋め込むもう1つの面倒な方法は、printf
を使用することです。
printf 'gtk-icon-theme-name="%s"\n' "$SELECTED" >~/.gtkrc-2.0.mine