Sway: Sway hotkeys (bindsym) aren't working with russian keyboard layout

Created on 11 Nov 2018  路  14Comments  路  Source: swaywm/sway

When russian keyboard layout is in use, no hotkeys involving letter-keys are functional.
Input configuration:

input * {
    natural_scroll enabled
    xkb_layout "us,ru"
    xkb_variant ","
    xkb_options "compose:ralt,grp_led:caps,grp:caps_toggle"
}
enhancement

Most helpful comment

@ddevault Thank you for your work and time

All 14 comments

Duplicate of #3107

After careful reading of #3107, it's not a duplicate of #3107.

2999.

p.s.: moreover, @kupospelov committed a fix in his PR, but for incomprehensible reason, contributors didn't dare to approve it so it's still a big annoyance for all foreign community here.

We're all volunteers here and we have no obligation to work at any pace or on issues convenient to you. Relax, we'll get to the patch eventually.

@ddevault Obviously, you don鈥檛 have to take care of all the unfortunate people who have to use several keyboard layouts, but otherwise great swaywm is really incomplete without multilingual support: working keyboard shortcuts in a non-American keyboard, keyboard layout indicator ...

So fix it. We accept patches.

@ddevault Shure but it seems that the needed patch was submitted by @kupospelov? Thanks.

2999.

p.s.: moreover, @kupospelov committed a fix in his PR, but for incomprehensible reason, contributors didn't dare to approve it so it's still a big annoyance for all foreign community here.

That was only updated 2 weeks ago. Give us some time, then.

@ddevault Thank you for your work and time

Is there some progress?

bindsym --to-code has already been released in stable version. See man 5 sway.

I should have closed this issue already.

I use this small patch to make the behaviour of --to-code the default.

--- a/sway/commands/bind.c  2019-05-12 03:59:43.614399853 +1000
+++ b/sway/commands/bind.c  2019-05-12 04:02:03.259677398 +1000
@@ -349,10 +349,6 @@
            binding->flags |= BINDING_BORDER | BINDING_CONTENTS | BINDING_TITLEBAR;
        } else if (strcmp("--border", argv[0]) == 0) {
            binding->flags |= BINDING_BORDER;
-       } else if (strcmp("--to-code", argv[0]) == 0) {
-           if (!bindcode) {
-               binding->flags |= BINDING_CODE;
-           }
        } else if (strcmp("--exclude-titlebar", argv[0]) == 0) {
            exclude_titlebar = true;
        } else if (strncmp("--input-device=", argv[0],
@@ -634,10 +630,6 @@
 }

 bool translate_binding(struct sway_binding *binding) {
-   if ((binding->flags & BINDING_CODE) == 0) {
-       return true;
-   }
-
    switch (binding->type) {
    // a bindsym to translate
    case BINDING_KEYSYM:
--- a/include/sway/config.h 2019-05-12 04:03:27.180233029 +1000
+++ b/include/sway/config.h 2019-05-12 04:04:36.008351887 +1000
@@ -38,7 +38,6 @@
    BINDING_BORDER=4,    // mouse only; trigger on container border
    BINDING_CONTENTS=8,  // mouse only; trigger on container contents
    BINDING_TITLEBAR=16, // mouse only; trigger on container titlebar
-   BINDING_CODE=32,     // keyboard only; convert keysyms into keycodes
 };

 /**
@@ -50,7 +49,7 @@
    char *input;
    uint32_t flags;
    list_t *keys; // sorted in ascending order
-   list_t *syms; // sorted in ascending order; NULL if BINDING_CODE is not set
+   list_t *syms; // sorted in ascending order
    uint32_t modifiers;
    char *command;
 };

Can鈥檛 wait to sit back at my workstation with comfortable keyboard shortcuts to try out the fix, just when I'll be back from my trip 馃槃

A minor suggestion - maybe a kosher it be to change the --to-code effect to inverse? Seems it's more likely this behavior 'd be more expected, so this may prevent any issues opening in foreseeable future if this patch will work by default.

P. S.: or just to add another option for layout-specific shortcut?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

DpoBoceka picture DpoBoceka  路  4Comments

mcmfb picture mcmfb  路  3Comments

StephenBrown2 picture StephenBrown2  路  4Comments

ddevault picture ddevault  路  4Comments

aidanharris picture aidanharris  路  3Comments