From 85f3173a1ed3362dd6abcc764835479a63cac8b8 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Sat, 15 Feb 2014 22:36:59 +0100 Subject: Initial commit --- README.org | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ kbd/.gitignore | 1 + kbd/Makefile | 2 ++ kbd/ryuk.map | 75 +++++++++++++++++++++++++++++++++++++++++++++++ xkb/ryuk | 65 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 234 insertions(+) create mode 100644 README.org create mode 100644 kbd/.gitignore create mode 100644 kbd/Makefile create mode 100644 kbd/ryuk.map create mode 100644 xkb/ryuk diff --git a/README.org b/README.org new file mode 100644 index 0000000..d3295bb --- /dev/null +++ b/README.org @@ -0,0 +1,91 @@ +#+TITLE: ryuk +#+STARTUP: showall + +* Introduction + + I've been using [[http://colemak.com][colemak]] for quite a while now and I really like it. + The fact that basically only the letters change position (aside from + ~;~ and ~:~) really makes learning it easier than some alternatives + would. + + I came across [[http://www.kaufmann.no/roland/dvorak/index.html][Programmer Dvorak]] a little while ago, and found the + idea of having symbols on the keyboard without needing the Shift key + very enticing. It made me think real hard about maybe learning + Dvorak after all, even though I'd previously chosen colemak + *because* it didn't change the places of any symbols and such. + + I decided against it, though. I've invested quite a few hours + getting proficient with colemak, and I'd hate for that to have been + in vain. So I decided to try and change colemak's symbol positions, + or some of them anyway. + + I didn't change the order of the number keys, though Shift is now + required to use them, because I didn't like the idea. These numbers + have been ingrained into my brain since the beginning of time, or + at least ever since I first sat behind a PC. Reading the Programmer + Dvorak page makes me believe that there is good reason to change + their order, but I thought that any benefits gained would not + outweigh the benefit of blindly knowing where they are. However, it + is of course possible that this may change in the future, since I + also thought something similar when I first switched to colemak, but + then about symbol keys in general. + + I also didn't shift the number keys one place to the right, as + Programmer Dvorak does. This is because even though I'm sure that + that would work very well on a standard keyboard layout, it would + ruin the symmetric properties of my [[https://www.trulyergonomic.com/store/index.php][Truly Ergonomic Keyboard]]. Right + now the ~(~ and ~)~ are both placed directly above my index fingers, + and since I spend quite a bit of my free time writing various forms + of Lisp code that is extra cool. + + The source files are stored in a git repository. These can be found + either on [[http://code.ryuslash.org/ryuk/][my website]] or [[https://github.com/ryuslash/ryuk/][github]]. Use whichever you prefer, cloning + urls are available on both locations. + +* Installation + +** X11 + + To install and use the X11 keyboard, copy the ~xkb/ryuk~ file to where + XKB looks for these files. In my case this is + ~/usr/share/X11/xkb/symbols~. Once put in the proper place, next to, + for example, ~us~, set your =XkbVariant= to ~ryuk~. For example, I have in + my ~/etc/X11/xorg.conf.d/10-evdev.conf~ file the following: + + #+BEGIN_SRC conf + # ... + + Section "InputClass" + Identifier "evdev keyboard catchall" + MatchIsKeyboard "on" + MatchDevicePath "/dev/input/event*" + Driver "evdev" + Option "XkbLayout" "ryuk" + EndSection + + # ... + #+END_SRC + + Since your distribution may have Xorg configured differently, you + may have to specify it in a different file or a different section, + but please note that only the line starting with ~Option~ was put + there by me. + +** TTY + + To install the TTY keyboard layout you should gzip the + ~kbd/ryuk.map~ file, which can be achieved by running ~make~ from the + ~kbd~ map, and put the resulting file where the kbd utilities can find + them. In my case this is ~/usr/share/kbd/keymaps/i386/colemak/~, and I + choose the ~colemak~ directory because the ~ryuk~ files are based + directly off the colemak files. + + Once put in the proper place you should specify that the TTY should + use your keymap by putting the following in your ~/etc/vconsole.conf~: + + #+BEGIN_SRC sh + KEYMAP=ryuk + #+END_SRC + + This should work at least on systems that use systemd. I don't know + how other init systems set it. diff --git a/kbd/.gitignore b/kbd/.gitignore new file mode 100644 index 0000000..10d00b5 --- /dev/null +++ b/kbd/.gitignore @@ -0,0 +1 @@ +*.gz diff --git a/kbd/Makefile b/kbd/Makefile new file mode 100644 index 0000000..405751a --- /dev/null +++ b/kbd/Makefile @@ -0,0 +1,2 @@ +ryuk.map.gz: ryuk.map + gzip -k $^ diff --git a/kbd/ryuk.map b/kbd/ryuk.map new file mode 100644 index 0000000..57f6da5 --- /dev/null +++ b/kbd/ryuk.map @@ -0,0 +1,75 @@ +# pcolemak.kmap for Linux console. +# 2014-02-15 Tom Willemse. +alt_is_meta +charset "iso-8859-15" # use a ISO-8859-15 font, e.g.: consolechars -f lat9v-14 +keymaps 0-12 +include "qwerty-layout" +include "linux-with-alt-and-altgr" +strings as usual + +keycode 41 = ampersand percent dead_tilde asciitilde nul +keycode 2 = bracketleft one exclamdown onesuperior +keycode 3 = braceleft two masculine twosuperior nul +keycode 4 = braceright three ordfeminine threesuperior Escape +keycode 5 = parenleft four cent sterling Control_backslash +keycode 6 = equal five euro yen Control_bracketright # EuroSign yen +keycode 7 = asterisk six asciitilde asciitilde Control_asciicircum # hstroke Hstroke +keycode 8 = parenright seven eth ETH Control_underscore +keycode 9 = plus eight thorn THORN Delete +keycode 10 = bracketright nine asciitilde asciitilde # leftsinglequotemark leftdoublequotemark +keycode 11 = exclam zero asciitilde asciitilde # rightsinglequotemark rightdoublequotemark +keycode 12 = numbersign grave asciitilde asciitilde Control_underscore # endash emdash +keycode 13 = dollar asciitilde multiply division + +keycode 16 = q Q adiaeresis Adiaeresis Control_q +keycode 17 = w W aring Aring Control_w +keycode 18 = f F atilde Atilde Control_f +keycode 19 = p P oslash Ooblique Control_p +keycode 20 = g G asciitilde asciitilde Control_g # dead_ogonek asciitilde +keycode 21 = j J asciitilde asciitilde Control_j # dstroke Dstroke +keycode 22 = l L asciitilde asciitilde Control_l # lstroke Lstroke +keycode 23 = u U uacute Uacute Control_u +keycode 24 = y Y udiaeresis Udiaeresis Control_y +keycode 25 = semicolon colon odiaeresis Odiaeresis +keycode 26 = minus underscore guillemotleft asciitilde Escape # guillemotleft 0x1002039 +keycode 27 = at asciicircum guillemotright asciitilde Control_bracketright # guillemotright 0x100203a +keycode 43 = backslash bar asciitilde asciitilde Control_backslash + +keycode 30 = a A aacute Aacute Control_a +keycode 31 = r R dead_grave asciitilde Control_r +keycode 32 = s S ssharp asciitilde Control_s +keycode 33 = t T dead_acute asciitilde Control_t # dead_acute dead_doubleacute +keycode 34 = d D dead_diaeresis asciitilde Control_d +keycode 35 = h H asciitilde asciitilde Control_h # dead_caron asciitilde +keycode 36 = n N ntilde Ntilde Control_n +keycode 37 = e E eacute Eacute Control_e +keycode 38 = i I iacute Iacute Control_i +keycode 39 = o O oacute Oacute Control_o +keycode 40 = apostrophe quotedbl otilde Otilde + +keycode 44 = z Z ae AE Control_z +keycode 45 = x X dead_circumflex asciitilde Control_x +keycode 46 = c C ccedilla Ccedilla Control_c +keycode 47 = v V oe OE Control_v +keycode 48 = b B asciitilde asciitilde Control_b # dead_breve asciitilde +keycode 49 = k K asciitilde asciitilde Control_k # dead_abovering asciitilde +keycode 50 = m M asciitilde asciitilde Control_m # dead_macron asciitilde +keycode 51 = comma less dead_cedilla asciitilde +keycode 52 = period greater asciitilde asciitilde # dead_abovedot asciitilde +keycode 53 = slash question questiondown asciitilde Delete + +keycode 58 = BackSpace BackSpace BackSpace BackSpace +keycode 86 = minus underscore asciitilde asciitilde Control_underscore # endash emdash +keycode 57 = space space space nobreakspace nul + + +keycode 1 = Escape +keycode 14 = Delete +keycode 15 = Tab +keycode 28 = Return + alt keycode 28 = Meta_Control_m +keycode 29 = Control +keycode 42 = Shift +keycode 54 = Shift +keycode 56 = Alt +keycode 97 = Control diff --git a/xkb/ryuk b/xkb/ryuk new file mode 100644 index 0000000..8781be7 --- /dev/null +++ b/xkb/ryuk @@ -0,0 +1,65 @@ +// ryuk symbols for xkb on X.Org Server 7.x +// 2014-02-11 Tom Willemse + +partial alphanumeric_keys +xkb_symbols "pcolemak" { + include "us" + name[Group1]= "English (ryuk)"; + + key { [ ampersand, percent, dead_tilde, asciitilde ] }; + key { [ bracketleft, 1, exclamdown, onesuperior ] }; + key { [ braceleft, 2, masculine, twosuperior ] }; + key { [ braceright, 3, ordfeminine, threesuperior ] }; + key { [ parenleft, 4, cent, sterling ] }; + key { [ equal, 5, EuroSign, yen ] }; + key { [ asterisk, 6, hstroke, Hstroke ] }; + key { [ parenright, 7, eth, ETH ] }; + key { [ plus, 8, thorn, THORN ] }; + key { [ bracketright, 9, leftsinglequotemark, leftdoublequotemark ] }; + key { [ exclam, 0, rightsinglequotemark, rightdoublequotemark ] }; + key { [ numbersign, grave, endash, emdash ] }; + key { [ dollar, asciitilde, multiply, division ] }; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ w, W, aring, Aring ] }; + key { [ f, F, atilde, Atilde ] }; + key { [ p, P, oslash, Ooblique ] }; + key { [ g, G, dead_ogonek, asciitilde ] }; + key { [ j, J, dstroke, Dstroke ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [ minus, underscore, guillemotleft, 0x1002039 ] }; + key { [ at, asciicircum, guillemotright, 0x100203a ] }; + key { [ backslash, bar, asciitilde, asciitilde ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ r, R, dead_grave, asciitilde ] }; + key { [ s, S, ssharp, asciitilde ] }; + key { [ t, T, dead_acute, dead_doubleacute ] }; + key { [ d, D, dead_diaeresis, asciitilde ] }; + key { [ h, H, dead_caron, asciitilde ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ apostrophe, quotedbl, otilde, Otilde ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X, dead_circumflex, asciitilde ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, oe, OE ] }; + key { [ b, B, dead_breve, asciitilde ] }; + key { [ k, K, dead_abovering, asciitilde ] }; + key { [ m, M, dead_macron, asciitilde ] }; + key { [ comma, less, dead_cedilla, asciitilde ] }; + key { [ period, greater, dead_abovedot, asciitilde ] }; + key { [ slash, question, questiondown, asciitilde ] }; + + key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ space, space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; -- cgit v1.2.3-54-g00ecf