Remap klawiatury

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
Awatar użytkownika
lukaszb
Sędziwy Jeż
Sędziwy Jeż
Posty: 47
Rejestracja: 25 lis 2009, 13:50
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Remap klawiatury

Post autor: lukaszb »

Witam,
chciałbym, aby pod jednym klawisze klawiatury ukryć jedno słowo, czyli aby jeden klawisz wypisywał kilka znaków jednocześnie. Piszę nutki w lilypondzie i chciałbym pod kilkoma klawiszami ukryć takie sekwencje jak np. \f, \p, \fermata itp. Próbuję już przez xkb, wpisuję w pliku konfiguracyjnym np. zamiast znaku q sekwencję ww, sekwencję ze spacją itd. ale niestety niczego konkretnego nie zdziałałem, jak do tej pory udało mi się podmienić jeden znak również jednym znakiem... Podmieniam znaki w profilu QWERTZ, dzięki czemu mogę się łatwo przełączyć między standardowym układem a moim, przerobionym. Być może ktoś już się z tym zetknął i problem rozwiązał, bo ja już nie mam do tego głowy, a temat jest dość ciekawy :roll:


EDIT: Oczywiście żeby zmiany były aktualne trzeba na bieżąco usuwać pliki z katalogu var/lib/xkb
Jak dotąd doszedłem do tego, że w niektórych językach (np. Bośnia) można wstawiać dwuznaki: lj nj, ale funkcjonują one jako jeden, co można sprawdzić próbując je zaznaczyć

EDIT: Pod linkiem
http://lists.freedesktop.org/archives/x ... 42282.html
znalazłem to:

Kod: Zaznacz cały

X.Org already has a few examples of compose sequences that produce
more than one Unicode character. These are for Arabic and Khmer
(search for 'digraph'),
http://gitweb.freedesktop.org/?p=xorg/lib/libX11.git;a=blob_plain;f=nls/en_US.UTF-8/Compose.pre

In your case, you would create a compose sequence that looks like

<something1> : "ch"
<something2> : "CH"

The issue is, which character you are going to press on the keyboard
layout that will be "intercepted" and replaced with 'ch'.
These compose sequences in X.Org (and GTK+) form a global table, so if
you use 'c' in the place of 'somethingX', then it will not be possible
for someone else to type 'c' by itself. It will mess up all other
layouts.

Let's see how to implement and test manually.

1. Create a file ~/.XCompose, with contents
<c>	: "ch"
<C>	: "CH"

2. If you use GNOME, type in a shell
export GTK_IM_MODULE=xim
If you use KDE, it should work out of the box.
If you have SCIM enabled, it might be more complicated.

3. Run an editor such as gedit, then type 'c'. You get 'ch'.

So, what's best to use instead of sacrificing the 'c' letter?

I think it would be good to create new keysyms, let's say

digraph_ch
digraph_CH

(or, shall these be called  ligature_ch, ligature_CH, etc;)
Then, add the compose sequences

<ligature_ch> : "ch"
<ligature_CH> : "CH"

and finally modify your keyboard layout so that it looks something like

    key <AB03> {        [         ligature_ch,    ligature_CH
     ]       };

It is important to make these first in X.Org so that environments such
as KDE will work,
and then GTK+ can pick it up (especially if a new keysym is required).
AFAIK, KDE uses the default X.Org input method, XIM, so it requires this.

The relevant bug report for support of compose sequences that produce
two or more characters, in GTK+, is at
Czy ktoś mi pomoże jak tego dokonać?
I jak jest w końcu z tym wsparciem?
Próbowałem tworzyć ten plik i niestety...
A może można zrobić to na zasadzie skrótu?
Np. do klawisza "5" przypisać cyfrę "16"?

EDIT:
SOLVED? Osiągnąłem co zamierzałem, ale przy pomocy programu autokey, metoda najmniej inwazyjna, aczkolwiek sprawa przeróbki systemowej wciąż pozostaje otwarta ;-)
Rację ma ten, który mówi, że ją ma
ODPOWIEDZ

Wróć do „Instalacja, aktualizacja i konfiguracja Ubuntu”

Kto jest online

Użytkownicy przeglądający to forum: Bing [Bot] i 26 gości