google code-beautifer

星期五, 10月 26, 2012

對gnome 3 有些問題一些粗淺想法跟心得

從夏天開始慢慢轉換到gnome 3.4 ,網路上一片哀嚎,我剛好也是那個會嚎的,不是Gnome3 不好,而是有些地方用不順手,我覺得Gnome 3新設計把預覽mode 分出來是對的設計。只是一些小地方討厭,需要花時間磨合:以往gnome2 傳統的applet 在gnome3 不能用了。但是有其他取代的工作方式。gnome 3 預設介面很陽春,但是靠大量extension 可以把他改的很好,我覺得甚至超過gnome 2,而且比較有組織調理,不過用慣了gnome 2 介面的人可能在還沒找到合用的extension 前會感到十分沮喪,經過調校之後的結果就還不錯,之後我會專門寫一篇extension介紹,以下是我目前略讀網上一些資料後,對有些問題一些粗淺想法跟心得:

我在某Mageia Linux:Intel CPU+nvidia 8600 (nvidia 295.49 driver)機器上遇到某個地雷: 在某時候安裝某extension東西之後,system tray 上的部份icon 會不見(如音效),
參見 http://www.freeimagehosting.net/82bc3
但是他們之下的功能與icon 都俱全,唯一的麻煩是要需去盲人摸icon 把他用滑鼠摸出來

