Mapowanie klawiatury - dodawanie polskich znaków

Tylko tematy nie mieszczące się powyżej.
azereus
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 30 paź 2008, 00:15
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

[Solved] Mapowanie klawiatury - dodawanie polskich znaków

Post autor: azereus »

Witam,

Czy istnieje możliwość dodania do pliku konfiguracyjnego klawiatury(gdzie go w ogóle mogę znaleźć?) kilku znaków za pomocą kodów ASCII, czyli np dopisać, ze "a+alt" będzie uznawane za "ą". Ogólnie problem polega na uzyskaniu polskich znaków na klawiaturze UK przy jednoczesnym zachowaniu specyfiki rozmieszczenia innych klawiszy.
Awatar użytkownika
ffatman
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 182
Rejestracja: 20 sie 2007, 07:24
Płeć: Mężczyzna
Wersja Ubuntu: 18.04
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Odp: Mapowanie klawiatury - dodawanie polskich znaków

Post autor: ffatman »

Nie prościej jednak dodać w System>Preferencje>Klawiatura>Układy>Polska/Poland(QWERTY)?
Ubuntuoptymista w oczekiwaniu na XFCE 4.14.
azereus
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 30 paź 2008, 00:15
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Mapowanie klawiatury - dodawanie polskich znaków

Post autor: azereus »

Tylko niestety przy takiej zmianie jak piszesz, poprzez menu, zmienia się położenie innych znaków, np zamiast gdy nacisnę "shift+2" będę miał "@", odrobinę to irytujące. Najdziwniejsze, że jakimś cudem podczas instalacji działało jak trzeba tzn były polskie znaki i zachowany układ klawiatury UK.

Update:

Znalazlem pliki odpowiedzialne za uklad klawiatury, mieszcza sie w tym katalogu:
/usr/share/X11/xkb/symbols
Teraz nalezaloby je zmodyfikowac, z ich wygladu wynika na to, ze wystarczy dodac linijki opisujace funkcje odpowiednich klawiszy na tzw 3 poziomie. Nie wiem tylko dokladnie jak to zrobic. Tutaj zawartosc pliku:
// $XKeyboardConfig$

// based on a keyboard map from an 'xkb/symbols/gb' file
//
// $XFree86: xc/programs/xkbcomp/symbols/gb,v 1.6 2003/10/04 10:25:14 pascal Exp $

partial default alphanumeric_keys
xkb_symbols "basic" {

// Describes the differences between a very simple en_US
// keyboard and a very simple U.K. keyboard layout defined by
// the SVR4 European Language Supplement and sometimes also
// known as the IBM 166 layout.

include "latin"

name[Group1]="United Kingdom";

key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE03> { [ 3, sterling, threesuperior, sterling ] };
key <AE04> { [ 4, dollar, EuroSign, onequarter ] };

key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
key <TLDE> { [ grave, notsign, bar, bar ] };

key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
key <LSGT> { [ backslash, bar, bar, brokenbar ] };

include "level3(ralt_switch_multikey)"
};
Awatar użytkownika
minder
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 28 lis 2007, 23:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Kontakt:

Odp: Mapowanie klawiatury - dodawanie polskich znaków

Post autor: minder »

Otwórz do edycji plik

Kod: Zaznacz cały

/usr/share/X11/xkb/symbols/pl
i wklej na samym dole to:

Kod: Zaznacz cały

partial alphanumeric_keys
xkb_symbols "uk" {

    include "latin"

    name[Group1]="Poland - UK";
    key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
    key <AE03> { [ 3, sterling, threesuperior, sterling ] };
    key <AE04> { [ 4, dollar, EuroSign, onequarter ] };

    key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
    key <TLDE> { [ grave, notsign, bar, bar ] };

    key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
    key <LSGT> { [ backslash, bar, bar, brokenbar ] };

    key <AD03>  { [         e,          E,      eogonek,      Eogonek ] };
    key <AD09>  { [         o,          O,       oacute,       Oacute ] };
    key <AC01>  { [         a,          A,      aogonek,      Aogonek ] };
    key <AC02>  { [         s,          S,       sacute,       Sacute ] };
    key <AB01>  { [         z,          Z,    zabovedot,    Zabovedot ] };
    key <AB02>  { [         x,          X,       zacute,       Zacute ] };
    key <AB03>  { [         c,          C,       cacute,       Cacute ] };
    key <AB06>  { [         n,          N,       nacute,       Nacute ] };

     include "kpdl(comma)"
     include "level3(ralt_switch)"
};

Od teraz powinno dać się wybrać układ "Poland - UK" z prawidłowo zamapowanymi klawiszami :)

Aha, żeby nie było wątpliwości - "ł" jest dostępne standardowo na klawiaturze "latin" i nie trzeba tego znaku przypisywać do klawisza :)

EDIT:
poprawiłem błąd w linijce xkb_symbols

EDIT2:
Zapomniałem o najważniejszej rzeczy ;)
Należy wyedytować plik

Kod: Zaznacz cały

/usr/share/X11/xkb/rules/evdev.lst
i dopisać linijkę w sekcji !variant:

Kod: Zaznacz cały

uk    pl: Polish on UK keyboard 
Następnie edytujemy plik

Kod: Zaznacz cały

/usr/share/X11/xkb/rules/evdev.xml
Szukamy sekcji layout pl, szukamy podsekcji variantlist i dopisujemy:

Kod: Zaznacz cały

<variant>
   <configItem>
      <name>uk</name>
      <description>Klawiatura UK</description>
   </configItem>
</variant>
Pewnie jest jakiś sposób, żeby to wygenerować automatycznie, ale nie pamiętam. Nie wiem, jak to się będzie sprawować przy ewentualnych update'ach. Pewnie będzie prosił o uzgodnienie plików.

