Commit Diff


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 <omar.polo@europecom.net>
+// 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 <TLDE> { [dollar,		asciitilde] }; // $ ~
+	key <AE01> { [ampersand] }; // &
+	key <AE02> { [braceleft,	1] }; // { 1
+	key <AE03> { [bracketleft,	2] }; // [ 2
+	key <AE04> { [parenleft,	3] }; // ( 3
+	key <AE05> { [equal, 		4] }; // = 4
+	key <AE06> { [asterisk,		5] }; // * 5
+
+	// Symbols row, left side:
+	key <AE07> { [plus,		6] }; // + 6
+	key <AE08> { [parenright,	7] }; // ) 7
+	key <AE09> { [bracketright,	8] }; // ] 8
+	key <AE10> { [braceright,	9] }; // } 9
+	key <AE11> { [exclam,		0,		exclamdown] }; // ! 0 ¡
+	key <AE12> { [numbersign] }; // #
+	key <BKSP> { [BackSpace] }; // backspace
+
+	// Upper row, left side
+	key <AD01> { [semicolon,	colon] }; // ; :
+	key <AD02> { [comma,		less,		guillemotleft] }; // , < «
+	key <AD03> { [period,		greater,	guillemotright] }; // . > »
+	key <AD04> { [p,		P,		Greek_pi,	Greek_PI] }; // p P π Π
+	key <AD05> { [y,		Y] }; // y Y
+
+	// Upper row, right side
+	key <AD06> { [f,		F] }; // 
+	key <AD07> { [g,		G] }; // 
+	key <AD08> { [c,		C] }; // 
+	key <AD09> { [r,		R,		Greek_rho,	Greek_RHO] }; // r R ρ Ρ
+	key <AD10> { [l,		L,		Greek_lambda,	Greek_LAMBDA] }; // l L λ Λ
+	key <AD11> { [slash,		question] }; // 
+	key <AD12> { [at,		asciicircum] }; // 
+
+	// home row, left side
+	key <AC01> { [a,		A,		agrave,		aacute] }; // a A à á
+	key <AC02> { [o,		O,		ograve,		oacute] }; // o O ò ó
+	key <AC03> { [e,		E,		egrave,		eacute] }; // e E è é
+	key <AC04> { [u,		U,		ugrave,		uacute] }; // u U ù ú
+	key <AC05> { [i,		I,		igrave,		iacute] }; // i I ì í
+
+	// home row, right side
+	key <AC06> { [d,		D] }; // d D
+	key <AC07> { [h,		H] }; // h H
+	key <AC08> { [t,		T,		Greek_tau,	Greek_TAU] }; // t T τ Τ
+	key <AC09> { [n,		N,		ntilde,		Ntilde] }; // n N ñ Ñ
+	// TODO: capital ssharp or sigma?
+	// key <AC10> { [s,		S,		ssharp,		0x1001E9E] }; // s S ß ẞ
+	key <AC10> { [s,		S,		Greek_sigma,	Greek_SIGMA] }; // s S σ Σ
+	key <AC11> { [minus,		underscore] }; // - _
+	key <BKSL> { [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 <U1E9C> 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 <LSGT> { [Multi_key,	ssharp,		Greek_alpha,	Greek_ALPHA] };
+	key <AB01> { [apostrophe,	quotedbl,	grave] }; // ' " `
+	key <AB02> { [q,		Q] }; // q Q
+	key <AB03> { [j,		J] }; // j J
+	key <AB04> { [k,		K] }; // k K
+
+	// lower row, right side
+	key <AB05> { [x,		X] }; // x X
+	key <AB06> { [b,		B,		Greek_beta,	Greek_BETA] }; // b B β Β
+	key <AB07> { [m,		M,		Greek_mu,	Greek_MU] }; // m M μ Μ
+	key <AB08> { [w,		W] }; // w W
+	key <AB09> { [v,		V] }; // v V
+	key <AB10> { [z,		Z] }; // z Z
+};