Я хочу запустить приложение с самым нижним свойством. Это означает, что окно всегда будет оставаться внизу других окон.
Возможно ли это? Я думаю, что должно быть приложение, которое делает такую вещь, но я не знаю, как его найти ...
Например, я хочу начать chromium-browser
с самого нижнего свойства. Как я могу это сделать?
Вы можете использовать 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 работает с переключателем отладки, должно помочь вам изменить этот код для других приложений.
Создать файл ~/.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