X11

如何在特定的頭部啟動應用程序?

  • September 11, 2017

我正在嘗試開始cheese使其在多頭顯示設置的特定頭上執行。應用程序選項包括一個--display=DISPLAY設置:

$ cheese --help
Usage:
 cheese [OPTION...]

...
Application Options:
 -w, --wide               Start in wide mode
 -d, --device=DEVICE      Device to use as a camera
 -v, --version            Output version information and exit
 -f, --fullscreen         Start in fullscreen mode
 --display=DISPLAY        X display to use

我在想我可以用類似的東西設置頭部--display=:0.1,但是只有“:0”允許應用程序啟動(在錯誤的頭部)。

什麼參數參數會強制它在同一工作站上的另一個頭/顯示器上啟動?

該語法指定顯示器 0 上的螢幕編號。螢幕的概念旨在描述同一顯示器上的多個顯示器,但應用程序不能從一個顯示器移動到另一個顯示器,因此它幾乎已被廢棄。您的顯示器都在螢幕 0 上,即,這相當於因為唯一的螢幕是預設螢幕。:0.*NUMBER*``:0.0``:0

所有顯示器都放置在矩形畫布上。在雙顯示器配置中,一個顯示器的左上角位於位置 0x0,另一個顯示器的左上角位於位置 0xH(垂直排列)或 Wx0(水平排列),其中 WxH 是第一個顯示器的大小。

表現良好的應用程序採用一個選項-geometry--geometry允許使用者指定應用程序主視窗的位置和大小。例如,如果兩個 1600x1200 顯示器水平排列,xterm -geometry +1600+0則在右側顯示器的左上方啟動 xterm。不幸的是,奶酪並不乖巧¹。

如果您總是想在特定位置執行應用程序,您可以使用Devil’s Pie使其在創建視窗時重新定位視窗。使用devilspie2,創建一個~/.config/devilspie2/cheese-geometry.lua包含

if (get_application_name() == "Cheese" and get_window_name() == "Cheese") then
 set_window_position(1600, 0);
end

使用原始的 Devil’s Pie創建一個~/.devilspie/cheese-geometry.ds包含

(if (and (is (application_name) “Cheese”) (is (window_name) “Cheese”))
   (geometry "+100+1"))

請注意,您的視窗管理器可能會覆蓋該位置 - 視窗管理器在定位視窗時擁有最終決定權。如果您的視窗管理器覆蓋了該位置,希望它有一種配置它的方法。

¹這是一個 GNOME 應用程序。GNOME 相信消除使用者選擇程序行為方式的任何能力。

引用自:https://unix.stackexchange.com/questions/281622