2007-08-04

支援 rdesktop -x 功能的 gnome-rdp

在 Ubuntu 的遠端連線工具裡, 預設的是 tsclient, 功能相當不錯, 但是在管理上稍有不足, 所以我都是使用 gnome-rdp 這個套件來管理常用的一些連線, 但是不管是原來的 tsclient 或是 gnome-rdp 都沒有開放設定 rdesktop 的 -x 參數, 可是我又希望連線時能夠看到遠端的桌面背景, 於是就自己下載 source 稍稍改了一下, 做了一個新的版本!! 修改的功能有:

  1. 新增 RDP5 Experience 選項(modem,broadband,lan), 配合 rdesktop 的 -x 選項, 使遠端連線時可顯示桌面背景.
  2. 關閉主視窗大小改變時, 會自動置中造成視窗跳動的問題.
使用方式: 下載 gnome-rdp.exe 替換掉原來在 /usr/lib/gnome-rdp/ 目錄底下的程式就可以了!
想自己動手做的話, 可以照著以下步驟進行:
$ apt-get source gnome-rdp
$ cd gnome-rdp-0.2.2
$ dpkg-buildpackage -rfakeroot -uc -b
這時候會先做一個小 patch (把原來的 xvncviewer 換成 xtightvncviewer), 再開始進行編譯程式, 然後會看到一個很笨的錯誤, 先不要理它, 這裡我們只是要產生一些 make file 的配置檔!(表示這個源碼之前沒有被編譯過, 否則應該不會有這種錯誤)
./OptionsDialog.cs(58,93): error CS0023: The `+' operator cannot be applied to operand of type `string'
如果編譯中出現缺少開發套件的話, 可以先執行
$ sudo apt-get build-dep gnome-rdp
$ sudo apt-get install fakeroot # 以非 root 身份進行編譯時所需的套件
這樣會安裝所有建置 gnome-rdp 所需要的套件庫, 和 fakeroot 套件
接下來下載 gnome-rdp-changedfiles.tgz, 解壓並覆蓋掉原來的檔案(包含上面那個錯誤的修正)!
$ cd ..
$ wget http://bigsan.chen.googlepages.com/gnome-rdp-changedfiles.tgz
$ tar zxvf gnome-rdp-changedfiles.tar.gz
$ cd gnome-rdp-0.2.2
$ dpkg-buildpackage -rfakeroot -uc -b
這時候會產生一個 ../gnome-rdp_0.2.2-0ubuntu2_i386.deb 檔案, 可以自行安裝囉! $ cd .. && dpkg -i gnome-rdp_0.2.2-0ubuntu2_i386.deb
附帶一提的是 gnome-rdp 的資料是用 Sqlite 來管理的, 因為有改到資料庫的結構, 所以如果原來有建立站台資料的話, 就必須先刪除 ~/.gnome-rdp.db, 然後再執行 gnome-rdp 的時候, 資料庫就會重新建立了! 如果不想讓原來的資料消失的話, 就得自行更改資料庫的結構及資料, 指令如下:
$ sqlite ~/.gnome-rdp.db # for sqlite version 2
$ sqlite3 ~/.gnome-rdp.db # for sqlite version 3
sqlite> .tables
#如果看到 session 和 version 兩張 table 的話, 表示沒問題, 否則就是 sqlite 版本不對
sqlite> ALTER TABLE session ADD COLUMN rdp5experience INTEGER;
sqlite> UPDATE session SET rdp5experience = 0;
sqlite> .quit

沒有留言: