问题描述
我如何永久性切换Saucy中的Caps Lock
和Esc
键功能?我可以使用这个命令暂时执行它(直到重新启动):
/usr/bin/setxkbmap -option "caps:swapescape"
我尝试将该命令添加为启动应用程序,但它似乎没有做任何事情。
最佳解决方案
另一种方法是通过dconf-editor
。此方法从gnome-tweak-tool
中执行一些额外的步骤,但如果您不想从柚木工具中提取依赖项,该方法非常有用。
这将允许您使用caps:swapescape
语法并自动保持更改永久。
sudo apt-get install dconf-tools
启动dconf-editor
后,导航到org>> gnome>>桌面>> input-sources
在xkb-options
中添加您需要的选项。选项字符串由单引号括起来并用逗号分隔。小心不要删除两端的括号。
您可以使用此方法输入系统设置>>中不再可用的大部分传统xkb选项。文本输入。例外情况是用于切换键盘布局的设置,目前由于错误而无法使用。
有关选项和语法的列表,请在终端中使用man 7 xkeyboard-config
。
此处可以使用的另一个常用选项是terminate:ctrl_alt_bksp
,以允许ctrl
+ alt
+ backspace
结束X-session。
次佳解决方案
好的,找到了一种使用gnome-tweak-tool的方法。
从终端跑,跑
sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool
您可以在“打字 – >大写锁定键行为”中找到一个将Caps Lock和Esc互换的选项。
第三种解决方案
您可以使用terminal中的xmodmap将Caps Lock
与Esc
交换:
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock" #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape" #this will make Caps Lock to act as Esc
要在每个会话中获得此更改,请在运行先前的命令后,使用以下命令,使用新的键盘映射创建名为.xmodmap
的文件:
xmodmap -pke > ~/.xmodmap
然后,在主目录中创建一个名为.xinitrc
的文件,其中包含以下行/命令:
xmodmap .xmodmap
第四种方案
一个适用于大多数Linux发行版的解决方案:
setxkbmap -option caps:swapescape
其他选项是可能的:
-
caps:none
停用 -
caps:escape
使它成为一个额外的逃生 -
caps:super
使它成为一个额外的超级(Windows)密钥。
要在启动时进行此项工作,您需要将其放入~/.profile
中,因为这只会在交互式登录后运行。
第五种方案
类似于@ Radu的answer,但与14.04兼容(另见this answer)。
xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap
如果不起作用,请更换:
xmodmap -e "remove Lock = Caps_Lock"
有:
xmodmap -e "clear Lock"
第六种方案
转到屏幕右上角的齿轮图标,然后:
-
点击系统设置
-
键盘布局
-
选项…(右下角)
-
大写锁定键行为(第4下)
-
向下滚动并选择“交换ESC和大写锁定”。
完成!
第七种方案
在终端中运行一次该命令。 dconf
应该已经与gnome 3一起安装。
dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"
第八种方案
这可以从“Keyboard Layout” system setting完成。点击”options”查看您正在使用的布局,然后在“Caps Lock键行为”下选择“切换Escape和Capslock”。
第九种方案
我已经在C语言中专门构建了一个克服many of the issues with the xcape/xmodmap solution的工具:
它做得更多一点,因为它也将CAPSLOCK同时作为ESC和CTRL。