Schlagwort-Archive: Mint

Tip: Tastenkürzel in Systemmenüs ändern › Projekte › Forum › ubuntuusers.de

Schon länger hatte ich mich darüber geärgert, dass in einigen (oder allen?) Linux-Distributionen die Tastenkombination

„ALT-Leertaste-n“ ein Programmfenster nicht wie in Windows (XP) minimiert:

Systemmenü von Windows-Programmen - ALT-Space-n minimiert das Fenster

Systemmenü von Windows-Programmen – ALT-Space-n minimiert das Fenster

 

 

 

 

 

 

 

 

sondern statt dessen die Funktion „auf andere Arbeitsfläche verschieben“ aufruft und dessen Untermenü öffnet. Sehr nervig. Ja, ja, ich weiß:

  • „Linux ist eben nicht Windows“
  • „Du kannst Dir doch ein Tastenkürzel selber machen“

Blabla. Ein eigenes Kürzel (wie ALT-F4 zum Schließen) existiert in Windows nicht, deshalb ist diese Bewegung in den vielen Jahren seit Windows 3.0 ins Rückenmark übergangen. Und wenn man tagsüber unter Windows arbeiten muss, und abends Linux (oder das ganze sogar parallel an zwei Rechnern oder Windows in einer virtuellen Maschine), verwendet, dann wird das irgendwann nervig, dass immer die falsche Funktion („auf andere Bildschirmarbeitsfläche verschieben“) aufgerufen wird.

Ich hab gestern eine Lösung gefunden. Zwar verwende ich Linux Mint (14/Nadia mit Mate-Desktop), aber das Verfahren ist übertragbar (Edit: unter Cinnamon ist statt marco.mo die Datei muffin.mo zu ändern).

Für die Behandlung der Menüsteuerung der Programmfenster ist der Fenstermanager (bei mir „marco“) zuständig. Die Tastenkürzel werden einfach durch einen Unterstrich „_“ im Menütext definiert (vergleichbar mit dem & in Windows, wer das kennt). Dadurch wird der nachfolgende Buchstabe als Abkürzungstaste definiert, also etwa „_Minimieren“ erlaubt es, mittels eines Drucks auf „m“ diese Aktion auszuführen. In der Entwicklung, Internationalisierung (i18n) oder Lokalisation (l10n) werden diese Tastenkürzel in „.po“-Dateien abbelegt. Nach der Programminstallation sind diese im laufenden System als *.mo-Dateien zu finden, in meinem Fall als

/usr/share/locale/de/LC_MESSAGES/marco.mo

Möglicherweise könnten die in anderen Distros woanders liegen, suchen hilft. Diese Datei habe ich erstmal gesichert (gaaanz wichtig, damit man auch die Länge nachschauen kann). Anschließend habe ich die originale Datei mit GHex (über die Softwareverwaltung zu installieren; es geht auch mit anderen Hex-Editoren, notfalls sogar mit dem Windows-Notepad!) als root geöffnet, also mit sudo ghex. Danach die Datei /usr/share/locale/de/LC_MESSAGES/marco.mo öffnen und nach „_Minimieren“ suchen und den Text (für mich als „Mi_nimieren“) ändern. Da das „n“ in den Menüs für „Auf a_ndere Arbeitsfläche verschieben“ verwendet wurde, habe ich diesen Text auf „Auf andere Arbeits_fläche verschieben“ geändert (so dass diese jetzt durch ALT-Leertaste-f aufgerufen wird, das „f“ wird sonst in diesem Menü nicht verwendet). Datei speichern, und nach dem nächsten Systemstart sind die Tastaturkürzel umbelegt.

Hardcopy des modifizierten Systemmenüs von Linux Mint 14 (Nadia) Mate 64Bit

Hardcopy des modifizierten Systemmenüs von Linux Mint 14 (Nadia) Mate 64Bit am Beispiel Firefox

 

 

 

 

 

 

 

Vor dem Neustart sollte man prüfen, ob man nicht versehentlich die Dateilänge verändert hat, denn die .mo-Dateien sind „compilierte“ .po-Dateien, und sie bilden eine Tabelle mit Verweisen innerhalb der Datei – also: Längen der einzelnen Strings nicht verändern!. Die Texte an sich kann man belegen, wie man möchte, da wird weiter nichts geprüft. (Viel Spaß beim Vera…. von Freunden, wenn ihr die an Eure manipulierte Version lasst :-)))

Dieses Verfahren eignet sich im übrigen auch dafür, entsprechende Doppelbelegungen in Programmen zu ändern, wie es bei Übersetzungen immer mal vorkommt (hey, das ist Open Source, Freiwilligenarbeit, und bei hinzugefügten Funktionen passiert das schon mal im Eifer des Gefechts). So ist mir beim Bearbeiten der Hardcopies mit GIMP das ALT-Space-S für Speichern und Schließen aufgefallen. Auch in Microsoft Office kommt das immer wieder vor, kann man da aber nicht so einfach ändern, und bezahlt hat man dafür auch noch.

Zusatz (außer dem oben fett geschriebenen): Das ganze Verfahren eignet sich übrigens für alle .mo-Dateien auf Eurem System, und sollte damit für nahezu alle Programme gelten. Die Sprachdateien von GIMP sind übrigens wie viele Andere in

/usr/share/locale/-langpack/de/LC_MESSAGES

zu finden. Da man die .mo-Dateien auch wieder in .po-Format zurückverwandeln kann, kann man so übrigens auch selber (auch ganz eigene) Programmübersetzungen anlegen, falls es keine Übersetzungen gibt, kein entsprechendes Projekt existiert, man die original .po-Datei nirgends im Netz findet, die Formulierung nicht mag …

Zuvor in etwa genau so von mir veröffentlich unter „Tastenkürzel in Systemmenüs ändern › Projekte › Forum › ubuntuusers.de“.

 

Und das ganze Geschwafel hätte ich mir sparen können, hätte ich das gleich in ein Skript gepackt.

Nun, hier ist es:

#!/bin/bash
# "Tastatursonderwünsche" im Mate-Desktop passt man das manuell
# (z.B. mit Ghex) oder mit diesem Skript in "marco.mo" an
# Root-Rechte (Adminpasswort) notwendig !
# Leicht anpassbar auf - andere Derivate und
#                      - andere Programme

sed -i -e 's/Ma_ximieren/_Maximieren/' /usr/share/locale/de/LC_MESSAGES/marco.mo
sed -i -e 's/_Minimieren/Mi_nimieren/' /usr/share/locale/de/LC_MESSAGES/marco.mo
sed -i -e 's/a_ndere Arbeitsfläche verschieben/_andere Arbeitsfläche verschieben/' /usr/share/locale/de/LC_MESSAGES/marco.mo

Gern geschehen! Rootrechte sind dafür natürlich immer noch notwendig.

Edit: Für Cinnamon gilt im übrigen genau das gleiche, nur heißt hier der Fenstermanager (window manager) muffin und die entsprechende locale-Datei „muffin.mo“.

 

 

Noch ein Blog …

Ja, wieder ein neuer Blog.
Und warum?
Weil es geht – mobil, mit dem Handy (nebenbei bemerkt einem Samsung S2).
Kein lästiges Vorbereiten, Formatieren und Hochladen von Webseiten mehr.
Themen werden mit Sicherheit Android und Linux sein, aber Anekdoten aus der Deutschen Bahn (Verspätungen! Fahrpreisrückerstattungen!) oder Kommentare zum Weltgeschehen werden auch dabei sein.
CU!