GNOME Shell扩展可以移动指针吗?如果是这样,怎么样?

时间:2017-01-04 22:27:42

标签: gnome gnome-shell gnome-3 gnome-shell-extensions

我想编写一个与GNOME Shell中"focus-follows mouse"设置相反的扩展名:我想让我的指针移动到当前聚焦窗口的中心。

这可以在GNOME Shell扩展中完成吗?我看到一些包含xfixes cursor的GNOME代码,但我找不到核心Javascript或任何现有扩展中对程序指针更新的任何引用。 (我对谷歌不好吗?)

有效答案包括(1)执行此操作的示例代码或(2)引用无法完成的规范来源的引用。

2 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分:0)

您是否愿意编写自己的脚本?如果你是,我找到了三个工具,如果一起使用,可以为你完成工作。

首先,使用xprop获取您点击的窗口的PID。

接下来,使用xwininfo根据进程ID获取窗口的尺寸和位置信息。

最后,使用xdotool计算所述窗口的中心位置,并将光标移动到该确切位置。

希望这会有所帮助。我现在没有足够的时间写脚本(对不起),但这应该足以让你开始。

编辑:根据你的评论,你想留在GNOME js。完全可以理解。您可以使用以下内容从GNOME js中调用tell :: w -> Writer w () (这是在屏幕上更改光标位置的最有效方法):

xdotool

This code was found at this thread.