Skip to content

Working with multiple keyboard seamlessly #323

Description

@tonitch

Hello, my regular keyboard layout is be-latin1, and I quite often switch to fr or us or even sometime dvorak

The problem is that sxhkd uses keysym. It's way easier to configure, but this cause a lot of problems.

For instance, the way I navigate between my window in bspwm is like this :

super + {_,shift + }{ampersand,eacute,quotedbl,apostrophe,parenleft,section,egrave,exclam,ccedilla,agrave}
    bspc {desktop -f,node -d} ^{1-9,10}

and if I'm using us I have to

super + {_,shift + }{1,2,3,4,5,6,7,8,9,0}
    bspc {desktop -f,node -d} ^{1-9,10}

And when using fr layout it's quite similar to be-latin1 layout but with some clash so I can't even just register all of them.

I currently have multiple configuration that I interchange whenever I switch keyboard layout. I'm doing this since I started using sxhkd (about 6 years now). And I wonder if this could be "fixed" somehow.

Here are my suggestions on solving this.

  1. Ignore me and I have to script my way throught it. This is a good gatekeeping to avoid new users 👍
  2. make a prefix that would allow keycode instead of keysym (for instance $49 would be the key with code 49 (ampersand if i'm not mistaken)
  3. Add a command option that would "force" the keyboard layout. This way you can use only the US config file and use it anywhere with sxhkd -l us

These are ranked by difficulty of implementation, I think.

I have seen the -m 1 but I don't think it does what I want. This is quite unclear to be honest. My typical setup is I have a laptop setup with a us keyboard and if I want to work a lot I will get my wireless keyboard which is a be-latin1 and is more comfortable. If I connect it mid use it works well, but if I log into my computer with that new keyboard, everything seems to be broken...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions