Merge pull request #73 from jeremiah-miller/add-hide-keyboard-layout

Add hide keyboard layout option
This commit is contained in:
Drew DeVault 2019-04-22 16:14:09 -06:00 committed by GitHub
commit f403cc0702
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 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)

View File

@ -55,6 +55,10 @@ Locks your Wayland session.
Force displaying the current xkb layout while typing, even if only one layout Force displaying the current xkb layout while typing, even if only one layout
is configured. is configured.
*-K, --hide-keyboard-layout*
Force hiding the current xkb layout while typing, even if more than one layout
is configured or the show-keyboard-layout option is set.
*-L, --disable-caps-lock-text* *-L, --disable-caps-lock-text*
Disable the Caps Lock Text. Disable the Caps Lock Text.