Como ter atalhos de teclado mais longos para stty

1

Se eu quiser ter mais de duas seqüências de teclas para ligar o sinal de suspensão, como eu faria isso? Para esclarecer, Ctrl z é para suspender. Mas se eu quiser Ctrl z e um k com as 2 teclas anteriores pressionadas para executar a mesma função, como eu faria isso?

Eu tentei vários combos w sucesso. Por exemplo:

stty susp \^ZV

Eu uso um terminal tty para que emuladores como o xterm não ajudem no meu caso.

    
por sunyata 05.02.2014 / 02:52

1 resposta

2

stty susp informa ao driver do terminal qual caractere (na verdade o que byte ), quando recebido sem escape do terminal (através do fio se for um terminal real, ou gravado para o lado mestre de um pseudo-terminal no caso de um emulador de terminal ou sshd ...), quando ISIG está ativado, faz com que um SIGTSTP seja enviado para o trabalho de primeiro plano.

Não há chave ou teclado envolvido aqui. É o caractere ^Z por padrão (0x1a). xterm e outros emuladores de terminal geralmente enviam esse caractere quando você pressiona Z enquanto segura a tecla Ctrl .

Se você quiser dificultar a suspensão de um processo, você pode configurar seu emulador de terminal para que ele não envie ^Z em Ctrl + Z , mas em alguma outra combinação de teclas. Com xterm :

xterm -xrm 'XTerm.VT100.translations: #override \
  Ctrl Shift <KeyPress> X: string(0x1a)\nCtrl <KeyPress> Z:'

Envia o caractere ^Z ao pressionar Ctrl + Shift + X , e não ao Ctrl-Z . Com o xterm, eu não acho que você possa especificar combinações de teclas arbitrárias, você só pode usar teclas modificadoras como Ctrl ou Shift.

É claro que você também pode definir um byte diferente para stty susp e ter xterm enviando uma combinação de teclas diferente.

Note que você provavelmente não deseja torná-lo um byte sobre 0x7f, já que eles apareceriam em diferentes caracteres UTF-8.

    
por 05.02.2014 / 10:25