summaryrefslogtreecommitdiff
path: root/dwm.1%25252525252525252525252525252525252525252525252525252525252525252525252...
diff options
context:
space:
mode:
authorChris Down <chris@chrisdown.name>2022-12-07 14:55:08 +0000
committerHiltjo Posthuma <hiltjo@codemadness.org>2022-12-07 23:06:26 +0100
commit89f9905714c1c1b2e8b09986dfbeca15b68d8af8 (patch)
tree6cdaa8ca57ad6edb94136a621edc2200245bcbfe /dwm.1%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d966d76a428421e7dab9bdaa3c3196cd3936b7955%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d966d76a428421e7dab9bdaa3c3196cd3936b7955%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d7151bf8329fbac690361ef2bd064b30cd6266b29%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%25252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%25252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%2525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%252525252525252525252525252525252525252525252525252525252525252525252525253d1%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525252525252525253fid2%25252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525252525253fid2%252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525253fid2%2525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525253fid%252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525253fid%252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525253fid%2525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525253fid%25252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525253fid%252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525253fid%2525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525253fid%25252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%252525252525252525253fid%252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525253fid%2525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%25252525252525253fid%25252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525252525253fid%252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525252525253fid%2525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%25252525253fid%25252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525253fid%252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525253fid%2525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%25253fid%25253d712d6639ff8e863560328131bbb92b248dc9cde7%253fid%253d712d6639ff8e863560328131bbb92b248dc9cde7%3fid%3d89f9905714c1c1b2e8b09986dfbeca15b68d8af8?id=89f9905714c1c1b2e8b09986dfbeca15b68d8af8
parentba56fe9fea0a28d8184a727a987836a0903e2682 (diff)
grabkeys: Avoid missing events when a keysym maps to multiple keycodes
It's not uncommon for one keysym to map to multiple keycodes. For example, the "play" button on my keyboard sends keycode 172, but my bluetooth headphones send keycode 208, both of which map back to XF86AudioPlay: % xmodmap -pke | grep XF86AudioPlay keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay This is a problem because the current code only grabs a single one of these keycodes, which means that events for any other keycode also mapping to the bound keysym will not be handled by dwm. In my case, this means that binding XF86AudioPlay does the right thing and correctly handles my keyboard's keys, but does nothing on my headphones. I'm not the only person affected by this, there are other reports[0]. In order to fix this, we look at the mappings between keycodes and keysyms at grabkeys() time and pick out all matching keycodes rather than just the first one. The keypress() side of this doesn't need any changes because the keycode gets converted back to a canonical keysym before any action is taken. 0: https://github.com/cdown/dwm/issues/11
Diffstat (limited to 'dwm.1%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d966d76a428421e7dab9bdaa3c3196cd3936b7955%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d966d76a428421e7dab9bdaa3c3196cd3936b7955%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d7151bf8329fbac690361ef2bd064b30cd6266b29%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid2%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%25252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%252525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%2525252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%25252525252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%25252525252525252525252525252525252525252525252525252525252525252525252525252525253d1%2525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525252525252525252525252525252525252525252525253fshowmsg%252525252525252525252525252525252525252525252525252525252525252525252525253d1%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525252525252525252525252525253fid2%25252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525252525253fid2%252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525253fid2%2525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525252525252525253fid%252525252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525253fid%252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525253fid%2525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525253fid%25252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525253fid%252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525253fid%2525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525253fid%25252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%25252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%252525252525252525253fid%252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525253fid%2525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%25252525252525253fid%25252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525252525253fid%252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525252525253fid%2525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%25252525253fid%25252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525253fid%252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%2525253fid%2525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%25253fid%25253d712d6639ff8e863560328131bbb92b248dc9cde7%253fid%253d712d6639ff8e863560328131bbb92b248dc9cde7%3fid%3d89f9905714c1c1b2e8b09986dfbeca15b68d8af8?id=89f9905714c1c1b2e8b09986dfbeca15b68d8af8')
0 files changed, 0 insertions, 0 deletions