我有一ubuntustudio 16.10
台 64 位的 IBM Thinkpad E431。我可以从 shell 脚本启动应用程序,但下一步需要按Ctrl+ Shift+在我的笔记本上,我需要按之前的F10按钮。我用的是桌面版。我无法在 shell 脚本中模拟这一点。我还禁用了触摸板,但没有帮助。FnF10xfce
答案1
你不需要。
Fn在我的笔记本上,我需要先按下按钮F10。
然而,这与您需要模拟的 X 输入事件无关。
您必须记住的是,Fn键盘和计算机之间的电线上永远看不到按键。它完全由键盘本身的微处理器处理。当您按下带有Fn和雕刻的按键时,通过电线传输的F10只是该按键的按键代码F10,就好像您有一个带有成熟独立F10按键的完整键盘一样。
你有一个刻有F10和其他东西的钥匙。键盘微处理器将你的Fn钥匙视为完全本地修饰键将该键切换为看起来像电线上的“其他”键(当Fn未按下时)和看起来像电线上的“其他”键F10(当按下时)。Fn
事实上,笔记本电脑和类似键盘通常有两个这样的本地修饰符。另一个是 NumLock LED(原文如此)的状态,使每个键都有四种不同的方式显示在计算机的线路上。
但正如您的计算机所看到的那样,在电线的另一端,所有这些都是不可见的。它看到了一个带有真实、独立按键的完整键盘F10。这也是 X 应用程序在 X 输入事件中看到的内容。
这就是您需要模拟的全部内容。只需使用和修饰符模拟表明F10已按下该键的 X 事件。Level2 ⇧Control ⎈
与xdotool
,如 flowtron 的答案所示,这只是
xdotool 键 ctrl+shift+F10
进一步阅读
- Ubuntu 16.04 无法识别 Fn 键
- 乔纳森·德博因·波拉德 (2020)。“Fn”键是本地键。。经常给出的答案。
- ”键盘矩阵设计”。SK5126 FlexMatrix 键盘控制器数据表。斯普林泰克。 2015年2月20日。
- ”功能键用法”。HT82K629A Windows 2000 USB+PS/2 键盘编码器数据表。盛群. 2004年9月15日。
答案2
答案3
如果不以分叉方式运行,则xdotool
可能无法在 bash/shell 上捕获模拟密钥,而不是可以使用xdotool
xdotool key ctrl+shift+F10
xdotool key ctrl+shift+F10 &
如果您的 shell/终端应用程序捕获了按键,则当 xdotool 运行以模拟按键时,它将被 xdotool 占用,从而阻止它捕获它们,因为主进程正忙于模拟按键...分叉该进程&
将使 main进程可以自由地捕获密钥。