helloSystem / hello

Desktop system for creators with a focus on simplicity, elegance, and usability. Based on FreeBSD. Less, but better!
2.3k stars 57 forks source link

Please add more keyboard layouts such as Colemak and Dvorak #121

Open nonetrix opened 3 years ago

nonetrix commented 3 years ago

I am a Colemak user and wanted to try this out but it not having Colemak in the settings makes it extremely hard for me since I have become so used to Colemak it should ideally look like this but not made in ms paint.

https://imgur.com/a/R2mbEEJ

https://imgur.com/a/tnRSa4s

probonopd commented 3 years ago

Colemak seems to be one of those things 99.9% of our users never even have heard of. We need to decide where to put such advanced functionality (see "Three-layer UX design philosophy for Simplicity and Power").

It would be best to auto-detect it. Is there a way to find out automatically that a keyboard is Colemak? Ideally, the USB device would describe itself as a Colemak device, and we could automatically treat it as such without the need for user intervention. Which Colemak device are you using? (If you don't mind, please use the Hardware Probe tool to upload a probe and post its URL here.)

Looking at https://www.freebsd.org/cgi/man.cgi?query=xkeyboard-config&sektion=7&manpath=freebsd-release-ports it seems like Colemak is an xkbmap variant of some (but not all) languages (eg., it does not exist for German). So to allow for things like Colemak, we would need to expose variants to the (advanced) user in some way, based on which language is selected.

For now, I have added a "Variants" menu that contains variants like Colemak depending on which keyboard layout is selected. Keep in mind that these things are currently not saved across boots because I don't know the FreeBSD way to do this yet.

image

Possibly we should add a "Models" menu in a similar way. But I tend to find the options in those menus rather esoteric and not well documented.

The whole xkb thing seems backward to me.

Maybe I am missing something.

probonopd commented 3 years ago

If you want to test, you can download https://github.com/helloSystem/Utilities/archive/master.zip if you don't wait for the next ISO build.

nonetrix commented 3 years ago

I think so but I am just using a qwerty keyboard you don't need a new keyboard to use colemak I just change it in Xorg config I don't really think theirs a way to switch mine in the firmware of the keyboard since it's razer trash

ILoveGadgets commented 3 years ago

What would be nice is a GUI to edit xkb config files (for people like me who tinker with diy keyboards and controllers).

For more than you really wanted to know: https://www.x.org/wiki/XKB/ One look at this made me put the idea of writing one on the someday maybe list (it would be a lot of work).

There is a way to semi-auto-configure the keyboard layout (from the Ubuntu Ubiquity source): https://git.launchpad.net/ubuntu/+source/ubiquity/tree/ubiquity/keyboard_detector.py

The content of the data file used is displayed in this forum post: https://www.raspberrypi.org/forums/viewtopic.php?t=203812

probonopd commented 3 years ago

hello @ILoveGadgets

Rather than having to select a keyboard layout from an ever-longer list, asking the user to type some characters on the keyboard seems like the helloSystem way of doing this :+1: so if anyone ever writes it let me know!