#! /bin/bash -- # # us.pts_magyar.sh: Script to install the pts_magyar layout for X11 (X.Org) # by pts@fazekas.hu at Sat Jun 12 22:37:08 CEST 2010 # # This script hash been tested and found working on Ubuntu Karmic and Ubuntu # Lucid. if test "$EUID" = 0; then SUDO=; else SUDO=sudo; fi exec $SUDO bash /dev/stdin "$@" <<'ENDSUDO' set -ex perl -pi -0777 -e \ 's@^// BEGIN pts_magyar\s.*?\n// END pts_magyar[ \t]*\n@@mgs' \ /usr/share/X11/xkb/symbols/us cat >>/usr/share/X11/xkb/symbols/us <<'END' // BEGIN pts_magyar // // us.pts_magyar: pts_magyar layout, append to /usr/share/X11/xkb/symbols/us // by pts@fazekas.hu at Wed Jul 23 21:39:45 CEST 2008 // // Register on Hardy: sudo bash: echo ' pts_magyar us: pts magyar' >>/usr/share/X11/xkb/rules/xorg.lst // Test: setxkbmap 'us(pts_magyar),hu' // Test: setxkbmap 'us(pts_magyar),hu' -print | xkbcomp - $DISPLAY // // Register on Ubuntu Karmic: // (strace -e open -o key.log gnome-keyboard-properties) reports evdev.lst and evdev.xml. // $ sudo bash: echo ' pts_magyar us: pts magyar' >>/usr/share/X11/xkb/rules/evdev.lst // ?$ sudo bash: echo ' pts_magyar us: pts magyar' >>/usr/share/X11/xkb/rules/base.lst // * Add this a bit above euro in /usr/share/X11/xkb/rules/evdev.xml // // // pts_magyar // pts magyar // // // * ?Ditto for base.xml // * ?Ditto for xfree86.xml // * ?Ditto for base.xml partial alphanumeric_keys modifier_keys xkb_symbols "pts_magyar" { name[Group1]= "USA - pts magyar"; key { [ less, greater, iacute, Iacute ] }; key { [ grave, asciitilde, iacute, Iacute ] }; key { [ 1, exclam ] }; key { [ 2, at ] }; key { [ 3, numbersign ] }; key { [ 4, dollar ] }; // 0xA4==degree in EuroSign in biki key { [ 5, percent, EuroSign, EuroSign ] }; key { [ 6, asciicircum ] }; key { [ 7, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright, odiaeresis, Odiaeresis ] }; key { [ minus, underscore, udiaeresis, Udiaeresis ] }; key { [ equal, plus, oacute, Oacute ] }; key { [ q, Q, ssharp, ssharp ] }; key { [ w, W ] }; key { [ e, E, adiaeresis, Adiaeresis ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y, y, Y, y, Y, y, Y, y, Y, y, Y, y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ bracketleft, braceleft, odoubleacute, Odoubleacute ] }; key { [ bracketright, braceright, uacute, Uacute ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ semicolon, colon, eacute, Eacute ] }; key { [ apostrophe, quotedbl, aacute, Aacute ] }; key { [ backslash, bar, udoubleacute, Udoubleacute ] }; key { [ z, Z, z, Z, z, Z, z, Z, z, Z, z, Z, z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, V ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; key { [ comma, less, division, division ] }; key { [ period, greater, endash, endash ] }; key { [ slash, question ] }; key { [ Caps_Lock ] }; key { [ KP_Delete, KP_Decimal ] }; include "level3(ralt_switch)" }; // END pts_magyar END # evdev.lst is enough for Ubuntu Lucid. for F in /usr/share/X11/xkb/rules/{base,evdev,xorg,xfree86}.lst; do if test -f "$F"; then perl -pi -e '$_="" if /\bpts_magyar\b/' "$F" # After /^! variant\n/ perl -pi -0777 -e 's@^( dvorak-intl[ \t]*us: .*)@$1\n pts_magyar us: pts magyar@gm' "$F" fi done # evdev.xml is enough for Ubuntu Lucid. for F in /usr/share/X11/xkb/rules/{base,evdev,xorg,xfree86}.xml; do if test -f "$F"; then perl -pi -0777 -e 's@^[ \t]*\s*\s*pts_magyar.*?[ \t]*@@gsm' "$F" perl -pi -0777 -e 's@^([ \t]*\s*\s*dvorak-intl.*?)[ \t]*\n@$1\n \n \n pts_magyar\n pts magyar\n \n \n@gsm' "$F" fi done ENDSUDO