aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2014-02-15 22:36:59 +0100
committerGravatar Tom Willemse2014-02-15 22:36:59 +0100
commit85f3173a1ed3362dd6abcc764835479a63cac8b8 (patch)
tree339cc3eabbeac659049b102a8d180c975e771433
downloadryuk-85f3173a1ed3362dd6abcc764835479a63cac8b8.tar.gz
ryuk-85f3173a1ed3362dd6abcc764835479a63cac8b8.zip
Initial commit
-rw-r--r--README.org91
-rw-r--r--kbd/.gitignore1
-rw-r--r--kbd/Makefile2
-rw-r--r--kbd/ryuk.map75
-rw-r--r--xkb/ryuk65
5 files changed, 234 insertions, 0 deletions
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 <TLDE> { [ ampersand, percent, dead_tilde, asciitilde ] };
+ key <AE01> { [ bracketleft, 1, exclamdown, onesuperior ] };
+ key <AE02> { [ braceleft, 2, masculine, twosuperior ] };
+ key <AE03> { [ braceright, 3, ordfeminine, threesuperior ] };
+ key <AE04> { [ parenleft, 4, cent, sterling ] };
+ key <AE05> { [ equal, 5, EuroSign, yen ] };
+ key <AE06> { [ asterisk, 6, hstroke, Hstroke ] };
+ key <AE07> { [ parenright, 7, eth, ETH ] };
+ key <AE08> { [ plus, 8, thorn, THORN ] };
+ key <AE09> { [ bracketright, 9, leftsinglequotemark, leftdoublequotemark ] };
+ key <AE10> { [ exclam, 0, rightsinglequotemark, rightdoublequotemark ] };
+ key <AE11> { [ numbersign, grave, endash, emdash ] };
+ key <AE12> { [ dollar, asciitilde, multiply, division ] };
+
+ key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
+ key <AD02> { [ w, W, aring, Aring ] };
+ key <AD03> { [ f, F, atilde, Atilde ] };
+ key <AD04> { [ p, P, oslash, Ooblique ] };
+ key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
+ key <AD06> { [ j, J, dstroke, Dstroke ] };
+ key <AD07> { [ l, L, lstroke, Lstroke ] };
+ key <AD08> { [ u, U, uacute, Uacute ] };
+ key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] };
+ key <AD10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
+ key <AD11> { [ minus, underscore, guillemotleft, 0x1002039 ] };
+ key <AD12> { [ at, asciicircum, guillemotright, 0x100203a ] };
+ key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };
+
+ key <AC01> { [ a, A, aacute, Aacute ] };
+ key <AC02> { [ r, R, dead_grave, asciitilde ] };
+ key <AC03> { [ s, S, ssharp, asciitilde ] };
+ key <AC04> { [ t, T, dead_acute, dead_doubleacute ] };
+ key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
+ key <AC06> { [ h, H, dead_caron, asciitilde ] };
+ key <AC07> { [ n, N, ntilde, Ntilde ] };
+ key <AC08> { [ e, E, eacute, Eacute ] };
+ key <AC09> { [ i, I, iacute, Iacute ] };
+ key <AC10> { [ o, O, oacute, Oacute ] };
+ key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };
+
+ key <AB01> { [ z, Z, ae, AE ] };
+ key <AB02> { [ x, X, dead_circumflex, asciitilde ] };
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+ key <AB04> { [ v, V, oe, OE ] };
+ key <AB05> { [ b, B, dead_breve, asciitilde ] };
+ key <AB06> { [ k, K, dead_abovering, asciitilde ] };
+ key <AB07> { [ m, M, dead_macron, asciitilde ] };
+ key <AB08> { [ comma, less, dead_cedilla, asciitilde ] };
+ key <AB09> { [ period, greater, dead_abovedot, asciitilde ] };
+ key <AB10> { [ slash, question, questiondown, asciitilde ] };
+
+ key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
+ key <LSGT> { [ minus, underscore, endash, emdash ] };
+ key <SPCE> { [ space, space, space, nobreakspace ] };
+
+ include "level3(ralt_switch)"
+};