commit cd0a901d0be7d8c0548eebcc9910d2532ba77938 from: Omar Polo date: Thu Jun 21 22:45:41 2018 UTC Initial commit commit - /dev/null commit + cd0a901d0be7d8c0548eebcc9910d2532ba77938 blob - /dev/null blob + e0b4cad81cc18d8e0c991f2fa76b2f2cdb2dfa5e (mode 644) --- /dev/null +++ README.org @@ -0,0 +1,32 @@ +* dvp-eu + + Just another variant of the dvorak layout, made for programmers that + need also to type in non-english languages. + +** Goals + + Build a decent, balanced layout and made it configurable through + provided patches. + +** Current status + + This project is in its early stage of development. I'm still + looking for some ideas and feedback so the placement of some keys + may change, until a stable release. + +** Usage + + Just put the =dvp-eu= file in some decent place, like + =/usr/X11R6/share/X11/xkb/symbols/= on OpenBSD, and =loadkeys + dvp-eu=. Than you're done! + +** Preview + + Given that, as of now, the layout is still not definitive, I'm not + providing any preview of the placement. I'll provide one when it + will be finished. As of now, you can get a preview of the keyboard + with + + #+BEGIN_SRC sh + setxkbmap dvp-eu -print | xkbcomp - - | xkbprint - - | ps2pdf -pict all - > dvp-eu.pdf + #+END_SRC blob - /dev/null blob + 7ca1d3b6ac126bc6dd238357d4a38b900799ccf7 (mode 644) --- /dev/null +++ dvp-eu @@ -0,0 +1,91 @@ +// This is a variant of the Dvorak layout, inspired by the Programmer +// Dvorak by Roland Kaufmann with special attention to the european +// languages, Italian in particular +// +// Mantained by Omar Polo +// License: ISC + +default partial alphanumeric_keys modifier_keys +xkb_symbols "dvp-eu" { + include "us(dvorak)" + + name[Group1] = "Dvorak Programmer European"; + + // Unmodified Shift Altgr Shift+Altgr + + // Symbols row, left side: + key { [dollar, asciitilde] }; // $ ~ + key { [ampersand] }; // & + key { [braceleft, 1] }; // { 1 + key { [bracketleft, 2] }; // [ 2 + key { [parenleft, 3] }; // ( 3 + key { [equal, 4] }; // = 4 + key { [asterisk, 5] }; // * 5 + + // Symbols row, left side: + key { [plus, 6] }; // + 6 + key { [parenright, 7] }; // ) 7 + key { [bracketright, 8] }; // ] 8 + key { [braceright, 9] }; // } 9 + key { [exclam, 0, exclamdown] }; // ! 0 ¡ + key { [numbersign] }; // # + key { [BackSpace] }; // backspace + + // Upper row, left side + key { [semicolon, colon] }; // ; : + key { [comma, less, guillemotleft] }; // , < « + key { [period, greater, guillemotright] }; // . > » + key { [p, P, Greek_pi, Greek_PI] }; // p P π Π + key { [y, Y] }; // y Y + + // Upper row, right side + key { [f, F] }; // + key { [g, G] }; // + key { [c, C] }; // + key { [r, R, Greek_rho, Greek_RHO] }; // r R ρ Ρ + key { [l, L, Greek_lambda, Greek_LAMBDA] }; // l L λ Λ + key { [slash, question] }; // + key { [at, asciicircum] }; // + + // home row, left side + key { [a, A, agrave, aacute] }; // a A à á + key { [o, O, ograve, oacute] }; // o O ò ó + key { [e, E, egrave, eacute] }; // e E è é + key { [u, U, ugrave, uacute] }; // u U ù ú + key { [i, I, igrave, iacute] }; // i I ì í + + // home row, right side + key { [d, D] }; // d D + key { [h, H] }; // h H + key { [t, T, Greek_tau, Greek_TAU] }; // t T τ Τ + key { [n, N, ntilde, Ntilde] }; // n N ñ Ñ + // TODO: capital ssharp or sigma? + // key { [s, S, ssharp, 0x1001E9E] }; // s S ß ẞ + key { [s, S, Greek_sigma, Greek_SIGMA] }; // s S σ Σ + key { [minus, underscore] }; // - _ + key { [backslash, bar] }; // \ | + +// From /usr/X11R6/share/x11/xkb/symbols/de +// The unicode capital letter sharp s U+1E9E is transformed to "SS" +// to match the rules for capitalizing sharp s in german. +// If the capital sharp s is needed, delete the line +// starting with from /usr/share/X11/locale/iso8859-15/Compose. +// If both doubled S and capital sharp s are needed, use 0x1001E9E +// for capital sharp s and some free unicode codepoint like 0x1001E9C +// for doubled S. Don`t forget to change this in the Compose file, too. + + // lower row, left side + key { [Multi_key, ssharp, Greek_alpha, Greek_ALPHA] }; + key { [apostrophe, quotedbl, grave] }; // ' " ` + key { [q, Q] }; // q Q + key { [j, J] }; // j J + key { [k, K] }; // k K + + // lower row, right side + key { [x, X] }; // x X + key { [b, B, Greek_beta, Greek_BETA] }; // b B β Β + key { [m, M, Greek_mu, Greek_MU] }; // m M μ Μ + key { [w, W] }; // w W + key { [v, V] }; // v V + key { [z, Z] }; // z Z +};