Ustaw niestandardowy układ klawiatury domyślny system - nawet dla ekranu logowania


35

Czy mogę zrobić niestandardowy układ klawiatury (domyślnie nie był dołączony do OS X) domyślny system - nawet na ekranie logowania?


(w międzyczasie nie możesz zaakceptować odpowiedzi, czytelnicy mogą być zdezorientowani)
— o0'.

1
@Lohoris: Gotowe!
— Mathias Bynens

Zaktualizuj pytanie b usuwając notatkę aktualizacji, najlepsza odpowiedź działa teraz także na najnowszych wersjach osx
— Bert Goethals

Odpowiedzi:


13

Działa to na OSX 10.9 Mavericks, z układem klawiatury, który stworzyłem z Ukulele. Zakładając, że masz już zainstalowany układ w swoim systemie, zaloguj się na swoje konto i aktywuj niestandardowy układ klawiatury.

Otwórz terminal i uruchom następujące polecenie:

cp /Library/Preferences/com.apple.HIToolbox.plist /tmp/

Jeśli zamierzasz używać edytora tekstu (np. TextWrangler), aby dokonać tej zmiany zamiast XCode (który ma wyspecjalizowany edytor grafiki plist), także biegnij :

plutil -convert xml1 /tmp/com.apple.HIToolbox.plist

Teraz otwarte /tmp/com.apple.HIToolbox.plist w edytorze tekstu lub w XCode.

W całym pliku znajdziesz kilka wzmianek o a KeyboardLayout ID klucz, po którym następuje liczba całkowita i KeyboardLayout Name po którym następuje ciąg. Zmień te ciągi na nazwę niestandardowego układu klawiatury i id liczb całkowitych na identyfikator swojego układu (najprostszym sposobem znalezienia właściwych wartości jest porównanie z ustawieniami użytkownika znajdującymi się w pliku ~/Library/Preferences/com.apple.HIToolbox.plist.

Również wartość klucza AppleCurrentKeyboardLayoutInputSourceID należy odpowiednio zmienić (prawdopodobnie na coś takiego org.unknown.keylayout.NameOfYourLayout ). Ponownie możesz znaleźć tę wartość w lokalnym pliku preferencji.

Po zakończeniu tych zmian zapisz plik i wróć do terminala. Aby zagrać bezpiecznie, możesz utworzyć kopię oryginału com.apple.HIToolbox.plist plik, na wypadek gdybyś popełnił błąd i musiałeś wycofać. Na przykład, aby zapisać kopię w swoim Dokumenty teczka:

sudo cp /Library/Preferences/com.apple.HIToolbox.plist ~/Documents

Następnie zainstaluj swoją zmianę w następujący sposób:

sudo sh -c 'cat /tmp/com.apple.HIToolbox.plist > /Library/Preferences/com.apple.HIToolbox.plist'

(Nie jest konieczne konwertowanie pliku z formy tekstowej za pomocą plutil jeśli zrobiłeś to wcześniej.)

Zamknij terminal i uruchom ponownie komputer (wylogowanie nie jest wystarczające: plik nie zostanie ponownie odczytany). Po restarcie powinieneś mieć układ klawiatury na ekranie logowania.

UWAGA: możliwe, że wystarczyłoby skopiować plik com.apple.HIToolbox.plist z ~/Library/Preferences/ do /Library/Preferences/jednak w moim przypadku ma więcej wpisów, więc postanowiłem zagrać bezpiecznie i zmodyfikować istniejący plik.


Próbuję tego teraz, ponieważ inna odpowiedź nie zadziałała. FWIW, oto co mam com.apple.HIToolbox.plist plik wygląda jak po zmianach: gist.github.com/anonymous/d18bae208b5cf12e48be
— Mathias Bynens

Pracował bez zarzutu, dzięki! Przykro mi, że nie mogę już dać ci nagrody, więc po prostu ustawię nową, aby nagrodzić cię za tę odpowiedź.
— Mathias Bynens

Cieszę się, że to pomogło. Dzięki za dodatkową nagrodę! :-)
— Eric J. Francois

Pracował jak urok. Świetna wskazówka!
— ƘɌỈSƬƠƑ

To jest fantastyczne. Zostałem ugrzęznięty przez moje belgijskie domyślne klawisze! Chciałbym dać ci wielokrotne głosy!
— Bert Goethals

12

znalazłem ta stara wskazówka MacWorld , co sugerowało ponowne uruchomienie Asystenta instalacji:

sudo /System/Library/CoreServices/Setup Assistant.app\
/Contents/MacOS/Setup Assistant

Na początku myślałem, że nie jest to już obsługiwane w Lionie, ponieważ uruchomienie tego polecenia nie wydaje się mieć żadnego efektu. Dopiero po opublikowaniu tego pytania zauważyłem literówkę w poleceniu. Znaki spacji muszą być poprawnie ukrywane lub należy podać miejsce binarne. Z tego powodu wskazówka, z którą nawiązałem połączenie, nie działa.

Oto poprawne polecenie:

sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

Alternatywnie, to również zadziałałoby:

