¿Cómo puedo hacer que Ctrl + Alt actúe como Alt gr en Ubuntu?

11

Recientemente cambié a Ubuntu en mi computadora portátil y una cosa que casi me hizo volver a Windows es el hecho de que no puedo hacer que Ctrl+ Altactúe como Alt gr.

Lo he programado en varios años y, por ejemplo, estoy tan acostumbrado a hacer el signo "$" presionando ctrl+ alt+ 4. Aquí en Ubuntu tengo que usar "Alt gr + 4", la bruja casi me vuelve loco ...

¿Hay alguna solución para esto?

elitasson
fuente
1
¿Has intentado jugar con las asignaciones de la composekey? help.ubuntu.com/community/ComposeKey
Tim Kennedy
Puede usar el xmodmapcomando para hacer esto. Mira esto askubuntu.com/questions/5095/typing-using-key-combinations
Bichoy
Pruebe xmodmap, que está disponible en el paquete x11-xserver-utils en ubuntu. Le permite reasignar cualquier combinación de teclas.
Warren
@elitasson Si encuentra la respuesta a su propia pregunta, póngala como una respuesta separada.
Bernhard
@ Bernhard No, no puedes hacer esto con xmodmap. No es compatible con hacer que la combinación Ctrl + Alt sea un modificador distinto. Pero creo que puedes con xkb .
Gilles 'SO- deja de ser malvado'

Respuestas:

3

Puede agregar accesos directos globales para escribir caracteres especiales. Lo uso a menudo para mi diseño de teclado alemán con Ubuntu (en Windows esto funciona de fábrica).

Agregué los siguientes atajos:

Shift+ Enter+ 7para escribir la carta{

Shift+ Enter+ 0para escribir la carta}

Shift+ Enter+ 8para escribir la carta[

Shift+ Enter+ 9para escribir la carta]

Para agregar estos atajos, necesitará xbindkeysy xvkbd:

sudo apt-get install xbindkeys xvkbd

Luego edite el archivo de configuración:

vim ~/.xbindkeysrc

Y agregue las siguientes líneas (edítelas como prefiera):

"xvkbd -xsendevent -text '{'"
    m:0xc + c:16
    Control+Alt + 7

"xvkbd -xsendevent -text '['"
    m:0xc + c:17
    Control+Alt + 8

"xvkbd -xsendevent -text ']'"
    m:0xc + c:18
    Control+Alt + 9

"xvkbd -xsendevent -text '}'"
    m:0xc + c:19
    Control+Alt + 0

"xvkbd -xsendevent -text '\[backslash]'"
    m:0xc + c:20
    Control+Alt + ssharp

"xvkbd -xsendevent -text '\[asciitilde]'"
    m:0xc + c:35
    Control+Alt + plus

Luego vuelva a cargar xbindkeys:

xbindkeys -f ~/.xbindkeysrc

Gracias a whiz por compartir esto ( http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/ ).

cheneym
fuente
1
¿Podría explicar qué hacen las líneas m: 0xc + c: XX?
elitasson
1
Sé que esta es una vieja pregunta y respuesta, pero solo para aquellos que desean agregar más caracteres como | o @ o €: los códigos clave utilizados en c:XX, por lo que sé, no son universales, por lo que no tendrás suerte buscando en Google. Sin embargo, puede encontrar un código clave localmente instalando y ejecutando "xev" en su línea de comando. Imprimirá todas sus acciones de teclado y mouse, por lo que tendrá que desplazarse un poco para encontrar "su" personaje.
Nano Miratus
1
Por ejemplo, al presionar <(para configurar |) mientras se ejecuta xev se imprime esto: KeyRelease event, serial 40, synthetic NO, window 0x4c00001, root 0x7e, subw 0x0, time 35363548, (135,60), root:(903,472), state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES, XLookupString gives 1 bytes: (3c) "<" XFilterEvent returns: Falseel número que necesita siempre está en la tercera línea, después del "código clave". Entonces, en este caso, 94.
Nano Miratus
2

