如何永久切换Saucy中的Caps Lock和Esc键功能?我可以使用此命令临时执行此操作(直到重新启动):

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


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

评论

我将该命令放在〜/ .bashrc中,因此它在系统重新启动之间仍然存在。 (ctrl:nocaps对我来说,对于tmux)

@opyate我将该命令放在〜/ .profile中,以便在交互式登录后仅运行一次。

#1 楼

另一种方法是通过dconf-editor。从gnome-tweak-tool开始,此方法还有一些额外的步骤,但是如果您不想从调整工具中获取依赖项,该方法将非常有用。

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

sudo apt-get install dconf-tools


启动dconf-editor后,导航至org >> gnome >>桌面>>输入源

添加选项在xkb-options中需要的。选项字符串用单引号引起来,并用逗号分隔。注意不要删除两端的括号。



您可以使用此方法输入大多数传统的xkb选项,这些选项在“系统设置”>“ >文本输入。切换键盘布局的设置是一个例外,由于错误,当前无法使用。

有关选项和语法的列表,请在终端中使用man 7 xkeyboard-config

可以使用的另一个常见选项是terminate:ctrl_alt_bksp,以允许ctrl + alt + backspace结束X会话。

评论


+1用于引用keyboard-config(7),这就是我想要的。

– ulidtko
13年11月2日在21:49

您也可以从命令行执行此操作,而无需安装dconf-editor:dconf写入/ org / gnome / desktop / input-sources / xkb-options“ ['caps:escape']”

– Pi Delport
2014年1月18日20:30



不要使用“ sudo”运行以上命令,因为此设置似乎针对每个用户。

–玻尔
2014年4月20日,1:14

请注意,如果您需要交换两个键(而不仅仅是将Esc分配给Caps Lock),则需要使用'caps:swapescape'。

– thameera
14-10-5在9:19



或者您可以进行gsettings设置org.gnome.desktop.input-sources xkb-options“ ['caps:escape']”

–非循环
2014年12月7日19:01

#2 楼

适用于大多数Linux发行版的解决方案:
setxkbmap -option caps:swapescape

其他可能的选项:


caps:none停用

caps:escape使它是一个附加的转义

caps:super,使其成为附加的超级(Windows)键。

要在启动时进行此操作,可以将其放在~/.profile中,因为它只能运行交互式登录后。
如果两次登录之间的切换不持久(例如,在挂起计算机时),您还可以在主目录中创建一个.xinitrc文件并将其放在该目录中。笔记本电脑上的Linux mint 20在此选项下无懈可击。

评论


这可以在Ubuntu 14.04,Unity中使用。

–狮子座
16-11-27在15:32

在Ubuntu 16.04中也为我工作

–陈洁仪
18年4月20日在21:21

从18.04开始,不再将setxkbmap命令放在〜/ .xsessionrc和〜/ .profile中,以使设置在登录/重新启动之间保持不变

–康拉德·迪恩
18年5月5日在10:58

@ Conrad.Dean我在基于18.04 LTS的Mint 19中使用它:这里没有问题。这些设置不应保留,而是在登录时加载。

– jojo
18年7月25日在10:37

〜/ .profile是一个很糟糕的地方-在每个登录Shell上都读取该文件。将其放在启动X11时使用的文件中,例如〜/ .xinitrc或〜/ .xsession。

– sarnold
19年6月21日在1:28

#3 楼

好的,找到了一种使用gnome-tweak-tool进行操作的方法。

从终端运行

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool


,您可以找到一个选项可以在“键入-> Caps Lock键行为”中交换Caps Lock和Esc。

评论


在Ubuntu 14上,窗口的布局非常麻烦,但是仍然可以使用。

– uvasal
2014年7月20日在10:57

是的,我认为gnome-tweak-tool不应用于此任务,因为有默认工具可以执行此操作。

–LéoLéopoldHertz준영
2015年12月31日在20:44

到目前为止,这是最好的解决方案。

–杰森·麦克维塔(Jason McVetta)
18-09-19在7:51

对于Ubuntu> 18.04,可以在键盘和鼠标>其他布局选项> Caps Lock行为中找到

– Adracus
19年4月25日在19:40

该可执行文件现在称为gnome-tweaks。

–克莱斯·莫格伦(Claes Mogren)
19/12/10在7:26

#4 楼

您可以在终端中使用xmodmap与Esc交换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 -pke > ~/.xmodmap


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

xmodmap .xmodmap


评论


这在Ubuntu 14.04下不起作用。我还尝试了一个.xsessionrc文件,它也没有起作用。

–miguel.martin
2014年7月21日在14:58

您如何撤消设置?

– hlin117
2015年2月2日,1:17

@ hlin117只需清除〜/ .xmodmap文件的内容(通过在终端中仅运行>〜/ .xmodmap),然后重新启动会话即可。

– RaduRădeanu
2015年2月2日,9:42

在Ubuntu 14.04上,这使Escape映射到Caps_Lock,但Caps_Lock不映射到Escape。

–user1691145
15年8月30日在1:41

嗨,我做到了,而且有效。但是,除了esc绑定到capslock之外,caps-lock现在还绑定到caps-lock和转义符。桌面环境是否仍可能以某种方式替代此设置?我使用KDE

–xor
16-09-23在12:03

#5 楼

与@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"


评论


