Deaktivieren Sie alle Unity-Tastaturkürzel über die Befehlszeile

8

Ich möchte wissen, wie ich ALLE Tastaturkürzel über das Terminal deaktivieren kann. Ich weiß, dass Sie sie deaktivieren können, indem Sie zu:

Systemeinstellungen> Tastatur> Verknüpfungen

aber ich möchte sie über das Terminal deaktivieren. weiß jemand wie das geht?

user278551
quelle
Über welche Tastaturkürzel sprechen Sie? Es gibt sehr viele verschiedene Sets. Sie haben einige, die in der Befehlszeile funktionieren, einige, die GUI-Inhalte aktivieren usw. Sie sind vollständig getrennt.
Terdon
Wenn Sie zu Systemeinstellungen> Tastatur> Verknüpfungen gehen, gibt es alle Verknüpfungen in Ubuntu, und ich möchte alle deaktivieren.
user278551
OK, Sie meinen also nur die GUI-Verknüpfungen. Ich gehe davon aus, dass Sie das Standard-Ubuntu verwenden, sodass Ihre Desktop-Umgebung Unity ist. Ist das korrekt?
Terdon
ja, das ist richtig.
user278551

Antworten:

11

Ich habe keine Ahnung, warum Sie dies tun möchten, und ich sollte Sie warnen, dass es durchaus kompliziert sein kann, die Verknüpfungen zurückzubekommen. Wenn Sie dies wirklich tun möchten, deaktivieren die folgenden Befehle alle Tastaturkürzel. Sowohl die über die GUI von Unity eingerichteten als auch die von Ihnen möglicherweise eingerichtetenccsm

A. Deaktivieren Sie die Unity-Tastenkombinationen

  1. Erstellen Sie zunächst eine Sicherungskopie der aktuellen Bindungen, damit Sie sie später wieder aktivieren können

    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
    

    Dadurch wird eine Datei erstellt, die old_settingsim folgenden Format aufgerufen wird :

    schema key <TAB> value
    

    Zum Beispiel:

    org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
    
  2. Deaktivieren Sie nun die Verknüpfungen

    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
    

    Erläuterung

    • gsettings list-recursively org.gnome.desktop.wm.keybindings : Hier werden alle Tastenkombinationen und ihre aktuellen Werte aufgelistet
    • perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/': Dies fügt einfach ein TAB-Zeichen ( \t) hinzu, das den Wert vom Schlüssel trennt. Dieser Schritt ist erforderlich, um sie im nächsten Schritt richtig lesen zu können.
    • while IFS=$'\t' read -r key val: Gehen Sie jede Zeile durch und lesen Sie den Schlüssel $kund seinen Wert ein $val. $IFS=$'\t'bedeutet , auf Registerkarten aufgeteilt zu werden, damit Schlüssel und Wert korrekt gelesen werden.
    • gsettings set $key [''] : Dies setzt den Wert tatsächlich auf leer, wodurch Ihre Verknüpfungen effektiv deaktiviert werden.

    Beachten Sie, dass Sie sich möglicherweise abmelden und erneut anmelden müssen, damit dies wirksam wird.

  3. Holen Sie sich (einige) Ihrer Verknüpfungen zurück

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

    WARNUNG : Dies funktioniert wahrscheinlich nicht für alle Einstellungen, da einige von ihnen einen zusätzlichen Parameter @asim Schlüsselnamen zu haben scheinen und ich nicht weiß, wie ich damit umgehen soll. Wie gesagt, das ist alles keine sehr gute Idee.

B. Deaktivieren Sie die in festgelegten benutzerdefinierten Verknüpfungen ccsm

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

Diesmal ist es einfach, sie zurückzubekommen. Alles was Sie tun müssen, ist laufen

gsettings set org.gnome.settings-daemon.plugins.media-keys active true
Terdon
quelle
Vielen Dank für die großartige Arbeit. Ich denke, es fehlen noch Compiz-Verknüpfungen.
user.dz
@Sneetsher Teil B. sollte sich mit den benutzerdefinierten Compiz-Verknüpfungen befassen. Ich bin mir nicht sicher über die Standard. Lass mich das überprüfen.
Terdon
Ein Skript wurde hinzugefügt, um ein bisschen mehr ein brauchbares Front-End zu sein, um die oben genannten
Aufgaben
In Bezug auf "Ich habe keine Ahnung, warum Sie dies tun möchten" ist der Anwendungsfall für alle in meinem Entwicklerteam, dass sich die Standardverknüpfungen mit bekannten Tastenkombinationen in gängigen Programmen überschneiden. In unserem Fall haben die meisten IntelliJ-Verknüpfungen nicht funktioniert, und wir alle benötigen wirklich nur eine Handvoll der Gnome-Verknüpfungen (wie Alt-Tab und Fenstergrößenänderung).
Oligofren
@oligofren sicher, aber warum sollten Sie dann alle Verknüpfungen vom Terminal deaktivieren müssen ? Das fand ich seltsam. Aber trotzdem, für jeden sein eigenes :)
Terdon
3

Ich habe auf @ terdons Antwort aufgebaut und ein Skript erstellt, um dasselbe zu tun , aber dies auf eine etwas benutzerfreundlichere Art und Weise.

Sie könnten es so verwenden:

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

Da ich gerne die Standard-Tastenkombinationen Alt-F4 und Alt-Tab (und deren Umkehrung mit Shift) verwende, werden dadurch alle Tastenkombinationen außer diesen entfernt.

Es hat auch ein schönes Hilfemenü:

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"    

So verwenden Sie es auf Ihrem eigenen Computer

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/
Oligofren
quelle
0

Für gnome unter Ubuntu 18.04 fand ich, dass dies funktioniert:

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 ''

Ich bin mir nicht sicher, ob das alle Tastenkombinationen sind, aber es scheint der größte Teil davon zu sein

theicfire
quelle