// This is a Devanagari/Hindi keyboard layout for XFree86 4.3.0 with a // pc104/us keyboard. // // Contents: // 1 Intro & Disclaimer // 2 Change Log // 3 Installation Instructions // 4 Debugging // // 1 Intro___________________________________________________________________ // // I read the Indian Linux Project's Hindi map (inscript.hi.xkb) for guidance, // and then rewrote this map from scratch for XFree86 4.3.0 (ex: "us,dev"). // While this map, I noticed a few differences with other commercial keyboard // maps, and tried making this map (IMHO) a decent merger of all of them plus a // couple extra keys here and there such as including "/" and "\" to facilitate // typing file names. In other words, if you were used to typing on Devanagari // keyboards for other systems, I hope this one will be comfortable as well. // // Why did I just start yet-another-hindi keyboard map? The existing maps I // found were either for older releases of XFree86 and didn't attempt to // facilitate some of the latest key mapping niceties of 4.3.0, or the maps // were just missing a few characters here and there, and I couldn't figure out // why. // // Standard disclaimer: I didn't put any mischievous macros .oO(rm -rf /) in // here, but even so, You agree to take full responsibility for any positive or // negative effects this keyboard map may have on your computing life. // // Feel free to use this map, and please send me any advice on how to improve // it for my personal machine. :) // // - David Holl // // // 2 Change Log______________________________________________________________ // // September 2003 -- David Holl // . based on previous maps from XFree86 and otehr platforms // . designed to play well with XFree86 4.3.0's multiple-group scheme // . checked & added some keys to match the Unicode + INSCRIPT standards // (like ZWNJ & ZWJ, and some extras to match MS's Devanagari layout...) // . added example usage: setxkmap & XF86Config // // March 2004 -- David Holl // . minor clean up // // // 3 Installation____________________________________________________________ // // 1) Put this file with the rest of your XFree86 xkb maps. // cp devanagari.xkb /etc/X11/xkb/symbols/pc/dev // // 2) Tell X to load the keyboard map. // You have two choices: // A) modify /etc/X11/XF86Config (loads map at start of X) // B) run setxkbmap from command line // // // 3.A Installation: XF86Config // // Here's an example XF86Config section: // // Section "InputDevice" // # Identifier & Driver need to match your existing configuration: // Identifier "Keyboard1" // Driver "keyboard" // // # You don't need this AutoRepeat line; it's a personal preference... // Option "AutoRepeat" "250 50" // // # XkbRules & XkbModel should probably also match your current config: // Option "XkbRules" "xfree86" // Option "XkbModel" "pc104" // // # These are important: XkbLayout & XKbOptions. // # Append ",dev" to your layout, to load the devanagari keyboard in addition // # to your current layout: // # Option "XkbLayout" "us" // Option "XkbLayout" "us,dev" // // # XKbOptions: tell the driver to switch between the us & dev layouts when // # you press both shift keys: // Option "XkbOptions" "grp:shift_toggle" // # Tell XKB to use Right_Ctrl key for selecting 3rd and 4th levels (dev): // Option "XkbOptions" "lv3:switch" // EndSection // // // 3.B Installation: setxkbmap // Alternatively, if you cannot or don't want to edit your XF86Config, try // this from the command line: // // setxkbmap -rules xfree86 -model pc104 -layout "us,dev" \ // -option "grp:shift_toggle" -option "lv3:switch" // // // 4 Debugging_______________________________________________________________ // // If your X client and server reside on different machines, try: // (this also dumps occasionally-useful error messages when debugging) // setxkbmap ... blah blah ... -print | xkbcomp - $DISPLAY // default partial alphanumeric_keys xkb_symbols "basic" { name[Group1]="Devanagari"; key.type="FOUR_LEVEL"; key { [ U094a, U0912, grave, asciitilde ] }; key { [ U0967, U090d, 1, exclam ] }; key { [ U0968, U0945, 2, at ] }; // Shift+AE0[3-8] really need to return a macro of keys defined by // INSCRIPT in place of the symbols that are here for now. But this // requires XKB to map 1 key into two to three other key presses. key { [ U0969, numbersign, 3, numbersign ] }; key { [ U096a, dollar, 4, dollar ] }; key { [ U096b, percent, 5, percent ] }; key { [ U096c, asciicircum, 6, asciicircum ] }; key { [ U096d, ampersand, 7, ampersand ] }; key { [ U096e, asterisk, 8, asterisk ] }; key { [ U096f, parenleft, 9, parenleft ] }; key { [ U0966, parenright, 0, parenright ] }; key { [ minus, U0903, minus, underscore ] }; key { [ U0943, U090b, U0944, U0960 ] }; key { [ U094c, U0914 ] }; key { [ U0948, U0910 ] }; key { [ U093e, U0906 ] }; key { [ U0940, U0908, U0963, U0961 ] }; key { [ U0942, U090a ] }; key { [ U092c, U092d ] }; key { [ U0939, U0919 ] }; key { [ U0917, U0918, U095a ] }; key { [ U0926, U0927 ] }; key { [ U091c, U091d, U095b ] }; key { [ U0921, U0922, U095c, U095d ] }; key { [ U093c, U091e ] }; // I added \ / ? | for shell-convenience (file names and piping) key { [ U0949, U0911, backslash, bar ] }; key { [ U094b, U0913 ] }; key { [ U0947, U090f ] }; key { [ U094d, U0905 ] }; key { [ U093f, U0907, U0962, U090c ] }; key { [ U0941, U0909 ] }; key { [ U092a, U092b, NoSymbol, U095e ] }; key { [ U0930, U0931 ] }; key { [ U0915, U0916, U0958, U0959 ] }; key { [ U0924, U0925 ] }; key { [ U091a, U091b, U0952 ] }; key { [ U091f, U0920, NoSymbol, U0951 ] }; key { [ U0946, U090e, U0953 ] }; key { [ U0902, U0901, NoSymbol, U0950 ] }; key { [ U092e, U0923, U0954 ] }; key { [ U0928, U0929 ] }; key { [ U0935, U0934 ] }; key { [ U0932, U0933 ] }; key { [ U0938, U0936 ] }; key { [ comma, U0937, U0970 ] }; key { [ period, U0964, U0965, U093d ] }; // I added \ / ? | for shell-convenience (file names and piping) key { [ U092f, U095f, slash, question ] }; // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ): key { [ space, space, U200c, U200d ] }; };