我的新笔记本电脑(Dell Inspiron 5578)没有数字键盘。许多没有专用数字键盘键的笔记本电脑都可以通过来访问数字键盘Fn,但不能通过此键盘访问。当我运行xev
并尝试使用传统Fn组合时(例如,Fn+ J代表1),看不到任何事件。而且数字甚至不在标签上。
AFAIU,我无法使用该Fn键创建任何快捷方式,因为Fn它没有传递给操作系统。但我理论上可以使用Alt_L+ Super_L代替。问题是如何正确执行。我希望在比键盘布局更低的级别上执行此操作,以便与所有VM(甚至非Linux的VM)都能很好地协同工作。
环境:Qubes OS。主机部分基于Fedora。
我试过了:
- 通过Xfce快捷键绑定xdotool命令。这会产生各种奇怪的结果:该命令(xdotool密钥KP_1及其变体)通常可以正常运行,但在由快捷方式调用时却无法正常运行。当通过快捷方式调用时,问题可能在于此时按下了修饰键。我尝试了各种修改(
--clearmodifiers
,修改器的keyup等),但它们都无法正常工作。 - 使用自动键执行相同的操作。我冻结了一些自动键。
非解决方案:
- 使用外部数字键盘/键盘:虽然我在外部键盘上有一个数字键盘(某种),但我希望在内部键盘上也有一个数字键盘,例如在旅行时,使用外部键盘是不可能的,或者至少是不舒服的。
- 使用数字行:在捷克语布局中,数字行主要用于重音字母。我使用的布局(CShack的extracs变体)在“数字行”中根本没有数字。
- 购买其他笔记本电脑:很难找到满足我各种要求的笔记本电脑。
@dirkt使用XKB看起来就像定义自定义按键布局。哪有总比没有好,但这不是首选的解决方案,因为我必须对每个VM(或VM模板)执行相同的操作,并且这在非Linux VM下也行不通。我将尝试evtest,但是我不确定它是否可以与正在使用的键盘一起使用。
—
v6ak
您是否隶属于Alt_L + Super_L?您可以将AltGr或Shift + AltGr与
—
Fox
xmodmap(1)
如果您的VM(哪个?)没有传递X事件,但是坚持直接键盘传递,则可以通过制作自己的
—
dirkt
/dev/input/eventX
或HID源来伪造键盘。这将需要编程。但是,如果可以使用xdotool
,则应使用xkb
或xmodmap
。是的,将单个键分配给Mode_Switch或ISO_Level3_Shift(默认为AltGr)会更容易。
AltGr或AltGr + Shift的问题在于它已被使用。我并不坚持使用Alt_L + Super_L,但它似乎是最佳选择:它们在内部键盘上彼此相邻,并且几乎没有机会隐藏一些键盘快捷键。并且可以用左手按下它们。因此,它看起来像是理想的组合,
—
v6ak
evtest
以查找Fn事件,如果这也不起作用,请查看HID描述符和原始HID事件。请参阅dmesg
以查找关联的隐藏设备。