/usr/bin/setxkbmap -option "caps:swapescape"
我尝试将该命令添加为启动应用程序,但似乎没有任何作用。
#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
评论
我将该命令放在〜/ .bashrc中,因此它在系统重新启动之间仍然存在。 (ctrl:nocaps对我来说,对于tmux)@opyate我将该命令放在〜/ .profile中,以便在交互式登录后仅运行一次。