
Estou usando o xterm, que vem com um conjunto de traduções padrão enumeradas na página de manual. Para #augment
ou #override
as traduções eu edito meu $XAPPLRESDIR/XTerm
arquivo; isso funciona conforme o esperado.
No entanto, não consigo encontrar uma maneira deremoveruma tradução padrão específica (e passar o evento para o aplicativo em execução no xterm).
Especificamente, quero que o Meta <Btn2Down>
evento seja passado para o aplicativo. As traduções padrão do xterm vinculam isso à clear-saved-lines()
ação com
LIGAÇÕES DE CHAVE PADRÃO
[...]
Meta <Btn2Down>:limpar-linhas salvas() \n\
O que preciso fazer para que a aplicação receba o evento Meta-Btn2Down?
Responder1
Pelo que entendi, não há nenhuma função no X Toolkit que possaremoveruma tradução. Você podesobreporouaumentarmas não remover seletivamente uma parte de uma tabela de tradução.
Essa foi uma das razões para adicionar oomitirTraduçãorecurso empatch #269. Com essa versão, a tabela de traduções é dividida em partes mais gerenciáveis, o que permite uma personalização um pouco melhor:
Omita seletivamente uma ou mais partes das traduções padrão do xterm na inicialização. O valor do recurso é uma lista de palavras-chave separadas por vírgulas, que pode ser abreviada: "tela cheia","bloqueio de rolagem","fontes shift"ou"roda-mouse". Xterm também reconhece"padrão", mas omitir isso tornará o programa inutilizável, a menos que você forneça uma definição semelhante nas configurações de recursos.
No entanto, concordando com StéphaneChazelas, não está claro como você usaria efetivamente a mudança proposta porque as sequências de escape que são passadas para o aplicativo são construídas dentro do xterm com base em eventos de botão. Talvez você possa fazer uma tradução especial que use uma ação de string.
Responder2
Se você está procurando chaves já vinculadas para serem passadas sem que o xterm as manipule, provavelmente você está procurando por ações insert()
ou .insert-eight-bit()
Na página de manual do xterm:
insert()
Esta ação insere o caractere ou string associado à tecla que foi pressionada.
insert-eight-bit()
Esta ação insere uma versão de oito bits (Meta) do caractere ou string associado à tecla que foi pressionada. Somente valores de byte único são tratados especialmente. A ação exata depende do valor doaltSendsEscapee ametaSendsEscapee aoitoBitInputrecursos. OmetaSendsEscaperecurso é testado primeiro. Veja ooitoBitInputrecurso para uma discussão completa.O termo “oito bits” é enganoso:termo xverifica se a chave está no intervalo de 128 a 255 (o oitavo bit está definido). Se o valor estiver nesse intervalo, dependendo dos valores do recurso,termo xpode então fazer um dos seguintes:
- adicione 128 ao valor, definindo seu oitavo bit,
- enviar um byte ESC antes da chave, ou
- envie a chave inalterada.
Por exemplo,
Meta <Btn2Down>:insert-eight-bit() \n\
PS: Acabei de resolver o mesmo problema para evitar o biding Alt <Key>Return:fullscreen() \n\
, para poder passar Alt-return para uma aplicação.