gpt4 book ai didi

gnome-shell - 如何在 Gnome Shell 中抓取击键

转载 作者:行者123 更新时间:2023-12-04 02:32:41 35 4
gpt4 key购买 nike

我正在尝试编写我的第一个 Shell 扩展,并且 - 正如那里的每篇博客文章一样 - 我因缺乏最新文档而苦苦挣扎......

也就是说,我正在尝试从键盘上获取所有击键,并且 - 查看在线代码和旧邮件列表消息 - 直到最近,正确的做法似乎是:

const Shell = imports.gi.Shell;
global.set_stage_input_mode(Shell.StageInputMode.FULLSCREEN);
global.stage.connect('key-press-event', myCallbackHere);

但是这似乎不起作用。函数 set_stage_input_mode 和属性 StageInputMode 似乎都消失了,至少在我运行 GTK 3.20.6 的 Fedora 24 上是这样。

让我的扩展程序获取用户执行的所有击键的正确的当前方法是什么?

最佳答案

我认为目前没有正确的方法可以做到这一点。您可以将特定于 X 或特定于 Wayland 的东西组合在一起,或者您可以修补 Gnome Shell 以提供此信息。

对于 Wayland,您可以从 https://github.com/MaartenBaert/wayland-keylogger 开始对于 X,您可以从重用自动键 (https://github.com/autokey/autokey/blob/master/src/lib/interface.py) 中的键检测开始。

我猜这不是您所希望的答案,因为您在 IRC 上写道您想编写自动键的替代品。要从外部程序获取输入,您可以使用 GLib.spawn_async_with_pipes ( https://people.gnome.org/~gcampagna/docs/GLib-2.0/GLib.spawn_async_with_pipes.html )。

我前段时间写了一些 Shell 扩展代码来轮询 xinput test 并大致记录发生的事情(想想任何字母数字键与左 ctrl 与返回键)。您可以在此处查看该代码:https://gist.github.com/daniellandau/7679741bf8bbc5c345591593ca05e9f6 .它不够健壮,无法进行任何类型的宏扩展,因此我建议重新使用 autokey 中的检测代码。

一般来说,文档位于 https://people.gnome.org/~gcampagna/docs是查找可从 Gnome Shell 扩展中使用的库的 API 引用的地方。我希望你的项目取得进展。开始编写扩展是令人沮丧的,但一旦掌握了它,最终会非常有趣。

关于gnome-shell - 如何在 Gnome Shell 中抓取击键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38529821/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com