Como posso fazer o Ctrl + Alt agir como o Alt gr no Ubuntu?

11

Recentemente, mudei para o Ubuntu no meu laptop e uma coisa que quase me levou a voltar para o Windows é o fato de que eu não posso fazer Ctrl+ Altpara agir como Alt gr.

Programei em vários anos e, por exemplo, estou tão acostumado a fazer o sinal "$" pressionando ctrl+ alt+ 4. Aqui no Ubuntu eu tenho que usar "Alt gr + 4", que quase me deixa louco ...

Existe uma correção para isso?

elitasson
fonte
1
você já tentou brincar com os mapeamentos da tecla de composição? help.ubuntu.com/community/ComposeKey
Tim Kennedy
Você pode usar o xmodmapcomando para fazer isso. Verifique isto em askubuntu.com/questions/5095/typing-using-key-combinations
Bichoy
Experimente o xmodmap, que está disponível no pacote x11-xserver-utils no ubuntu. Permite remapear qualquer combinação de teclas.
Warren
@elitasson Se você encontrar a resposta para sua própria pergunta, faça isso como uma resposta separada.
Bernhard
@ Bernhard Não, você não pode fazer isso com o xmodmap. Ele não suporta tornar a combinação Ctrl + Alt um modificador distinto. Mas eu acho que você pode com xkb .
Gilles 'SO- stop be evil'

Respostas:

3

Você pode adicionar atalhos globais para escrever caracteres especiais. Eu uso isso frequentemente para o meu layout de teclado alemão com o Ubuntu (no Windows, isso funciona imediatamente).

Eu adicionei os seguintes atalhos:

Shift+ Enter+ 7para escrever a carta{

Shift+ Enter+ 0para escrever a carta}

Shift+ Enter+ 8para escrever a carta[

Shift+ Enter+ 9para escrever a carta]

Para adicionar esses atalhos, você precisará xbindkeyse xvkbd:

sudo apt-get install xbindkeys xvkbd

Em seguida, edite o arquivo de configuração:

vim ~/.xbindkeysrc

E adicione as seguintes linhas (edite-as como preferir):

"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

Em seguida, recarregue xbindkeys:

xbindkeys -f ~/.xbindkeysrc

Obrigado ao whiz por compartilhar isso ( http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/ ).

cheneym
fonte
1
Você poderia explicar o que as linhas m: 0xc + c: XX fazem?
Elitasson
1
Eu sei que essa é uma pergunta e resposta antiga, mas apenas para quem deseja adicionar mais caracteres como | ou @ ou €: os códigos-chave usados ​​em c:XXsão, até onde eu sei, não universais, portanto você não terá sorte pesquisando isso no Google. No entanto, você pode descobrir um código de chave localmente instalando e executando o "xev" em sua linha de comando. Ele imprimirá todas as ações do teclado e do mouse; portanto, você precisará rolar um pouco para encontrar o "caractere".
Nano Miratus
1
Por exemplo, pressionar <(para configurar |) durante a execução do xev mostra o seguinte: 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: FalseO número que você precisa está sempre na terceira linha, depois de "keycode". Portanto, neste caso, 94.
Nano Miratus
2

Depois de tentar e falhar em fazê-lo funcionar com uma combinação de xbindkeys e xvkbd / xte (nunca consegui que certos caracteres {, [,],}, \, etc. se comportassem corretamente, talvez porque eu uso um layout de teclado escandinavo), Finalmente encontrei uma solução simples e prática: Autokey. Aqui estão as instruções exatas para fazê-lo funcionar:

  1. Instale o Autokey através do Software Ubuntu (usei a versão GTK, não o KDE) ou por: “sudo apt-get install autokey-gtk”.
  2. Configure um script por chave, por exemplo, para {use este código: keyboard.send_keys("<alt_gr>+7")e defina a tecla de atalho como Ctrl + Alt + 7 (primeiro defina a tecla de atalho como 7 e adicione Ctrl e Alt como modificadores). Isso pelo menos funcionou para as chaves de escrita de código mais importantes: {[]}.
  3. Adicione autokey aos aplicativos de inicialização (pesquise "start" para encontrá-lo) e adicione um programa com "autokey" como comando.

Esta solução funcionará para qualquer coisa em execução na sessão X atual (eu acho), mas não funcionará se você iniciar uma nova sessão de terminal usando Ctrl + Alt + (F2-F6).

Jim Björklund
fonte
1

Embora isso ainda não responda à sua pergunta, acho que essa é uma solução mais fácil do que as outras respostas.

Para R-ALTfuncionar AltGr, você pode adicionar a seguinte linha ao seu ~/.xinitrc:

setxkbmap -option lv3:ralt_switch

Outras maneiras de passar para o terceiro nível (o que geralmente é alcançado usando a AltGrchave) podem ser encontradas e novas maneiras podem ser definidas /usr/share/X11/xkb/symbols/level3.

oleks
fonte
1

Aqui está o que eu fiz para que a L-Altchave atue exatamente da mesma forma que a Altgrchave. Não tentei com a CtrlAltchave

Consiste na modificação do arquivo level3

No terminal, altere o diretório:

cd /usr/share/X11/xkb/symbols

faça uma cópia do arquivo level3:

sudo cp level3 level3.old

edite level3 com qualquer editor de texto:

sudo gedit level3 

Você deve encontrar um bloco como este:

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

Adicione uma cópia do bloco com LALT (alt esquerdo) em vez de RALT (altgr):

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

Agora, deve haver mais 3 blocos começando com key <RALT>

Faça o mesmo com eles.

Salve e saia.

Quentin Donner
fonte
0

Eu só uso os sinais especiais quando escrevo código, então consegui corrigir isso como texto sublime.

Em Preferências -> Ligações de teclas - Usuário

insira o seguinte:

[
{ "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
fonte