+#!/bin/sh
+#
+# Xwindow keyboard configuration for French and Vietnamese
+# typing using a standard US keyboard (PC-104)
+#
+# Copyright ©2002-2008 Jean Christophe André <progfou@andrele.org>
+#
+# Redistribution of this file is permitted
+# under the terms of GNU Public License (GPL)
+#
+# 2003-05-15 - Version 1.5
+# 2004-11-14 - added dead_abovering
+# 2005-02-24 - added guillemotleft & guillemotright
+# 2006-01-11 - added documentation inside (comments)
+# 2008-04-10 - replaced unused euro centimal division by vietnamese devise
+# 2008-11-05 - disabled Mode_switch (unstable position)
+#
+# Usage:
+# [alt]+[`] => grave accent (dead key, "huyền")
+# [alt]+['] => acute accent (dead key, "sắc")
+# [alt]+[?] => hook accent (dead key, "hỏi")
+# [alt]+[~] => tilde accent (dead key, "ngã")
+# [alt]+[.] => dot bellow accent (dead key, "nạng")
+# [alt]+[,] => horn accent (dead key, eg: use with [u] to get 'ư')
+# [alt]+[[] or [alt]+[w] => ư (only works Xorg, XFree86 still buggy)
+# [alt]+[]] or [alt]+[q] => ơ (only works Xorg, XFree86 still buggy)
+# [alt]+voyel => the voyel with circumflex accent already combined
+# [alt]+[s] => ă (short 'a')
+# [alt]+[d] => đ ('d' stroked)
+# [alt]+["] => trema (dead key, eg: use with [i] to get 'ï')
+# [alt]+[0] => ring (dead key, twice to get the degree symbol '°')
+# [alt]+[shift]+[,] => cedilla (dead key, eg: use with [c] to get 'ç')
+# [alt]+[c] => ç ('c' with cedilla already combined)
+# [alt]+[p] => œ (the faemous "e in o" missing from ISO-8859-1)
+# [alt]+[f] => æ (the "e in a")
+# [alt]+[$] => € (euro devise symbol)
+### [alt]+[shift]+[$] => ¢ (euro centimal division)
+# [alt]+[shift]+[$] => ₫ (vietnamese devise symbol)
+# [alt]+[v] => © (copyright symbol)
+# [alt]+[shift]+[v] => ™ (trade mark symbol)
+# [alt]+[z] => « (left french guillemet)
+# [alt]+[x] => » (right french guillemet)
+#
+# If you simultaneously press the [shift] key, you'll get the expected
+# result as the same letter in it's capital case.
+#
+
+echo '
+ keycode 13 = 4 dollar EuroSign DongSign
+ keycode 15 = 6 asciicircum dead_circumflex
+ keycode 19 = 0 parenright dead_abovering
+ keycode 24 = q Q ohorn Ohorn
+ keycode 25 = w W uhorn Uhorn
+ keycode 26 = e E ecircumflex Ecircumflex
+ keycode 30 = u U ucircumflex Ucircumflex
+ keycode 31 = i I icircumflex Icircumflex
+ keycode 32 = o O ocircumflex Ocircumflex
+ keycode 33 = p P oe OE
+ keycode 34 = bracketleft braceleft uhorn Uhorn
+ keycode 35 = bracketright braceright ohorn Ohorn
+ keycode 38 = a A acircumflex Acircumflex
+ keycode 39 = s S abreve Abreve
+ keycode 40 = d D dstroke Dstroke
+ keycode 41 = f F ae AE
+ keycode 48 = apostrophe quotedbl dead_acute dead_diaeresis
+ keycode 49 = grave asciitilde dead_grave dead_tilde
+ keycode 52 = z Z guillemotleft
+ keycode 53 = x X guillemotright
+ keycode 54 = c C ccedilla Ccedilla
+ keycode 55 = v V copyright trademark
+ keycode 59 = comma less dead_horn dead_cedilla
+ keycode 60 = period greater dead_belowdot dead_circumflex
+ keycode 61 = slash question dead_hook dead_hook
+ keycode 108 = Mode_switch Mode_switch ISO_Level3_Shift ISO_Next_Group ISO_Level3_Shift ISO_Next_Group
+' | xmodmap -
+# keycode 113 = Mode_switch Mode_switch
+
+if [ "$1" = "vi-std" ]
+then
+ echo '
+ keycode 10 = 1 exclam abreve Abreve
+ keycode 11 = 2 at acircumflex Acircumflex
+ keycode 12 = 3 numbersign ecircumflex Ecircumflex
+ keycode 13 = 4 dollar ocircumflex Ocircumflex
+ keycode 14 = 5 percent dead_grave dead_grave
+ keycode 15 = 6 asciicircum dead_hook dead_circumflex
+ keycode 16 = 7 ampersand dead_tilde dead_tilde
+ keycode 17 = 8 asterisk dead_acute dead_abovering
+ keycode 18 = 9 parenleft dead_belowdot dead_breve
+ keycode 19 = 0 parenright dstroke Dstroke
+ ' | xmodmap -
+fi