dwm-setxkbgroup-6.4.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-setxkbgroup-6.4.diff (1326B) | |
--- | |
1 From cbaa365a336355712e3c63a550f903b2cd46ab58 Mon Sep 17 00:00:00 2001 | |
2 From: Anton Yabchinskiy <[email protected]> | |
3 Date: Sun, 1 Oct 2023 22:42:59 +0300 | |
4 Subject: [PATCH] Add setxkbgroup() function to be used in keys[] | |
5 | |
6 --- | |
7 dwm.c | 17 +++++++++++++++++ | |
8 1 file changed, 17 insertions(+) | |
9 | |
10 diff --git a/dwm.c b/dwm.c | |
11 index e5efb6a2..4a6632f3 100644 | |
12 --- a/dwm.c | |
13 +++ b/dwm.c | |
14 @@ -36,6 +36,7 @@ | |
15 #include <X11/Xlib.h> | |
16 #include <X11/Xproto.h> | |
17 #include <X11/Xutil.h> | |
18 +#include <X11/XKBlib.h> | |
19 #ifdef XINERAMA | |
20 #include <X11/extensions/Xinerama.h> | |
21 #endif /* XINERAMA */ | |
22 @@ -234,6 +235,7 @@ static int xerror(Display *dpy, XErrorEvent *ee); | |
23 static int xerrordummy(Display *dpy, XErrorEvent *ee); | |
24 static int xerrorstart(Display *dpy, XErrorEvent *ee); | |
25 static void zoom(const Arg *arg); | |
26 +static void setxkbgroup(const Arg *arg); | |
27 | |
28 /* variables */ | |
29 static const char broken[] = "broken"; | |
30 @@ -2122,6 +2124,21 @@ zoom(const Arg *arg) | |
31 pop(c); | |
32 } | |
33 | |
34 +void | |
35 +setxkbgroup(const Arg *arg) { | |
36 + static int hasxkb = -1; | |
37 + if (hasxkb < 0) { | |
38 + int major = XkbMajorVersion; | |
39 + int minor = XkbMinorVersion; | |
40 + hasxkb = XkbQueryExtension(dpy, NULL, NULL, NULL, &majo… | |
41 + } | |
42 + if (hasxkb > 0) { | |
43 + if (arg != NULL && arg->ui < 4) { | |
44 + XkbLockGroup(dpy, XkbUseCoreKbd, arg->ui); | |
45 + } | |
46 + } | |
47 +} | |
48 + | |
49 int | |
50 main(int argc, char *argv[]) | |
51 { | |
52 -- | |
53 2.39.2 | |
54 |