![使用命令行切换 alt 和 win 键](https://linux22.com/image/1178995/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%88%87%E6%8D%A2%20alt%20%E5%92%8C%20win%20%E9%94%AE.png)
我知道我可以使用 来交换 alt 和 win 键gnome-tweak-tool
。但是,我必须经常这样做,因为我经常在键盘之间移动,所以有一个脚本解决方案会很好。
有一个简单的方法可以找出给定更改对应的 dconf 设置,方法是使用dconf watch /
终端中的命令,然后发出更改,这会导致终端打印出相应的更改。[参见 https://itectec.com/ubuntu/ubuntu-how-to-script-the-settings-made-by-gnome-tweak-tool/]
通过这种方式,我发现我需要的改变是切换(删除或添加)'altwin:swap_alt_win'
中的条目
/org/gnome/desktop/input-sources/xkb-options
['ctrl:aa_ctrl', 'grp:shift_caps_toggle', 'altwin:swap_alt_win']
链接的网页建议使用gsettings
,但我不清楚如何做到这一点。运行gsettings get org.gnome.desktop.input-sources xkb-options
确实会返回设置,但我不知道现在如何切换选项'altwin:swap_alt_win'
。我认为应该使用set
,但我必须在列表中搜索该术语并添加或删除它,具体取决于它是否存在?还有其他方法吗?
顺便说一句,gsettings set org.gnome.desktop.input-sources xkb-options ['ctrl:aa_ctrl', 'grp:shift_caps_toggle']
不起作用。
答案1
我知道有点晚了,但是我在使用类似 Mac 的外接键盘时也遇到了同样的问题,在两种设置之间切换的快速解决方案可以是 .bashrc 中的两个别名,我知道切换可能更优雅,但这对我来说没问题。
alias swaplap="gsettings set org.gnome.desktop.input-sources xkb-options \"['caps:ctrl_modifier', 'lv3:ralt_switch']\""
alias swapkb="gsettings set org.gnome.desktop.input-sources xkb-options \"['caps:ctrl_modifier', 'lv3:ralt_switch', 'altwin:swap_alt_win']\""
就我而言,使用外部键盘时,我只需启动swapkb
终端,swaplap
然后恢复设置即可。另外,请注意,我已将控制权映射到大写锁定上,就您而言,您的别名可能如下所示:
alias swaplap="gsettings set org.gnome.desktop.input-sources xkb-options \"['ctrl:aa_ctrl', 'grp:shift_caps_toggle']\""
alias swapkb="gsettings set org.gnome.desktop.input-sources xkb-options \"['ctrl:aa_ctrl', 'grp:shift_caps_toggle', 'altwin:swap_alt_win']\""
答案2
尝试
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:aa_ctrl', 'grp:shift_caps_toggle']"
要打开和关闭,您需要创建一个小的 bash 脚本来测试当前设置,然后设置其他设置。您可以使用以下方式读取密钥:
gsettings get org.gnome.desktop.input-sources xkb-options
然后您可以将脚本绑定到热键以便快速切换。
该脚本可能如下所示:
#!/bin/bash
STATUS=$(gsettings get org.gnome.desktop.input-sources xkb-options)
case $STATUS in
"@as []" )
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:aa_ctrl', 'grp:shift_caps_toggle']"
;;
"['ctrl:aa_ctrl', 'grp:shift_caps_toggle']" )
gsettings reset org.gnome.desktop.input-sources xkb-options
;;
esac