sudo /System/Library/CoreServices/Setup\ Assistant.app/Contents/MacOS/Setup\ Assistant

Kolejny błąd, o którym nie wspomniałem na stronie, do której nawiązałem połączenie: niestandardowy układ klawiatury musi być zainstalowany /Library/Keyboard Layouts/ (to znaczy. cd /Library/Keyboard\ Layouts ), nie ~/Library/Keyboard Layouts, aby pojawił się na ekranie wyboru klawiatury Asystenta ustawień.


Aktualizacja: Od wersji OS X 10.8 musisz uruchomić dodatkowe polecenie (tzn. Najpierw usunąć plik):

sudo rm /var/db/.AppleSetupDone; sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

Musisz także utworzyć nowe konto użytkownika, aby ukończyć Asystenta ustawień - ale nie martw się, możesz później usunąć nowe konto.

Ta sztuczka nie działa już w ostatnich wersjach OS X 10.8.


Aktualizacja: Oto wszystko, co wiem o niestandardowych układach klawiatury w systemie OS X .


Podążyłem za twoimi krokami w Mountain Lion 10.8 i uruchomiłem asystenta konfiguracji, ustaw mój domyślny układ klawiatury na Dvoraka i próbowałem się zalogować, ale to nie działa. przy ponownym uruchomieniu nadal korzystał z qwerty na ekranie logowania.
— ams

Tak, wydaje się, że nie działa już od OS X 10.8. :(
— Mathias Bynens

3

Używam niestandardowego układu klawiatury utworzonego za pomocą Ukulele w OS X 10.8.5 . Zmieniłem układ klawiatury ekranu logowania, wykonując następujące czynności:

  1. otwarty Users & Groups w System Preferences
  2. Wybierz Login Options od dołu lewego panelu
  3. Czek Show Input menu in login window
  4. Przejdź do ekranu logowania
  5. Wybierz preferowany układ w Other input sources z menu wprowadzania, znajdującego się w prawym górnym rogu
  6. Wróć i usuń zaznaczenie Show Input menu in login window aby zapobiec dalszym zmianom układu logowania

Uważam, że ta metoda jest znacznie łatwiejsza niż edycja losowa .plist pliki i uruchomione polecenia to Terminal.

Ta metoda może wymagać dostępu administracyjnego, ponieważ prawdopodobnie trzeba odblokować prawy panel w kroku 3. powyżej, klikając ikonę kłódki na dole.

Aktualizacja: Niestety, nie działa to w systemie OS X 10.9.


Przyznałem Ci nagrodę, która wydawała się najlepszą odpowiedzią, ale tak naprawdę nie działa - zawsze wraca do domyślnego układu klawiatury w USA. Aby to przetestować, użyłem układu klawiatury, który pozwala mi wpisywać trzy symbole jednym naciśnięciem klawisza, dzięki czemu mogę zobaczyć, ile zamaskowanych znaków pojawia się w polu wprowadzania hasła. Po zastosowaniu kroków, o których wspomniałeś, mogłem wprowadzać tylko jeden symbol na raz (jak na klawiaturze amerykańskiej).
— Mathias Bynens

Czy możesz opisać, co nie działa z OS X 10.9? Jestem w stanie wykonać te kroki (nie zrobiłem kroku 6) z powodzeniem podczas korzystania z układu Workman (tutaj: workman.deekayen.net ). Moim problemem jest jednak to, że jeśli ten układ zostanie wybrany i zablokuję komputer, menu wprowadzania nie pojawi się na ekranie logowania, podczas gdy jest dobrze, jeśli mam Dvoraka lub coś innego natywnie obsługiwanego przez OS X. (tj. Widzę menu i w razie potrzeby może wrócić do USA)
— Timothée Boucher

@ TimothéeBoucher My poprzedni komentarz opisuje, co się dzieje źle i jak to przetestowałem.
— Mathias Bynens

2

Po zainstalowaniu macOS Sierra mój niestandardowy układ został ponownie zainicjowany do stanu domyślnego za każdym razem po zalogowaniu na moim koncie.

Apple dodał nowe klawiatury, a identyfikator był sprzeczny z klawiaturą, której używałem.

Aby sprawdzić poprawność, jeśli masz ten problem, uruchom:

sudo touch / Library / Keyboard

Wyjście:

Keyboard Layouts: duplicate keyboard layout identifier 5000.
Keyboard Layouts: keyboard layout identifier 5000 has been replaced with 16383.

Wyjście twierdzi, że coś naprawia, ale w rzeczywistości nic nie robi. Nadal musiałem samodzielnie edytować układ i zaczął działać jak poprzednio.


Zmienił się też mój własny. Niestety, naprawianie identyfikatorów w plikach .plist mi nie pomogło.
— Pavel Gurkov

@PavelGurkov uruchomiłeś polecenie sudo w folderze po? Wymagało to, aby system operacyjny to rozważył.
— jrobichaud

Tak, zrobiłem to, nie otrzymałem żadnego wyjścia. Sprawdziłem wszystko, co mogłem, ale nadal ... Pracowałem bezbłędnie na El Capitanie, nie miałem szczęścia w Sierra.
— Pavel Gurkov
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.