2024/08/29(木) [n年前の日記]
#1 [debian][linux][icewm] Debian 12にIceWMをインストールして色々設定
昨日に続けて作業中。Windows10 x64 22H2 + VMware Workstation 17 Pro 17.5.2 build-23775571 上で動かしている Debian Linux 12 Bookworm 上で、IceWM というウインドウマネージャをインストールしてみた。
一度ログアウトして、LightDM 上で IceWM Session を選んでからログインすると、IceWM が表示される。
sudo apt install icewm icewm-common
一度ログアウトして、LightDM 上で IceWM Session を選んでからログインすると、IceWM が表示される。
◎ メニューの文字列が表示されない問題 :
IceWM のスタートメニュー(スタートボタンをクリックしたときに表示されるメニュー)内で、各項目を示す文字列がほとんど表示されなかった。英数文字は表示されているけれど、日本語文字列が一切表示されていない。使われているフォントが英語フォントで、日本語フォントではないのだろう。
他のテーマを選ぶことで、日本語文字列が表示される状態になったりもするけれど、今度はダイアログの文字列が表示されない。例えばログアウト用のダイアログ内が何も表示されてなかったりする。これも利用してるフォントの問題だろう。
~/.icewm/preferences が設定ファイルらしいので、新規作成して、以下を記述して、フォント指定をしてみたところ、メニュー内の日本語文字列も表示されるようになった。
最初のあたりは、以下を指定してる。
フォントについては、IPAPGothic、もしくは IPAGothic を指定している。以下でフォントをインストールできる。
もしかすると、フォントについては、sans-serif や monospace を指定してもいいのかもしれない。
余談。フォントを選ぶときは、font-manager、もしくは gnome-font-viewer でフォントを閲覧すると便利かも。
他のテーマを選ぶことで、日本語文字列が表示される状態になったりもするけれど、今度はダイアログの文字列が表示されない。例えばログアウト用のダイアログ内が何も表示されてなかったりする。これも利用してるフォントの問題だろう。
~/.icewm/preferences が設定ファイルらしいので、新規作成して、以下を記述して、フォント指定をしてみたところ、メニュー内の日本語文字列も表示されるようになった。
TimeFormat="%Y/%m/%d(%a) %H:%M:%S" WorkspaceNames=" 1 ", " 2 " MenuMouseTracking=1 OpaqueResize=0 OpaqueMove=0 TitleFontName="IPAPGothic:size=12" TitleFontNameXft="IPAPGothic:size=12" MenuFontName="IPAPGothic:size=10" MenuFontNameXft="IPAPGothic:size=10" StatusFontName="IPAGothic:size=12:bold" StatusFontNameXft="IPAGothic:size=12:bold" QuickSwitchFontName="IPAGothic:size=12:bold" QuickSwitchFontNameXft="IPAGothic:size=12:bold" NormalButtonFontName="IPAPGothic:size=12" NormalButtonFontNameXft="IPAPGothic:size=12" ActiveButtonFontName="IPAPGothic:size=12:bold" ActiveButtonFontNameXft="IPAPGothic:size=12:bold" NormalTaskBarFontName="IPAPGothic:size=10" NormalTaskBarFontNameXft="IPAPGothic:size=10" ActiveTaskBarFontName="IPAPGothic:size=10:bold" ActiveTaskBarFontNameXft="IPAPGothic:size=10:bold" ToolButtonFontName="IPAPGothic:size=12" ToolButtonFontNameXft="IPAPGothic:size=12" NormalWorkspaceFontName="IPAPGothic:size=12" NormalWorkspaceFontNameXft="IPAPGothic:size=12" ActiveWorkspaceFontName="IPAPGothic:size=12" ActiveWorkspaceFontNameXft="IPAPGothic:size=12" MinimizedWindowFontName="IPAPGothic:size=12" MinimizedWindowFontNameXft="IPAPGothic:size=12" ListBoxFontName="IPAPGothic:size=12" ListBoxFontNameXft="IPAPGothic:size=12" ToolTipFontName="IPAPGothic:size=12" ToolTipFontNameXft="IPAPGothic:size=12" ClockFontName="IPAGothic:size=10" ClockFontNameXft="IPAGothic:size=10" ApmFontName="IPAGothic:size=12" ApmFontNameXft="IPAGothic:size=12" InputFontName="IPAGothic:size=12" InputFontNameXft="IPAGothic:size=12" LabelFontName="IPAPGothic:size=12" LabelFontNameXft="IPAPGothic:size=12"
最初のあたりは、以下を指定してる。
- 時刻表示の書式。"2024/08/29(木) 20:45:10" といった記述。
- ワークスペース数を4つから2つに減らした。
- マウスカーソルが項目の上に乗っただけでメニューが開かれるようにしている。
- ウインドウを移動したりリサイズする時に枠のみを表示。
フォントについては、IPAPGothic、もしくは IPAGothic を指定している。以下でフォントをインストールできる。
sudo apt install fonts-ipafont
もしかすると、フォントについては、sans-serif や monospace を指定してもいいのかもしれない。
余談。フォントを選ぶときは、font-manager、もしくは gnome-font-viewer でフォントを閲覧すると便利かも。
sudo apt install font-manager gnome-font-viewer font-manager & gnome-font-viewer &
◎ 背景画像の変更 :
icewmbg を使えばできるらしい。
_icewmbg(1) | man
以下は既に動いてる icewmbg を置き換えつつリスタートする指定。
以下は画像を指定して変更する例。
しかし、~/.icewm/preferences に、どの画像を背景画像として使うのか指定してみても、反映してくれない…。
ググったところ、標準でインストールされている /usr/share/icewm/themes/ 以下のテーマを利用している場合、テーマ側の設定で、~/.icewm/preferences 内の背景画像指定が上書きされてしまうらしい。一旦自分のホームフォルダ内に themes/ を全部コピーして、利用したいテーマファイル内で背景画像を指定しないように修正してしまえば解決しそう。
_icewmbg(1) | man
以下は既に動いてる icewmbg を置き換えつつリスタートする指定。
icewmbg -p -r
以下は画像を指定して変更する例。
icewmbg --center=0 --scaled=1 -i /home/UERS/hoge.jpg
しかし、~/.icewm/preferences に、どの画像を背景画像として使うのか指定してみても、反映してくれない…。
DesktopBackgroundCenter=0 DesktopBackgroundScaled=1 #DesktopBackgroundColor="#3a6ea5" DesktopBackgroundImage="/home/(USERNAME)/Pictures/wallpapers/bg.jpg"
ググったところ、標準でインストールされている /usr/share/icewm/themes/ 以下のテーマを利用している場合、テーマ側の設定で、~/.icewm/preferences 内の背景画像指定が上書きされてしまうらしい。一旦自分のホームフォルダ内に themes/ を全部コピーして、利用したいテーマファイル内で背景画像を指定しないように修正してしまえば解決しそう。
cp -r /usr/share/icewm/themes ~/.icewm/ cd ~/.icewm/themes/default/ vi default.theme
◎ 背景画像の変更スクリプト :
以下のページで、背景画像を簡単に変更できるようにするシェルスクリプトが提示されてたので利用させてもらった。ありがたや。
_ubulog: icewmの壁紙を変える
余談。これは自分のミスだけど、うっかり改行コードを CRLF にして保存してしまって、「必要なプログラムがないから実行できない」みたいなメッセージが出てきて悩んだ…。Linux上では改行コードを LF にすることをすっかり忘れてた…。
ちなみに、改行コードの変換には dos2unix が使える。
_Debian -- bookworm の dos2unix パッケージに関する詳細
_dos2unixコマンドでwindowsファイルを変換する【Linuxコマンド】 - プログラミング学習サイト
Debianの場合、dos2unix というパッケージの中に、dos2unix, unix2dos, mac2unix, unix2mac などが入ってる。
スクリプトが動作したので、せっかくだから Rox-filer にこのスクリプトを登録して呼び出せるようにした。Rox-filerで画像が入ったディレクトリを開く → 画像を選択して右クリック → Set IceWM background、を選べば背景画像の変更ができるようになった。
登録の仕方は…。
Windowsも、SendTo フォルダ内にショートカットファイルを作れば、エクスプローラ上の「送る」メニューの項目が増えるわけだけど、それと似たようなものだと思う。Windowsのショートカットファイル ≒ Linuxのシンボリックリンクと思っておけばいい。(厳密には色々違うはず。Windowsにもシンボリックリンクはあるので…。)
_ubulog: icewmの壁紙を変える
icewmbg-changer.sh or icewmbg-changer.sh /home/(USERNAME)/Pictures/wallpapers/bg.jpg
余談。これは自分のミスだけど、うっかり改行コードを CRLF にして保存してしまって、「必要なプログラムがないから実行できない」みたいなメッセージが出てきて悩んだ…。Linux上では改行コードを LF にすることをすっかり忘れてた…。
ちなみに、改行コードの変換には dos2unix が使える。
sudo apt install dos2unix
_Debian -- bookworm の dos2unix パッケージに関する詳細
_dos2unixコマンドでwindowsファイルを変換する【Linuxコマンド】 - プログラミング学習サイト
Debianの場合、dos2unix というパッケージの中に、dos2unix, unix2dos, mac2unix, unix2mac などが入ってる。
スクリプトが動作したので、せっかくだから Rox-filer にこのスクリプトを登録して呼び出せるようにした。Rox-filerで画像が入ったディレクトリを開く → 画像を選択して右クリック → Set IceWM background、を選べば背景画像の変更ができるようになった。
登録の仕方は…。
- Rox-filerで画像ファイルを右クリックして「メニューのカスタマイズ」を選ぶ。
- 別ディレクトリが開かれて、「この中にシンボリックリンクを作れば登録される」と表示される。
- 前述のスクリプトをドラッグアンドドロップすると、コピー、移動、シンボリックリンク作成、等のメニューが表示されるので、シンボリックリンクを作成。
- もしくは、「シンボリックリンクを作れ」と指示されたディレクトリ内で ln を使ってシンボリックリンクを作成。
ln -s /home/(USERNAME)/bin/icewmbg-changer.sh "Set IceWM background"
Windowsも、SendTo フォルダ内にショートカットファイルを作れば、エクスプローラ上の「送る」メニューの項目が増えるわけだけど、それと似たようなものだと思う。Windowsのショートカットファイル ≒ Linuxのシンボリックリンクと思っておけばいい。(厳密には色々違うはず。Windowsにもシンボリックリンクはあるので…。)
◎ 画面解像度の変更 :
IceWMの画面解像度が狭い。arandr を使って解像度を変更した。Debian Linux の場合、arandr は以下でインストールできる。
画面解像度を変更できることを確認後、保存ボタンを押すとシェルスクリプト(.sh)として保存できる。今回は ~/.screenlayout/display.sh として保存。このシェルスクリプト内では、xrandr を呼び出して画面解像度を変更するように記述されている。
IceWM の startup ファイルに、上記のファイル(display.sh)を呼び出すように記述しておけば、ウインドウマネージャが表示された直後に画面解像度が変更される。Debian の場合は以下だろうか。startupファイルを新規作成して、実行権限を与えて、内容を修正。
追記する内容は以下。
ただ、この設定をしても、画面解像度は変わるものの、それに合わせて背景画像のリサイズは行われなかった。おそらく、背景画像を表示し終わった後で、画面解像度の変更が行われてしまうから、背景画像のサイズがおかしいままになるのではないか。
icewmbg を使えば背景画像について色々と指示が出せるので、~/.icewm/startup に記述して、画面解像度の変更後に呼ばれるようにしてみた。内容としては以下のようになった。
icewmbg を即座に呼んでしまうと反映されなかったので、sleep を使って1秒ほど待ってから呼ぶようにしてみたら、それらしく反映された。
ちなみに、今回は VMware上でDebian Linuxを動かしてるので、クリップボード共有をするために、/usr/bin/vmware-user & も呼んでいる。
※ 2024/08/31追記。実機 + Ubuntu Linux 22.04 LTS の場合、icewmbg -r & では反映されなかったけど、icewmbg -p & なら反映された。
sudo apt install arandr
画面解像度を変更できることを確認後、保存ボタンを押すとシェルスクリプト(.sh)として保存できる。今回は ~/.screenlayout/display.sh として保存。このシェルスクリプト内では、xrandr を呼び出して画面解像度を変更するように記述されている。
IceWM の startup ファイルに、上記のファイル(display.sh)を呼び出すように記述しておけば、ウインドウマネージャが表示された直後に画面解像度が変更される。Debian の場合は以下だろうか。startupファイルを新規作成して、実行権限を与えて、内容を修正。
cd ~/.icewm touch startup chmod +x startup vi startup
追記する内容は以下。
/home/(USERNAME)/.screenlayout/display.sh &
ただ、この設定をしても、画面解像度は変わるものの、それに合わせて背景画像のリサイズは行われなかった。おそらく、背景画像を表示し終わった後で、画面解像度の変更が行われてしまうから、背景画像のサイズがおかしいままになるのではないか。
icewmbg を使えば背景画像について色々と指示が出せるので、~/.icewm/startup に記述して、画面解像度の変更後に呼ばれるようにしてみた。内容としては以下のようになった。
/home/(USERNAME)/.screenlayout/display.sh & sleep 1 icewmbg -r & /usr/bin/vmware-user &
icewmbg を即座に呼んでしまうと反映されなかったので、sleep を使って1秒ほど待ってから呼ぶようにしてみたら、それらしく反映された。
ちなみに、今回は VMware上でDebian Linuxを動かしてるので、クリップボード共有をするために、/usr/bin/vmware-user & も呼んでいる。
※ 2024/08/31追記。実機 + Ubuntu Linux 22.04 LTS の場合、icewmbg -r & では反映されなかったけど、icewmbg -p & なら反映された。
◎ 参考ページ :
_ubulog: icewmの壁紙を変える
_IceWM - 共通事項
_IceWM - 共通事項 - フォント - バー
_超軽量ウィンドウマネージャicewmで古いマシンを快適に | Cloud-Work.net
_ubulog: ubuntuにicewmを入れる
_icewmの設定例。architect-20151005-icewm-archlinux: ゆったりとLinux
_icewmでアンチエイリアス | Days of speed
_好きこそ物の上手なれ 【Linux】icewm の導入【軽量化】
_Debian6(Squeeze)+icewm | 簡単に言えば、一貫性のない事柄を書き付けたもの。
_Eee PC(IceWM)のフォント変更 - Sai10 Sight
_IceWMのフォントを調整 - Sai10 Sight
_しょぼいフォント駆逐作戦 | 1.5人 台湾体当たり生活記
_IceWM - 共通事項
_IceWM - 共通事項 - フォント - バー
_超軽量ウィンドウマネージャicewmで古いマシンを快適に | Cloud-Work.net
_ubulog: ubuntuにicewmを入れる
_icewmの設定例。architect-20151005-icewm-archlinux: ゆったりとLinux
_icewmでアンチエイリアス | Days of speed
_好きこそ物の上手なれ 【Linux】icewm の導入【軽量化】
_Debian6(Squeeze)+icewm | 簡単に言えば、一貫性のない事柄を書き付けたもの。
_Eee PC(IceWM)のフォント変更 - Sai10 Sight
_IceWMのフォントを調整 - Sai10 Sight
_しょぼいフォント駆逐作戦 | 1.5人 台湾体当たり生活記
[ ツッコむ ]
以上です。