如何以最底端的属性启动应用程序?

如何以最底端的属性启动应用程序?

我想启动一个具有最底部属性的应用程序。这意味着该窗口将始终位于其他窗口的底部。

这可能吗?我认为一定有一个应用程序可以做这样的事情,但我不知道如何找到它...

例如,我想chromium-browser从最底部的属性开始。我该怎么做?

答案1

你可以使用魔鬼派2http://www.gusnan.se/devilspie2/),即使用脚本在创建窗口时执行操作的程序,该脚本以Luahttp://www.lua.org/manual/

使用以下命令安装:sudo apt-get install devilspie2,然后运行devilspie2。您应该会看到错误消息:

No script files found in the script folder - exiting.

它将创建该文件夹为~/.config/devilspie2/。创建以下文件,并将其保存在此目录中,扩展名为.lua,例如chromium.lua

debug_print("Window Name: " .. get_window_name())
debug_print("Application name: " .. get_application_name())
debug_print("WM_CLASS: " .. get_class_instance_name())
debug_print("Window Class: " .. get_window_class())
if (string.match(get_application_name(),"Chromium$")) then
   set_window_below();
end

然后运行devilspie2 --debug &并打开.终端应该显示:

Window Name: Untitled - Chromium
Application name: Untitled - Chromium

全部窗口(任何以“Chromium”结尾的应用程序名称)打开时魔鬼派2正在运行现在将被设置为位于所有正常窗口下方。

打开其他程序时魔鬼派2正在使用调试开关运行,应该可以帮助您修改此代码以用于其他应用程序。

自动运行魔鬼派2

创建一个文件~/.config/autostart/devilspie2.desktop,包含:

[Desktop Entry]
Type=Application
Name=Devilspie2
Exec=devilspie2
NoDisplay=true
Terminal=false

添加附加条件

如果仅偶尔运行应用程序的脚本,您可以:

  • 跑步魔鬼派2仅在需要时才应用,例如devilspie2 & app ; killall devilspie2,尽管它会将其规则应用于运行时创建的所有新窗口。

  • 对于 GTK 应用程序,该选项--name=会更改应用程序名称和--class=窗口类。 尽管有文档记录,但无法识别这一点。

  • 使用修改后的环境运行该命令,例如window-below= chromium-browser,并使用以下规则:

    if (string.match(get_application_name(),"Chromium$")) and
       (string.match(io.input("/proc/" .. get_window_property("_NET_WM_PID") .. "/environ"):read("*a"), "window-below="))
    then
       set_window_below();
    end
    

相关内容