Saturday, July 03, 2021

Re: Workman keyboard layout

koizel@tilde.club writes:

> Hello,
>
> How could I add the Workman keyboard layout so that it can be used as a keyboard
> encoding with wsconsctl?
>
> Cheers,
> Gabriel

Hi! Easiest way is to create a wsconsctl.conf that sets each key to the
proper value.

Here is the colemak equiv from colemak.com:

#!/bin/sh
# Colemak layout script for OpenBSD console.
# 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.

wsconsctl keyboard.encoding=us \
keyboard.map+="keycode 41 = grave asciitilde dead_tilde asciitilde " \
keyboard.map+="keycode 2 = 1 exclam exclamdown onesuperior " \
keyboard.map+="keycode 3 = 2 at masculine twosuperior " \
keyboard.map+="keycode 4 = 3 numbersign ordfeminine threesuperior " \
keyboard.map+="keycode 5 = 4 dollar cent sterling " \
keyboard.map+="keycode 6 = 5 percent asciitilde yen " \
keyboard.map+="keycode 7 = 6 asciicircum asciitilde asciitilde " \
keyboard.map+="keycode 8 = 7 ampersand eth ETH " \
keyboard.map+="keycode 9 = 8 asterisk thorn THORN " \
keyboard.map+="keycode 10 = 9 parenleft asciitilde asciitilde " \
keyboard.map+="keycode 11 = 0 parenright asciitilde asciitilde " \
keyboard.map+="keycode 12 = minus underscore asciitilde asciitilde " \
keyboard.map+="keycode 13 = equal plus multiply division " \
\
keyboard.map+="keycode 16 = q Q adiaeresis Adiaeresis " \
keyboard.map+="keycode 17 = w W aring Aring " \
keyboard.map+="keycode 18 = f F atilde Atilde " \
keyboard.map+="keycode 19 = p P oslash Ooblique " \
keyboard.map+="keycode 20 = g G asciitilde asciitilde " \
keyboard.map+="keycode 21 = j J asciitilde asciitilde " \
keyboard.map+="keycode 22 = l L asciitilde asciitilde " \
keyboard.map+="keycode 23 = u U uacute Uacute " \
keyboard.map+="keycode 24 = y Y udiaeresis Udiaeresis " \
keyboard.map+="keycode 25 = semicolon colon odiaeresis Odiaeresis " \
keyboard.map+="keycode 26 = bracketleft braceleft guillemotleft asciitilde " \
keyboard.map+="keycode 27 = bracketright braceright guillemotright asciitilde " \
keyboard.map+="keycode 43 = backslash bar asciitilde asciitilde " \
\
keyboard.map+="keycode 30 = a A aacute Aacute " \
keyboard.map+="keycode 31 = r R dead_grave asciitilde " \
keyboard.map+="keycode 32 = s S ssharp asciitilde " \
keyboard.map+="keycode 33 = t T dead_acute asciitilde " \
keyboard.map+="keycode 34 = d D dead_diaeresis asciitilde " \
keyboard.map+="keycode 35 = h H asciitilde asciitilde " \
keyboard.map+="keycode 36 = n N ntilde Ntilde " \
keyboard.map+="keycode 37 = e E eacute Eacute " \
keyboard.map+="keycode 38 = i I iacute Iacute " \
keyboard.map+="keycode 39 = o O oacute Oacute " \
keyboard.map+="keycode 40 = apostrophe quotedbl otilde Otilde " \
\
keyboard.map+="keycode 44 = z Z ae AE " \
keyboard.map+="keycode 45 = x X dead_circumflex asciitilde " \
keyboard.map+="keycode 46 = c C ccedilla Ccedilla " \
keyboard.map+="keycode 47 = v V asciitilde asciitilde " \
keyboard.map+="keycode 48 = b B asciitilde asciitilde " \
keyboard.map+="keycode 49 = k K asciitilde asciitilde " \
keyboard.map+="keycode 50 = m M asciitilde asciitilde " \
keyboard.map+="keycode 51 = comma less dead_cedilla asciitilde " \
keyboard.map+="keycode 52 = period greater asciitilde asciitilde " \
keyboard.map+="keycode 53 = slash question questiondown asciitilde " \
\
keyboard.map+="keycode 58 = BackSpace BackSpace BackSpace BackSpace " \
keyboard.map+="keycode 86 = minus underscore asciitilde asciitilde " \
keyboard.map+="keycode 57 = space space space nobreakspace " \
keyboard.map+="keycode 184 = Mode_switch Mode_switch"

The script isn't ideal, but It will get the job done.

Alternatively you can add it to the kernel via a diff like this:
https://github.com/openbsd/src/commit/5c9333d1d8cfa982f4a39e5ba7e1839c6b2bdc87.diff
but getting this in tree will likely not happen unless there is a
workman revolution. :D

No comments:

Post a Comment