W każdym razie od teraz można wybrać nasz nowy układ klawiatury z poziomu ustawień systemowych. Wcześniej było to możliwe tylko za pomocą polecenia

Kod: Zaznacz cały

setxkbmap pl -variant uk
azereus
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 30 paź 2008, 00:15
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Mapowanie klawiatury - dodawanie polskich znaków

Post autor: azereus »

minder pisze:

Kod: Zaznacz cały

partial alphanumeric_keys
xkb_symbols "uk" {

    include "latin"

    name[Group1]="Poland - UK";
    key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
    key <AE03> { [ 3, sterling, threesuperior, sterling ] };
    key <AE04> { [ 4, dollar, EuroSign, onequarter ] };

    key <AC11> { [apostrophe, at, dead_circumflex, dead_caron] };
    key <TLDE> { [ grave, notsign, bar, bar ] };

    key <BKSL> { [numbersign, asciitilde, dead_grave, dead_breve ] };
    key <LSGT> { [ backslash, bar, bar, brokenbar ] };

    key <AD03>  { [         e,          E,      eogonek,      Eogonek ] };
    key <AD09>  { [         o,          O,       oacute,       Oacute ] };
    key <AC01>  { [         a,          A,      aogonek,      Aogonek ] };
    key <AC02>  { [         s,          S,       sacute,       Sacute ] };
    key <AB01>  { [         z,          Z,    zabovedot,    Zabovedot ] };
    key <AB02>  { [         x,          X,       zacute,       Zacute ] };
    key <AB03>  { [         c,          C,       cacute,       Cacute ] };
    key <AB06>  { [         n,          N,       nacute,       Nacute ] };

     include "kpdl(comma)"
     include "level3(ralt_switch)"
};

Niestety nadal jest problem z czescia polskich znakow, brakuje: ą, ś, ź, ł. Zamiast nich dostaje standardowe znaki przypisane do tych klawiszy z ukladu uk. Zupelnie tej zaleznosci nie rozumiem. Natomiast dodanie nowego ukladu przebieglo bezproblemowo - dzieki.
Awatar użytkownika
minder
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 28 lis 2007, 23:53
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Kontakt:

Odp: Mapowanie klawiatury - dodawanie polskich znaków

Post autor: minder »

Zadziwiające. Być może pominąłeś któryś etap? U mnie działa wyśmienicie. Bardzo ważny jest mój EDIT2. Potem w ustawieniach wybierasz klawiaturę "Poland - UK", ale musisz też ustawić go jako jedyny/domyślny. Wypróbuj linijkę z poleceniem setxkbmap - musi zadziałać nawet bez wykonania czynności opisanych w EDIT2. Jeśli nie, to coś źle przepisałeś ;)

Aha, "ł" występuje standardowo na klawiaturze łacińskiej, więc jeśli tego nie ma, to naprawdę coś jest nie tak...
azereus
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 30 paź 2008, 00:15
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Mapowanie klawiatury - dodawanie polskich znaków

Post autor: azereus »

Dziwne, nawet przy wybraniu przez konsole za pomoca
setxkbmap pl -variant uk
, nadal nie dziala tak jak powinno. Nowy uklad jest dostepny w preferencjach klawiatury. Moze pomoze to, ze u mnie "ł" pojawia sie przy kombinacji "prawy alt + w".

Aaa, przy starcie systemu, automatycznie dorzuca mi brytyjski uklad klawiatury, usuwam go z poziomu preferencji klawiatury. Moze to ma wplyw.

Edit

Działa! Wystarczyło odznaczyć w opcjach układu klawiatury (chociaz nie mam pojecia za co ta opcja odpowiada)
Miscellaneous compatibility options > Enable extra typographic characters
Dzieki wielkie za pomoc. W sumie przydałoby się to gdzieś podwiesić.
widex
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 12 kwie 2008, 21:18
Płeć: Mężczyzna
Wersja Ubuntu: 14.10
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Brodnica

Re: Mapowanie klawiatury - dodawanie polskich znaków

Post autor: widex »

Na końcu pliku pl dodałem:
partial alphanumeric_keys
xkb_symbols "plde" {

include "latin"

name[Group1]="Polnische - Deutsche Tastatur";

key <AC05> { [g, G, adiaeresis, Adiaeresis ] };
key <AC06> { [h, H, odiaeresis, Odiaeresis ] };
key <AC07> { [j, J, udiaeresis, Udiaeresis ] };
key <AC08> { [k, K, ssharp ] };

key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E, eogonek, Eogonek ] };
key <AD09> { [ o, O, oacute, Oacute ] };

key <AC01> { [ a, A, aogonek, Aogonek ] };
key <AC02> { [ s, S, sacute, Sacute ] };
key <AC04> { [ f, F ] };

key <AB01> { [ z, Z, zabovedot, Zabovedot ] };
key <AB02> { [ x, X, zacute, Zacute ] };
key <AB03> { [ c, C, cacute, Cacute ] };
key <AB06> { [ n, N, nacute, Nacute ] };

include "kpdl(comma)"

include "level3(ralt_switch)"
};
evdev.lst pisze:! variant
plde pl: Polnisch - Deutsche Buchstaben
Sekcja layout.
evdev.xml pisze: <variant>
<configItem>
<name>plde</name>
<description>Deutsche Buchstaben in der polnischen Tastatur</description>
</configItem>
</variant>
P.S. Popełniłem błąd w jednym z plików. Poprawiłem już cytaty i są już poprawne. Jeżeli ktoś będzie potrzebował niemieckich znaków, proszę skorzystać. Zmieniłem u siebie niektóre klawisze, ale ten wpis jest poprawny.
ODPOWIEDZ

Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 65 gości