我尝试找出使其永久存在的方法:
我知道这是firefox
默认行为。但我不知道它是如何实现的。
如何做?
我可以用脚本测试键盘快捷键和一些kill
命令并知道捕获了哪个信号吗trap
?
我使用 Debian 9(又名“Stretch”)x86_64。
$ uname -a:
Linux mypc 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
试图从我的设备 Logitech MU-007 映射我的额外按钮:
$ lsusb | grep Logitech
Bus 001 Device 023: ID 046d:c069 Logitech, Inc. M-U0007 [Corded Mouse M500]
x输入设备:
$ xinput | grep Logitech
⎜ ↳ Logitech USB Laser Mouse id=10 [slave pointer (2)]
xinput test 10
测试鼠标左侧两个按钮的返回 8 和 9的额外按钮。
$ xinput -version
xinput version 1.6.2
尝试了一个简单的:
xinput set-button-map 10 8 2 3
或者
$ xmodmap -e "pointer = 9 2 3"
Warning: Only changing the first 3 of 12 buttons.
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 116 (X_SetPointerMapping)
Value in failed request: 0x9
Serial number of failed request: 9
Current serial number in output stream:
左边的按钮根本不起作用,不能像左键一样选择。
我也想保留左键单击和额外的按钮作为左键单击。
知道为什么xinput
命令没有选择任何东西吗?
最后:
id=$(xinput list | grep -oP 'Logitech USB Laser Mouse.*id=\K\d+')
xinput set-button-map $id 1 2 3 4 5 6 7 1 1 10 11 12
我有一个项目需要检测DISPLAY
in shell ( bash ) 变量,以便能够在本地机器上显示一些gui内容。
或者更好的解决方案(dbus?)在非交互式 shell 中打开gui的东西,而不用试图找出DISPLAY
和XAUTHORITY
.
我可以设置DISPLAY=:0
,但如果用户使用另一个会话,这将失败。
就我不处于交互模式而言,我尝试过的(效果很好,但只能作为 root)是:
strings /proc/$(pidof Xorg)/environ | grep -Eo 'DISPLAY=:[0-9]+(:[0-9])*'
或作为用户:
ps uww $(pidof Xorg) | grep -oE '[[:blank:]]:[0-9]+(:[0-9])*\b'
但我不知道它在任何 Linux(Unix 系统?)上是否可靠
有没有更可靠/便携的方式?
自 =~ 2 年以来,我们似乎无法使用该Super键(又名 windows 键)来运行某些键盘快捷键。
我尝试使用 kde、gnome、xfce4,但没有一个完全有效。
例如,我有一个键盘快捷键来输入日期,就像我输入通过Super+分配的日期一样a,当我按下这个键时,什么也没有发生。
bash -c 'xvkbd -xsendevent -text $(date +%Y%m%d)'
在 xfce4 首选项中正确配置了命令行。
我目前使用带有内核 4.15.1-2-ARCH 的 archlinux x86_64。
有谁知道怎么了?在哪里 ?有解决办法吗?一种解决方法?