Não é possível alternar para o console depois de usar Alt_R como mod4

5

Eu gostaria de usar a tecla ALT como 'mod4' (principalmente porque, por padrão, o gerenciador de janelas 'awesome' está usando o mod4 como um modificador para a maioria dos comandos WM e eu gosto muito dessa idéia).

No entanto, tenho um problema: assim que adicionar:

xmodmap -e 'add mod4 = Alt_R'

então eu não posso usar, digamos, CTRL + ALT + F2 para trocar de X para um console de texto.

(note que sempre usei ALT para fazer isso, não ALT: na verdade, antes de atribuir ALT à mod4, nunca usei essa chave)

É realmente um problema com os atalhos / modificadores desde que eu ainda posso mudar de X para um console de texto usando, digamos, o comando chvt . Por exemplo, o seguinte sempre funciona bem:

chvt 1

Assim que eu limpar o mod4:

xmodmap -e 'clear mod4'

Eu posso usar CTRL+ALT+F2 (esquerda ALT mais uma vez) para mudar para o meu console de texto.

Mas é claro que eu não recebo os atalhos padrão do mod4 + ... 'awesome'.

Então, basicamente, eu posso usar o ALT como mod4 e ter um ótimo trabalho ou eu posso limpar o mod4 (não atribuir ALT a qualquer modificador) e ser capaz de usar CTRL + ALT + F2 para Swith para um console de texto.

Mas não posso fazer as duas coisas.

Algum de vocês sabe por que configurar ALT como mod4 impede CTRL + ALT + F2 de mudar para um console de texto?

Aqui está o xmodmap completo (quando CTRL + esquerdo ALT + F2 está não funcionando):

shift   Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_L (0x42), Control_R (0x69)
mod1    Alt_L (0x40), Alt_L (0xcc), Metal_L (0xcd)
mod2    Num_Lock (0x4d)
mod3    
mod4    Alt_R (0x6c)
mod5    ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

Mais uma vez, limpando o mod4 e eu posso mudar para um console de texto bem ...

Não estou interessado em usar outra configuração que:

  • direito ALT como mod4

  • mod4 + ... como atalhos para incríveis

  • CTRL + ALT + F {1,9} para alternar para um VT diferente

Agora, é claro, eu posso usar "chvt" para mudar para um console de texto, mas isso não funcionaria tão bem se meu X estivesse travado.

Eu sempre gosto de ter a possibilidade de mudar para um console de texto para, digamos, matar o X se ele estiver preso (fazendo isso desde os primeiros dias do slackware).

    
por Cedric Martin 26.07.2012 / 05:16

1 resposta

4

Ao tentar usar gerenciadores de janelas semelhantes (xwem, ratpoison) pela primeira vez, eu também tentei seguir as instruções de configuração que envolvem xmodmap para obter uma chave modifiier para o gerenciador de janelas, mas então eu senti que usando xmodmap no meu sistema causa alguma confusão, porque no meu sistema (uma distro ALTLinux) sempre foi dada atenção à configuração de teclado multilíngue via XKB, ao invés de via xmodmap .

Então, eu encontrei uma opção XKB para rotular a chave que eu queria como "Hyper", e então usei o modificador "Hyper" na configuração para xwem ou ratpoison.

No meu caso, a opção para setxkbmap é:

 -option altwin:hyper_win

e aqui está o comentário que salvei na ocasião de adicioná-lo à minha configuração:

xemacs-xwem uses Hyper, so I found this predefined XKB map (in xkb/symbols/altwin), which uses the WIN keys.

Perhaps later I'll make up another XKB map for me, say, using the right Control as Hyper (that will force my hand to use the right Control--now my hand just ignores it).

I thought it's a more clean way to get myself a Hyper key through XKB rather than through xmodmap (as described in XWEM docs), because:

  1. xmodmap configuration of modifier keys seems not to be nice w.r.t. the way it forces one to present one's intentions: one must say something about arbitrarily numbered modifier bits, but I don't want to think about these technical things: I need merely a "Hyper" modifier, not some obscure manipulations with the internals! In xmodmap, I'd need to give 2 or even 3 obscure statements to achieve the result, although logically this is a single wish and operation. (One xmodmap statement would not be enough, cf. XEmacs' warnings (FIXME: insert!) if you map Control_R to a modN; there are some technical constraints.)

  2. one is told stories that XKB and xmodmap don't play well together, so that not all X programs will work nicely and coherently if you mix them (I must give a link here, FIXME).

Aqui está a definição relevante de /usr/share/X11/xkb/symbols/altwin , se alguém estiver interessado:

partial modifier_keys 
xkb_symbols "hyper_win" {
    key <LWIN> {    [   Hyper_L         ]   };
    key <RWIN> {    [   Hyper_R         ]   };
    modifier_map Mod4   { Hyper_L, Hyper_R };
};
    
por 17.11.2012 / 20:08