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.
Update (2010-03-12): Als (verspätete) Reaktion auf jan und Daniels Kommentare habe ich nun das Script umlauts.ahk verbessert, und auch eine neue umlauts.exe gebaut. Ich verwende weiterhin die [Windows]-Taste. AltGr ist keine Option, da es diese Taste auf vielen Tastaturen (z.B. US-Layout) nicht gibt.
Update (2011-04-09): Auf mcmusics Wunsch habe ich eine Version erstellt, die zusätzlich noch die Y und Z Taste vertauscht, für Leute die sich schwer tun, sich an diese Vertauschung beim QWERTY-Layout zu gewöhnen. Hier ist das umlauts-yz-swapped.ahk Script, und hier die umlauts-yz-swapped.exe.
Übrigens, beim Herunterladen von AutoHotKeys habe ich gesehen, dass es jetzt eine neue Version gibt, die auch mit Unicode klarkommt – vermutlich ist es damit möglich, eine umlauts.exe zu bauen, die auf den Clipboard-Hack verzichtet. Kann ja mal jemand mit mehr Zeit testen und dann hier berichten.
Update (2012-02-14): Die alte umlauts.exe funktionierte in Lotus Notes recht unzuverlässig: Manchmal kam der richtige Buchstabe (vor allem beim ß), aber manchmal kam irgend ein anderes Sonderzeichen. Daraufhin habe ich mal versucht, das selbe Script mit dem neuen AutoHotKey L (mit Unicode-Unterstützung) zu compilen, und nach einer Konvertierung des Scripts nach UTF-8 hat das auch gleich perfekt funktioniert. Bisher konnte ich damit in Lotus Notes noch keine Fehlfunktion feststellen. Der Clipboard-Hack ist übrigens für GTK-Anwendungen weiterhin notwendig. Die UTF-8-Variante des AHK-Scripts gibt’s hier: umlauts2.ahk, und gebaut als EXE (nun knapp 800 anstatt früher 200 KB) hier: umlauts2.exe.
Update (2013-01-04): umlauts2.exe funktionierte nicht mehr in Thunderbird, weil Mozilla die Window Class geändert hat. Ich habe nun den Check auf die Window Class rausgeworfen, und benutze immer den Umweg über die Zwischenablage, was bisher in allen getesteten Programmen zuverlässig funktioniert hat. Weiterhin habe ich [Windows]-e mit dem Euro-Zeichen (€) belegt, und [Windows]-y mit dem Yuan/Yen Zeichen (¥). Zu guter Letzt habe ich den Code etwas umstrukturiert und kommentiert. umlauts3.ahk, umlauts3.exe
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…
Hallo, stecke im Stoff nicht ganz so tief drin wir Ihr, daher eine ” dumme” Frage, ich habe ein holländische Laptop geschenkt bekommen, möchte aber ein deutsches keyboard einbauen und auf DE umstellen, geht das so einfach? oder muß muß man mit Software den keyboard-Bios verändern.
Das einfachste ist wohl die Tasten überkleben?
Falko,
du schriebst:
>Das einfachste ist wohl die Tasten überkleben?
Ich hab auf meinem US-Firmenlaptop jetzt meine US2GER.exe in den Autostart Ordner gelegt, die Tasten y und z vorsichtig herausgehebelt und vertauscht wieder angeklipst. Klappte wunderbar. Nur für erfahrene “Klipser”. Nachahmung auf eigene Gefahr.
Die US2GER.ahk ist sehr einfach gehalten, ich habe ja einfach drauflosprobiert und den Clipboard-Hack von Patrick und Jan nicht verwendet. Bis jetzt hat das in jeder Anwendung geklappt.
Und so sieht sie aus, ergänzt um ein Schlussformel-Kürzel:
; AutoHotKeyFile von mcmusic 11.4.2011
; für den *** US Laptop
+#a::Ä
#a::ä
+#o::Ö
#o::ö
+#u::Ü
#u::ü
#s::ß
z::y
Z::Y
y::z
Y::Z
; tippe #br[Enter] –> Schlussformel wird erzeugt
::#br::Best regards`nVorname Name`n
Das AutoHotkey ist sehr vielseitig, man kann es für viele andere Sachen auch noch verwenden.
Grüße,
mcmusic
Hallo PAtrick,
die Umlauts.exe ist super. Funktioniert prima.
Könntest du noch eine anbieten, in der Y und Z vertauscht sind (zusätzlich zu den bereits realisierten Umlauten)? An die vertauschten Plätze auf der US-Tastatur, die ich benutzen muss, gewöhne ich mich nur schwer.
Danke,
mcmusic
Hi,
habe gerade eine ‘yz-swapped’-Version gemacht, siehe Update im Artikel.
Hallo Patrick und andere,
ich hab mir gleich selbst so eine exe gemacht, die auch noch die Buchstaben y und z auf der US-Tastatur vertauscht. War gar nicht schwer. Damit kann man dann schon einigermassen arbeiten.
Hier gibt’s die Datei, wer sie vielleicht braucht:
http://psion.uh-lab.de/downloads/US2GER.zip
Viele Grüße und Dank an Patrick für die Idee
mcmusic
Hallo Patrick,
vielen Dank für das Script.
Die neue Version “umlauts3.exe” funktioniert jetzt mit Thunderbird, dafür hat sie Probleme mit Outlook (2010).
Da wird nur der vorherige Inhalt der Zwischenablage eingefügt. Nach einigem Suchen habe ich in einem Forum den Tipp gefunden ein “Sleep 200” nach “Send ^v” einzufügen. Das hat die Sache behoben!
; Send CTRL-V
Send ^v
Sleep 200
; Load….
Viele Grüße
Hermann
P.S. Jetzt muss ich nur noch heraus finden warum das ß in Firefox nicht eingefügt wird. 😉