Super notação chave para stty

1

Tentando trocar as teclas Ctrl e Super em torno de uma caixa do Ubuntu.

Consegui trocar Super e Ctrl usando o xmodmap. Agora eu só preciso mudar o stty intr para ser Super_L + C

Eu não posso para a vida de mim encontrar a notação para a super-chave. (Por exemplo ^ é a chave de controle)

Alguém sabe o que a notação é para super com stty? eu gostaria de poder digitar

stty intr Super_L + C

Por exemplo.

Ou alguma outra maneira ainda melhor de fazer Super + C a interrupção

    
por StudioMatrix Webmaster 14.02.2017 / 04:38

1 resposta

1

Não há notação para isso.

Em geral, stty (e os componentes do sistema operacional que usam essas configurações) não vêem as chaves como tal - o aplicativo terminal traduz essas chaves para uma sequência de bytes e a camada tty só vê essas chaves bytes e stty permitem que você veja um byte específico que fará com que a camada tty acione o sinal de interrupção.

Em outras palavras, o parâmetro intr é um valor de byte único correspondente a algum símbolo que você pode realmente entrar . (Nos primeiros sistemas Unix, o intr estava definido para o sinal # .)

Então, quando você define intr em ^C , isso é apenas abreviado para byte 0x03 (compare: a letra C é 0x43 em ASCII). Basicamente, os dois Shift e Ctrl apenas definem e limpam alguns bits do byte 'base'. Não há tal equivalente para Super, no entanto.

Como resultado, a maioria dos terminais simplesmente ignora Super e envia a letra base não modificada; alguns podem enviar seqüências ANSI "escape" (semelhantes às que você obtém de teclas de seta ou teclas de função), mas você não pode usar aquelas com stty de qualquer maneira, porque ainda requer um único byte. Você não pode ligar a chave de interrupção a uma seqüência multibyte; apenas pegaria o primeiro byte.

Assim, a única coisa que você pode fazer é hackear o aplicativo do terminal para enviar um byte 0x03 quando ele receber o pressionamento da tecla Super + C. Alguns emuladores de terminal suportam isso via "atalhos de teclado" genéricos, outros podem precisar de patches de código-fonte reais.

    
por 14.02.2017 / 06:45