// $XFree86$
// Lithuanian keyboard map by Ričardas Čepas <rch@richard.eu.org>

// Describes popular Lithuanian keymap 'Baltic' aka querty/numeric
// Don't rename this file because it includes 'lt'
// Extensions:  „ “ instead of 9 0 in Lithuanian mode, endash/Euro on 102nd key
//  Usage:  setxkbmap -option grp:shift_toggle 'lt'
//   # +lt(left_switch) turns key between left ctrl and shift on "German" keyboards into AltGr
// Option	"XkbModel"	"pc105"
// Option	"XkbLayout"	"lt+lt(left_switch)"
//   # Double shift toggles between numbers and Lithuanian letters, you may choose other keys
// Option	"XkbOptions"	"grp:shift_toggle"

partial default alphanumeric_keys modifier_keys 
xkb_symbols "basic" {

    name[Group1]= "US/ASCII";
    name[Group2]= "Lithuanian";
    include "lt(us_group2)"

    key	<AE01> {	[		1,	    exclam	],
			[	  aogonek,	   Aogonek	]	};
    key	<AE02> {	[		2,		at	],
			[	   ccaron,	    Ccaron	]	};
    key	<AE03> {	[		3,	numbersign	],
			[	  eogonek,	   Eogonek	]	};
    key	<AE04> {	[		4,	    dollar	],
			[	eabovedot,	 Eabovedot	]	};
    key	<AE05> {	[		5,	   percent	],
			[	  iogonek,	   Iogonek	]	};
    key	<AE06> {	[		6,     asciicircum	],
			[	   scaron,	    Scaron	]	};
    key	<AE07> {	[		7,	 ampersand	],
			[	  uogonek,	   Uogonek	]	};
    key	<AE08> {	[		8,	  asterisk	],
			[	  umacron,	   Umacron	]	};
    key	<AE09> {	[		9,	 parenleft	],
			[ doublelowquotemark,    parenleft	]	};
    key	<AE10> {	[		0,	parenright	],
// this is actually right quote for Lithuanian
			[ leftdoublequotemark,  parenright	]	};

    key	<AE12> {	[	    equal,	      plus	],
			[	   zcaron,	    Zcaron	]	};
    key	<LSGT> {	[	   endash,	  EuroSign 	],
			[	   endash,	  EuroSign 	]	};

    // End alphanumeric section
    
    // Begin modifier mappings 

    modifier_map Shift  { Shift_L };
    modifier_map Lock   { Caps_Lock, ISO_Lock };
    modifier_map Control{ Control_L };
    modifier_map Mod3   { Mode_switch };
};

partial alphanumeric_keys 
xkb_symbols "us_group2" {

    // Keyboard must work as usual when "Lithuanian" group is locked.
    key <TLDE> {	[], [ quoteleft,	asciitilde	]	};
    key <AE01> {	[], [	  1,	exclam 		]	};
    key <AE02> {	[], [	  2,	at		]	};
    key <AE03> {	[], [	  3,	numbersign	]	};
    key <AE04> {	[], [	  4,	dollar		]	};
    key <AE05> {	[], [	  5,	percent		]	};
    key <AE06> {	[], [	  6,	asciicircum	]	};
    key <AE07> {	[], [	  7,	ampersand	]	};
    key <AE08> {	[], [	  8,	asterisk	]	};
    key <AE09> {	[], [	  9,	parenleft	]	};
    key <AE10> {	[], [	  0,	parenright	]	};
    key <AE11> {	[], [     minus,	underscore	]	};
    key <AE12> {	[], [     equal,	plus		]	};

    key <AD01> {	[], [	  q,	Q 		]	};
    key <AD02> {	[], [	  w,	W		]	};
    key <AD03> {	[], [	  e,	E		]	};
    key <AD04> {	[], [	  r,	R		]	};
    key <AD05> {	[], [	  t,	T		]	};
    key <AD06> {	[], [	  y,	Y		]	};
    key <AD07> {	[], [	  u,	U		]	};
    key <AD08> {	[], [	  i,	I		]	};
    key <AD09> {	[], [	  o,	O		]	};
    key <AD10> {	[], [	  p,	P		]	};
    key <AD11> {	[], [ bracketleft,	braceleft	]	};
    key <AD12> {	[], [ bracketright,	braceright	]	};

    key <AC01> {	[], [	  a,	A 		]	};
    key <AC02> {	[], [	  s,	S		]	};
    key <AC03> {	[], [	  d,	D		]	};
    key <AC04> {	[], [	  f,	F		]	};
    key <AC05> {	[], [	  g,	G		]	};
    key <AC06> {	[], [	  h,	H		]	};
    key <AC07> {	[], [	  j,	J		]	};
    key <AC08> {	[], [	  k,	K		]	};
    key <AC09> {	[], [	  l,	L		]	};
    key <AC10> {	[], [ semicolon,	colon		]	};
    key <AC11> {	[], [ quoteright,	quotedbl	]	};

    key <AB01> {	[], [	  z,	Z 		]	};
    key <AB02> {	[], [	  x,	X		]	};
    key <AB03> {	[], [	  c,	C		]	};
    key <AB04> {	[], [	  v,	V		]	};
    key <AB05> {	[], [	  b,	B		]	};
    key <AB06> {	[], [	  n,	N		]	};
    key <AB07> {	[], [	  m,	M		]	};
    key <AB08> {	[], [     comma,	less		]	};
    key <AB09> {	[], [    period,	greater		]	};
    key <AB10> {	[], [     slash,	question	]	};
    key <BKSL> {	[], [ backslash,	bar		]	};

};



partial alphanumeric_keys 
xkb_symbols "Sundeadkeys" {
    include "lt(basic)" // for consistent naming
};

partial alphanumeric_keys 
xkb_symbols "sundeadkeys" {
    include "lt(Sundeadkeys)" // for consistent naming
};

partial alphanumeric_keys 
xkb_symbols "nodeadkeys" {
    include "lt(basic)" // for consistent naming
};

// definition for the extra key on 102-key keyboards between left Control and Alt
// in case you want use it as AltGr
xkb_symbols "left_switch" {
    key	<LSGT> {	[     Mode_switch,	 Multi_key 	],
			[     Mode_switch,	 Multi_key 	]	};
    // Begin modifier mappings 
    modifier_map Mod3   { Mode_switch };
};

