空闲时在 Xorg 中禁用鼠标(不是触摸板!)

空闲时在 Xorg 中禁用鼠标(不是触摸板!)

我是一个狂热的键盘用户,但我仍然时不时地需要鼠标。为了尽量减少手部移动,我将鼠标放在键盘下方。 (顺便说一句,以这种方式使用鼠标对我的手来说感觉更自然。)

我目前正在使用整洁当我不使用鼠标时隐藏指针。不幸的是,我在打字时有时会轻推它,这会导致指针重新出现。有时,这会将指针移动到另一个窗口上,从而将焦点从当前窗口移开。 (我使用的是草率焦点,并且无法更改此选项。)

我现在正在寻找一种可能性,不仅可以在一段时间的空闲时间后隐藏指针,而且可以完全禁用鼠标。单击任何鼠标按钮或使用鼠标滚轮应重新启用鼠标。

答案1

我们需要完成的第一件事是关闭鼠标,但仅限于 X。为此,我们可以使用xinput.

我们需要发现连接到计算机(X 服务器)的输入设备:

pbm@tauri ~ $ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech USB Mouse                          id=10   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
     [...]

我们需要使用的设备是A4Tech USB Mousewith id=10。接下来我们需要检查该设备的属性:

pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
       Device Enabled (121):   1
       [....]

要关闭设备,我们需要更改属性Device Enabled

xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

打开它:

xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1

接下来的事情是自动执行...;) 在此示例中,我们将通过键盘快捷键禁用鼠标,并通过按左键 + 鼠标右键启用它。

为此我们可以使用行动知识库- 在 X 服务器之外工作的键盘(但不仅限于)快捷键守护进程。

首先我们需要为 actkbd 创建空配置文件:touch /etc/actkbd.conf。接下来是发现连接到计算机的设备:

pbm@tauri ~ $ cat /proc/bus/input/devices 
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3 
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5 
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10

[...]

在这一部分中,最有趣的是键盘和鼠标设备的名称和处理程序。

首先,我们通过键盘快捷键来关闭鼠标,因此我们需要发现按键 ID:

pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `

当我们知道什么是键 ID 时,我们需要将它们放入配置文件 ( /etc/actkbd.conf):

29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

为了测试它,我们需要actkbd在守护进程模式下运行:

pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D

以同样的方式我们需要处理“打开”事件:

  1. 检查鼠标设备的处理程序
  2. 使用以下命令检查鼠标左键+右键的按键代码actkbd
  3. 把它放到actkbd.conf
  4. 运行 actkbd 守护进程来监视鼠标输入设备

运行守护进程可以作为环境中的初始化脚本或自动运行脚本来实现。

要自动关闭鼠标,我们可以监视输入设备(cat /dev/input/event5)并在没有输入时将其关闭......

我希望我的简短介绍能够帮助您...;)

答案2

你有没有尝试过“指针捕获”Gnome 面板小程序

鼠标指针可以锁定在屏幕的某个区域,这样定点设备就可以用于其他任务。例如,此功能允许电动椅用户使用单个电动椅操纵杆控制电动椅和鼠标指针

指针捕获面板小程序在面板上创建这样一个区域,用户可以将指针锁定在该区域中,直到以确定的方式释放为止。

可以通过右键单击 GNOME 桌面菜单栏/系统面板,选择“添加到面板”,选择“指针捕获”并单击“添加”按钮来安装“指针捕获”面板小程序

如果 gnome.org 的描述不清楚,这将在面板中创建一个区域,当鼠标进入(或单击)时,光标将消失并且不会重新出现,直到发生定义的操作,例如第二次点击。听起来正是您所需要的?

相关内容