summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2015-01-18 03:34:18 +0200
committerJari Vetoniemi <mailroxas@gmail.com>2015-01-18 03:34:18 +0200
commit92152cb5fb417eb81d687423eceda9f1884b1927 (patch)
treec73932d2e42b8ac7213547d23ca7ba0fecd1b6e1
parentc2eabf2be13de14e0e57ad6374cceb049b8d03da (diff)
downloadbemenu-92152cb5fb417eb81d687423eceda9f1884b1927.tar.gz
bemenu-92152cb5fb417eb81d687423eceda9f1884b1927.tar.bz2
bemenu-92152cb5fb417eb81d687423eceda9f1884b1927.zip
Add alt keybindings from demenu to gui backends
-rw-r--r--lib/renderers/wayland/wayland.c10
-rw-r--r--lib/renderers/x11/window.c1
-rw-r--r--lib/renderers/x11/x11.c10
-rw-r--r--lib/renderers/x11/x11.h1
4 files changed, 18 insertions, 4 deletions
diff --git a/lib/renderers/wayland/wayland.c b/lib/renderers/wayland/wayland.c
index 252d86f..e1f317d 100644
--- a/lib/renderers/wayland/wayland.c
+++ b/lib/renderers/wayland/wayland.c
@@ -128,14 +128,20 @@ poll_key(const struct bm_menu *menu, unsigned int *unicode)
return (mods & MOD_CTRL ? BM_KEY_BACKSPACE : BM_KEY_UNICODE);
case XKB_KEY_u:
- return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_LEFT : BM_KEY_UNICODE);
+ return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_LEFT : (mods & MOD_ALT ? BM_KEY_PAGE_UP : BM_KEY_UNICODE));
case XKB_KEY_k:
- return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_RIGHT : BM_KEY_UNICODE);
+ return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_RIGHT : (mods & MOD_ALT ? BM_KEY_DOWN : BM_KEY_UNICODE));
case XKB_KEY_w:
return (mods & MOD_CTRL ? BM_KEY_WORD_DELETE : BM_KEY_UNICODE);
+ case XKB_KEY_j:
+ return (mods & MOD_ALT ? BM_KEY_UP : BM_KEY_UNICODE);
+
+ case XKB_KEY_d:
+ return (mods & MOD_ALT ? BM_KEY_PAGE_DOWN : BM_KEY_UNICODE);
+
default: break;
}
diff --git a/lib/renderers/x11/window.c b/lib/renderers/x11/window.c
index 0b4c94a..3fb24dc 100644
--- a/lib/renderers/x11/window.c
+++ b/lib/renderers/x11/window.c
@@ -105,6 +105,7 @@ bm_x11_window_key_press(struct window *window, XKeyEvent *ev)
window->mods = 0;
if (ev->state & ControlMask) window->mods |= MOD_CTRL;
if (ev->state & ShiftMask) window->mods |= MOD_SHIFT;
+ if (ev->state & Mod1Mask) window->mods |= MOD_ALT;
window->keysym = keysym;
}
diff --git a/lib/renderers/x11/x11.c b/lib/renderers/x11/x11.c
index 81ccc5d..cb0ffbb 100644
--- a/lib/renderers/x11/x11.c
+++ b/lib/renderers/x11/x11.c
@@ -117,14 +117,20 @@ poll_key(const struct bm_menu *menu, unsigned int *unicode)
return (mods & MOD_CTRL ? BM_KEY_BACKSPACE : BM_KEY_UNICODE);
case XK_u:
- return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_LEFT : BM_KEY_UNICODE);
+ return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_LEFT : (mods & MOD_ALT ? BM_KEY_PAGE_UP : BM_KEY_UNICODE));
case XK_k:
- return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_RIGHT : BM_KEY_UNICODE);
+ return (mods & MOD_CTRL ? BM_KEY_LINE_DELETE_RIGHT : (mods & MOD_ALT ? BM_KEY_DOWN : BM_KEY_UNICODE));
case XK_w:
return (mods & MOD_CTRL ? BM_KEY_WORD_DELETE : BM_KEY_UNICODE);
+ case XK_j:
+ return (mods & MOD_ALT ? BM_KEY_UP : BM_KEY_UNICODE);
+
+ case XK_d:
+ return (mods & MOD_ALT ? BM_KEY_PAGE_DOWN : BM_KEY_UNICODE);
+
default: break;
}
diff --git a/lib/renderers/x11/x11.h b/lib/renderers/x11/x11.h
index e930cb2..fa6cea6 100644
--- a/lib/renderers/x11/x11.h
+++ b/lib/renderers/x11/x11.h
@@ -9,6 +9,7 @@
enum mod_bit {
MOD_SHIFT = 1<<0,
MOD_CTRL = 1<<1,
+ MOD_ALT = 1<<2,
};
struct buffer {