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(вторая запись).

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