Dygmalab / Bazecor

Graphical configurator for Dygma Products
https://dygma.com/
GNU General Public License v3.0
389 stars 85 forks source link

Allow layer/key specific language layouts #233

Open wAuner opened 3 years ago

wAuner commented 3 years ago

Is your feature request related to a problem? Please describe. As a developer I prefer US ANSI QWERTY but I also need to type German and for that I need the lovely letters like ü,ä and ß. On a mac I need these keycombinations:

Screenshot 2021-06-10 at 07 45 11

This is not easy to implement with a macro, if you want to have upper and lower case Umlaute.

Describe the solution you'd like I think it would be really useful if Bazecor would allow me program the language layout on a per layer or even better per key basis. Would it be possible to just let me select the keys from a different language letter here?

Screenshot 2021-06-10 at 07 47 46

Describe alternatives you've considered I've tried to come up with a macro, but this has the major drawback, that it only works with either upper or lower case letters. I can't just add shift in the mix and use the same key.

Screenshot 2021-06-10 at 07 48 50
GazHank commented 3 years ago

To address this, it looks like we should try to adopt the changes from upstream or use something similar. Although this could be a significant change to some of the key functionalty of the app

chbroecker commented 3 years ago

I second the OPs desire for such a functionality. I am coming from the exact same camp (US QWERTY preferred / German QWERTZ occasionally needed). I also feel like a lot of Bazecor and Dygma Raise users from other countries like France/Spain/etc could benefit from a feature like this. :)

I think this is what OP also wants but in my usecase I would imagine a layer where I would put the ä, ö, ü as well as other special characters in a different layer so that they would be easily accessible.

wAuner commented 2 years ago

For example with Karabiner Elements on macOS I've downloaded a rule which lets me map ⌥ + a/o/u to ä/ö/ü without any change in the language layout on the os side. @chbroecker This is the rule I use for Karabiner Elements, in case you're on macOS: https://ke-complex-modifications.pqrs.org/?q=terminal

schaetz commented 2 years ago

I would like to do the same thing as @chbroecker. I have to say, as a new Raise user I am a bit disappointed that this does not work out of the box, as being able to put the umlauts on a separate layer was one of the reasons I chose the US layout.

I created a macro in Windows (ALT+0228 on NumPad for "ä"), but it makes it really complicated to set up shift for uppercase letters (probably needs another separate layer) and you can't hold the key to type multiple letters.

I guess I could just configure the German configuration to look like the US layout, but then I cannot switch to the ISO layout occasionally...

shining-cat commented 2 years ago

I second this, I live in Sweden and use mainly a French layout to write in French, English, and Swedish. There are 3 letters here that are out of the French set. I'd like to be able to assign a key from the Nordic layout to mine, even though I'm using a French layout.

Note: I'm on windows, but the request in the end is the same

What I thought would achieve what I want:

Seems that my only option is actually to go with macros, but then as the others have already said, I'll have to separately handle lower and upper case for 3 letters...

Edit: I'm going the macro way, and I think this could be an easier option:

I kind of understand that we can't bind a key to two different keycode depending on if the shift key is pressed or not, but this might be easier to do when the key is actually targeting macros?

Edit 2: The problem with macro using alt code combinations is that they tend to trigger native shortcuts in different softwares, for example one of mine in chrome will start typing (the expected character) in the address bar, closing the page I was on. On Android studio, all of them actually trigger the "generate" shortcut...

In the end, I think macros still aren't the solution either...

GeeF commented 1 year ago

Just a comment on how I achieve what OP is asking: I'm using US intl. as a keyboard layout. That layout (compared to standard US layout) allows some special characters to be entered via AltGr key combinations. For german I have a separate oneshot layer where I put e.g. AltGr+q on to the a key, which in US intl. gives me an ä, same goes for ö, ü or ß. Here is a good overview of the layout.

One Problem though: So the US intl. layout uses dead keys for ' and " among others, so you can produce some more accented letters. However that might get annoying, as you need those letters for other stuff as well (text or writing code), where it will be irritating if you always have to add a space after one of those symbols to produce the raw character. On Windows you can create a custom keyboard layout with the Microsoft Keyboard Layout Creator Tool and load in a layout like this, which is identical to US intl. but without the dead keys. Most Linux distros have some no-dead-keys layouts on board as well. A custom layout is also a great way if you rely on letters that are not available on US intl. Just craft an AltGr layer that fits your needs.

KarlsonxD commented 6 months ago

seems like this relates to #60 but with more feature around?