screenkey 无法正常使用

最近想要使用 screenkey,直接sudo zypper in screenkey下下来的包似乎不可用,提示缺少 gtk,安装了gtk-devel之后,又再次提示

TypeError GObject.__init() takes exactly 0 arguments (1 given)

是不是包本身存在一些问题?(其实直接 zypper 下来的软件缺少依赖不能直接运行这一点就挺离谱的了)

我在风滚草(tw)上好像没什么问题呀,你的是 Leap 还是 tw? KDE or gnome?

他们 readme 里面说要正确设置 输入法,还有不能使用 GNOME Terminal (和所有基于 X11 的 terminal)。

https://gitlab.com/screenkey/screenkey

感谢 我也在 TW 上,使用 KDE 桌面环境。使用的 terminal 为 konsole 与 yakuake,并且没有启用输入法。

这个提示是完整的嘛?

这是个 python+x11 的程序。gtk-devel 是给 c/c++ 的头文件,没有什么卵用。

你可以用 screenkey --debug 启动,复制粘贴一份输出?

我删除了gtk3-devel然后这是screenkey --debug的报错:

screenkey --debug
Traceback (most recent call last):
  File "/usr/bin/screenkey", line 113, in <module>
    main()
  File "/usr/bin/screenkey", line 104, in main
    import Screenkey.screenkey as sc
  File "/usr/lib/python3.8/site-packages/Screenkey/screenkey.py", line 16, in <module>
    gi.require_version('Gtk', '3.0')
  File "/usr/lib64/python3.8/site-packages/gi/__init__.py", line 126, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Gtk not available 

我好想知道怎么回事了,

你安装一下

sudo zypper in python38-gobject

'python38-gobject' is already installed.
也许不是它的问题?

先试一下这个 sudo zypper in typelib-1_0-Gtk-3_0
然后
sudo zypper in python38-gobject-Gdk libgtk-3-0?

如果没问题,那应该不是依赖的问题。

问题解决了,感谢。

所以其实是源里的依赖不全是吗?

哈哈哈哈,被你发现了。

我去看了一下,应该是上个维护者刚从 python2 版本的 screenkey 升级到 python3 的版本,结果没弄好:)

我去改一下。

太感谢啦 多谢

@wang1zhen

改好了,screenkey 从 1.2 升级到了 1.4,你可以测试一下。

你可以先卸载 typelib-1_0-Gtk-3_0screenkey,再安装新的

先添加我的仓库,

zypper addrepo https://download.opensuse.org/repositories/home:slbtongying:branches:multimedia:apps/openSUSE_Tumbleweed/home:slbtongying:branches:multimedia:apps.repo

然后在 YaST 里面选新的源里面的版本安装。

我在虚拟机里面测试了一下没什么问题,依赖也可以安装好了

如果你的系统是中文的,新版本理论上应该有中文翻译,不过我的系统语言设置都是英语

1.4 版本支持显示鼠标,你在设置里面,开启那个选项,就能显示鼠标了。

如果你测试一下没什么问题,我就推到高一级的仓库里面,

2赞

太棒了,测试下来没有问题,我的系统语言也是英语,中文翻译的问题我这里也体现不了。
arch 的 screenkey 似乎在 community 源中,aur 的 screenkey 目前看来像是 deprecated 的状态。community 的 screenkey 一周前刚更新过。

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。