jcsteh / osara

OSARA: Open Source Accessibility for the REAPER Application
GNU General Public License v2.0
122 stars 46 forks source link

Create a usable key map for a Mac set to a German (Germany) keyboard layout #959

Open MarcoZehe opened 8 months ago

MarcoZehe commented 8 months ago

The problem

If REAPER and OSARA are installed on a Mac set to German and a German keyboard layout, many of the default and OSARA keymap actions end up either unassigned or on totally wrong keys, when compared to the English or even Windows German keyboard. Mac seems to handle switching keyboard layouts totally differently from Windows. As a result, people like me who cannot wire their brains to use an English keyboard layout, end up with many REAPER and OSARA functions unassigned or totally misplaced.

Proposed solutions

I see two possible solutions for this problem:.

  1. Modify the main key map (and if necessary, other main/default keymaps), make a diff from the English original, and during installation import that diff onto the original OSARA key map when running on a Mac set to German and a German layout, probably determined by asking the user an additional question.
  2. REAPER 7 and above only: Create a working German key map for the Mac in one of the alt sections of the key map, and make that the default if installed on a German Mac with German keyboard layout, again possibly asking the user if they want that. I would volunteer to create this key map, based off of the German keyboard layout Windows one, so the key assignments make sense/are similar to what users would find in a German environment on Windows.

Questions

  1. Is importing a diff onto the existing keymap during installation even possible?
  2. Same with making a different section the default during installation?
  3. Are there any possible solutions I am missing?

    Additional note

There may be other language settings that suffer from the same problem, but since I don't know those, there would need to be a case-by-case solution, if any is wanted.

Looking forward to your feedback!

jcsteh commented 8 months ago

during installation import that diff onto the original OSARA key map when running on a Mac set to German and a German layout, probably determined by asking the user an additional question.

With the current installer, asking the user could get unwieldy if we end up supporting more than one language this way. We probably need some way to present a list of languages rather than simple message box style questions. On the flip side, making a decision based on the current keyboard layout (even assuming we can detect that) might not be ideal for people who switch between multiple layouts, since they might be on a different layout when they install. I don't know how to do either of these things - prompting the user to make a choice from a list or detecting keyboard layout - in the Mac installer, so someone else would need to figure this out and implement it.

2. REAPER 7 and above only: Create a working German key map for the Mac in one of the alt sections of the key map, and make that the default if installed on a German Mac with German keyboard layout, again possibly asking the user if they want that.

I don't think this is a sustainable solution. If we support more than one language in this way, we'd end up using up a lot of alt keyboard sections. It'd also be difficult to maintain with multiple maintainers.

1. Is importing a diff onto the existing keymap during installation even possible?

I guess the first thing to establish is how big the difference is. How many of the bindings don't work? If it's a significant number, I don't think there's any point in a diff. We're just going to need to maintain separate Mac key maps for every language.

2. Same with making a different section the default during installation?

I don't think that's possible.

RDMurray commented 8 months ago

prompting the user to make a choice from a list or detecting keyboard layout - in the Mac installer, so someone else would need to figure this out and implement it.

As the one to blame for the Mac installer, I'm happy to whip it into shape once we've hashed out exactly what is needed.