GNOME Shell扩展可以移动指针吗? 如果是这样,怎么样?
我想写一个与GNOME Shell中的“focus-follow mouse”设置相反的扩展:我想让我的指针移动到当前焦点窗口的中心。
这可以在GNOME Shell扩展中完成吗? 我看到一些包装xfixes游标的GNOME代码,但是在核心Javascript或任何现有的扩展中找不到任何对程序指针更新的引用。 (我对Google很不好?)
有效的答案包括(1)实现它的示例代码或(2)引用无法完成的规范源代码。
在overview.js
找到此代码
Gdk = imports.gi.Gdk
let display = Gdk.Display.get_default();
let deviceManager = display.get_device_manager();
let pointer = deviceManager.get_client_pointer();
let [screen, pointerX, pointerY] = pointer.get_position();
pointer.warp(screen, 10, 10);
你是否愿意编写自己的脚本? 如果你是,我找到了三种工具,如果一起使用,可以为你完成工作。
首先,使用xprop
来获取您点击的窗口的PID。
接下来,使用xwininfo
根据其进程ID获取窗口的维度和位置信息。
最后,使用xdotool
计算所述窗口的中心位置并将光标移动到该确切位置。
希望这可以帮助。 我现在没有足够的时间写下脚本(对不起),但这应该足以让你开始。
编辑:根据你的评论,你想留在GNOME js中。 完全可以理解。 您可以使用xdotool
内容的方式在GNOME js中调用xdotool
(这是在屏幕上更改光标位置的最有效方法):
const Util = imports.misc.util;
Util.spawn(['/bin/bash', '-c', "xrandr --query | awk 'something'"]) # replace the code here wih your own
此代码在此主题中找到。
链接地址: http://www.djcxy.com/p/37773.html上一篇: Can GNOME Shell extensions move the pointer? If so, how?