Отключите все сочетания клавиш Unity с помощью командной строки

Я хотел бы знать, как я могу отключить ВСЕ горячие клавиши через терминал. Я знаю, что вы можете отключить их, перейдя в:

системные настройки> клавиатура> сочетания клавиш

, но я хочу отключить их через терминал. кто-нибудь знает, как это можно сделать?

8
задан 6 May 2014 в 18:53

3 ответа

Я понятия не имею, почему Вы хотели бы сделать это, и я должен предупредить Вас, что это может быть сложно для возвращения ярлыков. Если это будет действительно, что Вы хотите сделать, то команды ниже отключат все сочетания клавиш. И они настраивают через GUI Единицы и любого, который Вы, возможно, настроили использование ccsm

A. Отключите keyindings Единицы

  1. Сначала сделайте резервное копирование из текущей привязки, таким образом, можно повторно включить им позже

    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']
    
  2. Теперь отключите ярлыки

    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 [''] : это на самом деле устанавливает значение для очищения, эффективно отключая ярлыки.

    Обратите внимание, что Вам, вероятно, придется выйти из системы и войти в снова, чтобы это вступило в силу.

  3. Получите (часть из) свои ярлыки назад

    while IFS=$'\t' read -r key val; do 
        gsettings set "$key" "$val"
    done < old_settings 
    

    ПРЕДУПРЕЖДЕНИЕ: Это не будет, вероятно, работать на все настройки, так как у некоторых из них, кажется, есть дополнительный параметр @as на ключевое имя и я не знаю, как иметь дело с тем. Как я сказал, это - все не очень хорошая идея.

B. Отключите свои пользовательские ярлыки, начинаются ccsm

gsettings set org.gnome.settings-daemon.plugins.media-keys active false

На этот раз возвращение их легко. Все, что необходимо сделать, выполняется

gsettings set org.gnome.settings-daemon.plugins.media-keys active true
11
ответ дан 6 May 2014 в 18:53

Я положился на ответ @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/
3
ответ дан 23 November 2019 в 05:31

Для гнома на 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 ''

Я не уверен, является ли это всеми сочетаниями клавиш, но это, кажется, объем их

0
ответ дан 23 November 2019 в 05:31

Другие вопросы по тегам:

Похожие вопросы: