Eri*_*rik 12 gnome shortcut-keys 12.04
当我按左键Super时,会出现 gnome shell,而当我按右键时,Super它不会出现。此外,按右Super+T确实会立即打开一个终端,但是在使用左超级时我必须按T两次,当我T只按一次时,它类似于只按T而不按住Super左键。最后一点也出现在我定义的其他快捷方式中(如Super+ L、Super+ E),但不出现在Super+ 中Up/Down/Left/Right。
我想要的是按下任一Super键以获取 gnome shell,并结合使用任一Super键T立即打开终端(与其他快捷方式类似)。我使用 Ubuntu 12.04 LTS 和 gnome 3 shell。
我认为您可以使用xmodmap来做到这一点,这是一种修改键盘映射的工具。由于我的键盘没有右键,Super我无法确认此解决方案,因此如果不起作用,请发表评论。
所有步骤都在终端中完成
打印当前修改器贴图
Run
xmodmap
Run Code Online (Sandbox Code Playgroud)
这应该打印当前的修改器贴图,它应该像这样
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Run Code Online (Sandbox Code Playgroud)
重要的一行是mod4一行,这一行显示了哪些键代码映射到 Super_L 和 Super_R 键符号。
备份键映射
在我们改变任何东西之前备份当前键映射是个好主意,我们可以这样做
xmodmap -pke > ~/.xmodmap.orig
Run Code Online (Sandbox Code Playgroud)
现在,如果出现任何问题,您只需输入
xmodmap ~/.xmodmap.orig
Run Code Online (Sandbox Code Playgroud)
恢复您的原始键映射。(如果您犯了一些严重的错误并且无法再正确输入,则重新启动也可以)
检查当前键映射的 Super 键
假设Super键具有连续的键码(在这种情况下为 0x85 和 0x86),我们可以通过运行来检查当前映射
xmodmap -pke | grep -wA1 $((0x85))
Run Code Online (Sandbox Code Playgroud)
当然,您应该通过修改器映射中的键代码更改 0x85。这应该给你
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R
Run Code Online (Sandbox Code Playgroud)
($((0x85))将十六进制数转换为十进制数)
将左侧的行为复制 Super 到右侧 Super
正如您在上一步中看到的那样,右键的Super键代码为 134,但我们希望它具有键代码为 133 的左键的行为Super。我们可以通过使用重新映射键来做到这一点
xmodmap -e "keycode 134 = Super_L NoSymbol Super_L"
Run Code Online (Sandbox Code Playgroud)
检查它是否有效
如果你现在这样做
xmodmap -pke | grep -wA1 $((0x85))
Run Code Online (Sandbox Code Playgroud)
你应该看到
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_L NoSymbol Super_L
Run Code Online (Sandbox Code Playgroud)
这意味着两个键现在具有相同的行为。此外,修改器贴图应该已更改为mod4,我们可以通过运行来检查这一点
xmodmap | grep 'mod4'
Run Code Online (Sandbox Code Playgroud)
这应该给
mod4 Super_L (0x85), Super_L (0x86), Super_L (0xce), Hyper_L (0xcf)
Run Code Online (Sandbox Code Playgroud)
当然,您提到的快捷方式也应该有效!
使映射持久化
如果有效,您可以确保在启动时自动应用这些设置。跑
echo 'keycode 134 = Super_L NoSymbol Super_L' >> ~/.xmodmaprc
Run Code Online (Sandbox Code Playgroud)
将您的自定义键映射存储在文件中~/.xmodmaprc。跑
echo 'xmodmap ~/.xmodmaprc' >> ~/.xsessionrc
Run Code Online (Sandbox Code Playgroud)
确保在加载窗口管理器时执行自定义键映射。
| 归档时间: |
|
| 查看次数: |
3110 次 |
| 最近记录: |