重新映射键盘键


11

我正在使用带有“ fn”键的键盘。这是在笔记本电脑上。

因此,我的FN +向上/向下/向左/向右键映射到亮度/音量。我宁愿将它们安装到页面上/下,首页/结尾。并将其他4个键映射到这2个。向上/向下翻页具有FN +键,用于起始/结束。它的键盘布局很烂,但我想使其正常工作。

任何人都知道如何弄清楚键码是什么以及如何重新映射它们吗?

版本:10.04 x32

因此,这里有一些实验:

使用xmodmap -pke,我发现键码122 =降低音量,123 =提高音量。我得到了“首页/结束/上一页”(下一页),“下一页”(先前)的所有信息。

现在,使用上调音量键时,不会触发任何xev可检测到的事件。

我可以将音量键重新映射到XF86AudioLowerVolumeXF86AudioRaiseVolume,但是一旦将这两个键分别映射到Home / End,它们就什么也不用做。xev重映射后仍然不接收这些事件。

重新映射: xmodmap -e "keycode 122 = Home"


Answers:


8

一些笔记本电脑的Fn按键组合是多媒体键(在操作系统中以带有非标准代码的普通键形式出现),而其他一些则触发ACPI事件,这些事件最终到达操作系统,而有些仅由BIOS处理,而操作系统却从未看到过。信息路径在Ubuntu Wiki 上的“ 热键/体系结构”页面上进行了说明,并附有图表。

KeyTouch程序应该处理任何由OS看到的,并具有用于描述你的模型和配置的关键应该做的一个友好的GUI(安装keytouch-editor包以及keytouch)。

如果按亮度键时操作系统看不到任何内容,则可能是因为它们直接由BIOS处理。战斗并没有完全失败-原则上可以破解BIOS-但难度大大提高。


我得到的错误keytouch-editor: No event devices are available in /dev/input/. 在启动
乔纳森

@JonathanLeaders您应该提出一个新问题,并确切说明如何运行该程序。请务必提及您正在运行的Ubuntu版本。
吉尔斯(Gillles)“所以-别再邪恶了” 2014年

2
须藤!! 我要做的就是= p,但是keytouch编辑器还是无法识别我的键盘。xbindkeys -v现在尝试,但是它说与另一个程序有冲突,但是没有说哪个pid
Jonathan

0

有一个名为xev的程序可以满足您的需求。我喜欢有关设置的教程。


我以前尝试过使用xmodmap。奇怪的是,我可以将音量调高键重新映射到亮度调高动作。和向上翻页键以结束操作。但是,我永远无法将音量调高键重新映射到页面调高操作。它只是不会执行,反之亦然。
德米特里·里赫滕

1
那可能是因为这些键被直接映射到图形卡或声卡:)
myusuf3

1
@Dmitriy:也许某些Fn组合键会产生ACPI事件而不是键盘事件。查看/var/log/kern.log按这些键组合时是否出现东西。即使什么都没有出现,您仍然可能会看到ACPI事件,以查看是否使用了正确的工具(对不起,我不知道正确的工具是什么)。
吉尔(Gilles)“所以,别再邪恶了”,2010年

1
重新映射的程序是xmodmap; xev仅用于查看事件。

3
-1死链接为本教程。您是否有机会复制了此信息,或者它永远丢失了?
汤姆·布鲁斯曼

-1

Fn组合键没有在软件定义的,为此不能被重新定义,所以你需要一个烙铁和一些电子技术诀窍!


什么???不,我不在乎使FN键有所不同。只需重新映射与FN键关联的事件即可。就像在计算机识别出的FN + Left =降低音量事件中一样,我只想更改事件的效果,使其看起来就像按Home键一样。我的意思是键盘布局是什么定义了什么按键,我该如何修改。
Dmitriy Likhten,2010年

3
我显然没有清楚地表达我的自我!但是您不能更改预定义的值。这些组合不会将信号发送到操作系统,而是直接发送到图形卡/声卡。
LassePoulsen

哦! 虽然OS确实知道亮度和音量都在变化,但也无法在GUI中显示此信息。
Dmitriy Likhten,2010年

3
@Source Lab:在本世纪左右生产的大多数笔记本电脑上,所有公认的Fn键组合都触发键盘事件或ACPI事件。键盘事件进入操作系统;ACPI事件可以由BIOS处理,但OS可以拦截它们。
吉尔斯(Gillles)“所以-别再邪恶了”,2010年

@吉尔斯哦。我不知道较新的计算机会发送键盘事件。
LassePoulsen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.