我正在使用 manjaro i3,并且正在研究修改我所做的一些键映射。目前我正在使用 xcape、xmodmap 和 setxkbmap 命令重新映射以下键:
- 握住时可控制的盖子,按下时可退出
- 交换分号和冒号
我已经用这个设置脚本完成了这个:
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
xmodmap -e "keycode 47 = colon semicolon"
我想就我希望进行的其他更改寻求一些帮助或建议,因为我已经破坏了我的键映射并且在使用下面列出的打印屏幕重新映射时必须重新安装我的操作系统才能回到第一格。我希望做出的改变如下:
- 打印屏幕 --> 禁用或用作另一个超级键
- 左 alt --> mode_switch 键
- 转义键 --> 波浪线和反引号
- 原始波浪号和反引号->退格
- 退格->删除
- 禁用 home、end、insert、delete 键并映射它们以运行一些脚本
- mode_switch + h, j, k, l --> 附加箭头键
- mode_switch + 退格-> 主页
- mode_switch + 删除 --> 结束
我应该使用什么工具来完成这些重新映射?此外,如果有人有一些他们过去使用过的类似示例,那也将非常有帮助!提前感谢您的帮助。
我在 GNOME 中运行 Pop!_OS(Ubuntu 18.10 的衍生版本)的 ThinkPad P1 上确认了以下所有内容。
查找关键代码
在终端中运行
xev
并开始输入。有很多数据,但是您要查找的通常是单词之后的第二个第 3 行keycode
:有些键
xev
不会打印键码,例如 Print Screen。对于这些,您可以通过 grep 浏览下一节中创建的文件。所需工具
xmodmap
转储你当前的绑定
您可以通过运行将当前映射打印到标准输出
xmodmap -pke
。xmodmap
通过首先将布局备份到文件,您将节省一些潜在的麻烦:该文件还可以作为一个简单的参考,如果它们没有出现在
xev
.快速更改绑定的命令
您已经知道这一点,但只是重申一下:
这将为您的会话临时重新绑定密钥。再次运行
xmodmap -pke
将反映这些变化。句法
xmodmap
使用空格分隔的列来表示 a 的不同修饰符/模式keycode
。从左到右他们是:例如:
这将单独设置“J”键“j”,当按下 Shift 键时设置“J”,按下 Mode_switch 键时设置 Down Arrow,按下 Mode_switch 和 Shift 键时设置 Page Down。
Mode_switch
Mode_switch
是一个单独的通用修饰符,类似于 Shift。我认为许多键盘不再带有专用Mode_switch
(AltGr) 键,但您可以使用xmodmap
.使用 GNOME 设置运行脚本或
xbindkeys
我不知道使用
xmodmap
. 但是,有一些简单的方法。从 i3 配置
i3 文档
bindsym
有关于在文件中使用/bindcode
指令的示例~/.config/i3/config
。我还没有设置 i3,还没有测试过,但它直接来自用户手册。我猜代码与您在
xmodmap
& 朋友中找到的代码相匹配。侏儒
查看设置 > 设备 > 键盘 > 键盘快捷键。单击加号并添加脚本/键组合。请注意,您必须将完整路径(从根目录)放入脚本并确保它是可执行的。
在我的测试中,GNOME 不允许您使用某些键,例如 Home 和 End。
xbindkeys
xbindkeys
可以拦截任何按键并运行脚本。也可以查看一些配置文件示例,运行
xbindkeys --defaults > $HOME/.xbindkeysrc
并查看文件。请注意,它不会打开终端,只需在进程中执行文件。
你的例子
这是为您想要的内容运行的实际命令。请务必确认您自己的密钥代码,这些正是我碰巧拥有的。
第 1 步:重新映射
xmodmap
第 2 步:保存更改
假设您有一个标准设置,将上面的最后一个命令添加到您的
~/.profile
或将在您登录时加载它。~/.bash_profile
对我来说这有点慢,您可能只想xmodmap -e
手动添加所有命令。第 3 步:为自定义脚本设置绑定
xbindkeys
确保
xbindkeys
已安装,并将其添加到您的~/.xbindkeysrc
文件中:然后重新加载
xbindkeys -p
。第 4 步:没有第 4 步
延伸阅读
关于重新映射的Emacs Wiki 页面 Xmodmap 上的
Emacs Wiki 页面 关于 Xmodmap 的
Arch Wiki
更多关于 StackExchange 上
的 Mode_switch 一个更全面、更费力的解决方案是编写您自己的键盘布局。