Introduction
Introduction Statistics Contact Development Disclaimer Help
index.md - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
index.md (1604B)
---
1 keysequence
2 ===========
3
4 Description
5 -----------
6
7 This patch allows for defining sequential keybindings, for example `MOD+…
8 This is done not through the `XGrabKey()` which is used for root binding…
9 but by the `XGrabKeyboard()` so any key presses that are not defined will
10 stop the matching without passing them to programs. This behaviour is
11 less confusing.
12
13 It defines new bindable function `keypress_other()` that as argument tak…
14 a pointer to array of bindings.
15
16 static Key keyseq_a[] = {
17 { 0, XK_t, setlayout, {.v = &la…
18 { ShiftMask, XK_t, setlayout, {.v = &la…
19 { MODKEY, XK_y, setlayout, {.v …
20 {0}
21 }
22
23 static Key keys[] = {
24 { MODKEY, XK_a, keypress_other, {.v = keyseq_a}},
25 {0}
26 }
27
28 This assigns `MOD+a t`, `MOD+a T`, `MOD+a MOD+y` to changing layout, you…
29 nest bindings endlessly.
30
31 Notice that now keybinding arrays are ended by `{0}` empty element,
32 this is necessary because `Arg` structure can take only pointer
33 sized elements, there's no place to specify size so it has to be
34 calculated while running.
35
36 While typing sequence all events are ignored other than key presses
37 and mouse, moving mouse exits sequence.
38
39 Save your hands! Don't make long sequences, stick to simple, easy to
40 access binding and use plain letters, realistically speaking you'll
41 use it for dmenu scripts, layout bindings, and other rarely used
42 commands.
43
44 Download
45 --------
46 * [keysequence-20250606-0d6af14.diff](keysequence-20250606-0d6af14.diff)
47
48 Author
49 ------
50 * TUVIMEN <[email protected]>
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.