helio-fm / helio-sequencer

Libre music sequencer for desktop and mobile platforms
https://helio.fm
GNU General Public License v3.0
3.13k stars 115 forks source link

Hotkeys don't work on some non-English keyboard layouts (Linux) #301

Open 2-www opened 7 months ago

2-www commented 7 months ago

using 3.12 on linux, ctrl+z does nothing

2-www commented 7 months ago

i tried the english (us) layout and it worked. but it still doesn't work even with polish even though polish is latin

peterrudenko commented 7 months ago

Can confirm, but not sure how to fix this at the moment

2-www commented 7 months ago

could you add graphical buttons for undo/redo then?

peterrudenko commented 7 months ago

I've noticed that this only occurs with non-standard layouts, like Polish Dvorak variants, any standard non-English layouts don't break hotkeys for me (tested on a Debian-based system). What layout are you using and what OS?

Here's one workaround you might try: create a file ~/Documents/Helio/hotkeySchemes.json with a content like this:

{
  "hotkeySchemes": { "hotkeyScheme": { "name": "Default", "group": [
  {
    "receiver": "PianoRoll",
    "keyPress": [
      { "command": "Undo", "key": "Control + '" },
      { "command": "Redo", "key": "Control + Shift + \"" }
    ]
  },
  {
    "receiver": "PatternRoll",
    "keyPress": [
      { "command": "Undo", "key": "Control + '" },
      { "command": "Redo", "key": "Control + Shift + \"" }
    ]
  }
]}}}

This is an example fix for Polish Dvorak, but you might need to tweak key codes depending on what layout you're using. Also it will only work in the latest development build.

2-www commented 7 months ago

also debian, and just standard qwerty polish

2-www commented 7 months ago

i tried other layouts, they do work, even russian and arabic work, but polish, ukrainian, and hebrew don't

peterrudenko commented 7 months ago

Weird, they all work for me - I'm suspecting this is some distro-related issue.

I've brought back the undo/redo buttons on the right panel on the desktop in the development build.

You may also try assigning something like "Control + Ż" as described above.

2-www commented 7 months ago

You may also try assigning something like "Control + Ż" as described above.

but ż is altgr+z, would i also need to hold altgr?

2-www commented 7 months ago

i removed every layout but polish from the settings. it started working. i added more layouts back. it now works on ukranian, but not on russian