opt: optimize keymap set

This commit is contained in:
DreamMaoMao 2025-10-22 13:24:36 +08:00
parent 25067738ed
commit bf6644c9f5
3 changed files with 7 additions and 3 deletions

View file

@ -123,6 +123,10 @@ static const struct xkb_rule_names xkb_fallback_rules = {
.options = NULL, .options = NULL,
}; };
static const struct xkb_rule_names xkb_default_rules = {
.options = NULL,
};
struct xkb_rule_names xkb_rules = { struct xkb_rule_names xkb_rules = {
/* can specify fields: rules, model, layout, variant, options */ /* can specify fields: rules, model, layout, variant, options */
/* example: /* example:

View file

@ -865,7 +865,7 @@ int switch_keyboard_layout(const Arg *arg) {
if (!check_keyboard_rules_validate(&rules)) { if (!check_keyboard_rules_validate(&rules)) {
wlr_log(WLR_ERROR, wlr_log(WLR_ERROR,
"Keyboard rules validation failed, skipping layout reset"); "Keyboard rules validation failed, skipping layout reset");
rules = xkb_fallback_rules; rules = xkb_default_rules;
} }
char *layout_buf = (char *)rules.layout; // 假设这是可修改的 char *layout_buf = (char *)rules.layout; // 假设这是可修改的

View file

@ -2377,7 +2377,7 @@ KeyboardGroup *createkeyboardgroup(void) {
if (!check_keyboard_rules_validate(&rules)) { if (!check_keyboard_rules_validate(&rules)) {
wlr_log(WLR_ERROR, wlr_log(WLR_ERROR,
"Keyboard rules validation failed, skipping layout reset"); "Keyboard rules validation failed, skipping layout reset");
rules = xkb_fallback_rules; rules = xkb_default_rules;
} }
/* Prepare an XKB keymap and assign it to the keyboard group. */ /* Prepare an XKB keymap and assign it to the keyboard group. */
@ -4633,7 +4633,7 @@ void reset_keyboard_layout(void) {
if (!check_keyboard_rules_validate(&rules)) { if (!check_keyboard_rules_validate(&rules)) {
wlr_log(WLR_ERROR, wlr_log(WLR_ERROR,
"Keyboard rules validation failed, skipping layout reset"); "Keyboard rules validation failed, skipping layout reset");
rules = xkb_fallback_rules; rules = xkb_default_rules;
} }
// Create context // Create context