我google 的結果有兩種說法: 有一種說法是 nvidia 某一代driver 與gnome 3 windows decoration 不合 ,有人說用nouveau driver可以解決,不過我的系統用nouveau 會造成一堆X上的問題讓系統無法使用,搞到我瘋掉,現在不敢再試nouveau
另一種說法是說 librsvg
http://forums.linuxmint.com/viewtopic.php?f=190&t=98976
或 cache 問題,但我試了
sudo /usr/bin/gdk-pixbuf-query-loaders --update-cache
也沒用 (參見 https://bbs.archlinux.org/viewtopic.php?pid=1054054)

最後是發現我一登入gnome 就會跳出一個關於螢幕模式不合的警告視窗,關掉警告視窗後,幾個不見的icon就會跑出來,但是每次登入都有警告視窗,還蠻煩的,後面再說。

2 在某AMD CPU + nvidia GeForce 6100LE video card機器上 打開 gnome-terminal 或其他類似的terminal (lxterminal),背景跟文字會變完全透明,打什麼字全看不見所以完全無法使用。我試著用不透明的圖片當 gnome-terminal的背景看能不能至少看到背景或文字,但是沒用,只看到 gnome-terminal半透明的邊跟框後面的桌面讓我依稀知道他現在在哪裡所以只能使用urxvt 或其他不同種類的terminal 。可是 gnome-terminal 可以打開mutiple tab 跟改字型大小比較好用阿,其他的都不夠方便。

可是假如登入時選gnome-classic ,傳統的menu 出現,gnome-shell 當然都沒有了,但是 gnome-terminal 忽然就好了。不過不能同時用 gnome-terminal 跟gnome 3 感到十分沮喪,用gnome-classic 不是好走向

3. gnome-shell-3.4 還是相對應的gtk 不太穩: 有時候用一用 應用程式的裝飾邊框會不見了,所以無法靠視窗邊框的按鈕把應用程式關掉。而且往往連 gnome 3的top Panel也都搞不見,無法開啟其他功能,我只好ctl-alt-3 跳到文字模式下重開機

星期四, 2月 23, 2012

隨身碟版 LibreOffice / OpenOfficce

假如您的學校或辦公室電腦沒有LibreOffice或Apache OpenOfficce,又不能搞個Linux live USB 直接開機用,這裡也有LibreOffice可攜版 :

星期三, 2月 22, 2012

Krusader設定檔跟檔案路徑當掉頁籤的修復

Krusader 是一個非常好用的檔案管理程式,雖然長的有一點醜,但是功能不是其他檔案管理程式可以比擬的,但是有個小問題:要是多開幾個頁籤處理不同子目錄,但是關掉Krusader時忘了關掉子目錄已不存在的頁籤。下次再開時就會當掉,而且在某些狀況下關掉重開還是不能解決問題。除非你把上次開的子目錄都在系統上準備好等著Krusader他打開,這個問題最常出現在用Krusader打開一個抽取式的儲存裝置,比如說相機的快閃記憶體,用完了在系統上安全快閃記憶體移除沒事,但是下次Krusader 會因為上次開的頁籤找不到上次打開的快閃記憶體,就一直死給你看。

我發現krusader的設定檔放家目錄下的.kde4/share/,主要是.kde4/share/config/krusaderrc 這一個檔,其中有一段[Startup]是控制啟動時要開哪些頁籤。萬一出了問題,把krusaderrc 這一個檔刪掉,他就會自動產生好的基本設定。假如是升級系統,想要保留原有的設定但是只是少部份檔案路徑不對,可以把原krusaderrc 檔案備份在別處,刪掉舊檔然後產生一個新檔,把舊檔的[Startup]這一段換成安全的格式後寫回去就可以了。下面是兩個視窗各開兩個頁籤的示範,其實不算太難懂,有興趣的可以自己改改試試。

[Startup]
Left Active Tab=1
Left Panel Popup=0
Left Side Is Active=false
Left Tab Bar[$e]=$HOME,$HOME/.libreoffice
Left Tab Bar Props=0,0
Left Tab Bar Types=0,0
Right Active Tab=1
Right Panel Popup=0
Right Tab Bar[$e]=$HOME,$HOME/.remmina
Right Tab Bar Props=0,0
Right Tab Bar Types=0,0
Vertical Mode=false

星期三, 12月 22, 2010

Synergy

Synergy

Synergy 可以想成是軟體做的KVM,讓你在多部不同操作系統的電腦之間共用鍵盤和滑鼠,而仍然以各系統自身的螢幕顯示資料,正常當鼠標移到螢幕邊緣時會停住,而兩台電腦經Synergy 連接後,當滑鼠從一個螢幕滑動超過邊緣時,他會跳到另一個螢幕。而且當滑鼠在另一個遠端(client)螢幕上的時候,本地(server)鍵盤的輸入就會直接送到遠端去,也支援個別互相剪貼功能(不過目前是沒有加密的),而且遠端螢幕上的一些功能如compiz的旋轉方塊預覽也相容。Synergy 透過網路把多部電腦連起來的。除此之外,無需特別的硬體。。這對一些需要即時監控螢幕,但是螢幕更新傳輸的資料量太大,比如說按一個鍵去播放看電影這些不適合用NX 或vnc 方式遙控的場合最好用。

大部份的 linux 發行版都己提供 Synergy 套件的線上安裝。mac 跟 windows的環境去官方網站 http://synergy2.sourceforge.net/直接下載來裝。

編寫Synergy 設定檔


通常儲存在 ~/.synergy.conf 。設定檔的內容,需要設定三組section 參數:分別是screens ,aliases 和links。
screens 裡面填入電腦的名稱, screen代表你整個架構裡有多少個螢幕(screen,其實是指電腦,不論一台電腦接多少台螢幕,還是用一個screen名稱 ),那些電腦在Synergy下叫什麼名字是由你自己定義的,跟什麼網路名無關。本例中有兩個screen , 分別命名為 mdv和macos 。要是screens那裡用的電腦都是用hostname的話,alias那邊就不用指定了

alias 裡面指定 screen 們電腦名字所對應的網路位置代稱,用hostname 或 IP 均可。如例中桌機 mdv 在 192.168.1.1 。在 dhcp 動態分派位址的網路環境中,我們沒有固定的 ip 可對應時,可以用hostname 來設代稱。

links 裡面指定以 right , left , up , down 四個關鍵字代表相對應此電腦右左上下四個位置的對方電腦。指定一旦滑鼠超過了目前螢幕範圍,該跳到對應目前電腦screen 所在(桌面上的)實際位置上的那台電腦:

為方便解釋,假設有兩台電腦要用 Synergy 連接。桌機 mdv (IP:192.168.1.1)在右手邊,macos在左手邊,這樣為例的設定檔是這樣的:

section:screens
    macos:
    mdv:
end

section:links
    macos:
        right = mdv
    mdv:
        left = macos
end

section: aliases
    mdv:
        192.168.1.1
    macos:
        192.168.1.2
end

在Linux 下安裝 quicksynergy 套件,就可以用 Gui 介面方式來方便的設定。

執行


Synergy 是透過網路把多部電腦連起來的。所以要確定電腦之間的網絡連線正常。防火牆參數必需完全正確設定 Synergy 才能運作。 Synergy 預設用 port 24800 ,設定連線前確保 tcp port 24800 沒有被防火牆擋掉。

安裝 Synergy 後我們會得到兩個執行檔 : synergys 和 synergyc ,synergys是 server , synergyc 是client 。在 Synergy 裡的 Server指的是分享出鍵盤、滑鼠的主控端。看是要用那台電腦當 server 分享鍵盤滑鼠,那台電腦當client 被控制。以筆記型電腦跟桌機分享為例,桌機的鍵盤、滑鼠比較好用,所以一般是把桌機當server,但是也可以倒過來用。因為是deamon,倒不用堅持先啟動server 再啟動client。

以下的執行操作適用於 Mac 和 Linux 系統:
要啟動 Synergy server 的話,執行
synergys
用參數 -c 指定 Synergy 參考那個設定檔來啟動 service。比如
synergys -c ~/MySynergys.conf
不加的話預設是參考 ~/.synergy.conf

要從 client 連到 server 的話,我們執行 synergyc 之後接要連去的電腦位址。本例中是
synergyc mdv
啟動時不加參數是預設在背景執行。一開始遇到問題的話,可以在啟動時加上-f參數去看錯誤訊息,如執行 Synergy server是 synergys -f

預設為 scroll lock 為解除狀態,設定好之後 mdv 機器為右邊機器,macos 為左邊機器,此時滑鼠就可以兩台電腦移動。

星期六, 12月 18, 2010

GUI 的檔案管理跟終端機相互運作

就算有在用GUI 的檔案管理軟體,程式設計師常常會需要在終端機下跳到某個檔案所在的子目錄去工作,krusader 可已有一行工作列輸出入,不過那不好用,emacs 也可以開dird 管理檔案也沒錯,但是用到一些東西管理檔案還是用krusader 或是nautilus 比較直覺。所以我需要一個方法把GUI 的檔案管理程式中的檔案icon 用滑鼠拉到終端機裡,就可以讓終端機裡的shell 跳到對應子目錄的方法。目前還沒看到拖拉icon 支援手勢的用法,。所以得自己來。

一般Linux 系統對桌面支援有設定好的話,不管是gnome 或kde的程式如gnome-commander,nautilus 或krusader,只要把檔案icon 用滑鼠拉到終端機裡,就可以讓終端機顯示該檔的完整路徑名。只要自己設定一個程式,去處理後面跟著拉進來的某個檔案icon對應所在的子目錄,這樣就可以了。bash 下有dirname 這個命命是可以傳回檔案的完整目錄路徑名。但是直接用
alias fu='a=`dirname \$1` ;cd $a'
這樣的方式會出問題,我也不太清楚為何類似的方式不去動到cd $a的方式卻就沒事?可能是Eval 出問題。後來我找到可改用所謂shell function 的方式,其實跟alias 的方式很接近,。但是一般書都沒提這個用法。
fu () {
a=`dirname $1`
cd $a
}
這樣就可以了。但是alias 問題的源頭我一時還時間去追溯 。function 跟變數很像,用set 跟unset 來設定。(其實照上面寫法就好,是不用去管什麼set 跟unset的其他細節)

每次都用的話,可以把這定義寫到 ~/.bash_profile 或 /etc/profile 下。我在想等gnome-shell穩定了,配合某種手勢來作這件事是最好不過的用法。