web-dev-qa-db-fra.com

Désactiver tous les raccourcis clavier Unity à l'aide de la ligne de commande

J'aimerais savoir comment désactiver TOUS les raccourcis clavier via le terminal. Je sais que vous pouvez les désactiver en allant à:

paramètres système> clavier> raccourcis

mais je veux les désactiver via un terminal. Quelqu'un sait comment cela peut être fait?

8
user278551

Je ne sais pas du tout pourquoi vous voudriez faire cela et je devrais vous avertir qu'il pourrait bien être compliqué d'obtenir les raccourcis. Si c'est vraiment ce que vous voulez faire, les commandes ci-dessous désactiveront tous les raccourcis clavier. Ceux configurés via l'interface graphique de Unity et ceux que vous avez configurés à l'aide de ccsm

A. Désactiver les clés de Unity

  1. Commencez par faire une sauvegarde des liaisons actuelles afin de pouvoir les réactiver ultérieurement

    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
    

    Cela créera un fichier appelé old_settings au format suivant:

    schema key <TAB> value
    

    Par exemple:

    org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
    
  2. Désactivez maintenant les raccourcis

    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
    

    Explication

    • gsettings list-recursively org.gnome.desktop.wm.keybindings: ceci liste toutes les liaisons de clé et leurs valeurs actuelles
    • Perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/': ceci ajoute simplement un caractère de tabulation (\t) séparant la valeur de la clé. Cette étape est nécessaire pour pouvoir les lire correctement dans la prochaine.
    • while IFS=$'\t' read -r key val: parcourez chaque ligne et lisez la clé dans $k et sa valeur dans $val. $IFS=$'\t' signifie divisé en onglets pour que la clé et la valeur soient lues correctement.
    • gsettings set $key ['']: cela définit en fait la valeur à blanc, ce qui désactive efficacement vos raccourcis.

    Notez que vous devrez peut-être vous déconnecter et vous reconnecter pour que cela prenne effet.

  3. Récupère (certains de) vos raccourcis

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

    WARNING: Cela ne fonctionnera probablement pas pour tous les paramètres car certains d'entre eux semblent avoir un paramètre supplémentaire @as dans le nom de la clé et Je ne sais pas comment traiter avec celui-là. Comme je l'ai dit, ce n'est pas une très bonne idée.

B. Désactivez vos raccourcis personnalisés définis dans ccsm

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

Cette fois, les récupérer est facile. Tout ce que vous avez à faire est de courir

gsettings set org.gnome.settings-daemon.plugins.media-keys active true
11
terdon

Je me suis inspiré de la réponse de @ terdon et j'ai fait n script pour en faire autant , mais le fait de manière plus conviviale.

Vous pourriez l'utiliser comme ceci:

gnome-key-bindings --unset-all --except 'close|switch-applications'

Comme j'aime utiliser les combinaisons de touches par défaut Alt-F4 et Alt-Tab (et leur inversion en utilisant shift), cela supprimerait toutes les associations de touches à l'exception de celles-ci.

Il a également un menu d'aide Nice:

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"    

Pour l'utiliser sur votre propre machine

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
oligofren