google code-beautifer

星期三, 5月 03, 2017

randr :多螢幕的空間配置變換

多螢幕的空間配置是門學問,因為螢幕通常是寬大於高,比較直覺的作法是把次螢幕放在主螢幕的上方,所以不用時時都頭抬的高高,有需要才抬頭,以gnome desktop 而言,他會把面板顯示鎖定放在主螢幕頂端,但是桌面的捷徑因為跟著桌面的左上角起開始排列,他們會跑到次螢幕去,

這用法一般工作還好但是有個問題,有些程式好像水土不服(比如說pluma 編輯器):除非你要是在次螢幕下進行使用pluma開啟檔案選單,不然的話,會發現pluma在主螢幕下進行的檔案開啟選單行為會很怪異,(基本上要是選單很長的話,他不會往下列而是往上列,但是因為Gnome shell 的面板taskbar 放在主螢幕頂端,他就認為到頂了就切掉而不會去利用主螢幕面板顯示更上方的次螢幕,所以明明螢幕空間很多,選單卻擠在一起)不過不是所有程式都是這樣,我認為是pluma 沒設計的很周全,不過gedit 被改到我很不順手,三不五時除了emacs 外我還是得用pluma寫東西。所以我是這樣設定:

一般需要專心debug 很長的程式之類工作而不需做檔案開啟之時,把雙螢幕切到上下並列的配置,不然才就是左右(而且以左邊的主螢幕為主)
要切換可以用Arandr ,用他的GUI寫兩個設置檔:一個是上下並列的配置,一個是左右並列的配置。這暫時可以解決,但還不夠好:因為每次切換要先開Arandr ,然後開啟設置檔,再點執行....需要很多鍵很慢。理論上Arandr 可以配置綁定某一快捷鍵給某一螢幕設置檔,但是0.17 版只支援metacity ,所以我在改成用mutter 的gnome shell 上按了設置的快捷鍵是沒有用的。
所以後來我寫了兩個執行檔,內容分別是
xrandr --output DVI-I-3 --right-of DVI-I-2
xrandr --output DVI-I-3 --above DVI-I-2
然後寫了兩個gnome 的桌面捷徑去分別執行。想知道螢幕的代碼可以用不加任何參數去執行 xrandr  比如說這是我在某電腦的執行結果,可以看到 4 個介面 DVI-I-XXX 只執行了兩個,如何配置就看個人
$ xrandr
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 disconnected (normal left inverted right x axis y axis)
DVI-I-2 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
   1680x1050     59.95*+
   1440x900      74.98    59.89 
   1360x765      60.00 
   1280x1024     75.02    60.02 
   1280x960      60.00 
   1280x720      60.00 
   1152x864      75.00 
   1024x768      75.03    70.07    60.00 
   800x600       75.00    72.19    60.32    56.25 
   640x480       75.00    72.81    59.94 
DVI-I-3 connected 1440x900+1680+0 (normal left inverted right x axis y axis) 408mm x 255mm
   1440x900      59.89*+  74.98 
   1280x1024     75.02    60.02 
   1152x864      75.00 
   1024x768      75.03    70.07    60.00 
   800x600       75.00    72.19    60.32    56.25 
   640x480       75.00    72.81    59.94 

在從睡眠模式醒來後,或是鎖定螢幕一陣子後,有時候會發生螢幕的桌布花屏,偏移或解析度錯誤的情形,一個方式是用alt -F2 去強迫重畫桌面,重新啟動rAndr 也是可以解決
   
一些設置可以去參考
http://www.thinkwiki.org/wiki/Xorg_RandR_1.2