- Registriert
- 18.03.09
- Beiträge
- 8.839
Hallo zusammen,
ich habe derzeit einen ärgerlichen Bug auf meinem iMac. Immer mal wieder nach dem Booten ist das Tastaturlayout auf "US" eingestellt, statt auf Deutsch. Ich habe das kleine Bluetooth und ein USB-Keyboard (Matias Tactile Pro) angeschlossen. Ich habe vieles, was diesbezüglich an Tipps im Netz existiert ausprobiert und nichts hat bisher geholfen.
Auch zwei Gespräche mit dem Apple-Support brachten keine Lösung. Die haben die User-ACLs repariert und die com.apple.systempreferences.plist gelöscht. Beides brachte nur temporären Erfolg. Ich habe dann noch mal die Tastaturerkennung neu gestartet. Auch das hat das Problem nicht gelöst.
Da es sich um ein so kleines kosmetisches Problem handelt, habe aber auch keine Lust, das gesamte Betriebssystem neu aufzuspielen, oder gar komplett neu zu installieren (bei fragwürdigem Ausgang).
Ich habe daher ein wenig mit Applescript experimentiert und mir ein kleines Startscript geschrieben, das (wenn es in den Anmeldeobjekten steht) beim Start prüft, ob Deutsch als Eingabesprache gesetzt ist und US als Eingabesprache abgewählt. Ist es nicht so, korrigiert das Script diese Einstellungen und schickt eine Notifikation an Growl.
Wer Interesse hat, hier ist das Script: (eine leicht verbesserte Version hängt als ZIP-File an diesem Beitrag, diese benötigt nicht mehr "growlnotify")
Damit das Script korrekte Notifikationen an Growl senden kann, muss das Tool "growlnotify" installiert sein und Growl natürlich auch. Growlnotify bekommt man hier kostenlos. Wenn Growl nicht installiert ist, gibt das Script am Ende eine normale Meldung über den Zustand aus.
Im Script selber müssen die Variablen NummerDeutsch und NummerUS angepasst werden. Dieses sind die Zeilennummern der jeweiligen Eingabesprache in der Auswahlliste im Menü "Sprache & Text" der Systemeinstellungen. Apple schreibt da keine Zeilennummern davor, daher müsst ihr zählen. (Siehe Screenshot)
Theoretisch geht das auch mit anderen Sprachen, wobei die Variable NummerDeutsch immer die Zeilennummer der gewünschten Sprache und die Variable NummerUS die Zeilennummer der fälschlich ausgewählten Sprache enthalten muss. Das Script arbeitet meines Wissens nur dann korrekt, wenn als Anzeigesprache Deutsch verwendet wird. Mit kleinen Anpassungen, kann man es sicher auch modifizieren, dass es mit anderen Sprachen funktioniert.
Ich hoffe das Script ist nützlich. Mir hilft es, das nervige Problem zu überdecken.
Sollte es noch eine Lösung geben, die das Problem dauerhaft behebt, würde ich mich über Infos dazu sehr freuen. Bei meinem iMac (Late 2012 mit Fusion Drive) lädt dieses Script beim Start so schnell, dass man es fast nur an den Notifications bemerkt. Von daher ist es nicht mehr so eilig mit der Lösung.
[UD=Mitteilungszentrale integriert]Ich habe das Script noch weiter verfeinert. Es wird jetzt die Mitteilungszentrale genutzt. Dazu muss allerdings das Tool "Terminal-Notifier" installiert sein. Das ist kostenlos hier erhältlich. https://github.com/alloy/terminal-notifier
Weiterhin wird aber auch Growl genutzt. Jetzt auch ohne "growlnotify".[/UD]
ich habe derzeit einen ärgerlichen Bug auf meinem iMac. Immer mal wieder nach dem Booten ist das Tastaturlayout auf "US" eingestellt, statt auf Deutsch. Ich habe das kleine Bluetooth und ein USB-Keyboard (Matias Tactile Pro) angeschlossen. Ich habe vieles, was diesbezüglich an Tipps im Netz existiert ausprobiert und nichts hat bisher geholfen.
Auch zwei Gespräche mit dem Apple-Support brachten keine Lösung. Die haben die User-ACLs repariert und die com.apple.systempreferences.plist gelöscht. Beides brachte nur temporären Erfolg. Ich habe dann noch mal die Tastaturerkennung neu gestartet. Auch das hat das Problem nicht gelöst.
Da es sich um ein so kleines kosmetisches Problem handelt, habe aber auch keine Lust, das gesamte Betriebssystem neu aufzuspielen, oder gar komplett neu zu installieren (bei fragwürdigem Ausgang).
Ich habe daher ein wenig mit Applescript experimentiert und mir ein kleines Startscript geschrieben, das (wenn es in den Anmeldeobjekten steht) beim Start prüft, ob Deutsch als Eingabesprache gesetzt ist und US als Eingabesprache abgewählt. Ist es nicht so, korrigiert das Script diese Einstellungen und schickt eine Notifikation an Growl.
Wer Interesse hat, hier ist das Script: (eine leicht verbesserte Version hängt als ZIP-File an diesem Beitrag, diese benötigt nicht mehr "growlnotify")
Code:
[COLOR=#5E6161]-- Hier testen wir, ob Grow läuft
[/COLOR][B]tell[/B] [COLOR=#0433ff][I]application[/I][/COLOR] "System Events"
[B]set[/B] [COLOR=#4f8f00]isRunning[/COLOR] [B]to[/B] ¬
([COLOR=#0433ff][B]count[/B][/COLOR] [B]of[/B] ([B]every[/B] [COLOR=#0433ff][I]process[/I][/COLOR] [B]whose[/B] [COLOR=#812fdc]bundle identifier[/COLOR] [B]is[/B] "com.Growl.GrowlHelperApp")) > 0
[B]end[/B] [B]tell[/B]
[COLOR=#5E6161]-- An dieser Stelle überprüfen wir, ob Deutsch als Eingabesprache gesetzt ist[/COLOR]
[COLOR=#5E6161]-- Wenn nicht, stellen wir um und senden eine Notification an Growl[/COLOR]
[COLOR=#5E6161]-- Nummer der Zeile in der Deutsch augewählt wird[/COLOR]
[COLOR=#4F8F00][COLOR=#000000][B]set[/B] [/COLOR]NummerDeutsch[COLOR=#000000] [B]to[/B] 33[/COLOR][/COLOR]
[COLOR=#5E6161]-- Nummer der Zeile in der US augewählt wird[/COLOR]
[B]set[/B] [COLOR=#4f8f00]NummerUS[/COLOR] [B]to[/B] 159
[COLOR=#5E6161]-- Los geht es[/COLOR]
[B]tell[/B] [COLOR=#0433ff][I]application[/I][/COLOR] "System Preferences"
[COLOR=#0433FF][B]activate[/B][/COLOR]
[B]set[/B] [COLOR=#812fdc]current pane[/COLOR] [B]to[/B] [COLOR=#0433ff][I]pane[/I][/COLOR] "com.apple.Localization"
[B]end[/B] [B]tell[/B]
[B]tell[/B] [COLOR=#0433ff][I]application[/I][/COLOR] "System Events"
[B]tell[/B] [COLOR=#0433ff][I]application process[/I][/COLOR] "System Preferences"
[COLOR=#0433ff][B]click[/B][/COLOR] [COLOR=#0433ff][I]radio button[/I][/COLOR] "Eingabequellen" [B]of[/B] [COLOR=#0433ff][I]tab group[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]window[/I][/COLOR] "Sprache & Text"
[B]get[/B] [COLOR=#812fdc]value[/COLOR] [B]of[/B] [COLOR=#0433ff][I]checkbox[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]row[/I][/COLOR] [COLOR=#4f8f00]NummerDeutsch[/COLOR] [B]of[/B] [COLOR=#0433ff][I]table[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]scroll area[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]tab group[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]window[/I][/COLOR] "Sprache & Text"
[B]if[/B] [COLOR=#812fdc]result[/COLOR] [B]is[/B] 0 [B]then[/B]
[COLOR=#0433ff][B]click[/B][/COLOR] [COLOR=#0433ff][I]checkbox[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]row[/I][/COLOR] [COLOR=#4f8f00]NummerDeutsch[/COLOR] [B]of[/B] [COLOR=#0433ff][I]table[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]scroll area[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]tab group[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]window[/I][/COLOR] "Sprache & Text"
[COLOR=#5E6161]-- Nur wenn Growl läuft Notification senden[/COLOR]
[B]if[/B] [COLOR=#4f8f00]isRunning[/COLOR] [B]then[/B]
[COLOR=#012fbe][B]do shell script[/B][/COLOR] "/usr/local/bin/growlnotify 'Tastaturlayout' -n 'General' -m 'Deutsches Layout eingeschaltet!'"
[B]end[/B] [B]if[/B]
[B]set[/B] [COLOR=#4f8f00]message1[/COLOR] [B]to[/B] "Deutsch wurde eingestellt"
[B]else[/B]
[B]if[/B] [COLOR=#4f8f00]isRunning[/COLOR] [B]then[/B]
[COLOR=#012fbe][B]do shell script[/B][/COLOR] "/usr/local/bin/growlnotify 'Tastaturlayout' -n 'General' -m 'Deutsch ist da! Alles Gut!'"
[B]end[/B] [B]if[/B]
[B]set[/B] [COLOR=#4f8f00]message1[/COLOR] [B]to[/B] "Deutsch ist bereits eingestellt"
[B]end[/B] [B]if[/B]
[B]get[/B] [COLOR=#812fdc]value[/COLOR] [B]of[/B] [COLOR=#0433ff][I]checkbox[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]row[/I][/COLOR] [COLOR=#4f8f00]NummerUS[/COLOR] [B]of[/B] [COLOR=#0433ff][I]table[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]scroll area[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]tab group[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]window[/I][/COLOR] "Sprache & Text"
[B]if[/B] [COLOR=#812fdc]result[/COLOR] [B]is[/B] 1 [B]then[/B]
[COLOR=#0433ff][B]click[/B][/COLOR] [COLOR=#0433ff][I]checkbox[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]row[/I][/COLOR] [COLOR=#4f8f00]NummerUS[/COLOR] [B]of[/B] [COLOR=#0433ff][I]table[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]scroll area[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]tab group[/I][/COLOR] 1 [B]of[/B] [COLOR=#0433ff][I]window[/I][/COLOR] "Sprache & Text"
[COLOR=#5E6161]-- Nur wenn Growl läuft Notification senden[/COLOR]
[B]if[/B] [COLOR=#4f8f00]isRunning[/COLOR] [B]then[/B]
[COLOR=#012fbe][B]do shell script[/B][/COLOR] "/usr/local/bin/growlnotify 'Tastaturlayout' -n 'General' -m 'US-Layout ausgeschaltet!'"
[B]end[/B] [B]if[/B]
[B]set[/B] [COLOR=#4f8f00]message2[/COLOR] [B]to[/B] "US wurde ausgeschaltet"
[B]else[/B]
[B]set[/B] [COLOR=#4f8f00]message2[/COLOR] [B]to[/B] "US war nicht eingestellt"
[B]end[/B] [B]if[/B]
[B]end[/B] [B]tell[/B]
[B]end[/B] [B]tell[/B]
[B]tell[/B] [COLOR=#0433ff][I]application[/I][/COLOR] "System Preferences" [B]to[/B] [COLOR=#0433ff][B]quit[/B][/COLOR]
[B]if[/B] [B]not[/B] [COLOR=#4f8f00]isRunning[/COLOR] [B]then[/B]
[COLOR=#4F8F00][COLOR=#000000] [B]set[/B] [/COLOR]messageout[COLOR=#000000] [B]to[/B] [/COLOR]message1[COLOR=#000000] & " und " & [/COLOR]message2[/COLOR]
[B]display alert [/B][COLOR=#4f8f00]messageout [/COLOR][COLOR=#012fbe]giving up after[/COLOR][COLOR=#000000][COLOR=#012FBE] 4[/COLOR][/COLOR]
[B]end[/B] [B]if[/B]
Damit das Script korrekte Notifikationen an Growl senden kann, muss das Tool "growlnotify" installiert sein und Growl natürlich auch. Growlnotify bekommt man hier kostenlos. Wenn Growl nicht installiert ist, gibt das Script am Ende eine normale Meldung über den Zustand aus.
Im Script selber müssen die Variablen NummerDeutsch und NummerUS angepasst werden. Dieses sind die Zeilennummern der jeweiligen Eingabesprache in der Auswahlliste im Menü "Sprache & Text" der Systemeinstellungen. Apple schreibt da keine Zeilennummern davor, daher müsst ihr zählen. (Siehe Screenshot)
Theoretisch geht das auch mit anderen Sprachen, wobei die Variable NummerDeutsch immer die Zeilennummer der gewünschten Sprache und die Variable NummerUS die Zeilennummer der fälschlich ausgewählten Sprache enthalten muss. Das Script arbeitet meines Wissens nur dann korrekt, wenn als Anzeigesprache Deutsch verwendet wird. Mit kleinen Anpassungen, kann man es sicher auch modifizieren, dass es mit anderen Sprachen funktioniert.
Ich hoffe das Script ist nützlich. Mir hilft es, das nervige Problem zu überdecken.
Sollte es noch eine Lösung geben, die das Problem dauerhaft behebt, würde ich mich über Infos dazu sehr freuen. Bei meinem iMac (Late 2012 mit Fusion Drive) lädt dieses Script beim Start so schnell, dass man es fast nur an den Notifications bemerkt. Von daher ist es nicht mehr so eilig mit der Lösung.
[UD=Mitteilungszentrale integriert]Ich habe das Script noch weiter verfeinert. Es wird jetzt die Mitteilungszentrale genutzt. Dazu muss allerdings das Tool "Terminal-Notifier" installiert sein. Das ist kostenlos hier erhältlich. https://github.com/alloy/terminal-notifier
Weiterhin wird aber auch Growl genutzt. Jetzt auch ohne "growlnotify".[/UD]
Anhänge
Zuletzt bearbeitet: