如何在特定的头上启动应用程序?

如何在特定的头上启动应用程序?

我正在尝试开始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”允许应用程序启动(在错误的头部)。

什么参数会强制它在同一工作站上的另一个头/显示器上启动?

答案1

该语法指定显示器 0 上的屏幕编号。屏幕的概念旨在描述同一显示器上的多个显示器,但应用程序无法从一个显示器移动到另一个显示器,因此它几乎已被放弃。您的显示器都在屏幕 0 上,即,这相当于因为唯一的屏幕是默认屏幕。:0.NUMBER:0.0:0

所有监视器都放置在矩形画布上。在双显示器配置中,一个显示器的左上角位于位置 0x0,另一个显示器的左上角位于位置 0xH(垂直排列)或 Wx0(水平排列),其中 WxH 是第一个显示器的尺寸。

行为良好的应用程序会采取一个选项-geometry,或者--geometry允许用户指定应用程序主窗口的位置和大小。例如,如果两个 1600x1200 显示器水平排列,则xterm -geometry +1600+0在右侧显示器的左上角启动 xterm。不幸的是,奶酪的表现并不好。

如果您总是想在特定位置运行应用程序,您可以使用魔鬼派使其在创建时重新定位窗口。和恶魔间谍2,创建一个文件,~/.config/devilspie2/cheese-geometry.lua其中包含

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

随着原来的魔鬼派,创建一个文件,~/.devilspie/cheese-geometry.ds其中包含

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

请注意,您的窗口管理器可能会覆盖该位置 - 窗口管理器在定位窗口时拥有最终决定权。如果您的窗口管理器覆盖了该位置,希望它有办法配置它。

1这是一个 GNOME 应用程序。 GNOME 主张消除用户选择程序行为方式的任何能力。

相关内容