Oi eu gostaria de mudar um pouco os mapeamentos de teclas no xfce4-terminal, talvez similar a adicionar Xterm.VT100.translations a .Xresources.
Em particular, eu quero fazer ctrl-backspace deletar a última palavra, e ctrl-delete deletar a próxima palavra.
Bônus: eu gostaria de fazer alt agir como ctrl (funcionalidade duplicada) para backspace, delete, seta para a esquerda, seta para a direita.
Como fazer todas ou algumas dessas coisas no xfce4-terminal?
EDITAR:
Progresso até agora: Estou usando o bash, e o bash usa a biblioteca readline e uma função integrada bash, "bind", para mapear sequências de teclas para funções readline. As funções que preciso são "shell-kill-word" e "shell-backward-kill-word". Em princípio, eu deveria ser capaz de fazer algo assim:
"\C-Rubout":shell-backward-kill-word
"\C-Delete":shell-kill-word
"\M-Rubout":shell-backward-kill-word
"\M-Delete":shell-kill-word
No entanto, o emulador xfce4-terminal, ou algum componente mais alto no processo (poderia ser o gerenciador de janelas, xfwm4, o próprio programa Xorg?) não está cooperando. Em geral, a meta key é traduzida para um caractere de escape, por exemplo, isso funciona:
"\ey":shell-kill-word <-- Meta + y kills next word
mas com o backspace e delete keys estou sem sorte. Eu testei os códigos de teclas de dois emuladores de terminal, xfce4-terminal e xterm, gerados por backspace e delete e combinações de teclas de controle no meu teclado. Aqui estão eles, conforme relatado pelo comando C-h C-l do emacs:
xterm:
backspace: DEL
delete: \e[3~
\C-backspace: \C-h
\C-delete: \e[3;5~
\M-backspace: y-umlaut (y with two dots over it)
\M-delete: nothing
xfce4-terminal:
backspace: DEL
delete: \e[3~
\C-backspace: DEL
\C-delete: \e[3;5~
\M-backspace: \e DEL
\M-delete: nothing
Em particular, em xfce4-terminal é impossível ligar \ C-backspace a shell-backword-kill-word porque ele envia exatamente o mesmo keycode que um backspace regular. E é impossível ligar o \ M-delete ao shell-kill-word porque ele não envia um código de chave.
Estou frustrado porque uma (grande) razão para mudar para o Linux e lidar com todas as questões de compatibilidade de hardware / software é que o Linux é muito personalizável. Eu gosto de ter minhas janelas se concentrar quando eu passar o mouse sobre elas, por exemplo, em vez de clicar nelas. Lidar com problemas como este nas distros modernas do Linux parece-me ser uma tarefa de alta prioridade. Infelizmente, não tenho tempo para fazer toda a pesquisa de fundo no X, e preciso fazer o próximo passo para resolver esse problema. Alguém com mais conhecimento do ecossistema Xorg pode me apontar na direção certa? Talvez haja um emulador de terminal alternativo que faça isso melhor?
Informação final: executando o emacs em uma janela X, ele recebe todos os códigos de acesso, menos um:
backspace: <backspace>
delete: <delete>
\C-backspace: <C-backspace>
\C-delete: <C-delete>
\M-backspace: <M-backspace>
\M-delete: nothing