Come posso aggiungere una sequenza di tasti di composizione personalizzata?


40

Come posso aggiungere una sequenza di tasti di composizione personalizzata?

Ad esempio, mi piacerebbe Compose, |, >digitare il simbolo.

Ho provato ad aggiungere quanto segue a ~/.XCompose:

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

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

ma la nuova sequenza non è utilizzabile da nessuna parte tranne che per xterm.

L'installazione di ibus-table-compose e quindi l'abilitazione del metodo di input Compose in IBus non hanno risolto il problema; IBus imitò molte sequenze chiave di composizione, ma non quella che avevo creato.


Come si digita il simbolo ora? Probabilmente potresti mappare il comando che usi per digitare il simbolo su tasti specifici nel layout della tastiera. Per trovare il keyym esatto di una chiave particolare, puoi usare xev. Ma ovviamente, questa è solo la mia ipotesi.
Nitin Venkatesh,

3
@nitstorm Ho digitato premendo AltGr +>, che è una mappatura personalizzata che ho impostato aggiungendo il keysym U25B8al codice chiave 60in ~/.xmodmaprc. Non sto chiedendo come digitare ▸; Sto chiedendo come creare una sequenza di tasti di composizione per questo.
ændrük,

Risposte:


7

Creare un file ~/.XCompose(ovvero un file denominato .XComposenella cartella "home") che contiene quanto segue:

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

Vedi man 5 Composeper maggiori informazioni sul formato di questo file.


2
! Neat C'è un modo per rileggere questo file senza riavviare X?
Jeremy Kerr,

1
Sembra promettente, ma il mio ~/.XComposefile non sembra avere alcun effetto anche dopo il riavvio. Hai ottenuto questo per funzionare?
ændrük,

@Jeremy: non ne sono sicuro, ma forse cambiare il layout della tastiera in un altro layout e quindi indietro potrebbe funzionare.
JanC

1
@ ændrük: mi sembra di ricordare che Gtk / GNOME si stupisce stupidamente con le impostazioni dei tasti di composizione (puoi verificare se la nuova combinazione di tasti Compose funziona ad esempio in xterm per confermare che è così). Mi sembra di ricordare che la soluzione alternativa ha avuto a che fare con la selezione di un metodo di input alternativo che aggira il medling problematico; forse fai una nuova domanda a riguardo, perché non è solo utile per questo, ma IIRC corregge anche mappe Compose specifiche della locale, ecc .;)
JanC

1
Come di almeno 18.04 LTS questa risposta dovrebbe funzionare senza la necessità di cambiare i metodi di input.
ændrük,

22
  1. Crea un file chiamato .XComposenella tua home directory ( ~/.XCompose), che contiene:

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

    Vedi man 5 Composeper maggiori informazioni sul formato di questo file.

  2. Aggiungi quanto segue a ~/.profile:

    export GTK_IM_MODULE="xim"
    

    Su Ubuntu 18.04 (forse altri), potrebbe essere necessario utilizzare quanto segue:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. Disconnettersi e riaccedere. O riavvia X. O riavvia.


3
Ho notato che con questa soluzione, non posso più usare Ctrl-Shift-u per inserire caratteri unicode per numero; quindi presumo che questo cambi qualcosa di generale dalle cose di Gnome a quelle di X che sono configurate da quel file ~ / .XCompose. Esiste anche un modo per modificare le cose di Gnome? Vorrei mantenere quella funzione Ctrl-Shift-u.
Alfe,

2
@Alfe Usando UIM come suggerito nella parte inferiore dei forum di Ubuntu: il file .XCompose non letto in 11.04 GNOME funziona per me con le impostazioni predefinite in Debian jessie / sid (vedere im-config(8) per la personalizzazione). In altre parole, le impostazioni .XCompose funzionano sia nelle applicazioni GTK (GNOME) che Qt (KDE) e .XCompose e Ctrl + Shift + U funzionano entrambe nelle applicazioni GTK (come Eclipse).
Pointed Ears

Grazie! Quindi hai solo apt-getil uimpacchetto o hai dovuto configurare qualcos'altro?
Alfe,

1
Ho provato a farlo funzionare per un po 'di tempo, ma senza successo. Sarebbe molto utile sapere cosa hai fatto esattamente oltre a installare il pacchetto uim. Almeno questo potrebbe aiutare ad essere sicuro che la tua strada non funziona su Ubuntu 12.04.
Alfe,

@dan_waterford Ciao, ho appena fatto questa domanda qui , e ho avuto "possibile duplicato" di questa domanda. Tuttavia, ho provato la tua risposta e non sono riuscito a farlo funzionare. Qualche idea? :)
Owen_R,

9

Su Ubuntu 14.04 ho fatto quanto segue:

1) installata uimutilizzando il Software Manager, altri pacchetti come uim-xim, uim-gtk2, uim-gtk3e uim-qtsono auto installato. Vedi https://launchpad.net/ubuntu/+source/uim .

2) Variabili ambientali definite aggiungendo le righe successive a ~/.profile, in questo modo le sequenze di tasti di composizione personalizzata si applicano solo all'utente corrente:

# 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"

Il ~/.XComposefile dall'OP dovrebbe funzionare dopo aver riavviato 1) Ubuntu o 2) solo l'X-server eseguendo il seguente comando in un terminale:

$ sudo restart lightdm

NB: il riavvio sembra necessario solo dopo aver modificato il ~/.profilefile, le modifiche ~/.XComposediventeranno effettive al successivo avvio di un'applicazione (Terminal, Gedit, ecc.).

Per verificare se le variabili ambientali sono impostate correttamente, immettere il seguente comando nel terminale:

$ printenv | grep IM_MODULE

Mille grazie a:

Informazioni sulle sequenze di tasti di composizione personalizzata:

Informazioni sulla mappatura della tastiera personalizzata:

.XcomposeFile di esempio per imitare le Window US Internationaltastiere:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.