aboutsummaryrefslogtreecommitdiffstats
path: root/README.org
blob: 8911e3ccfae10af6476c56bfef2f79dd25ecebdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#+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.

  #+CAPTION: Ryuk on a Truly Ergonomic Keyboard
  #+ATTR_HTML: :align center
  [[file:assets/keyboard-layout.png]]

  This image was created with the [[http://www.keyboard-layout-editor.com][Keyboard Layout Editor]]. This repository
  contains the [[file:assets/keyboard-layout.json][source code]] for it.

* Installation

** Linux

   On Linux there's 2 ways you can install the keyboard layout. [[X11]] for the
   graphical environment and [[TTY]] for the non-graphical environment.

*** 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.

** Windows

   On Windows you will need to install the [[https://www.microsoft.com/en-us/download/details.aspx?id=22339][Microsoft Keyboard Layout Creator 1.4]]
   to be able to compile the keyboard layout. Once installed open the =ryuk.klc=
   file in it and go to Project -> Build DLL and Setup Package. Once this has
   finished it'll ask you if you want to open the directory it's built the files
   in (which should be =%USERPROFILE%\Documents\ryuk=). Go to that directory and
   run =setup.exe=. After the installation is finished you'll have to restart
   Windows and then you can start using the keyboard layout.