如何在Saucy中永久切换Caps Lock和Esc键功能?我可以临时使用此命令(直到重新启动):
/usr/bin/setxkbmap -option "caps:swapescape"
我尝试将该命令添加为“启动应用程序”,但似乎没有任何作用。
如何在Saucy中永久切换Caps Lock和Esc键功能?我可以临时使用此命令(直到重新启动):
/usr/bin/setxkbmap -option "caps:swapescape"
我尝试将该命令添加为“启动应用程序”,但似乎没有任何作用。
Answers:
另一种方法是通过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会话。
keyboard-config(7)
,这就是我想要的。
dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
'caps:swapescape'
如果您需要交换两个密钥(而不是仅分配Esc
给Caps Lock
),则需要使用。
gsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
适用于大多数Linux发行版的解决方案:
setxkbmap -option caps:swapescape
其他选项是可能的:
caps:none
停用caps:escape
使它成为额外的逃生caps:super
使其成为附加的超级(Windows)键。要使此功能在启动时起作用,您需要将其放入,~/.profile
因为它仅在交互式登录后才能运行。
setxkbmap
命令~/.xsessionrc
并且~/.profile
不再显示使设置在登录/重新启动之间保留的时间
~/.profile
这是一个很糟糕的地方-在每个登录Shell上都读取该文件。将其放在启动X11时使用的文件中,例如~/.xinitrc
或~/.xsession
。
好的,找到了一种使用gnome-tweak-tool进行此操作的方法。
从终端运行
sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool
您可以在“键入-> Caps Lock键的行为”中找到交换Caps Lock和Esc的选项。
gnome-tweak-tool
不应将其用于此任务,因为有默认工具可以执行此任务。
Keyboard & Mouse
> Additional Layout Options
>Caps Lock Behavior
xmodmap
或setxkbmap
解决方案,坚持在19.04。
您可以使用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
~/.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"
转到屏幕右上角的齿轮图标,然后:
在终端中运行一次此命令。 dconf
应该已经与gnome 3一起安装了。
dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"
我专门为此目的在C中构建了一个工具,该工具克服了xcape / xmodmap解决方案的许多问题:
它做得更多,因为它也将CAPSLOCK设置为ESC和CTRL。
我来不及回答,但通常的方式交换Esc,并Ctrl与下面几行~/.Xmodmap
的文件:
clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock
这应该适用于大多数常见发行版(Ubuntu和Debian系列,Fedora和RH系列)上的所有桌面环境(KDE,Gnome)。
对于Ubuntu 18.04和Gnome 3.30,这对我有效:
gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"
在KDE GUI(图形用户界面)上,可以通过“系统设置”中的“键盘布局”完成此操作。点击“输入设备”。在左上角,单击键盘。然后单击“高级”选项卡。在“大写锁定键行为”下,选择“切换转义和大写锁定”。
上面带有“ switch Escape and Capslock”开关的“ Keyboard Layout”在Ubuntu 16.04及更高版本上不再有效(以前是吗?dunno)。答案:为了避免拥有权限等的麻烦,只需在开始所有操作之前通过su
输入root密码切换到root 。然后:
cd /etc/default/
vim keyboard
在那里,您将看到以下行:
XKBOPTIONS=""
更改为:
XKBOPTIONS="caps:swapescape"
使用保存退出vim:
:wqa
重启。
我保证,那将是永久的。:)
注意:这不会交换,仅将大写锁定映射到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
~/.bashrc
因此它在系统重新启动之间仍然存在。(ctrl:nocaps
不过,对于我而言tmux
)