Jak mogę dodać niestandardową sekwencję klawiszy tworzenia?

40

Jak mogę dodać niestandardową sekwencję klawiszy tworzenia?

Na przykład, chciałbym Compose, |, >aby wpisać symbol.

Próbowałem dodać następujące elementy do ~/.XCompose:

# Import default rules from the system Compose file
include "%L"

# Custom definitions
<Multi_key> <bar> <greater> : "▸" U25B8 # Black right-pointing small triangle

ale nowa sekwencja nie jest użyteczna nigdzie poza Xterm.

Zainstalowanie ibus-table-compose, a następnie włączenie metody wprowadzania Compose w IBusie nie rozwiązało problemu; IBus naśladował wiele kluczowych sekwencji, ale nie tę, którą stworzyłem.

ændrük
źródło
Jak teraz wpisujesz symbol? Prawdopodobnie możesz odwzorować polecenie używane do wpisania symbolu na określone klawisze w układzie klawiatury. Aby znaleźć dokładny klucz dla określonego klucza, możesz użyć xev. Ale oczywiście, to tylko moje przypuszczenie.
Nitin Venkatesh
3
@nitstorm Wpisałem go naciskając AltGr +>, które jest dostosowane mapowanie że mogę ustawić dodając klawsym U25B8do keycode 60w ~/.xmodmaprc. Nie pytam, jak wpisać ▸; Pytam, jak utworzyć dla niego sekwencję klawiszy tworzenia.
ændrük

Odpowiedzi:

7

Utwórz plik ~/.XCompose(czyli plik o nazwie .XComposew folderze „domowym”), który zawiera następujące elementy:

include "%L"   # import the default Compose file for your locale
<Multi_key> <bar> <greater>     : "▸"

Zobacz man 5 Composewięcej informacji o formacie tego pliku.

JanC
źródło
2
Schludny! Czy jest jakiś sposób na ponowne odczytanie tego pliku bez ponownego uruchamiania X?
Jeremy Kerr,
1
Brzmi obiecująco, ale mój ~/.XComposeplik nie wydaje się mieć żadnego efektu nawet po ponownym uruchomieniu. Masz to do pracy?
ændrük
@Jeremy: Nie jestem pewien, ale może zmiana układu klawiatury na inny układ, a potem powrót może działać.
JanC
1
@ ændrük: Wydaje mi się, że pamiętam, że Gtk / GNOME głupio miesza się z ustawieniami klawiszy tworzenia (możesz sprawdzić, czy nowa kombinacja klawiszy tworzenia działa w np. xterm, aby potwierdzić, że tak jest). Wydaje mi się, że pamiętam, że to obejście miało coś wspólnego z wyborem alternatywnej metody wprowadzania, która omija problematyczne składanie; może zadać nowe pytanie na ten temat, ponieważ jest to nie tylko przydatne w tym przypadku, ale IIRC naprawia także specyficzne dla danego regionu mapy tworzenia itp.;)
JanC
1
Począwszy od co najmniej 18,04 LTS ta odpowiedź powinna teraz działać bez konieczności zmiany metod wprowadzania.
ændrük
22
  1. Utwórz plik o nazwie .XComposew katalogu domowym ( ~/.XCompose), który zawiera:

    # import the default Compose file for your locale
    include "%L"
    
    <Multi_key> <bar> <greater>  : "▸"
    

    Zobacz man 5 Composewięcej informacji o formacie tego pliku.

  2. Dodaj następujące elementy do ~/.profile:

    export GTK_IM_MODULE="xim"
    

    W systemie Ubuntu 18.04 (może innym) może być konieczne użycie następujących poleceń:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. Wyloguj się i zaloguj ponownie. Lub uruchom ponownie X. Lub uruchom ponownie.

dan_waterworth
źródło
3
Zauważyłem, że dzięki temu rozwiązaniu nie mogę już używać Ctrl-Shift-u do wstawiania znaków Unicode według liczb; więc zakładam, że to zmienia coś ogólnego z Gnome na X, który jest skonfigurowany przez ten plik ~ / .XCompose. Czy istnieje również sposób na zmodyfikowanie Gnome? Chciałbym zachować tę funkcję Ctrl-Shift-u.
Alfe
2
@Alfe Używanie UIM jak sugerowano na dole forów Ubuntu: Plik .XCompose nie odczytany w 11.04 GNOME działa dla mnie z domyślnymi ustawieniami w Debianie jessie / sid (patrz im-config(8) w celu dostosowania). Oznacza to, że ustawienia .XCompose działają zarówno w aplikacjach GTK (GNOME), jak i Qt (KDE), a .XCompose i Ctrl + Shift + U działają w aplikacjach GTK (takich jak Eclipse).
PointedEars,
Dziękuję Ci! Tak jak właśnie apt-getten uimpakiet lub nie masz do konfigurowania czegoś innego?
Alfe
1
Próbowałem uruchomić to przez jakiś czas, ale bezskutecznie. Byłoby bardzo pomocne usłyszeć, co dokładnie zrobiłeś oprócz instalacji pakietu uim. Przynajmniej może to pomóc upewnić się, że twoja droga nie działa na Ubuntu 12.04.
Alfe
@dan_waterford Cześć, właśnie zadałem to pytanie tutaj i miałem możliwość „duplikowania” tego pytania. Wypróbowałem jednak twoją odpowiedź i nie udało mi się jej uruchomić. Jakieś pomysły? :)
Owen_R
9

Na Ubuntu 14.04 wykonałem następujące czynności:

1) zainstalowana uimprzy użyciu oprogramowanie do zarządzania, jak inne pakiety uim-xim, uim-gtk2, uim-gtk3i uim-qtsą instalowane automatycznie. Zobacz https://launchpad.net/ubuntu/+source/uim .

2) Zdefiniowane zmienne środowiskowe poprzez dodanie kolejnych wierszy ~/.profile, w ten sposób niestandardowe sekwencje klawiszy tworzenia dotyczą tylko bieżącego użytkownika:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"

~/.XCompose-File z PO powinien działać po ponownym Ubuntu 1) lub 2) tylko serwer X Runnung polecenie w terminalu:

$ sudo restart lightdm

Uwaga: Ponowne uruchomienie wydaje się konieczne tylko po zmianie ~/.profilepliku, zmiany ~/.XComposezostaną wprowadzone przy następnym uruchomieniu aplikacji (Terminal, Gedit itp.).

Aby sprawdzić, czy zmienne środowiskowe są ustawione poprawnie, wprowadź następujące polecenie w swoim terminalu:

$ printenv | grep IM_MODULE

Wielkie dzięki dla:

Informacje o niestandardowych sekwencjach klawiszy:

Informacje o niestandardowym mapowaniu klawiatury:

Przykładowe .Xcomposepliki naśladujące Window US Internationalklawiatury:

lmeurs
źródło