Demony lub inne procesy odpowiedzialne za dyktowanie w 10.8?

4

Dictation in Mountain Lion to miła mała funkcja, która działa świetnie dla mnie. Jednak często muszę przełączać się między językami dyktowania, więc przechodzenie przez Preferencje systemowe to dla mnie zdecydowanie za dużo kliknięć. Dlatego napisałem małe narzędzie, które znajduje się na pasku menu, co pozwala użytkownikowi zmieniać języki dyktowania. Problem polega na tym, że tak naprawdę to nie działa. Przynajmniej nie bez wylogowania i ponownego zalogowania.

Moje narzędzie zmienia wszystkie pliki plist, które należy zmienić, są to:

~/Library/Preferences/com.apple.speech.recognition.AppleSpeechRecognition.prefs.plist
~/Library/Preferences/com.apple.assistant.plist
~/Library/Preferences/com.apple.assistant.support.plist

(ostatni zawiera po prostu wartość BOOL, aby włączyć / wyłączyć dyktowanie)

O ile mogę powiedzieć (i zaufaj mi, przyjrzałem się temu dokładnie!) Są to jedyne pliki, które zmieniają się podczas zmiany języka dyktowania w okienku preferencji dyktowania. Jednak gdy zmienię ustawienie języka w moim narzędziu, a następnie uruchomię dyktowanie, pozostanie przy poprzednim ustawieniu. Przypuszczam, że demony dyktowania nie ładują zmienionego pliku. Nic wielkiego, prawda? Wystarczy znaleźć odpowiednie demony. Istnieją trzy główne procesy, które wydają się należeć do dyktowania:

com.apple.assistantd

(wydaje się, że jest to rzeczywisty demon dyktowania, który również spamuje konsolę)

com.apple.assistant_service

(nie jestem pewien, co to robi)

DictationIM.app

(ten renderuje GUI dla funkcji, małe szare okienko z mikrofonem)

Jednak zabicie ich (lub, w przypadku asystenta / usługi / asystenta, zatrzymanie i ponowne uruchomienie ich za pomocą launchctl), nic nie robi.

Zmiany, które wprowadzam w plikach Plist są prawidłowe i dobre, ponieważ kiedy ponownie uruchamiam komputer lub po prostu wylogowuję się / ponownie loguję, nowe ustawienie jest używane podczas uruchamiania dyktowania.

Czy jest coś, co przeoczyłem? Jakiś plist, który zapisuje ustawienia regionalne? Lub jakiś plik pamięci podręcznej, którego nie znalazłem? Nie wydaje mi się, bo naprawdę wywróciłem cały system do góry nogami w weekend, szukając go.

Masz pojęcie, które (inne) demony są odpowiedzialne i które należy (ponownie) uruchomić po wprowadzeniu zmian w plikach plist?

Dzięki za wszelkie wskazówki we właściwym kierunku!

Aha, a jeśli uda mi się sprawić, by to zadziałało, wypuszczę narzędzie jako darmowe.

EDYCJA : Tak jak obiecałem, udostępniam narzędzie jako freeware. Chwyć to tutaj: http://fouquet.me/apps/dictationswitcher/

Też go otworzyłem: https://github.com/fouquet/DictationSwitcher

René
źródło
1
Czy próbowałeś wykonać proces „kill -HUP” procesów zamiast je restartować? Również dla mnie dyktowanie uruchamia „imklaunchagent”.
Tyr
Zrobił to „kill -hup” w DictationIM. Teraz czuję się jak idiota, który tego nie próbuje. Prześlij to jako odpowiedź, działa! Dzięki! :)
René

Odpowiedzi:

3

„kill -HUP” na DictationIM powinien ponownie załadować konfigurację;)

Tyr
źródło
Dzięki jeszcze raz. Dodam kilka pędzli wykończeniowych do mojej aplikacji i dodam link później, gdy będzie gotowy.
René