commit - e0ec2cf984ff8006b99cf4ca8590ceec7113daac
commit + f4a6c20f464df79a9b15b4a2a11daaa7a06c60a0
blob - 93fc26d650e11f32dafb84cda6609cb983eaa708
blob + 07a22ed9610a731ebf043385e3ed653d7fc86902
--- config.def.h
+++ config.def.h
*/
static KeySym mappedkeys[] = { -1 };
+/*
+ * Which bits of the state should be ignored. By default the state bit for the
+ * keyboard layout (XK_SWITCH_MOD) is ignored.
+ */
+uint ignoremod = XK_SWITCH_MOD;
+
/* key, mask, output, keypad, cursor, crlf */
static Key key[] = {
/* keysym mask string keypad cursor crlf */
blob - 0ae2c90b3b38f9f2d8878f2f272eeb0dbd3e7028
blob + 64366afb3e9393613db1460faed9c5bd9090c05c
--- st.c
+++ st.c
#define DRAW_BUF_SIZ 20*1024
#define XK_ANY_MOD UINT_MAX
#define XK_NO_MOD 0
+#define XK_SWITCH_MOD (1<<13)
#define REDRAW_TIMEOUT (80*1000) /* 80 ms */
inline bool
match(uint mask, uint state) {
+ state &= ~(ignoremod);
+
if(mask == XK_NO_MOD && state)
return false;
if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state)