試了好多天, 終於搞定我的 X Client

這幾天一直在搞 XManager 3 及 X-Win32 2010 這兩套 X Client 軟體 , 有玩過的人應該知道基本的能力就是類似 VNC , 雖然和 VNC 的內部作法不同 , 但相同的行為就是 , 在 Windows 中可以看到遠端的 OS 桌面 , 並且操控它

另外這兩套還有個功能 , 就是可以利用 telnet 協定自動登入到遠端 Linux 後 , 單獨執行某套應用程式 , 將該應用程式的視窗封包抓回來後 , 變成 Windows 的視窗 , 也就是說不會看到遠端的 OS 桌面 , 甚至可以做成 Windows 桌面的一個捷徑 , 直接點選之後 , 等於自動執行遠端 Server 的某支應用程式並且顯示在 Windows 7 中 , 而這個功能是我所感興趣的 , 看看下圖吧 , 那個 MonoDevelop 可不是 Windows 版喔 , 證據就是 , 左上角的路徑是不是 Linux 路徑呢 ? 哈 哈

sample(點一下放大)

我被這兩套軟體搞到快瘋的原因是 , 要單獨執行某支程式簡單 , 但是要能夠有中文輸入又要有 GNOME 風格就搞死我了 , 查了好多資料才弄出來 , 最終被我歸納出來了 , 由於我的遠端 X Server 是 Ubuntu , 中文輸入法是 ibus , 所以就用這例子來說明如何執行 monodevelop 且具備 GNOME 風格及可以使用 ibus 輸入法 , 其實我寫成了一道指令如下

export DISPLAY=@DISPLAY@ ; export XMODIFIERS=@im=ibus; export GTK_IM_MODULE=ibus;  export GDM_KEYBOARD_LAYOUT=us;   export GDM_LANG=zh_TW.UTF-8;  export LANG=zh_TW.UTF-8; export LC_TYPE=zh_TW.UTF-8; /usr/lib/gnome-settings-daemon/gnome-settings-daemon; /usr/bin/ibus-daemon -d --xim; /usr/bin/monodevelop

真要命 .... 這段指令可是我花了好幾天工夫搜尋資料才知道的 .... 應該要拆解一下比較清楚

export DISPLAY=@DISPLAY@;

這一行是將環境變數 DISPLAY 設定為 @DISPLAY@ , 而 @DISPLAY@ 是 X-Win32 內的變數 , 反正就是要寫就是了

export XMODIFIERS=@im=ibus;

設定預設 XWindows 的輸入法是 ibus , 其實這行似乎沒必要 , 因為在 GNOME 下會以 GTK_IM_MODULE 來判斷 , 但若不想用 GNOME 的風格就要了

export GTK_IM_MODULE=ibus;

由於 GNOME 使用 GTK 圖形指令 , 這個環境變數是針對 GTK 的輸入法要用那種 , 這裡就是寫 ibus , 其實還有個一個環境變數 QT_IM_MODULE 可以用 , 因為 KDE 採用 QT 來作的 , 所以若是想要搭配 KDE 風格 , 則可以加上 QT_IM_MODULE=ibus

export GDM_KEYBOARD_LAYOUT=us;

這行設定鍵盤排列是那一種 , 其實我試過有沒有都無所謂 , 因為系統預設就是 us ...

export GDM_LANG=zh_TW.UTF-8;

export LANG=zh_TW.UTF-8;

export LC_TYPE=zh_TW.UTF-8;

以上三行是為了確保都能夠在中文下顯示所設定的

/usr/lib/gnome-settings-daemon/gnome-settings-daemon;

這行很重要 , 必須在輸入法及要執行的應用程式之前執行 , 這個指令執行後 , 後面跑的程式就會變成 GNOME 風格了 , 如果沒有執行這段 , 後面跑的程式畫面會變成預設的 X - Windows 風格 , 那就比較醜了

/usr/bin/ibus-daemon -d --xim;

這段是啟動 ibus 輸入法

/usr/bin/monodevelop

這段是啟動 monodevelop , 當然若要執行其他的 , 如 gedit , 那麼就改成 gedit 的絕對路徑即可


上面寫的 , 就是弄成一行在 X-Win32 的 telnet 模式下去建立就可以了 , 而 XManager 3 我不建議使用 , 至少不建議使用在 ubuntu 9.1 , 因為切換輸入法後 , 鍵盤對應有問題

PS : 由於 ibus 預設使用 ctrl+space 切換輸入法 , 在 X-Win32 的 Telnet 模式下執行 , 其實會無法切換 , 所以可能要先進 ubuntu 桌面手動新增一個切換鍵 , 我則是用 ctrl+F12 , 但若是以平常開啟遠端整個 X 桌面的方式(XDMCP)則無所謂 , 仍可以用 ctrl+space , 而 XManager 3 則是連 ctrl+space 都不能用 , 因此我還挺推薦 X-Win32 2010

3 則評論在 試了好多天, 終於搞定我的 X Client.

  1. 嗯,XManager 3 這東西我玩過,但後來發現實用性不太大,就很少用了。實用性不大的原因是,在 linux 上面,你很難找到非 linux 平台不可的好用的軟體。 換句話說,就是linux上面目前還沒有這樣的一個軟體你會為了用它,而去搞一套linux來用。若有這樣好用的軟體出現,那麼XManager 就幫上很大的忙了。而功能相同的軟體在 Windows 底下都能找到,所以在Windows底下裝 XManager 3 只是要去執行 linux 上的某一程式….這樣的應用就有點無力…..若能反過來的話,那多好呀! 跛腳的wine就可以丟掉了!
     

發佈留言