From 9864f1c1361c196b33f524d917d7b5e5e10b0959 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Fri, 23 Feb 2018 11:51:30 +0100 Subject: rootston: wire up window alpha keybinding --- rootston/desktop.c | 9 +++++++++ rootston/keyboard.c | 5 +++++ rootston/rootston.ini.example | 2 ++ 3 files changed, 16 insertions(+) (limited to 'rootston') diff --git a/rootston/desktop.c b/rootston/desktop.c index 9d5cd2fa..ee0172e4 100644 --- a/rootston/desktop.c +++ b/rootston/desktop.c @@ -278,6 +278,15 @@ void view_rotate(struct roots_view *view, float rotation) { view_damage_whole(view); } +void view_cycle_alpha(struct roots_view *view) { + view->alpha -= 0.05; + /* Don't go completely transparent */ + if (view->alpha < 0.1) { + view->alpha = 1.0; + } + view_damage_whole(view); +} + void view_close(struct roots_view *view) { if (view->close) { view->close(view); diff --git a/rootston/keyboard.c b/rootston/keyboard.c index 6ec90c31..b5dac51c 100644 --- a/rootston/keyboard.c +++ b/rootston/keyboard.c @@ -106,6 +106,11 @@ static void keyboard_binding_execute(struct roots_keyboard *keyboard, } } else if (strcmp(command, "next_window") == 0) { roots_seat_cycle_focus(seat); + } else if (strcmp(command, "alpha") == 0) { + struct roots_view *focus = roots_seat_get_focus(seat); + if (focus != NULL) { + view_cycle_alpha(focus); + } } else if (strncmp(exec_prefix, command, strlen(exec_prefix)) == 0) { const char *shell_cmd = command + strlen(exec_prefix); pid_t pid = fork(); diff --git a/rootston/rootston.ini.example b/rootston/rootston.ini.example index a6619767..6f29a35d 100644 --- a/rootston/rootston.ini.example +++ b/rootston/rootston.ini.example @@ -42,8 +42,10 @@ meta-key = Logo # - "exec" to execute a shell command # - "close" to close the current view # - "next_window" to cycle through windows +# - "alpha" to cycle a window's alpha channel [bindings] Logo+Shift+e = exit Logo+q = close Logo+m = maximize Alt+Tab = next_window +Ctrl+Shift+a = alpha -- cgit v1.2.3