我正在使用装有 Ubuntu 12.04 的笔记本电脑,我想从脚本发送Fn+F8以禁用我的触摸板。
当我输入命令时xdotool key fn
,它会打印
(symbol) No such key name 'fn'. Ignoring it.
(symbol) No such key name 'fn'. Ignoring it.
我如何发送 Fn 键?
----------------------------6 月 13 日更新 ----------------------------------
那么Fn密钥不能通过程序语言发送吗?通过查看/usr/include/linux/input.h
第 614 行,我看到:
#define KEY_FN 0x1d0
发信号也不行?还是不是Fn键码?
----------------------------6 月 26 日更新 ----------------------------------
最近,我使用 C 做了一些关于Fn+ 的测试F8。我 cat/dev/input/event3
可以看到Fn+F8代码240
是
#define KEY_UNKNOWN 240
还有一些其他代码。我心情很不好。也许触摸板是由硬件直接处理的,就像 user49740 所说的那样。
但该命令可以通过操作系统禁用触摸板
xinput set-prop 'ETPS/2 Elantech Touchpad' 'Device Enabled' 0
但是它无法改变触摸板的灯光状态。并且Fn+F8无法启用或禁用触摸板。
答案1
按下该Fn键不会向操作系统发送任何键码,因此您无法假装按下该Fn键。
但是,有些Fn+another key组合会发送键码。例如,播放/暂停/下一个/上一个键组合始终会发送键码
从终端,您可以运行该xev
程序,这将打开一个简单的窗口。您现在可以按各种键和组合键,X11
终端中将显示收到的键码。您可以按Fn+F8并查看是否xev
显示任何输出
不幸的是,在大多数笔记本电脑上,“禁用触摸板”组合键直接由硬件处理,因此您必须找到另一种方法来禁用触摸板。
如果你使用的是 Synaptics 触摸板,你应该看看同步客户端或者守护进程。 例如,本文说synclient TouchpadOff=1
关闭触摸板并synclient TouchpadOff=0
打开它
答案2
不,Fn密钥由硬件处理,而不是操作系统。
答案3
您可以通过 xdotool 在 Linux 上按照下列方式发送 Fn 键:
如果您想发送:
xdotool key Fn + Up
您可以按照下列方式进行:
xdotool key XF86MonBrightnessUp
如果您想发送:
xdotool key Fn + Down
您可以按照下列方式进行:
xdotool key XF86MonBrightnessDown
我希望这能帮助您通过 xdotools 发送其余可能的键组合。