É possível passar recursos para aplicativos X na linha de comando anexando-os com parâmetros -xrm. Portanto, se eu quiser que o plano de fundo do Xmessage seja cinza, posso emitir xmessage Hi -xrm "xmessage*background: grey"
.
As coisas ficam complicadas se eu quiser modificar as traduções de eventos. No meu .Xresouces
, isso
Xmessage*Translations:#override\
<Key>F10:exit(-1) \n\
<Key>q:exit(-1)
consegue definir as teclas F10 e q para sair de qualquer janela do Xmessage, mas estou tendo problemas para fazer isso com -xrm na linha de comando, certamente por causa das novas linhas e das barras invertidas de escape.
Já tentei os três comandos a seguir, mas sem sucesso.
xmessage Hi -xrm "xmessage*Translations:#override <Key>s:exit(4)
<Key>r:exit(3)
<Key>p:exit(2)"
xmessage Hi -xrm "xmessage*Translations:#override\
<Key>s:exit(4)\n\
<Key>r:exit(3)\n\
<Key>p:exit(2)"
xmessage Hi -xrm "xmessage*Translations:#override <Key>s:exit(4)" \
-xrm "xmessage*Translations:#override <Key>r:exit(3)" \
-xrm "xmessage*Translations:#override <Key>p:exit(2)"
O 3º comando só atribui a última chave com sucesso. Os outros falham, embora eu esperasse que o 1º funcionasse, pois insere uma nova linha após exit(4) e exit(3) , conforme confirmado pelo eco do comando.
O que estou perdendo e como posso corrigi-lo?
Você precisa colocar entre aspas simples:
Caso contrário, as novas linhas serão perdidas.