diff options
author | Jari Vetoniemi <mailroxas@gmail.com> | 2015-01-18 03:34:18 +0200 |
---|---|---|
committer | Jari Vetoniemi <mailroxas@gmail.com> | 2015-01-18 03:34:18 +0200 |
commit | 92152cb5fb417eb81d687423eceda9f1884b1927 (patch) | |
tree | c73932d2e42b8ac7213547d23ca7ba0fecd1b6e1 | |
parent | c2eabf2be13de14e0e57ad6374cceb049b8d03da (diff) | |
download | bemenu-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.c | 10 | ||||
-rw-r--r-- | lib/renderers/x11/window.c | 1 | ||||
-rw-r--r-- | lib/renderers/x11/x11.c | 10 | ||||
-rw-r--r-- | lib/renderers/x11/x11.h | 1 |
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 { |