在Linux Mint 17.1(基于Ubuntu)中不起作用:(

– JanWarchoł
15年11月20日在21:02

必须将“删除锁定= Caps_Lock”更改为“清除锁定”才能正常工作

– scc
15年12月23日在12:35

#6 楼

转到屏幕右上角的齿轮图标,然后:


单击系统设置
键盘布局
选项...(右下角)
大写锁定键行为(第4个向下)
向下滚动并选择“交换ESC和大写锁定”。


完成!

评论


乔:欢迎来问Ubuntu! ;-)能否请您查看我的编辑内容,并同时查看编辑帮助,以提高将来答案的可读性... ;-)

–法比
15年2月21日在21:24

这应该是Ubuntu和Mint的最佳答案

– prasad
16年12月21日在22:01

除了这里提到的脚本更新之外,这还做什么?最好在脚本中执行此操作。

– Ben Creasy
18-10-22在5:29

#7 楼

在终端中运行一次此命令。 dconf应该已经与gnome 3一起安装。

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"


评论


该解决方案刚刚在RedHat Enterprise Linux 7上测试了OK。

–乍得斯基特队
16年11月9日在4:18

#8 楼

上面带有“切换Escape和Capslock”答案的“键盘布局”在Ubuntu 16.04及更高版本上不再有效(以前是吗?dunno)。在开始进行所有操作之前,先通过su进入root用户,然后输入root密码。然后:

    cd /etc/default/
    vim keyboard


您会看到以下行:

    XKBOPTIONS=""


将其更改为:

    XKBOPTIONS="caps:swapescape"


用保存退出vim:

    :wqa


重新启动。

这将是我保证是永久的。 :)

评论


运行sudo dpkg-reconfigure keyboard-configuration使其永久。

– Bagustris
20-2-5的3:18

如果您按照我说的去做,就不需要这样做。

– Alex Fedotov
20 Mar 11 '20 at 22:22

在Debian系统中,X不会立即看到/ etc / default / keyboard中的更改。您应该重新引导系统,或使用sudo udevadm trigger --subsystem-match = input --action = change。为了激活控制台上的更改,请运行setupcon(1)。

–尼扎姆·穆罕默德(Nizam Mohamed)
20-10-6在14:57



你读了我写的书吗?特别是“重启”一词?

– Alex Fedotov
20-10-8在21:34

如果按住Capslock,是否可以使其表现得像Ctrl?

–user341493
20-11-14在21:15

#9 楼

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


https://github.com/oblitum/caps2esc

它的功能更多,因为它同时将CAPSLOCK设置为ESC和CTRL。

#10 楼

对于Ubuntu 18.04和Gnome 3.30,这对我有效:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"


评论


仍在19.04上工作。

– Exeleration-G
19年7月29日在12:40

适用于19.10

– eleijonmarck
20年1月22日在10:10

我正在使用Pop!_OS 19.10;这是我尝试过的第一件事,并且在重启后仍然有效。

–ShapeOfMatter
20 Mar 28 '20 at 16:50

#11 楼

我来晚了,但是交换Esc和Ctrl的通常方法是在~/.Xmodmap文件中包含以下几行: (KDE,Gnome)上最常见的发行版(Ubuntu和Debian家族,Fedora和RH家族)。

评论


它在ubuntu 16.04上不起作用,请您详细说明一下?

– MaikoID
16-10-19在13:08

@MaikoID:这几乎是交换CapsLock和Esc的统一方法。我了解到,使用Unity的较新Ubuntu版本打破了很多“规范的统一”的东西,这似乎就是为什么这里所有其他答案都针对某些版本特定或DE特定(Unity)方法的原因。就其价值而言,这确实适用于我个人使用的Kubuntu。

– dotancohen
16-10-19在13:45

#12 楼

这可以通过“键盘布局”系统设置来完成。单击所使用布局的“选项”,然后在“大写锁定键行为”下选择“切换转义和大写锁定”。

评论


至少在13.10中不可用。

–艾萨克·唐特·林德尔(Isaac Dontje Lindell)
2014年1月22日,0:26

#13 楼

注意:这不会交换,仅将大写锁定映射到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


评论


尽管此答案确实可以解决1/2的问题,但由于(我认为)长度,OP询问它出现在低质量答案队列中的问题。您可以考虑进一步扩展它。它可能如何以及为什么起作用。

–古怪的长老
18年3月21日在18:33

#14 楼

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

评论


您提供了此问题的答案,非常好。一旦选择“交换ESC和Caps Lock”,您是否可以编辑问题以扩大一点,可能会达到预期的结果。被选中。

–菲尔(英国)
17 Mar 21 '17 at 20:52

您好,欢迎咨询Ubuntu!在当前状态下,此答案确实还不完整,因此有删除的风险。请阅读我们的“如何回答”帮助页面,然后返回并编辑您的答案以包括更多详细信息,特别是这如何解决OP的问题。此外,请阅读我们的旅程,以获取徽章并更好地了解我们的网站如何运作。再见!

–卡兹·沃尔夫(Kaz Wolfe)
17年3月21日在22:56

多亏您的建议。我希望此编辑是您想要的。

–法拉吉·古达兹(farhad goodarzi)
17 Mar 23 '17 at 9:42

仅供参考,与您的域的链接似乎无效(至少对我而言),但是以前的IP地址域有效。

– Andrew T.
18年6月4日在3:42