DevilsPie2 не работает с Ubuntu 20.04 Gnome-Desktop
Хорошо. Наконец-то я смог установить Devilspie2 и пройти этот очень понятный туториал . Конечно, это не работает. Тем не менее, все мое чтение приводит к статьям 3-летней давности и устранению неполадок.
Вопрос 1:
Devilspie2 все еще применим / совместим с gnome версии 3.36.8 на Ubuntu 20.04 с оконным менеджером X11?
Предполагая, что он все еще применим/совместим... (репозиторий github все еще активен https://github.com/dsalt/devilspie2)
Вопрос 2:
Что я делаю не так? Мои сценарии не влияют на окна любых приложений:
debug_print("Application: " .. get_application_name())
debug_print("Window: " .. get_window_name());
if (get_window_name() == "gedit") then
set_window_workspace(8);
end
if (get_window_name() == "Mozilla Firefox") then
set_window_geometry(50, 100, 800, 600);
end
devilspie2 --debug
запускается без проблем и подтверждает, что читает файл, содержащий мои скрипты
Using scripts from folder: /home/user/.config/devilspie2
------------
List of Lua files handling "window_open" events in folder:
/home/user/.config/devilspie2/debug.lua
List of Lua files handling "window_close" events in folder:
List of Lua files handling "window_focus" events in folder:
List of Lua files handling "window_blur" events in folder:
------------
Я не могу найти в системных журналах ошибок, связанных с devilspie2 и/или lua.
Я перезапустил display-manager и полностью перезагрузил... безрезультатно.
Какие-нибудь советы?
Дополнительная информация
Это мой список установленных расширений gnome на случай, если кто-то может распознать какой-то конфликт:
1 ответ
Вопрос 1: Devilspie2 по-прежнему применим / совместим с gnome версии 3.36.8 на > ubuntu 20.04 с оконным менеджером X11?
Это, даже на 22.04, при условии запуска вашего X11. Это не будет работать на Wayland.
Вопрос 2: Что я делаю не так? Мои сценарии не влияют на окна любых приложений:
Если ваш файл конфигурации верен и работает (проверьте выходные данные
ps ax | grep devilspie2
), то установка должна быть правильной. Тем не менее, могут быть определенные причины, по которым некоторые правила не работают.
get_window_name()
вернет заголовок окна.(get_window_name() == "Mozilla Firefox")
будет соответствовать только окну с точным названием "Mozilla Firefox", т. е. пустому новому окну Firefox. Окно Gedit никогда не называетсяgedit
, поэтому никогда не будет соответствовать. Используйте, например(string.match(get_window_name(), "Mozilla Firefox"))
или же(string.match(get_window_name(), "gedit"))
чтобы соответствовать подстроке в заголовке окна.set_window_workspace(8);
будет работать только при наличии рабочего пространства 8. Чтобы это работало в Gnome Shell, измените «Статические рабочие пространства» в «Настройках», «Многозадачность» (Ubuntu 22.04) или в Gnome Tweaks (более ранние версии).
Советы
Вы можете «отладить» свою настройку Devilpie2, уничтожив запущенные процессы (
killall devilspie2
, затем адаптируйте файл конфигурации, затем перезапустите Devilspie2. В этом терминале вы можете удобно убить Devilspie2, используя Ctrl+C, и перезапустить его снова.Довольно подробное руководство, в котором перечислены все команды, скрыто в вашей системе после установки.
devilspie2
. Использоватьless /usr/share/doc/devilspie2/README.gz
чтобы увидеть это.Не стесняйтесь использовать класс окна вместо заголовка. Это может, например, предотвратить сопоставление окна Firefox, открытого в статье о gedit, с окном gedit:
if (get_window_class() == "Gedit") then set_window_workspace(8); end
См. класс окна в выводе
wmctl -lx
, или жеxprop | grep WM_CLASS
(вторая запись).