use*_*551 8 command-line shortcut-keys
我想知道如何通过终端禁用所有键盘快捷键。我知道您可以通过以下方式禁用它们:
系统设置>键盘>快捷方式
但我想通过终端禁用它们。有谁知道如何做到这一点?
ter*_*don 11
我不知道您为什么要这样做,我应该警告您,恢复快捷方式可能很复杂。如果这确实是您想要做的,下面的命令将禁用所有键盘快捷键。通过 Unity 的 GUI 设置的那些以及您可能使用的任何设置ccsm
首先备份当前绑定,以便稍后重新启用它们
gsettings list-recursively org.gnome.desktop.wm.keybindings |
perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/' |
while IFS=$'\t' read -r key val; do echo -e "$key\t$val"; done > old_settings
Run Code Online (Sandbox Code Playgroud)
这将创建一个old_settings格式如下的文件:
schema key <TAB> value
Run Code Online (Sandbox Code Playgroud)
例如:
org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
Run Code Online (Sandbox Code Playgroud)现在禁用快捷方式
gsettings list-recursively org.gnome.desktop.wm.keybindings |
perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/' |
while IFS=$'\t' read -r key val; do gsettings set $key ['']; done
Run Code Online (Sandbox Code Playgroud)
gsettings list-recursively org.gnome.desktop.wm.keybindings :这列出了所有键绑定及其当前值perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/':这只是添加一个 TAB 字符 ( \t) 将值与键分隔开。需要此步骤才能在下一步中正确读取它们。while IFS=$'\t' read -r key val: 遍历每一行并将键读入,$k并将其值读入$val. $IFS=$'\t'意味着在选项卡上拆分,以便正确读取键和值。gsettings set $key [''] :这实际上将值设置为空白,有效地禁用您的快捷方式。请注意,您可能需要注销并重新登录才能生效。
找回(一些)你的捷径
while IFS=$'\t' read -r key val; do
gsettings set "$key" "$val"
done < old_settings
Run Code Online (Sandbox Code Playgroud)
警告:这可能不适用于所有设置,因为其中一些设置似乎@as在键名中有一个额外的参数,我不知道如何处理该参数。正如我所说,这都不是一个好主意。
ccsmgsettings set org.gnome.settings-daemon.plugins.media-keys active false
Run Code Online (Sandbox Code Playgroud)
这一次,让他们回来很容易。您需要做的就是运行
gsettings set org.gnome.settings-daemon.plugins.media-keys active true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7023 次 |
| 最近记录: |