Ich verwende seit Jahren unter Linux (X11) eine .Xmodmap-Datei die mir ermöglicht, stressfrei deutsche Umlaute zu schreiben: Drücke ich [Windows]-[o] bekomme ich ein ö. Brauche ich ein Ö, drücke ich [Windows]-[Shift]-[o]. Ein ß gibt’s mit [Windows]-[s]. Das funktioniert hervorragend, nach wenigen Tagen hatte ich mich daran gewöhnt – und die Windows-Taste ist nun endlich mal für etwas gut
Da ich mich seit längerem im Ausland aufhalte, treffe ich viele Deutsch-Schreibende die auf amerikanischem Tastatur-Layout schreiben. Darunter sind (leider) auch viele Windows-Benutzer. Alle diese Personen umschreiben die Umlaute mit “oe”, “Oe”, “ss”, etc.
Also habe ich heute mal recherchiert, ob es nicht doch eine Möglichkeit gibt, diesen Personen zu Umlauten zu verhelfen. Die offensichtlichste Möglichkeit ist natürlich, auf Linux umzusteigen und meine .Xmodmap zu verwenden. Aber das ist eher etwas längerfristiges, und viele sind dafür einfach zu unflexibel…
Es gibt jedoch noch eine andere Lösung, dank der unter der GPL stehenden Software AutoHotKey. Ungewohnt schön (für Windows-Programm-Verhältnisse) an dieser Software ist, dass sie sogar einen “Compiler” mitbringt, der aus der Tasten-Mapping-Definition eine ausführbare Datei erstellt.
Die AutoHotKey Mapping-Definition (.AHK Datei), die zu meiner gewünschten Funktionalität führt, sieht so aus:
+#a::Ä
#a::ä
+#o::Ö
#o::ö
+#u::Ü
#u::ü
#s::ß
Sehr wichtig dabei ist, dass die Datei ANSI-codiert gespeichert wird, weil AutoHotKey wohl nichts mit Unicode anzufangen weiß. Wenn man sich allerdings (wie ich während meiner Recherche) auf einer Windows-Installation befindet, deren Non-Unicode program locale keine deutschen Umlaute im erweiterten ASCII-Bereich hat, ist das nicht sonderlich einfach zu bewerkstelligen. Man kann die Datei nicht ohne Weiteres mit Windows-Bordmitteln ANSI-codiert abspeichern, sofern man nicht die Locale auf Deutsch (oder irgend eine andere Sprache bei der die o.g. Umlaute im erweiterten ASCII-Bereich vorkommen) umstellt. Und danach ist natürlich Neustarten angesagt – wie könnte es auch anders sein…
Mit etwas Vertrauen in mich kannst du aber auch einfach meine umlauts.exe herunterladen, die ich mit AutoHotKey erstellt habe. Nach dem Ausführen befindet sich das AutoHotKey-Logo im System-Tray und man kann Umlaute wie oben beschrieben tippen. Ich habe keine Trojaner oder sonstige Schädlinge eingebaut (zumindest nicht wissentlich).
Update (2009-05-17): Es hat sich herausgestellt, dass diese ganze Sache in GTK-für-Windows-Anwendungen wie Pidgin nicht funktioniert. Ich habe nun einen Workaround gebastelt, der in Pidgin funktioniert – aber schön ist was anderes. Die AHK-Datei ist dadurch etwas länger geworden: umlauts.ahk
Die umlauts.exe habe ich aktualisiert.
Geht auch mit einem Tool von Microsoft, dem MSKLC. Mit dem kann man sich ein eigenes Keyoard Layout basteln.
Ich z.B. habe auf +a ein ä.
Aber der Tipp mit ahk ist super.
hi Patrick, danke für deine Mühe!
Ich hab mal noch etwas an dem Skript geschraubt. Ein kleiner Workaround (technisch unschön aber funktional), damit in GTK-Anwendungen nicht erst hässlich der Umlaut erzeugt wird, sondern er direkt eingefügt wird.
Um z.B. ein ü in eine GTK Anwendung zu senden:
CustomGTKSend(ü)
(analog für alle Umlaute)
Hier die Funktion:
CustomGTKSend(Text)
{
ClipSaved := ClipboardAll
clipboard := Text
Send ^v
Clipboard := ClipSaved
}
Außerdem verwende ich statt der Windows Taste die AltGr Taste, die ich auch auf die linke windows taste gemappt habe. Sonst klappt das Windows menü mal schnell bei einem Vertipper auf.
Oh, das sieht nützlich aus. Sorry, ich hatte den Kommentar irgendwie ganz übersehen, sonst hätte ich darauf reagiert.
Nach einigem trial and error habe ich festgestellt, daß die obige Lösung mit CustomGTKSend() nur dann funktioniert, wenn man beim Funktionsaufruf das zu sendende Zeichen in Anführungszeichen stellt!
Also nicht
CustomGTKSend(ü)
sondern
CustomGTKSend(“ü”)
Daniel
Vielen Dank für den Hinweis. Vielleicht hat sich da was in AHK geändert, seit Oktober 2009? Ich hatte den Kommentar mit CustomGTKSend übersehen… werde mir das jetzt mal genauer anschauen, und dann einbauen und auch wieder eine neue EXE bauen. Aber erst einmal brauche ich Zugriff auf einen Windows-Rechner…