9

我想编写一个与 GNOME Shell 中的“焦点跟随鼠标”设置相反的扩展:我想让我的指针移动到当前焦点窗口的中心。

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

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

4

2 回答 2

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);
于 2017-10-21T11:14:31.363 回答
0

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

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

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

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

希望这可以帮助。我现在没有足够的时间来编写脚本(抱歉),但这应该足以让你开始。

编辑:根据您的评论,您想留在 GNOME js 中。完全可以理解。您可以在 GNOME js 中调用xdotool(这是更改屏幕上光标位置的最有效方法),方法是:

const Util = imports.misc.util;
Util.spawn(['/bin/bash', '-c', "xrandr --query | awk 'something'"]) # replace the code here wih your own

此代码在此线程中找到。

于 2017-01-09T01:16:06.823 回答