Совместимость с Devilspie2 KeePass2

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

Хотя я могу как "закрепить", так и "поместить" окно Keepass в соответствии с его классом окна и/или именем приложения (оба работают)... после того, как я открываю окно "Редактировать запись", "закрепить" для функциональность просто перестает работать для приложения keepass, и ни одно из приведенных ниже решений не заставит его работать стабильно.

Они могут закрепить и расположить окно Keepass перед открытием окна «Редактировать запись»:

      if (string.match(get_application_name(), "KeePass2")) then
     set_window_geometry(960, 500, 960, 500);
end

if (string.match(get_application_name(), "KeePass2")) then
     pin_window();
end

if (string.match(get_application_name(), "KeePass")) then
     set_window_geometry(960, 500, 960, 500);
end

if (string.match(get_application_name(), "KeePass")) then
     pin_window();
end

if (string.match(get_window_name(), "Edit Entry")) then
     set_window_geometry(960, 500, 960, 500);
end

if (string.match(get_window_name(), "Edit Entry")) then
     pin_window();
end

if (get_window_name() == "Edit Entry") then
 pin_window();
end

ПРИМЕЧАНИЕ:
расположение «Редактировать запись» не является жизненно важным... его также нельзя изменить вне Devilspie2. Также, если я остановлю и перезапущу Devilspie2 с открытым окном «Редактировать запись» ... он сразу же начнет работать. Если я закрою «Редактировать запись» и открою новую «Редактировать запись», Devilspie2 перестанет работать (без закрепления), и Devilspie2 потребуется перезапуск.

Также я заметил что-то странное, что имя приложения меняется, когда открыто окно «Редактировать запись» (отсюда и использование «Keepass» и «Keepass2» выше.

Когда окно «Редактировать запись» НЕ открыто, а база данных НЕ открыта, отладка показывает:

      Class: KeePass2
Application: KeePass
Window: KeePass

Когда окно «Редактировать запись» НЕ открыто, но база данных открыта, отладка показывает:

      Class: KeePass2
Application: PrivateDBNName.kdbx - KeePass
Window: PrivateDBname.kdbx - KeePass

Когда окно «Редактировать запись» открыто, отладка показывает:

      Class: KeePass2
Application: KeePass2
Window: Edit Entry

Очевидно, что позиционирование и закрепление окон Keepass в соответствии с именами их оконных классов кажется наиболее интуитивным, но это просто приводит к той же проблеме, которую я описал выше, когда после открытия окна «Редактировать запись» devilspie2 просто перестает работать с KeePass вообще, тем самым побеждая цель его установки и много усилий для его настройки :-/.

Любые советы приветствуются.

Кое-что интересное
Вывод этой команды показывает что-то странное для keepass:

      $ wmctrl -lx
0x06a000f8  2 gedit.Gedit           localhost debug.lua (~/.config/devilspie2) - gedit
0x0260005d  2 keepass2.KeePass2                        N/A PrivteDBName.kdbx - KeePass
0x026009a2  2 keepass2.KeePass2                        N/A Edit Entry

--имя хоста всегда отсутствует, независимо от того, работает ли Keepass или нет

Да, надоедливая ошибка
. Итак, я установил KeePassXC через PPA и первым делом запустил:

      $ wmctrl -lx
0x07800006  2 keepassxc.KeePassXC   localhost PrivateDBName - KeePassXC

Еще одна ошибка
. Теперь позиционирование и закрепление с помощью KeePassXC работает. После того, как я действительно создаю новую запись пароля в базе данных, devilspie2 снова перестает работать.

Так что теперь есть две разные версии KeePass (довольно популярное приложение), которые не будут корректно работать с пиннингом devilspie2. Но каким-то образом дробное масштабирование имеет более высокий приоритет, чем обычно ожидаемая пользователем возможность позиционировать и закреплять окно.. :-/ идти за мороженым... избегая «дьявола».

Приятное обновление: удалил Keepass2 и перезагрузил машину.. теперь закрепление KeePassXC продолжает работать после того, как я создаю новую запись в БД... глючат библиотеки зависимостей?

--Имя локального хоста -действительно- существует.

Я настроил Devilspie2 и почти все работает так, как ожидалось. подсказка, пост подсказки №3 скоро будет.

За вычетом настройки высоты окна работает следующее:

      if  (get_window_class() == "KeePassXC") then
     set_window_geometry(960, 500, 960, 495)
     pin_window();
end

Примечание:

Это приложение действительно похоже на то, что gnome/ubuntu должны изначально включать, поскольку оно обеспечивает такую ​​​​высокую добавленную стоимость с точки зрения удобства использования. Я уверен, что многие пользователи выбрали бы это положение и закрепляли окна с помощью точного графического интерфейса вместо дробного масштабирования в любой день. (просто мое скромное мнение)

0 ответов

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