xedit: a combinação de teclas ctrl-sublinhado está entorpecida

0

Eu tenho um Dell Latitude e, eventualmente, uso o xedit no cygwin-X (e via ssh -X também em máquinas Linux). Eu preciso da tecla CTRL-_ para desfazer edições. Essa combinação de teclas é reconhecida por, e. xemacs (para um propósito diferente). Tanto quanto eu posso ver o pressionamento de tecla em aplicativos X é recebido como ASCII 31 ("Unit Separator"). Qual código o xedit espera, e se não é o ASCII 31, como posso mapeá-lo para o esperado?

    
por Hans-Georg Scherneck 05.07.2018 / 11:59

1 resposta

1

Aplicativos X interpretam eventos , não pressionamentos de teclas . Se você executou xev , poderá ver algo assim (sublinhado é uma tecla deslocada no meu teclado):

KeyPress event, serial 34, synthetic NO, window 0xe00001,
    root 0x111, subw 0xe00002, time 1812782646, (61,35), root:(81,78),
    state 0x0, keycode 67 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0xe00001,
    root 0x111, subw 0xe00002, time 1812783382, (61,35), root:(81,78),
    state 0x4, keycode 68 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0xe00001,
    root 0x111, subw 0xe00002, time 1812784150, (61,35), root:(81,78),
    state 0x5, keycode 35 (keysym 0x5f, underscore), same_screen YES,
    XLookupString gives 1 bytes: (1f) ""
    XmbLookupString gives 1 bytes: (1f) ""
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0xe00001,
    root 0x111, subw 0xe00002, time 1812784374, (61,35), root:(81,78),
    state 0x5, keycode 35 (keysym 0x5f, underscore), same_screen YES,
    XLookupString gives 1 bytes: (1f) ""
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0xe00001,
    root 0x111, subw 0xe00002, time 1812785271, (61,35), root:(81,78),
    state 0x5, keycode 68 (keysym 0xffe2, Shift_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0xe00001,
    root 0x111, subw 0xe00002, time 1812785335, (61,35), root:(81,78),
    state 0x4, keycode 67 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

xedit usa o recurso X Toolkit traduções para converter esses eventos em uma ação, por exemplo, usando o configuração de recursos padrão compilada em TextTr.c:

":c<Key>_:"     "undo()\n"

Então (a menos que você esteja substituindo os recursos padrão), é simplesmente o modificador de controle mais o sublinhado (no entanto, seu teclado o produz).

xedit não reconheceria o ASCII ^_ .

    
por 05.07.2018 / 22:53