如何永久性地切换Caps Lock和Esc

如何在Saucy中永久切换Caps LockEsc键function? 我可以使用此命令暂时执行此操作(直到重新启动):

/usr/bin/setxkbmap -option "caps:swapescape" 

我尝试将该命令添加为启动应用程序,但似乎没有做任何事情。

另一种方法是通过dconf-editor 。 这个方法有一些来自gnome-tweak-tool额外步骤,但如果您不想从调整工具中提取依赖项,则此方法很有用。

这将允许您使用caps:swapescape语法并自动使更改成为永久更改。

 sudo apt-get install dconf-tools 

启动dconf-editor ,导航到org >> gnome >> desktop >> input-sources

xkb-options添加所需xkb-options 。 选项字符串由单引号括起,并以逗号分隔。 小心不要删除末端的括号。

dconf-editor中的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 

您可以在“键入 – >大写锁定键行为”中找到交换大写锁定和Esc的选项。

适用于大多数Linux发行版的解决方案:

 setxkbmap -option caps:swapescape 

其他选择是可能的:

  • caps:none to deactivate
  • caps:escape使其成为一个额外的逃脱
  • caps:super使其成为额外的超级(windows)键。

要在启动时使其工作 ,您需要将其放在~/.profile因为这只会在交互式登录后运行。

您可以在终端中使用xmodmap与Capc交换Caps Lock

 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包含新的键盘映射:

 xmodmap -pke > ~/.xmodmap 

然后,在主目录中创建一个名为.xinitrc的文件,其中包含以下行/命令:

 xmodmap .xmodmap 

类似于@ Radu的答案 ,但与14.04兼容(另请参阅此答案 )。

 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']" 

这可以通过“键盘布局”系统设置来完成。 单击您正在使用的布局的“选项”,然后在“Caps Lock键行为”下选择“switch Escape and Capslock”。

我专门为此目的在C中构建了一个工具,它克服了xcape / xmodmap解决方案的许多问题 :

它做了一点,因为它也将CAPSLOCK转换为ESC和CTRL。

我迟到了,但是交换EscCtrl的常用方法是使用~/.Xmodmap文件中的以下行:

 clear Lock keysym Caps_Lock = Escape keysym Escape = Caps_Lock add Lock = Caps_Lock 

这适用于大多数常见发行版(Ubuntu和Debian系列,Fedora和RH系列)上的所有桌面环境(KDE,Gnome)。

在KDE GUI(图形用户界面)上,可以通过系统设置上的键盘布局来完成。 单击“输入设备”。 在左上角,单击“键盘”。 然后单击“高级”选项卡。在“大写锁定键行为”下,选择“切换转义和大写锁定”。

注意:这不会交换,只会将大写锁定映射到esc。 (这对我的vim用例来说已经足够了。)

对于ubuntu 16:04(使用i3环境):创建带内容的文件〜/ .xessionrc

 xmodmap -e "clear lock" #disable caps lock switch xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape 

上面带有“switch Escape and Capslock”答案的“键盘布局”在Ubuntu 16.04及以后不再有效(之前是吗?dunno)。 答案:为了避免权限的喧嚣等,只需切换到root,然后再开始执行此操作并输入root密码。 然后:

  cd /etc/default/ vim keyboard 

在那里你会看到这条线:

  XKBOPTIONS="" 

将其更改为:

  XKBOPTIONS="caps:swapescape" 

退出vim并保存:

  :wqa 

重启。

我承诺,这将是永久性的 。 🙂