You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为通过pkexec以root权限运行的GTK应用启用GNOME屏幕键盘功能

如何为通过pkexec以root权限运行的GTK应用启用GNOME屏幕键盘功能

我之前也碰到过一模一样的问题——在Ubuntu 20.04上用pkexec给GTK应用提权后,GNOME自带的屏幕键盘(OSK)完全没法用,就连sudo gedit这种简单的例子都不行。本来我也不想用Onboard,想尽量用系统原生的OSK,但折腾了一圈还是没找到直接让root权限GTK应用调用GNOME OSK的办法,最后只能退而求其次用了脚本方案。

先说说我踩过的坑:我试过用sudo -E来保留普通用户的环境变量,这样理论上能让root进程继承桌面会话的相关配置,但pkexec没有对应的等效参数,试了各种环境变量传递的方式都没成功,看来root环境和普通用户的桌面会话上下文隔离得比较彻底,GNOME OSK根本没法在root进程里触发。

最后我写了个脚本解决这个问题,思路是先检查当前普通用户的GNOME OSK是否处于启用状态,然后在目标程序运行期间启动Onboard。具体的实现是这样的:

/usr/bin/my-program $(pkexec --user myUser gsettings get org.gnome.desktop.a11y.applications screen-keyboard-enabled)

简单解释下这个命令:通过pkexec --user myUser切换回普通用户身份,读取gsettings里的屏幕键盘启用状态,然后把这个状态作为参数传给我的程序,程序里就可以根据这个值来决定是否启动Onboard,等程序退出的时候再关闭Onboard,这样就能模拟出类似原生OSK的体验了。

备注:内容来源于stack exchange,提问作者Mdurks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:45:28