我需要通过 Python 在全屏浏览器(Chrome)上打开板载键盘。
python 调用如下:
onscreen_keyboard = subprocess.Popen(['onboard', ])
os.system("wmctrl -a onboard -b above")
通过在浏览器中打开的 html 页面中的按钮调用 python 命令。
问题是,它并不总是有效。有时(特别是在我切换到浏览器并通过 F11 键进入全屏后)它不会打开 kyboard。在这种情况下,我需要退出全屏(现在 onboard 出现了!!!或者可能一直隐藏在那里)。如果我关闭 onboard 并切换到全屏,它就可以工作了 - 我可以调用并关闭 onboard。
有问题的情况是:
- 我切换到浏览器,切换到全屏
- 我打电话给机上人员,机上没有出现
- 我退出全屏,关闭板载并再次打开全屏
- 我调用了 onboard,它显示正确。关闭后,我可以再次调用它。
为什么我第一次从其他窗口切换到浏览器时它不起作用?如何修复它并使内置行为保持一致?
(注意:我在 Firefox 中看到完全相同的行为,我在 Ubuntu 18 和 16 上进行了测试)。
答案1
注意:以下答案已在 Ubuntu 18.04 LTS 中测试过
不确定这是否是您问题的确切答案,因为您正在使用代码调用 Onboard,但我发现以下链接中的配置可以让我使用 Onboard 显示在全屏应用程序之上。
https://bugs.launchpad.net/onboard/+bug/1722271
具体来说,本节内容如下:
禁用“停靠至屏幕边缘”
启用“强制窗口置顶”(当启用屏幕边缘对接时这似乎没有效果)
现在,转到 Firefox,全屏,并进行板载显示,它将显示。
我已经使用 Firefox 和我自己的程序对此进行了测试,并且当这两个应用程序全屏时,Onboard 都会显示在应用程序的顶部。