Czy można usunąć lub wyłączyć jeden z domyślnych układów klawiatury OS X Lion?
Korzystam z niestandardowego układu klawiatury, a teraz, kiedy udało mi się ustawić go jako domyślny układ klawiatury dla całego systemu , chciałbym móc odznaczyć lub usunąć wbudowany układ klawiatury „US” dostarczany z systemem operacyjnym X. Oto zrzut ekranu - pamiętaj, że pole wyboru jest wyłączone:
W OS X 10.9 ten panel preferencji został przeprojektowany, ale nadal nie ma możliwości „usunięcia” wbudowanego układu klawiatury „US”:
Ponieważ nigdy nie używam układu klawiatury USA, chciałbym się go pozbyć, tj. Usunąć go z menu Input na pasku menu. Jak mogę to zrobić?
Aktualizacja: Odpowiedź Daniela tak naprawdę nie odpowiada na to pytanie, ale zawiera kilka cennych informacji dotyczących tego problemu:
Wydaje się, że Mac OS X wymaga co najmniej jednego układu klawiatury, który system rozpoznaje jako układ „znaków łacińskich”.
Zakładając, że są to dokładne informacje (dzięki, Daniel!), Pytanie można sformułować w następujący sposób:
Jak sprawić, by OS X uznał niestandardową klawiaturę za układ znaków łacińskich?
Aktualizacja: Właśnie natrafiłem na coś, co może pomóc.
Odpowiedzi:
f=~/Library/Preferences/ByHost/com.apple.HIToolbox*.plist; plutil -convert xml1 $f; open $f -e
.Edycja: wydaje się, że powyższa metoda przestała działać w wersji 10.9. Działa to zarówno w wersji 10.9, jak i 10.8:
~/Library/Preferences/com.apple.HIToolbox.plist
(w wersji 10.9) lub~/Library/Preferences/ByHost/com.apple.HIToolbox.*.plist
(w wersji 10.8 i wcześniejszych). Możesz przekonwertować plist na XML za pomocąplutil -convert xml1
.AppleEnabledInputSources
słownika źródło lub źródła wejściowe, które chcesz wyłączyć . Jeśli istniejeAppleDefaultAsciiInputSource
klucz, usuń go.źródło
Wygląda na to , że nie możesz zrobić tego, co chcesz, bez jeszcze nieodkrytego włamania do systemu . Wydaje się, że Mac OS X wymaga co najmniej jednego układu klawiatury, który system rozpoznaje jako układ „znaków łacińskich”. Zapobiega to niemożności wprowadzenia hasła na ekranie logowania itp. Jeśli wybrałeś francuski, kanadyjski lub inny układ klawiatury, który system rozpoznaje jako znaki łacińskie, możesz odznaczyć układ w USA.
Problem polega na tym, że układ niestandardowy, zawierający znaki łacińskie, nie jest rozpoznawany przez system jako układ klawiatury łacińskiej, a zatem nie może być jedynym wybranym układem klawiatury. Zobacz to pytanie (niestety bez doskonałej odpowiedzi), aby uzyskać więcej informacji.
Pamiętaj, że świetna odpowiedź na to pytanie również odpowiedziałaby na twoje pytanie. Niestety, moja odpowiedź tutaj wyjaśnia tylko, na czym polega problem, ale nie mam dla ciebie rozwiązania krok po kroku. Chociaż taki hack może być możliwy, nie widzę dowodów, że ktokolwiek wymyślił, jak przekonać Mac OS X, że dana niestandardowa klawiatura jest bezpieczna jako jedyna klawiatura do wyboru.
źródło
Ze względu na kompletność, podałem to jako identyfikator błędu # 11137961 w Apple, a oto odpowiedź, którą otrzymałem:
źródło
Oto inny pomysł: kilka lat temu pakiety dla układów klawiatury Apple były znacznie łatwiejsze do edycji, a ten problem wydaje się być do rozwiązania:
http://hintsforums.macworld.com/archive/index.php/t-71629.html
Być może nadal można użyć starego edytowalnego pakietu, jeśli można go pobrać ze starego systemu, w bieżącym systemie operacyjnym.
źródło
Właśnie natrafiłem na coś, co może pomóc. Tutaj idzie:
To jest w moim systemie, gdzie mój niestandardowy układ klawiatury (o nazwie „QWERTY”) jest domyślny. Zauważ, że właściwości
KeyboardLayout Name
iKeyboardLayout ID
odnoszą się do identyfikatora i nazwy na początku.keylayout
pliku.Jak widać,
defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
nadal zwraca ciąg"com.apple.keylayout.Dutch"
. Czy jest gdzieś lista dostępnychcom.apple.keylayout
wartości? Czy można uzyskać taką wartość dla niestandardowego układu klawiatury? Ponieważ w takim przypadku moglibyśmy po prostu zastąpić właściwość.Poza tym wszystkie
AppleEnabledInputSources
,AppleInputSourceHistory
iAppleSelectedInputSources
właściwości wydają się ignorować niestandardowy układ klawiatury, ponieważ ich wartości odpowiadają natywnemu układowi klawiatury OS X, który pierwotnie wybrałem podczas uruchamiania Asystenta ustawień.Kolejna aktualizacja: Aha! Wygląda na to, że istnieje inny
plist
plik, z którego możemy skopiować ustawienia.Jak widać (
AppleCurrentKeyboardLayoutInputSourceID
), najwyraźniej niestandardowe układy klawiatury otrzymują wartości, takie jak"org.unknown.keylayout.FOO"
gdzieFOO
jest nazwa układu klawiatury (jak podano w.keylayout
pliku).Tak więc, spróbujmy ustawić wszystkie wartości na nasz niestandardowy układ klawiatury, nazwany
QWERTY
iz identyfikatorem1337
(określonym w.keylayout
pliku):Niestety to nie działa.
Aktualizacja: @Lri odkryła niezawodną metodę - patrz jego odpowiedź.
źródło
Odpowiedź Apple'a na mój raport o błędzie, w którym prosiłem o umożliwienie usunięcia domyślnego układu klawiatury, jeśli inny został wybrany w Preferencjach systemowych:
źródło
Właśnie udało mi się usunąć domyślny układ w High Sierra przy użyciu następującej metody:
Library/Preferences
folderu.com.apple.HIToolbox.plist
pliku, klikając go dwukrotnie lub używającopen
w wierszu polecenia. Spowoduje to, że XCode wyskoczy i może chcieć zainstalować dodatkowe komponenty.AppleEnabledInputSources
węzeł i rozłóż go.Teraz prawdopodobnie musisz się wylogować lub uruchomić ponownie, aby zakończyć. W każdym razie musiałem zrestartować się, żeby coś zaktualizować, więc załatwiłem sprawę. Teraz z radością piszę w Neo z agresywną szybkością lodowcową, ale nie widać ani jednego QWERTZA!
źródło
Oto pomysł: po upewnieniu się, że identyfikator klawiatury niestandardowego układu jest ustawiony na Roman, utwórz niestandardowy zestaw AppleKeyboardLayouts.bundle, który zawiera tylko ten układ, i zastąp go tym, który jest dostarczany z systemem operacyjnym. (Nie wiem, co jest związane z tworzeniem pakietu.)
źródło
Możesz użyć Ukelele, aby oznaczyć używany układ jako taki, który używa skryptu łacińskiego. Wyeksportuj jako pakiet, zainstaluj, a wtedy będziesz mógł usunąć amerykański.
źródło
Można to zrobić łatwo. Najpierw zmień układ niestandardowy (użyj paska menu Menu wprowadzania), a następnie usuń zaznaczenie układu US.
źródło