rootston: wire up window alpha keybinding

This commit is contained in:
Guido Günther 2018-02-23 11:51:30 +01:00
parent e2ea1ebe48
commit 9864f1c136
3 changed files with 16 additions and 0 deletions

View file

@ -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);

View file

@ -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();

View file

@ -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