¿Cómo puedo agregar una secuencia de teclas de composición personalizada?

40

¿Cómo puedo agregar una secuencia de teclas de composición personalizada?

Por ejemplo, me gustaría Compose, |, >para escribir el símbolo.

He intentado agregar lo siguiente a ~/.XCompose:

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

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

pero la nueva secuencia no se puede usar en ningún lado excepto en xterm.

Instalar ibus-table-compose y luego habilitar el método de entrada Compose en IBus no resolvió el problema; IBus imitó muchas secuencias de teclas compuestas, pero no la que yo había creado.

ændrük
fuente
¿Cómo escribes el símbolo ahora? Probablemente podría asignar el comando que usa para escribir el símbolo a teclas específicas en la distribución del teclado. Para encontrar el keyym exacto de una tecla en particular, puede usar xev. Pero por supuesto, esto es solo mi suposición.
Nitin Venkatesh
3
@nitstorm mecanografié pulsando AltGr +>, que es un mapeo personalizado que puse añadiendo el keysym U25B8a código clave 60en ~/.xmodmaprc. No estoy preguntando cómo escribir ▸; Estoy preguntando cómo crear una secuencia de teclas compuestas para ello.
ændrük

Respuestas:

7

Cree un archivo ~/.XCompose(que es un archivo nombrado .XComposeen su carpeta "home") que contiene lo siguiente:

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

Consulte man 5 Composepara obtener más información sobre el formato de este archivo.

JanC
fuente
2
¡Ordenado! ¿Hay alguna forma de volver a leer este archivo sin reiniciar X?
Jeremy Kerr
1
Esto suena prometedor, pero mi ~/.XComposearchivo no parece tener ningún efecto incluso después de reiniciar. ¿Has conseguido que esto funcione?
ændrük
@ Jeremy: No estoy seguro, pero tal vez cambiar el diseño del teclado a otro diseño y luego volver podría funcionar.
JanC
1
@ ændrük: Me parece recordar que Gtk / GNOME se mete estúpidamente con la configuración de las teclas componer (puede probar si la nueva combinación de teclas Compose funciona en, por ejemplo, xterm para confirmar que este es el caso). Me parece recordar que la solución tuvo algo que ver con la selección de un método de entrada alternativo que evita la intromisión problemática; tal vez haga una nueva pregunta al respecto, porque no solo es útil para esto, sino que IIRC también corrige mapas de composición específicos de la localidad, etc.;)
JanC
1
A partir de al menos 18.04 LTS, esta respuesta ahora debería funcionar sin necesidad de cambiar los métodos de entrada.
ændrük
22
  1. Cree un archivo nombrado .XComposeen su directorio de inicio ( ~/.XCompose), que contiene:

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

    Consulte man 5 Composepara obtener más información sobre el formato de este archivo.

  2. Agregue lo siguiente a ~/.profile:

    export GTK_IM_MODULE="xim"
    

    En Ubuntu 18.04 (tal vez otros), es posible que deba usar lo siguiente:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. Cierre sesión y vuelva a iniciarla. O reinicie X. O reinicie.

dan_waterworth
fuente
3
Noté que con esta solución, ya no puedo usar Ctrl-Shift-u para insertar caracteres unicode por número; así que supongo que esto cambia algo general de las cosas de Gnome a las cosas de X configuradas por ese archivo ~ / .XCompose. ¿Existe también una forma de modificar las cosas de Gnome en su lugar? Me gustaría mantener esa función Ctrl-Shift-u.
Alfe
2
@Alfe Uso de UIM como se sugiere en la parte inferior de los foros de Ubuntu: el archivo .XCompose no leído en 11.04 GNOME funciona para mí con la configuración predeterminada en Debian jessie / sid (consulte im-config(8) para la personalización). Es decir, la configuración de .XCompose funciona tanto en aplicaciones GTK (GNOME) como Qt (KDE), y .XCompose y Ctrl + Shift + U funcionan en aplicaciones GTK (como Eclipse).
PointedEars
¡Gracias! Entonces, ¿acabas de elegir apt-getel uimpaquete o tuviste que configurar algo más?
Alfe
1
Traté de hacer que esto funcione por algún tiempo, pero fue en vano. Sería muy útil saber qué hizo exactamente además de instalar el paquete uim. Al menos esto podría ayudar a asegurarte de que tu forma no funcione en Ubuntu 12.04.
Alfe
@dan_waterford Hola, acabo de hacer esta pregunta aquí y tenía "posible duplicado" de esta pregunta. Sin embargo, probé tu respuesta y no pude hacer que funcionara. ¿Algunas ideas? :)
Owen_R
9

En Ubuntu 14.04 hice lo siguiente:

1) Instalado uimcon el Administrador de Software, otros paquetes como uim-xim, uim-gtk2, uim-gtk3y uim-qtestán instalados de automóviles. Ver https://launchpad.net/ubuntu/+source/uim .

2) Variables ambientales definidas agregando las siguientes líneas a ~/.profile, de esta manera las secuencias de teclas compuestas personalizadas solo se aplican al usuario actual:

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

El ~/.XComposearchivo del OP debería funcionar después de reiniciar 1) Ubuntu o 2) solo el servidor X ejecutando el siguiente comando en una terminal:

$ sudo restart lightdm

Nota: reiniciar solo parece necesario después de modificar el ~/.profilearchivo, las modificaciones ~/.XComposesurtirán efecto la próxima vez que se inicie una aplicación (Terminal, Gedit, etc.).

Para verificar si las variables ambientales están establecidas correctamente, ingrese el siguiente comando en su terminal:

$ printenv | grep IM_MODULE

Muchas gracias a:

Acerca de las secuencias de teclas compuestas personalizadas:

Acerca de la asignación personalizada del teclado:

.XcomposeArchivos de ejemplo para imitar Window US Internationalteclados:

lmeurs
fuente