Added hide keyboard layout option

This commit is contained in:
bbgun7 2019-04-22 10:34:19 -07:00
parent 98e5afe364
commit 86f4fea55e
3 changed files with 13 additions and 2 deletions

View File

@ -54,6 +54,7 @@ struct swaylock_args {
bool show_caps_lock_text; bool show_caps_lock_text;
bool show_caps_lock_indicator; bool show_caps_lock_indicator;
bool show_keyboard_layout; bool show_keyboard_layout;
bool hide_keyboard_layout;
bool show_failed_attempts; bool show_failed_attempts;
bool daemonize; bool daemonize;
}; };

11
main.c
View File

@ -550,6 +550,7 @@ static int parse_options(int argc, char **argv, struct swaylock_state *state,
{"tiling", no_argument, NULL, 't'}, {"tiling", no_argument, NULL, 't'},
{"no-unlock-indicator", no_argument, NULL, 'u'}, {"no-unlock-indicator", no_argument, NULL, 'u'},
{"show-keyboard-layout", no_argument, NULL, 'k'}, {"show-keyboard-layout", no_argument, NULL, 'k'},
{"hide-keyboard-layout", no_argument, NULL, 'K'},
{"show-failed-attempts", no_argument, NULL, 'F'}, {"show-failed-attempts", no_argument, NULL, 'F'},
{"version", no_argument, NULL, 'v'}, {"version", no_argument, NULL, 'v'},
{"bs-hl-color", required_argument, NULL, LO_BS_HL_COLOR}, {"bs-hl-color", required_argument, NULL, LO_BS_HL_COLOR},
@ -607,6 +608,8 @@ static int parse_options(int argc, char **argv, struct swaylock_state *state,
"Display the given image.\n" "Display the given image.\n"
" -k, --show-keyboard-layout " " -k, --show-keyboard-layout "
"Display the current xkb layout while typing.\n" "Display the current xkb layout while typing.\n"
" -K, --hide-keyboard-layout "
"Hide the current xkb layout while typing.\n"
" -L, --disable-caps-lock-text " " -L, --disable-caps-lock-text "
"Disable the Caps Lock text.\n" "Disable the Caps Lock text.\n"
" -l, --indicator-caps-lock " " -l, --indicator-caps-lock "
@ -700,7 +703,7 @@ static int parse_options(int argc, char **argv, struct swaylock_state *state,
optind = 1; optind = 1;
while (1) { while (1) {
int opt_idx = 0; int opt_idx = 0;
c = getopt_long(argc, argv, "c:deFfhi:kLlnrs:tuvC:", long_options, c = getopt_long(argc, argv, "c:deFfhi:kKLlnrs:tuvC:", long_options,
&opt_idx); &opt_idx);
if (c == -1) { if (c == -1) {
break; break;
@ -744,6 +747,11 @@ static int parse_options(int argc, char **argv, struct swaylock_state *state,
state->args.show_keyboard_layout = true; state->args.show_keyboard_layout = true;
} }
break; break;
case 'K':
if (state) {
state->args.hide_keyboard_layout = true;
}
break;
case 'L': case 'L':
if (state) { if (state) {
state->args.show_caps_lock_text = false; state->args.show_caps_lock_text = false;
@ -1063,6 +1071,7 @@ int main(int argc, char **argv) {
.show_caps_lock_indicator = false, .show_caps_lock_indicator = false,
.show_caps_lock_text = true, .show_caps_lock_text = true,
.show_keyboard_layout = false, .show_keyboard_layout = false,
.hide_keyboard_layout = false,
.show_failed_attempts = false .show_failed_attempts = false
}; };
wl_list_init(&state.images); wl_list_init(&state.images);

View File

@ -156,7 +156,8 @@ void render_frame(struct swaylock_surface *surface) {
} }
xkb_layout_index_t num_layout = xkb_keymap_num_layouts(state->xkb.keymap); xkb_layout_index_t num_layout = xkb_keymap_num_layouts(state->xkb.keymap);
if (state->args.show_keyboard_layout || num_layout > 1) { if (!state->args.hide_keyboard_layout &&
(state->args.show_keyboard_layout || num_layout > 1)) {
xkb_layout_index_t curr_layout = 0; xkb_layout_index_t curr_layout = 0;
// advance to the first active layout (if any) // advance to the first active layout (if any)