From 77c3efcb1ad3e1cbddd509c1f72b8b252b299dee Mon Sep 17 00:00:00 2001 From: Ryan Kavanagh Date: Thu, 18 Aug 2011 08:24:31 -0400 Subject: Track my custom xkb layout --- .xinitrc | 3 +- .xkb/keymap/icd | 7 ++++ .xkb/symbols/icd | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ .zshrc | 2 +- dm | 1 + 5 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 .xkb/keymap/icd create mode 100644 .xkb/symbols/icd diff --git a/.xinitrc b/.xinitrc index bdd51ca..24e233b 100755 --- a/.xinitrc +++ b/.xinitrc @@ -1,7 +1,6 @@ #!/bin/sh redshift -l 44.22:-76.48 -t 6500:2500 & -setxkbmap -layout us -variant icd -option -option lv3:ralt_switch_multikey \ - -option ctrl:nocaps +xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/icd $DISPLAY # xcompmgr & urxvt & trayer --tint black --edge top --SetDockType true --SetPartialStrut true \ diff --git a/.xkb/keymap/icd b/.xkb/keymap/icd new file mode 100644 index 0000000..5d1c786 --- /dev/null +++ b/.xkb/keymap/icd @@ -0,0 +1,7 @@ +xkb_keymap { + xkb_keycodes { include "evdev+aliases(qwerty)" }; + xkb_types { include "complete" }; + xkb_compat { include "complete" }; + xkb_symbols { include "pc+us+icd+inet(evdev)+level3(ralt_switch_multikey)+ctrl(nocaps)" }; + xkb_geometry { include "pc(pc105)" }; +}; diff --git a/.xkb/symbols/icd b/.xkb/symbols/icd new file mode 100644 index 0000000..bb7a4d3 --- /dev/null +++ b/.xkb/symbols/icd @@ -0,0 +1,107 @@ +// International Coder Dvorak +// By: Ryan Kavanagh , http://ryanak.ca/ +// +// Based on the Dvorak International (dvorak-intl) layout: +// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net) +// Based on information from http://www.poupinou.org/dvorak/index.html +// Based on the Programmer Dvorak (dvp) layout: +// Programmer Dvorak, by Roland Kaufmann +// License: BSD, available at +// +// SHIFT: ~ % 7 5 3 1 9 0 2 4 6 8 ` BCKSP +// NORMAL: $ & [ { } ( = * ) + ] ! # BCKSP +// AltGr: d~ ø € ¥ d˘ d¨ d¸ d`` d` d´ d˝ ¡ d˚ BCKSP +// SFT-AG: ¢ Ø £ ¤ d˳ BCKSP +// +// TAB : < > P Y F G C R L ? ^ | +// TAB ; , . p y f g c r l / @ \ +// TAB ä « » ö ë ü ï ç ® æ ¿ dˆ d' +// TAB Ä · Ö Ë Ü Ï Ç ™ Æ dˇ d. +// +// CAPL A O E U I D H T N S _ ENTER +// CAPL a o e u i d h t n s - ENTER +// CAPL à ô é ù î ð ¶ þ ñ ß – ENTER +// CAPL À Ô É Ù Î Ð § Þ Ñ — ENTER +// +// SHIFT " Q J K X B M W V Z SHIFT +// SHIFT ' q j k x b m w v z SHIFT +// SHIFT â ó è ù ï å ê w v z SHIFT +// SHIFT Â ó È Ù Ï Å Ê W V Z +// +// Legend: dX -> dead_X +// +// en dash: AltGr-hyphen_minus +// em dash: Shift-AltGr-hyphen_minus +// dead_doublegrave: AltGr-asterisk +// dead_abovedot: on AltGr-backslash +// dead_belowdot: on Shift-AltGr-backslash + +partial alphanumeric_keys +xkb_symbols "icd" { + include "us(dvorak)" + + name[Group1] = "USA - International Coder Dvorak"; + + // Unmodified Shift AltGr Shift+AltGr + // symbols row, left side + key { [ dollar, asciitilde, dead_tilde, cent ] }; + key { [ ampersand, percent, oslash, Ooblique ] }; + key { [ bracketleft, 7, EuroSign, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceleft, 5, yen, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceright, 3, dead_hook ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenleft, 1, dead_diaeresis ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ equal, 9, dead_cedilla ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // symbols row, right side + key { [ asterisk, 0, dead_doublegrave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenright, 2, dead_grave ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ plus, 4, dead_acute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ bracketright, 6, dead_doubleacute ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ numbersign, grave, dead_abovering, dead_belowring ] }; + key { [ BackSpace ] }; + + // upper row, left side + key { [ semicolon, colon, adiaeresis, Adiaeresis ] }; + key { [ comma, less, guillemotleft, degree ] }; + key { [ period, greater, guillemotright, periodcentered ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ y, Y, ediaeresis, Ediaeresis ] }; + + // upper row, right side + key { [ f, F, udiaeresis, Udiaeresis ] }; + key { [ g, G, idiaeresis, Idiaeresis ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ r, R, registered, trademark ] }; + key { [ l, L, ae, AE ] }; + key { [ slash, question, questiondown ] }; + key { [ at, asciicircum, dead_circumflex, dead_caron ] }; + key { [ backslash, bar, dead_abovedot, dead_belowdot ] }; + + // home row, left side + key { [ a, A, agrave, Agrave ] }; + key { [ o, O, ocircumflex, Ocircumflex] }; + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, ugrave, Ugrave ] }; + key { [ i, I, icircumflex, Icircumflex] }; + + // home row, right side + key { [ d, D, eth, ETH ] }; + key { [ h, H, paragraph, section ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ s, S, ssharp, aboveline ] }; + key { [ minus, underscore, endash, emdash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // lower row, left side + key { [ apostrophe, quotedbl, acircumflex, Acircumflex] }; + key { [ q, Q, oacute, Oacute ] }; + key { [ j, J, egrave, Egrave ] }; + key { [ x, X, idiaeresis, Idiaeresis ] }; + + // lower row, right side + key { [ b, B, acircumflex, Acircumflex] }; + key { [ m, M, ecircumflex, Ecircumflex] }; + key { [ Shift, Shift, Shift, Shift ] }; + +}; diff --git a/.zshrc b/.zshrc index 1828fa1..a4b8b57 100644 --- a/.zshrc +++ b/.zshrc @@ -95,7 +95,7 @@ alias wtau='sudo etherwake tau' alias pology='python $HOME/work/pology/scripts/posieve.py' alias daylog='dch --changelog /home/ryan/work/sail/drafts/daylog/daylog' alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg" -alias kbd="setxkbmap -layout us -variant icd -option -option lv3:ralt_switch_multikey -option ctrl:nocaps" +alias kbd="xkbcomp -I$HOME/.xkb $HOME/.xkb/keymap/icd $DISPLAY" # END LOCAL diff --git a/dm b/dm index f277d05..a55ba38 100755 --- a/dm +++ b/dm @@ -31,6 +31,7 @@ GLOBAL_FILES = \ .vim/ \ .vimrc \ .xinitrc \ + .xkb/ \ .xmobarrc \ .xmonad/ \ .zsh/ \ -- cgit v1.2.3