martanne/dvtm

KEY_LEFT KEY_RIGHT and KEY_HOME don't work in separate st with abduco

wart-github opened this issue · 3 comments

This is an odd problem. I'm still finding the exact case where this happens.

Basically, to duplicate:

  1. in config.h bind some key to the right/up/down/left arrow or home, e.g.

    { { MOD, KEY_DOWN, }, { focusdown, { NULL } } },
    { { MOD, KEY_UP, }, { focusup, { NULL } } },

  2. launch st

  3. abduco -c test

  4. within this instance, up/down work as expected.

  5. launch a separate st

  6. abduco -a test

  7. within this instance, up/down do not work as expected.

I've tested this with dtach instead of abduco, with xterm (and console) instead of st. So I've narrowed it down to something funky in dvtm. However, that's as far as I've gotten.

FWIW, env in both st instances is the same except WINDOWID.

FWIW, oddly the KEY_PPAGE works fine (one of the defualt bindings)

Thanks in advance for any help on this.

A small update after some testing.

It would appears that keys that stop working when re-attached via a different st instance include: KEY_IC, KEY_DC, KEY_HOME, KEY_END, KEY_LEFT, KEY_RIGHT, KEY_UP, and KEY_DOWN.

However, note that KEY_PPAGE and KEY_NPAGE continue to work! (I.e., I can set #define MOD KEY_PPAGE and it will work fine, but, e.g., #define MOD KEY_IC will not.)

I still haven't found any rhyme or reason why that set of keys would be signaled out...

Three small updates (still debugging this):
(1) it works fine in console.
(2) it fails in st, xterm, urxvt
(3) it might be abduco/dvtm, since abduco -c foo yash and then abduco -a foo also exhibits same problem with arrow keys not registering in the attached abduco.

I tried to reproduce this problem but I could not. It works fine for me. I am using:

abduco-0.6 © 2013-2018 Marc André Tanner
latest git log 8c32909a159aaa9484c82b71f05b7a73321eb491
On branch master; nothing to commit, working tree clean

dvtm-v0.15-52-g7bcf43f © 2007-2016 Marc André Tanner
latest git log 7bcf43f
On branch master; nothing to commit, working tree clean

st 0.8.4
latest git log 4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf
On branch master
modified: config.def.h
modified: st.c
modified: st.h