September 17, 2006

vdswitcher - X Window 的桌面工作區切換程式

最近 (又) 開始寫新的 Window Manager,主要是搭配 PCMan 的最新力作 [PCManFM],作為輕量級的桌面系統,基本的功能特徵列表如下:
  • Xft for font rendering
  • support StartupNotification
  • multiple workspace
  • Implement some EWMH / ICCCM 2.0
  • Theme support (very limitted but just working)
  • Dedicated to PCManFM
運作畫面如下:

因為這次要作 free / open source 的版本 (之前的創作仍未公開,待新書出現時才會提供 source code),所以寫 code 時謹慎許多,也考量到後續的維護,所以試著作針對 X11 window manager 的 Unit Test 工具,其中 workspace / virtual desktop 的支援是很重要的項目,FreeDesktop 在 [Extended Window Manager Hints] 做了明確的規範,主要是以下這兩個 WM hints:
  • _NET_CURRENT_DESKTOP
  • _NET_NUMBER_OF_DESKTOPS
在之前的 blog [wmctrl - 對符合 EWMH 的 WM 傳送命令] 提供了一個比較有彈性的作法,但是對一般使用者來說,要跟一堆專有名詞打交道,還是倍感生澀,所以我試著作個小程式,名為 vdswitcher,可 [在此取得],授權方式為 GNU GPL。

vdswitcher 的使用方式很簡單,執行時不加參數,可獲得目前 Window Manager 所支援 Workspace/Desktop 的數量,類似以下輸出:
    $ ./vdswitcher
    Workspace count = 4, current: #0
    
如上所見,支援了四個 workspace,而目前位於第一個 (index = 0),倘若我們想切換到第四個 workspace (index = 3),就執行:
    $ ./vdswitcher 3
    Workspace count = 4, current: #0
    Let's switch to workspace #3
    
當指令執行後,window manager 就立刻切換到指定的 workspace 了,程式碼很簡單,也加入一些註解,對 WM hints 有興趣的朋友可作為參考。
由 jserv 發表於 September 17, 2006 10:52 PM
迴響