Después de intentar y no lograr que funcione con una combinación de xbindkeys y xvkbd / xte (nunca pude lograr que ciertos caracteres {, [,],}, \, etc. se comporten correctamente tal vez porque uso un diseño de teclado escandinavo), Finalmente encontré una solución simple y práctica: Autokey. Aquí están las instrucciones exactas para que funcione:

  1. Instale Autokey a través del software Ubuntu (utilicé la versión GTK, no KDE) o mediante: "sudo apt-get install autokey-gtk".
  2. Configure un script por tecla, por ejemplo, para {use este código: keyboard.send_keys("<alt_gr>+7")y configure la tecla de acceso rápido en Ctrl + Alt + 7 (primero configure la tecla de acceso rápido en 7 y luego agregue Ctrl y Alt como modificadores). Esto al menos funcionó para las claves de escritura de código más importantes: {[]}.
  3. Agregue la clave automática a las Aplicaciones de inicio (busque "inicio" para encontrarla) y luego agregue un programa con "clave automática" como comando.

Esta solución funcionará para cualquier cosa que se ejecute en la sesión X actual (creo), pero no funcionará si inicia una nueva sesión de terminal usando Ctrl + Alt + (F2-F6).

Jim Björklund
fuente
1

Aunque esto todavía no responde a su pregunta, creo que es una solución más fácil que las otras respuestas.

Para que R-ALTfuncione AltGr, puede agregar la siguiente línea a su ~/.xinitrc:

setxkbmap -option lv3:ralt_switch

Se AltGrpueden encontrar otras formas de pasar al tercer nivel (lo que generalmente se logra usando la clave), y se pueden definir nuevas formas /usr/share/X11/xkb/symbols/level3.

oleks
fuente
1

Esto es lo que hice para que la L-Altclave actúe exactamente igual que la Altgrclave. No intenté con la CtrlAltllave

Consiste en modificar el archivo level3

En la terminal, cambie el directorio:

cd /usr/share/X11/xkb/symbols

haga una copia del archivo level3:

sudo cp level3 level3.old

edite level3 con cualquier editor de texto:

sudo gedit level3 

Deberías encontrar un bloque como este:

  key <RALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

Agregue una copia del bloque con LALT (alt izquierda) en lugar de RALT (altgr):

  key <LALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  modifier_map Mod5   { ISO_Level3_Shift };

Ahora, debería haber otros 3 bloques que comienzan con key <RALT>

Haz lo mismo con ellos.

Guardar y Salir.

Quentin Donner
fuente
0

Solo uso los signos especiales cuando escribo código, así que logré arreglar esto es Sublime Text.

En Preferencias -> Vinculaciones de teclas - Usuario

inserte lo siguiente:

[
{ "keys": ["ctrl+alt+2"], "command": "insert", "args": {"characters": "@"} },
{ "keys": ["ctrl+alt+3"], "command": "insert", "args": {"characters": "£"} },
{ "keys": ["ctrl+alt+4"], "command": "insert", "args": {"characters": "$"} },
{ "keys": ["ctrl+alt+5"], "command": "insert", "args": {"characters": "€"} },
{ "keys": ["ctrl+alt+7"], "command": "insert", "args": {"characters": "{"} },
{ "keys": ["ctrl+alt+8"], "command": "insert", "args": {"characters": "["} },
{ "keys": ["ctrl+alt+9"], "command": "insert", "args": {"characters": "]"} },
{ "keys": ["ctrl+alt+0"], "command": "insert", "args": {"characters": "}"} },
{ "keys": ["ctrl+alt++"], "command": "insert", "args": {"characters": "\\"} },
{ "keys": ["ctrl+alt+<"], "command": "insert", "args": {"characters": "|"} }

]

elitasson
fuente