cómo vincular AltGr a <Ctrl> + <Alt>

11

Estoy tratando de crear un equivalente de Linux del diseño del teclado ergonómico telugu llamado Sarala (Hard la). He podido asignar todas las claves hasta ahora. El diseño utiliza las siguientes combinaciones de teclas para varios niveles.

None (Base): Level1
Shift: Level2
Ctrl + Alt: Level3
Ctrl + Alt + Shift:Level4

Donde como linux utiliza lo siguiente para varios niveles.

None (Base): Level1
Shift: Level2
RAlt: Level3
RAlt + Shift:Level4

Para poder hacer coincidir las combinaciones de teclas con mi diseño, tendría que mapear AltGrcon un Ctrl+ Alt. He buscado sin éxito a través de varios archivos /usr/share/X11/xkb/. ¿Alguien sabe cómo puedo vincular ISO_Level3_Shiftcon Ctrl+ Alt?

key <RALT>  {
    symbols[Group1]= [ Mode_switch, Multi_key  ],
    virtualMods= AltGr
};

Si quieres ver el diseño, está aquí

ShaggyInjun
fuente
2
echar un vistazo aquí askubuntu.com/questions/254424/...
αғsнιη
2
Gracias, eso es muy informativo, pero habla de todo lo demás, excepto la xkbconfiguración.
ShaggyInjun
Puedes mirar a través de este wiki desde arch linux wiki y ver la parte sobre Alt y Altgr (Nivel 3). No estoy seguro de si esto te ayudará, pero parece tener mucha información sobre XKB
No Time
He intentado eso, xkb no se carga con un error no tan descriptivo. No tengo el error a mano, pero puedo adjuntarlo más tarde.
ShaggyInjun

Respuestas:

6

Necesita definir un nuevo tipo de xkb. Puede ver ejemplos en su directorio xkb / types (generalmente /usr/share/X11/xkb/types). Allí puede definir combinaciones arbitrarias de modificadores para obtener diferentes niveles de desplazamiento. Para su problema, puede usar algo como esto:

type "C_A_to_L3" {
    modifiers = Control+Alt+Shift;
    map[None] = Level1;
    map[Shift] = Level2;
    map[Control+Alt] = Level3;
    map[Control+Alt+Shift] = Level4;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Alt Base";
    level_name[Level4] = "Shift Alt";
};

Luego, en su archivo de símbolos, puede establecer ese tipo como el predeterminado, o establecer, por tecla, de qué tipo es. Tenga en cuenta que necesita que el tipo esté en un archivo en el directorio de tipos y la definición de clave en un archivo en el directorio de símbolos: xkb utiliza una estricta jerarquía de sistema de archivos para encontrar cada componente.

He pirateado bastante los diseños de teclado para crear mi diseño personalizado ( https://github.com/willghatch/hatchak ), que ha pasado por varias iteraciones en las que he experimentado con cosas raras. XKB puede ser bastante fastidioso y extraño a veces, pero sigue siendo el sistema de teclado más configurable que he visto hasta ahora. Las mejores referencias si tiene más problemas son:

[editar: los enlaces originales están actualmente inactivos, pero afortunadamente existe archive.org]

https://web.archive.org/web/20150722164820/http://www.charvolant.org/~doug/xkb/html/index.html

y

https://web.archive.org/web/20190419170426/http://pascal.tsu.ru/en/xkb/

Cuidado, aunque esa es la mejor documentación que he encontrado, deja muchos casos turbios. Buena suerte.

William Hatch
fuente
Creo que su idea es realmente útil, pero realmente estoy luchando por usar el tipo creado en los archivos de símbolos de manera predeterminada como usted mencionó. Los archivos de símbolos que tengo en mi computadora son bastante largos y no veo ninguna línea que parezca una definición de un tipo predeterminado.
Dave
1
Puede definir un valor predeterminado para una sección dentro de un archivo de símbolos mediante la configuración key.type. Probablemente pueda ver un ejemplo en /usr/share/X11/xkb/symbols/srvr_ctrl(o en un lugar como ese), en la sección "no_srvr_keys". Esto es lo que tengo: xkb_symbols "no_srvr_keys" {key.type = "TWO_LEVEL"; tecla <FK01> {[F1, F1]}; tecla <FK02> {[F2, F2]}; <etc ...>};
William Hatch
Gracias por la rápida respuesta. Creo que podré aplicar eso. Muchas gracias por adelantado.
Dave
Solo como un comentario para todos los que regresan a esta página, incluso mucho tiempo después. Para mí, este enfoque funcionó ahora con un Fedora recién instalado. Por alguna razón desconocida (para mí) no funcionó con Mint cuando escribí ese comentario arriba. Pero ahora funciona y me ahorra mucho tiempo.
Dave
-1

Por lo que parece, necesita un diseño de teclado que admita AltGr, por lo que simplemente puede cambiar la tecla de acceso rápido en "teclado> accesos directos> tecla de caracteres alternativos" en el menú de configuración. Normalmente puede verlo cambiando a un diseño que "tiene claves muertas" o está escrito "AltGr dead keys"


fuente
No solicito uso personal, necesito enviar el diseño. Lamentablemente, esta es una mala respuesta. Gracias sin embargo.
ShaggyInjun