我使用 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 是否正常工作,主机名始终缺失
是的,讨厌的虫子
因此我通过 PPA 安装了 KeePassXC,然后我做的第一件事就是运行:
$ 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 应该原生集成的东西,因为它在可用性方面提供了如此高的附加值。我相信很多用户都会选择这个位置并通过精确的 GUI 固定窗口,而不是分数缩放。(只是我的拙见)