Как запустить приложение с самым нижним свойством?

Я хочу запустить приложение с самым нижним свойством. Это означает, что окно всегда будет оставаться внизу других окон.

Возможно ли это? Я думаю, что должно быть приложение, которое делает такую ​​вещь, но я не знаю, как его найти ...

Например, я хочу начать chromium-browser с самого нижнего свойства. Как я могу это сделать?

4
задан 30 September 2013 в 17:48

1 ответ

Вы можете использовать Devilspie2 ( http://www.gusnan.se/devilspie2/ ), программу, которая выполняет действия над окнами по мере их создания, используя сценарии, написанные на Lua ( http://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 (любое имя приложения, оканчивающееся на 'Chromium') открыты, пока Devilspie2 работает, теперь будет установлено на ниже всех нормальных окон.

Открытие других программ, пока Devilspie2 работает с переключателем отладки, должно помочь вам изменить этот код для других приложений.

Для автоматического запуска Devilspie2

Создать файл ~/.config/autostart/devilspie2.desktop, содержащий:

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

Добавление дополнительных условий

Для запуска сценария для приложения только иногда вы можете:

  • Запустить Devilspie2 только по мере необходимости, например devilspie2 & app ; killall devilspie2, хотя он будет применять свои правила ко всем новым окнам, созданным во время работы.

  • Для приложений GTK опция --name= изменяет имя приложения и --class= класс Window. Хром не распознает это, несмотря на документацию.

  • Запустить команду с измененной средой, например, 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
    
0
ответ дан 30 September 2013 в 17:48

Другие вопросы по тегам:

Похожие вопросы: