Я хотел бы знать, как я могу отключить все сочетания клавиш через терминал. Я знаю, что вы можете отключить их, перейдя в:
настройки системы> клавиатура> ярлыки
но я хочу отключить их через терминал. кто-нибудь знает, как это можно сделать?
Я хотел бы знать, как я могу отключить все сочетания клавиш через терминал. Я знаю, что вы можете отключить их, перейдя в:
настройки системы> клавиатура> ярлыки
но я хочу отключить их через терминал. кто-нибудь знает, как это можно сделать?
Ответы:
Я понятия не имею, почему вы хотели бы сделать это, и я должен предупредить вас, что может быть сложно вернуть ярлыки назад. Если это действительно то, что вы хотите сделать, приведенные ниже команды отключат все сочетания клавиш. И те, которые настроены через графический интерфейс Unity, и любые другие, которые вы могли бы настроить, используя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
Это создаст файл с именем old_settings
в следующем формате:
schema key <TAB> value
Например:
org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
Теперь отключите ярлыки
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
gsettings list-recursively org.gnome.desktop.wm.keybindings
: здесь перечислены все сочетания клавиш и их текущие значенияperl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/'
: это просто добавляет символ табуляции ( \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
ВНИМАНИЕ : Это, вероятно, не будет работать для всех настроек, так как некоторые из них имеют дополнительный параметр @as
в имени ключа, и я не знаю, как с этим справиться. Как я уже сказал, это не очень хорошая идея.
ccsm
gsettings set org.gnome.settings-daemon.plugins.media-keys active false
На этот раз вернуть их легко. Все, что вам нужно сделать, это бежать
gsettings set org.gnome.settings-daemon.plugins.media-keys active true
Я основывался на ответе @ terdon и создал сценарий, чтобы сделать то же самое , но сделал это несколько более удобным для пользователя способом.
Вы можете использовать это так:
gnome-key-bindings --unset-all --except 'close|switch-applications'
Поскольку мне нравится использовать стандартные сочетания клавиш Alt-F4 и Alt-Tab (и их обратное использование shift), это удалит все сочетания клавиш, кроме этих.
У этого также есть хорошее меню помощи:
List/disable/enable/set gnome-key-bindings
gnome-key-bindings [-h | option] [value]
Options
--list Lists all the current keybindings
--set=key Set a specific keybinding
--unset=key Unsets a specific keybinding
--unset-all Unsets all keybindings
--except=REGEX Filter out keys matching REGEX from being unset
--print-default Prints the default shortcuts per Ubuntu 18.04
Examples:
Clearing all keys except a few:
gnome-key-bindings --unset-all --except "close|switch-applications|switch-input-source|show-desktop"
Setting a shortcut
gnome-key-bindings --set=maximize "<Super>Up"
Чтобы использовать его на своей машине
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/gnome-key-bindings -o gnome-key-bindings
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/easyoptions.sh -o easyoptions.sh
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/easyoptions.rb -o easyoptions.rb
chmod +x ./gnome-key-bindings
sudo mv ./gnome-key-bindings easyoptions.* /usr/local/bin/
Для gnome в Ubuntu 18.04 я обнаружил, что это работает:
gsettings list-keys org.gnome.shell.keybindings | xargs -I@ gsettings set org.gnome.shell.keybindings @ ['']
gsettings list-keys org.gnome.mutter.keybindings | xargs -I@ gsettings set org.gnome.mutter.keybindings @ ['']
gsettings list-keys org.gnome.settings-daemon.plugins.media-keys | xargs -I@ gsettings set org.gnome.settings-daemon.plugins.media-keys @ ['']
gsettings set org.gnome.mutter overlay-key ''
Я не уверен, что это все сочетания клавиш, но, похоже, основная их часть