我正在尝试重新映射键盘的最后一行以模仿Happy Hacking Keyboard布局。我创建了一个.Xmodmap
文件,其中包含键码更改。下面仅显示使用xmodmap -pke > ~/.Xmodmap
生成的Xmodmap文件中手动更改的行。
keycode 37 = Super_L NoSymbol Super_L
keycode 64 = Control_L NoSymbol Control_L
keycode 105 = Super_R NoSymbol Super_R
keycode 108 = Control_R NoSymbol Control_R
keycode 133 = Alt_L Meta_L Alt_L Meta_L
keycode 134 = Alt_R Meta_R Alt_R Meta_R
使用
加载上述更改xmodmap ~/.Xmodmap
通过运行xev
即 Alt 键验证更改: Ctrl ,超级键: Alt 和 Ctrl 键:超级。
但是,当我运行emacs时,它仍然是 Alt 键: Alt ,超级键:超级 &安培; Ctrl key: Ctrl 。并且,只能通过按 Alt + Ctrl + t 而不是 Alt + 超级 + t 。这些应用程序仍然反映默认的键盘布局,而不是根据我$HOME/.Xmodmap
文件中的新配置。
将xmodmap ~/.Xmodmap
添加到$HOME/.xinitrc
文件中,以便更改在应用程序之间保持不变。这不是工作。
另外,将以下代码添加到/etc/X11/xinit/xinitrc
。但这也不起作用。
if [ -f $HOME/.Xmodmap ]; then
/usr/bin/xmodmap $HOME/.Xmodmap
fi
请提供您的建议。
感谢您的时间。
-Girish
最近从Windows切换到Ubuntu。我使用Emacs编写代码,并发现在HHK中映射键是有效的。它避免伤害手腕的小指和RSI。
答案 0 :(得分:9)
有关信息,如果您不想进入Xmodmap
的痛苦,您也可以通过gnome设置做很多事情。
sudo apt-get install gnome-tweak-tool
,打开它,转到打字,然后查看 Ctrl键位置和 Alt / Win键行为的选项EM>:
您可能也可以通过gsettings
执行此操作,但我不确定确切的配置条目名称。
答案 1 :(得分:8)
最后,让键盘模仿HHK布局(键盘的最后一行)。
在对新键映射进行更改之前,必须添加命令以清除修饰键。然后,启用修改键。
clear control
clear mod1
clear mod4
keycode 37 = Super_L NoSymbol Super_L
keycode 64 = Control_L NoSymbol Control_L
keycode 105 = Super_R NoSymbol Super_R
keycode 108 = Control_R NoSymbol Control_R
keycode 133 = Alt_L Meta_L Alt_L Meta_L
keycode 134 = Alt_R Meta_R Alt_R Meta_R
add control = Control_L Control_R
add mod1 = Alt_L Alt_R
add mod4 = Super_L Super_R
感谢@ d4gg4d分享你的Xmodmap文件。否则,我不会想出来的。
答案 2 :(得分:2)
我成功地使用以下xmodmap在ubuntu系统中交换右手ctrl
和alt
,
https://github.com/d4gg4d/my-emacs/blob/master/.Xmodmap
但是13.10 ubuntu在重新映射时遭受了不好的打击。因此,我认为您的问题也与此问题有关:
https://askubuntu.com/questions/363075/xmodmap-doesnt-work-for-two-layouts/405553#405553
我怀疑在下次ubuntu版本中修复后,在登录期间自动启动xmodmap将无效。
答案 3 :(得分:2)
key <LWIN> { [ Super_L ] };
key <LCTL> { [ Control_L ] };
key <RWIN> { [ Super_R ] };
key <RCTL> { [ Control_R ] };
3.删除缓存rm -rf / var / lib / xkb / * 4.重新启动X
答案 4 :(得分:1)
是的,Ubuntu因弄乱你的设置而臭名昭着。
如果我理解正确,您希望在启动时运行xmodmap
。
目前适用于我的是通过启动应用程序运行它(只需从短划线输入)。 按添加并填写此命令:
xmodmap .Xmodmap
答案 5 :(得分:0)
如果您想要Alt作为Ctrl(即将ctrl映射到alt),Super作为Alt,Ctrl作为Super,并且想要左手和右手,那么在我的ubuntu 16.10上你可以简单地执行以下任何操作: / p>
setxkbmap -option altwin:ctrl_alt_win
。请注意,这由setxkbmap -option
撤消。这个避免使用xmodmap ,KDE / Gnome设置仍然是持久的。
顺便说一下,我会做同样的事情,但我的华硕笔记本电脑没有正确的赢取密钥。因此,为了在左侧执行相同操作并且仅在右侧使用控件交换alt,我在/ usr / share / X11 / xkb / symbols /中添加了一个xkb选项,我可以再次打开/关闭像setxkbmap -option tp500:emacs_b_row
这样的东西。如果您想知道如何操作,可以在askubuntu上关注this answer。请注意,在最后一个链接中你可能不需要他的第4步,你需要sudo权力。用户259819,这种方法比xkb solution感觉更合适和温和。
我可能已将此答案添加为评论,但我的声誉很低!