先前 在 eee pc 上面安裝 debian 時, 需要找一個輕量級的視窗管理員, 其中最關鍵的參數是記憶體用量。 這篇文章 比較十幾個視窗管理員, 看到 icewm 時就毫不猶豫地選它了, 因為它是我二十幾年的老朋友。 本文描述的是 debian 12.5 (bookworm) 上的 icewm 3.3.1。
一、 基本設定
安裝好 icewm 套件之後, 先把系統的幾個設定檔拷貝回家目錄:
mkdir -p ~/.config/icewm ; cp -a /usr/share/icewm/{preferences,toolbar,menu} ~/.config/icewm/
。
等一下凡是修改過 ~/.config/icewm/ 底下的設定檔,
只要下 icewm --restart
就會生效。
主設定檔是 preferences; 工具列設定在 toolbar; 主選單在 menu。
[中文字型] 剛裝好時, 預設採用英文字型,
選單上的文字大半是空的 :-(
假設你已安裝 fonts-arphic-ukai (文鼎楷書) 套件,
那麼: fc-list :lang=zh | grep -i ukai
會看到一些可用的中文字型。
等一下我要選用 "AR PL UKai TW:style=Book"。
字型設定在 preferences 裡面所有提及 FontName 跟 FontNameXft 的地方。
可能因為預設 PreferFreetypeFonts=1
也就是
xft 字型 優先,
所以只需要把所有提及 Xft 的設定改掉即可:
grep 'FontNameXft' preferences perl -i.bak -pe 's/^#\s*(\w+FontNameXft=)"[^:]*(.*)"/$1"AR PL UKai TW:style=Book$2"/' preferences
不小心改壞了沒關係, 上面指令會產生 preferences.bak, 而且系統的 /usr/share/icewm/preferences 也還在呀!
[閃個不停,煩欸] 某些情況下
(可能是因為我在 ~/.inputrc 裡面有設 set prefer-visible-bell
?)
我在終端機啟動某些事, 滑鼠離開後才完成, 而 icewm 為了提醒我,
下面工具列上的終端機 icon 會一直閃, 直到我去點終端機它才會停。
只要把 FocusRequestFlashTime
從預設的 0 ("你不點我,我就閃到地老天荒") 改成 2 或 3 (數秒後停止) 即可。
[登入後自動啟動的 apps; 桌布] 在 ~/.config/icewm/
目錄建立一個文字檔 startup, 記得要 chmod u+x startup
。
裡面放入你希望登入時自動啟動的 apps, 像這樣:
nm-applet & # 設定網路的小工具, 由 network-manager-gnome 套件提供 sakura -n 3 -c 72 -r 20 & firefox & sleep 3 ; icewmbg --scaled=1 -i ~/images/dolphins.jpg最後一句是設定桌布, 先睡三秒, 等佈景主題 (下詳) 的背景設好之後再覆蓋過去, 這樣的好處是: 之後不論換哪套佈景主題, 仍舊一律採用你自選的桌布。 startup 的設定, 下次登入時生效。
二、 選單
[常用程式放到工具列上] 我的 toolbar 設定檔長這樣:
prog "Sakura終端機" terminal sakura -n 3 -c 72 -r 24 prog "火狐瀏覽器" firefox-esr firefox
每句 prog 會在下方工具列增加一個按鈕。 後面的欄位依序是: 顯示文字名稱、 圖像 (icon)、 啟重的指令與選項+參數。
[圖像檔的完整路徑?]
可以在 preferences 檔案裡設定 Trace="icon"
、
用 icewm --restart
重新啟動 icewm、
登出、 從文字界面 (例如 ssh 連線或 VT2 到 VT6) 下:
grep 'IceWM:.*icon' ~/.xsession-errors
即可查看每個 icon 檔的完整路徑。
在 這個 issue 查到的。
那個 ~/.xsession-errors 必須等登出之後才看得到完整的紀錄。
(而且這個方式: icewm --restart --trace=icon
並沒有效果。)
事實上 preferences 設定檔裡面有一個 IconPath
的選項, 它決定了 icewm 尋找 icon 的路徑與優先順序。
如果不嫌礙眼, 也可以直接把 icon 檔的完整路徑寫到 prog 指令的圖像欄位。
[工具列上還可以長出選單]
下 icewm-menu-fdo
指令可以從系統資料自動產生一大串選單與子選單。
我從其中截一段, 例如 menu "美工繪圖" applications-graphics { ... }
把它貼到 toolbar 設定檔裡面。
如右圖, 重啟 icewm 之後, 工具列會多一個 icon, 裡面藏了一整個選單!
[主選單設定檔]
主選單設定檔是 menu。 先前說的 toolbar 設定檔的語法, 在 menu 裡面也都適用。
另外, 也可以用 include "abc"
彷彿把 abc 檔案內容直接貼在此處;
menufile "標題" icon "額外的選單檔"
也類似, 可以把 "額外的選單檔" 所描述的選單在此處建立一個 (子選單) 選項,
但它的內容只能是選單格式。 例如預設的 menu 裡面就有這樣一句:
menufile Toolbar folder toolbar # 指令 標題 icon 設定檔名稱
如果想加入一個「更換視窗管理員、 繼續工作階段」的選項,
可以在 menu 檔裡放入 restart 指令, 例如:
restart "openbox" openbox openbox
。
也可以用 icewm-menu-fdo 跟 icewm-menu-xrandr 這兩個 (shell 底下的) 命令動態產生所有應用軟體的選單、 所有硬體螢幕的選單, 再用 includeprog 或 menuprog 將結果納入選單, 像我在 bookworm 的 ~/.config/icewm/menu 裡面看到的這兩句預設:
includeprog icewm-menu-fdo --no-sep-others --seps menuprog Monitors ../devices/computer icewm-menu-xrandr
其他更多選單內可用的指令, 詳見 man 5 icewm-menu
。
三、 佈景主題
從主選單的 「設定」 => 「主題」 進去, 可以試選各種佈景主題。 如果想試更多, 可以到 box-look 或 gnome-look、 點選 (頁面上方) 想要的排序方式, 例如按評分 (rating) 或按更新時間 (latest) 排序、 下載你要的主題檔、 把檔案解壓縮到 /usr/share/icewm/themes 底下即可。
想要設定自己的桌布, 除了上述在 startup 裡面用 icewmbg 之外, 也可以:
mkdir ~/.config/icewm/themes cp -a cp -a /usr/share/icewm/themes/你選的主題 ~/.config/icewm/themes/ cp 很帥的桌布.jpg ~/.config/icewm/themes/
然後編輯 ~/.config/icewm/themes/你選的主題/*.theme
找到這一句, 改成正確的檔名:
DesktopBackgroundImage="很帥的桌布.jpg"
四、 其他設定
[免點,視窗自動跳起並獲得焦點]
Linux 的許多視窗管理員都有 "AutoRaise" 的功能:
滑鼠移到某視窗上方停個零點幾秒, 不必點, 它自動就取得鍵盤滑鼠焦點。
手指使用過度的我, 非常仰賴它, 已用了二三十年,
到現在不知幫我的食指省了多少耗損。
從主選單的 「設定」 => 「焦點」 進去, 選 「精確滑鼠焦點」
("Strict-mouse-focus"),
意謂著: 滑鼠移到哪個視窗, 鍵盤的輸入就跟著切換到那個視窗。
此時 icewm 會建立一個 ~/.config/icewm/focus_mode 設定檔,
內含一句 FocusMode=4
。
這效果相當於在 preferences 裡面手動設定 "AutoRaise=1"
以及其他某些設定,我沒研究。 建議不要手動設定 "AutoRaise=1",
以免 產生困惑的效果。
預設等待的時間太短 (還是根本不等我? 我反應太慢, 分不出來),
所以我又到 preferences 裡面, 找到 PointerFocusDelay 那一句, 把 200 改成 500。
(記得, 要重新啟動 icewm 才會生效!)
[看著 A 視窗的文件, 同時矇著眼睛在 B 視窗打字] 例如人工 OCR (看著圖形版的 pdf 檔,抄寫文字) 的時候, 可能會有此需求。 此時可以選擇 「粗略的滑鼠焦點」 (Sloppy-mouse-focus) 或 「安靜的滑鼠焦點」 (Quiet-sloppy-focus)。 如果需要自訂更複雜的規則, 就選 「自訂」 (custom), 並且要研究 這一頁 裡的 「FocusMode」 那一節最後面提到的十個選項。
[多個桌面] 從工具列可以看到: 預設有四個桌面。 在 preferences 裡面設定 WorkspaceNames 那一句, 可以改變桌面的個數及名稱。
[免點,切換桌面] 在 preferences 裡面設定 EdgeSwitch=1 跟 EdgeSwitchDelay=800 並重啟 icewm 之後, 滑鼠只要在螢幕右側或左側停留超過 0.8 秒, 就會自動切到隔壁的桌面。 就像移滑鼠自動切換視窗一樣, 食指又少了一些負擔。
[快速鍵]
有些快速鍵很好用,
例如 alt-tab 切換視窗、 alt-f10 把視窗放到最大、
alt-shift-f10 把視窗向垂直方向延伸填滿桌面、 .. 等等。
也可以在 keys 設定檔裡自訂其他快速鍵。
詳見 man 5 icewm-keys
。
IceWM FAQ and Howto 有更豐富的教學。
沒有留言:
張貼留言
因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。