Jak zrobić niestandardowy układ klawiatury w OS X?

66

Niedawno przeniosłem się na system OS X i uważam, że układ „rosyjski fonetyczny” nie jest satysfakcjonujący (nie do tego się przyzwyczaiłem). Jak mogę stworzyć własny układ?

Czytałem o Ukelele , ale układ, który utworzyłem i skopiowałem Library/Keyboard Layouts, nie pojawia się w Preferencjach klawiatury.

Używam OS X 10.9 Mavericks. Szukałem rozwiązań w Internecie, ale większość z nich była przestarzała.

mik01aj
źródło
Jakiego układu używałeś przed MacOS? Paula Gorodyanskiego? Czy mógłbyś udostępnić swój układ Ukelele?
davidair
10.9 i nowsze wersje używają innego typu pliku układu klawiatury; Ukelele zepsuło dla mnie również to ulepszenie. Straciłem mu dostosowaną klawiaturę OCS - OCS używa dziwnych znaków cyrylicy w dziwnych miejscach.
aramis

Odpowiedzi:

63
  1. Otwórz Ukelele i wybierz Plik> Nowy z bieżącego źródła wejściowego. W nowych wersjach Ukelele automatycznie przypisuje nowy identyfikator do układu klawiatury.
  2. Edytuj układ klawiatury.
  3. Zapisz układ klawiatury w tymczasowej lokalizacji, takiej jak pulpit. (Bezpośrednie zapisywanie w /Library/Keyboard Layouts/folderze nie powiedzie się.) Możesz użyć jednego z dwóch formatów. Wyskakujące okienka w stylu iOS wyświetlane podczas przytrzymywania klawiszy działają tylko z formatem pakietu. Format pojedynczego pliku XML (domyślny) jest jednak prostszy. Korzystając z XML, upewnij się, że plik jest zapisany z .keylayoutrozszerzeniem.
  4. Przenieś układ klawiatury na /Library/Keyboard Layouts/. Układów klawiatury w ~/Library/Keyboard Layouts/nie można wybrać w oknach dialogowych haseł ani w oknie logowania.
  5. Zrestartuj komputer. Wylogowanie i ponowne zalogowanie to za mało.
  6. Włącz nowy układ klawiatury w Preferencjach systemowych.

Aby zastosować zmiany w układzie klawiatury, uruchom sudo touch /Library/Keyboard\ Layouts/i uruchom ponownie.

Zobacz https://web.archive.org/web/20151030180252/http://osxnotes.net/keylayout-files-and-ukelele.html aby uzyskać więcej informacji.


Aktualizacja (październik 2015 r.): Dostępna jest nowa wersja Ukelele (3.0.0), która zawiera opcję instalacji układu z poziomu aplikacji. Nadal musiałem przejść do preferencji systemowych, aby go aktywować, ale wcale nie musiałem przechodzić przez wiersz poleceń.

Lri
źródło
1
Dziękuję Ci! Mam jednak jedną ważną uwagę: pliki XML zapisane przez Ukelele muszą mieć .keylayoutrozszerzenie. Tak to zadziałało :)
mik01aj
Użycie formatu pakietu pozwala umieścić plik ikon .icns w pakiecie (ta sama lokalizacja co .keylayout), a obok źródła wejściowego może pojawić się wybrana ikona. (Ukelele może dodać ikonę do pakietu poprzez menu. Potrzebujesz .icns).
ebukva
1
Możesz także dodać ikonę pliku XML keylayout, np. Zapisując plik icns jako /Library/Keyboard Layouts/My Keyboard Layout.icns.
Lri
zamiast zapisywać go gdzieś i przenosić ręcznie, możesz uruchomić ukelele jako root, aby mógł bezpośrednio zapisywać w układach / biblioteka / klawiatura
Rayjax
Musiałem również edytować .keylayout plik bezpośrednio, aby zmienić nameatrybut w wierszu 5. Przedtem nie pojawiał się w Preferencjach systemowych, prawdopodobnie dlatego, że miał taką samą nazwę jak istniejący układ. Nikt inny tego nie spotkał? o_O
frnhr
12

