Klawiatura, którą próbuję utworzyć, ma wiele znaków Unicode i wygląda następująco:
Niepowodzenie w następującym samouczku:
- https://help.ubuntu.com/community/Howto%3A%20Custom%20keyboard%20layout%20definitions
(w samouczku jest kilka błędów i używa nieprecyzyjnego języka, takiego jak „wycinanie” rzeczy zamiast „ich usuwanie” i jest dziwnie sformatowany)
Zastanawiałem się, czy ktoś byłby tak uprzejmy, aby zapewnić lepszy samouczek z instrukcjami krok po kroku?
keyboard-layout
Akiva
źródło
źródło
Odpowiedzi:
W Ubuntu 14.04 układy klawiatury są zachowane
/usr/share/X11/xkb/symbols/
Każdy z plików w tym katalogu zawiera serię wpisów następującego typu:
Ten wpis mapuje klawisz na klawiaturze na liczbę określonych znaków, stosując następujące konwencje:
< C01> Pierwsza litera oznacza szukamy w bloku alfanumerycznego klucza (inne opcje obejmują a );
A
KP [for keypad]
FK [for Function Key]
<A C 01> Druga litera
C
wskazuje rząd, licząc od dołu, w którym znajduje się klucz. (W standardowej klawiaturze amerykańskiej spacja jest w rzędzie,AA
a klawisze numeryczne w rzędzieAE
).<AC 01 > Cyfry
01
wskazują pozycję klucza, licząc od lewej i ignorując każdy specjalnie nazwany klucz, taki jak TABlub ~(tylda):AC01
znajduje się w trzecim rzędzie w górę, pierwszy klucz od lewej (ignorowanie Caps Lock, jeśli występuje); na standardowej klawiaturze amerykańskiej jest to klawisz oznaczony „a”.Nawiasy kwadratowe zawierają listę znaków przypisanych do każdego klawisza. Zawiera maksymalnie cztery wpisy oddzielone przecinkami:
Utworzenie niestandardowej mapy klawiatury jest tak proste, jak zastąpienie znaków, których nie chcesz w danym wierszu, tymi, które robisz!
Na przykład:
Jako anglosasista piszę
á
iÁ
znacznie rzadziej niż piszęæ
iÆ
.Aby dodać znaki anglosaskie do mojej listy, po prostu zamieniam
aacute
iAacute
na nazwy jednostek lub punkty kodu Unicode dlaæ
iÆ
(odpowiednio „aelig” lub U00E6 i „AElig” lub U00C6 ):lub
Po zakończeniu modyfikacji układu klawiatury zapisuję plik pod nową nazwą „oe” w tym samym katalogu.
Dodanie nowego układu klawiatury do
evdev.xml
pliku.Aby użyć nowego układu klawiatury, musimy powiedzieć
X11
, że istnieje. W Ubuntu 14.04X11
śledzi zainstalowane klawiatury w/usr/share/X11/xkb/rules/evdev.xml
pliku. Następnie dodajmy do niego nowy układ.X11/xkb/rules/evdev.xml
w edytorzePrzejdź na koniec
<layoutList>
sekcji (wyszukaj</layoutList>
). Dodaj następujący</layout>
znak po ostatnim znaczniku, gdzieX
jest nazwa pliku układu klawiatury w/usr/share/X11/xkb/symbols
(w moim przypadkuoe
);Y
odpowiednia krótka nazwa; orazZ
odpowiednią długą nazwę w co najmniej jednym języku i trzyliterowy zgodnyaaa
z prawem kod języka (ISO 639-2) (np. eng dla języka angielskiego):Tutaj jest, wykonaj pełne wprowadzenie
Inne powiązane linki:
http://ubuntuforums.org/showthread.php?t=188761&p=1092145#post1092145 http://www.charvolant.org/~doug/xkb/html/index.html
źródło
Uwaga : Wayland używa xkb, ale wiele xTools przestało działać poprawnie (na przykład xdotool)
Uwaga : jest to niewyczerpujący samouczek. Jest to najbardziej przydatne dla osoby, która chce stworzyć nowy układ ośmiopoziomowy i rozumie składnię.
Uwaga: Zapewniono szybkie i brudne rozwiązanie. Zawiera arkusz kalkulacyjny, który automatycznie generuje potrzebny kod.
Zrozumienie katalogu XKB
Ważne, jeśli chcesz dostosować klawisze modyfikujące.
Ważne, jeśli projektujesz niestandardowy element klawiatury.
Musisz to zdefiniować
Przykład: klawiatury Macintosh rozumieją spację jako
57
. Piszemy to jednak jako<SPCE>
Tutaj zdefiniujemy nasz niestandardowy układ.
Wewnętrzne zachowanie modyfikatorów (Shift, Control, Alt ...)
Przepływ pracy
keycodes > symbols > compat
Dotykam tylko
symbols
: poniżej znajduje się szybkie i brudne rozwiązanie.Mapy symboli
/symbols/us Każdy plik w tym katalogu ma tę samą strukturę.
partial - Nie pełna mapa klawiatury
alphanumeric_keysOdwzorowana część klawiatury. Można użyć wielu.
Uwaga: Jeśli nie
*_keys
określono, zakłada się pełną klawiaturę."basic" - Nazwa mapy symboli
name[Group1]= "US/ASCII";Nadaje unikalną nazwę tej grupie klawiatur.
modifier_mapDo edycji klawiszy modyfikujących . (Ctrl, Shift, Alt ~)
Shift { Shift_L, Shift_R };Zwykle nie jest to konieczne. Mapuje obie zmiany do modyfikatora zmiany, czyli poziomu 2.
key <TLDE> Klawisz tyldy - zwykle lewy górny klawisz tuż nad Tab
key <AE01> Ilustracja - składa się z trzech części,AE01
A= alfanumeryczny blok klawiszy.
KP= Klawiatura
FK= klawisz funkcyjny
E= Wiersz na klawiaturze.
Space Key= Awiersz
Shift Key= Bwiersz
Caps Lock= Cwiersz
Tab Key= Dwiersz
01= Pozycja klucza w rzędzie.
AE01= 1
AB02= X
AC05=G
[+ ]- W językach C; Nawiasy kwadratowe oznaczają listę, według której pozycje są dzielone ,. Długość listy określa liczbę poziomów. Na przykład:
Zazwyczaj poziomy oznaczają następujące naciśnięcie klawisza z:
Krótko mówiąc, jeśli chcesz zmapować klawisz shift + altgr, twoja lista musiałaby mieć co najmniej cztery elementy.
OSTRZEŻENIE - Typowe błędy
Każda z tych linii spowoduje błąd krytyczny i pozostawi cię bez użytecznej klawiatury:
Backspace
powinno byćBackSpace
: Zwróć szczególną uwagę na pisownię.VoidSymbol
.Najlepszy środek bezpieczeństwa!
Wykonaj kopię zapasową edytowanego pliku:
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
Stwórz skrypt, który możesz uruchomić bez hasła roota
Coś jak:
Jeśli coś pójdzie nie tak, użyj myszki do uruchomienia tego wiersza kodu (zawartego w skrypcie bash, któremu zezwoliłeś sudoers. Pamiętaj,
chmod +x
aby zezwolić na działanie jako plik wykonywalny).Strategie tworzenia kopii zapasowych w celu odzyskania uszkodzonego systemu
return
(naciskając Enter) wklejając podział linii.Szybkie i brudne rozwiązanie
(
!
staje sięU0021
). Obsługa Unicode!VoidSymbol
.sudo vim /usr/share/X11/xkb/symbols/us
Linie zainteresowania:
źródło