Я хотел бы знать, как я могу отключить ВСЕ горячие клавиши через терминал. Я знаю, что вы можете отключить их, перейдя в:
системные настройки> клавиатура> сочетания клавиш
, но я хочу отключить их через терминал. кто-нибудь знает, как это можно сделать?
Я понятия не имею, почему Вы хотели бы сделать это, и я должен предупредить Вас, что это может быть сложно для возвращения ярлыков. Если это будет действительно, что Вы хотите сделать, то команды ниже отключат все сочетания клавиш. И они настраивают через 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
Это создаст названный файл 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 (и их обратный сдвиг использования), это удалило бы все привязки клавиш кроме них.
Это также имеет хорошее меню справки:
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/
Для гнома на 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 ''
Я не уверен, является ли это всеми сочетаниями клавиш, но это, кажется, объем их