Tworzenie pliku układu klawiatury

Ja również użyłem Ukelele do wygenerowania układu klawiatury. Następnie możesz wyeksportować plik .bundlelub .keylayouti skopiować go /Library/Keyboard Layouts.

sudo cp KeyboardLayout.keylayout /Library/Keyboard\ Layouts/

Jeśli chcesz mieć ikonę klawiatury w jednym pliku, Ukelele oferuje opcję eksportu do pakietu. W takim przypadku skopiuj .bundleplik. Alternatywnie możesz rozdzielić ikony i skopiować je o tej samej nazwie do tego samego folderu.

sudo cp KeyboardLayout.icns /Library/Keyboard\ Layouts/

Po ponownym uruchomieniu możesz dodać źródło wejściowe w menu Preferencje systemowe-> Klawiatura-> Źródła wejściowe. Prawdopodobnie dostępny w ramach Inne lub w języku, jeśli podłączyłeś język do klawiatury w Ukelele.

Menu źródła wejściowego

Jak utworzyć plik .icns

mkdir layout.iconset

Następnie dodaj następujące foldery PNG do folderu:

# All sizes necessary
icon_16x16.png
[email protected]
icon_32x32.png
[email protected]
icon_128x128.png
[email protected]
icon_256x256.png
[email protected]
icon_512x512.png
[email protected]

Nie potrzebujesz ich wszystkich, ale to jest oficjalna lista. Niektóre są zbędne pod względem liczby pikseli, ale wskazują gęstość.

iconutil --convert icns --output layout.icns layout.iconset/

Przykładowy projekt na GitHub

Mój ukraińsko-rosyjski projekt na GitHub to demo, które obecnie pracuje nad Mavericks 10.9.5.

Cameron Lowell Palmer
źródło
2
+1 za link do projektu ukraińsko-rosyjskiego. Udostępniam to teraz niektórym partnerom. Dzięki!
Wybrzeże Morza Tybetańskiego
Nie ma za co!
Cameron Lowell Palmer,
1
Bardzo dużo +1 za link do projektu ukraińsko-rosyjskiego. Wspieramy cię, @CameronLowellPalmer (i inne)!
Per Lundberg
5

Ukelele może działać dla Ciebie, ale ostrzegaj, że wydaje się to wiązać ponownie klucze na poziomie oprogramowania (a nie na poziomie sprzętowym), więc prawdopodobnie zaczniesz napotykać problemy, takie jak niektóre aplikacje, które nie rozpoznają modyfikatora lub specjalne powiązania klawiszy, nie będąc w stanie używać go w oknach dialogowych z hasłami itp.

Jeśli szukasz bardziej niezawodnego rozwiązania, sprawdź Karabiner .

Rozsądny
źródło
Karabinier jest również lepszy, ponieważ nie musisz kopiować pliku konfiguracyjnego, działa bezpośrednio. Możesz go włączyć przy uruchamianiu w domyślnej konfiguracji misc / system
bormat
-1

Użyj starszej stabilnej wersji Ukelele 1.8.4 ... Nie jest konieczne ponowne uruchomienie

Mam OS X 10.10.5 (Yosemite). Obecna wersja Ukelele nie działa nawet po wypróbowaniu kilku innych sugestii. W końcu odinstalowałem bieżącą wersję i zainstalowałem starszą stabilną wersję (1.8.4). Potem wszystko działało dobrze. Ponowne uruchomienie nie było konieczne. Po prostu zapisz nowy układ w układzie Biblioteka / Klawiatura. Następnie otwórz preferencje klawiatury, źródła wejściowe. Dodaj, klikając +, a powinieneś zobaczyć nowy układ w „Inne”.

Nilotpal
źródło