Author: barbier Date: 2006-02-08 18:11:41 -0500 (Wed, 08 Feb 2006) New Revision: 1173
Modified: trunk/debian/changelog trunk/debian/xserver-xorg.config.in Log: Update debian/xserver-xorg.config.in to reflect changes in XKB layouts. Better handling of Turkish layouts, by Recai Okta?\197?\159. (closes: #348027) Modified: trunk/debian/changelog =================================================================== --- trunk/debian/changelog 2006-02-08 04:48:04 UTC (rev 1172) +++ trunk/debian/changelog 2006-02-08 23:11:41 UTC (rev 1173) @@ -21,8 +21,12 @@ * Remove rgb.txt stuff from x11-common.preinst. This is causing the file to be deleted. - -- David Nusinow <[EMAIL PROTECTED]> Tue, 7 Feb 2006 22:54:07 -0500 + [ Denis Barbier ] + * Update debian/xserver-xorg.config.in to reflect changes in XKB layouts. + Better handling of Turkish layouts, by Recai Oktaş. (closes: #348027) + -- Denis Barbier <[EMAIL PROTECTED]> Thu, 9 Feb 2006 00:11:52 +0100 + xorg-x11 (6.9.0.dfsg.1-4) unstable; urgency=low [ David Martínez Moreno ] Modified: trunk/debian/xserver-xorg.config.in =================================================================== --- trunk/debian/xserver-xorg.config.in 2006-02-08 04:48:04 UTC (rev 1172) +++ trunk/debian/xserver-xorg.config.in 2006-02-08 23:11:41 UTC (rev 1173) @@ -955,44 +955,53 @@ case "$DI_KEYMAP--$REALLANG" in be2-latin1--*) XMAP="be";; - bg--*) XMAP="bg"; OPTIONS="bds";; - br-latin1--*) XMAP="br"; OPTIONS="abnt2";; + bg--*) XMAP="bg"; VARIANT="bds";; br-abnt2--ie*) XMAP="ie";; - br-abnt2--*) XMAP="br"; OPTIONS="abnt2";; + br-abnt2--*) XMAP="br";; + br-latin1--*) XMAP="br";; by--*) XMAP="by";; - cf--tr*) XMAP="tr"; OPTIONS="tr_f";; + cf--tr*) XMAP="tr"; VARIANT="f";; cf--ie*) XMAP="ie";; cf--lv*) XMAP="lv";; cf--it*) XMAP="it";; cf--nl*) XMAP="us";; - cf--bg*) XMAP="bg"; OPTIONS="bds";; + cf--bg*) XMAP="bg"; VARIANT="bds";; +# croat? cz-lat2--ru*) XMAP="ru";; cz-lat2--ua*) XMAP="ua";; cz-lat2--by*) XMAP="by";; cz-lat2--tj*) XMAP="tj";; - cz-lat2--gb*) XMAP="gb"; OPTIONS="intl";; + cz-lat2--gb*) XMAP="gb"; VARIANT="intl";; cz-lat2--mt*) XMAP="mt";; cz-lat2--ie*) XMAP="ie";; cz-lat2--sr*) XMAP="sr";; cz-lat2--uz*) XMAP="uz";; cz-lat2--*) XMAP="cz";; - de-latin1-nodeadkeys--de_CH) XMAP="ch"; OPTIONS="de";; - de-latin1-nodeadkeys--de_FR) XMAP="fr"; OPTIONS="de";; - de-latin1-nodeadkeys--*) XMAP="de"; OPTIONS="nodeadkeys";; - dvorak--no*) XMAP="dvorak"; OPTIONS="no";; - dvorak--se*) XMAP="dvorak"; OPTIONS="se";; - dvorak--sv*) XMAP="dvorak"; OPTIONS="sv";; - dvorak--gb*) XMAP="dvorak"; OPTIONS="gb";; - dvorak--fr*) XMAP="dvorak"; OPTIONS="fr";; - dvorak--pl*) XMAP="dvorak"; OPTIONS="pl";; - dvorak--*) XMAP="dvorak";; + de-latin1-nodeadkeys--de_CH) XMAP="ch"; VARIANT="de";; + de-latin1-nodeadkeys--de_FR) XMAP="fr"; VARIANT="de";; + de-latin1-nodeadkeys--*) XMAP="de"; VARIANT="nodeadkeys";; dk-latin1--*) XMAP="dk";; - es--br) XMAP="br"; OPTIONS="abnt2";; + dvorak--fr*) XMAP="fr"; VARIANT="dvorak";; + dvorak--gb*) XMAP="gb"; VARIANT="dvorak";; + dvorak--no*) XMAP="no"; VARIANT="dvorak";; + dvorak--pl*) XMAP="pl"; VARIANT="dvorak";; + dvorak--se*) XMAP="se"; VARIANT="dvorak";; + dvorak--*) XMAP="us"; VARIANT="dvorak";; + es--br) XMAP="br";; es--*) XMAP="es";; et--ee*) XMAP="ee";; - et--de*) XMAP="de"; OPTIONS="nodeadkeys";; - fr_CH--*) XMAP="ch"; OPTIONS="fr";; - fr_CH-latin1--*) XMAP="ch"; OPTIONS="fr";; + et--de*) XMAP="de"; VARIANT="nodeadkeys";; + fi-latin1--*) XMAP="fi";; + fr_CH--*) XMAP="ch"; VARIANT="fr";; + fr_CH-latin1--*) XMAP="ch"; VARIANT="fr";; + fr-latin9--ie*) XMAP="ie";; + fr-latin9--*) XMAP="fr"; VARIANT="latin9";; + gr--by*) XMAP="by";; + gr--ru*) XMAP="ru";; + gr--tj*) XMAP="tj";; + gr--tr*) XMAP="tr"; VARIANT="f";; + gr--ua*) XMAP="ua";; + gr--uz*) XMAP="uz";; hebrew--ie*) XMAP="ie";; hebrew--*) XMAP="il";; hu--yu*) XMAP="yu";; @@ -1002,96 +1011,88 @@ hu--si*) XMAP="si";; hu--pl*) XMAP="pl";; hu--*) XMAP="hu";; - fi-latin1--*) XMAP="fi";; - fr-latin9--ie*) XMAP="ie";; - fr-latin9--*) XMAP="fr-latin9";; - gr--ru*) XMAP="ru";; - gr--ua*) XMAP="ua";; - gr--by*) XMAP="by";; - gr--tj*) XMAP="tj";; - gr--tr*) XMAP="tr_f";; - gr--uz*) XMAP="uz";; hu--*) XMAP="hu";; is-latin1--*) XMAP="is";; it--*) XMAP="it";; - jp106--*) XMAP="jp"; OPTIONS="jp106";; + jp106--*) XMAP="jp"; VARIANT="jp106";; la-latin1--*) XMAP="la";; - lt--pl*) XMAP="pl";; + lt--bg*) XMAP="bg"; VARIANT="bds";; + lt--by*) XMAP="by";; + lt--ge*) XMAP="ge_la";; lt--hr_US) XMAP="hr";; - lt--ge*) XMAP="ge_la";; lt--il*) XMAP="il";; - lt--vn*) XMAP="vn";; + lt--lv*) XMAP="lv";; + lt--mt*) XMAP="mt"; VARIANT="us";; + lt--pl*) XMAP="pl";; lt--ru*) XMAP="ru";; + lt--tj*) XMAP="tj";; + lt--tr*) XMAP="tr"; VARIANT="f";; lt--ua*) XMAP="ua";; lt--us*) XMAP="sr";; - lt--by*) XMAP="by";; - lt--bg*) XMAP="bg"; OPTIONS="bds";; - lt--tj*) XMAP="tj";; - lt--lv*) XMAP="lv";; - lt--mt*) XMAP="mt_us";; - lt--tr*) XMAP="tr"; OPTIONS="tr_f";; lt--uz*) XMAP="uz";; + lt--vn*) XMAP="vn";; lt--*) XMAP="lt";; + lv-latin4--*) XMAP="lv";; mac-us-std--*) XMAP="us";; - mac-de2-ext--*) XMAP="de"; OPTIONS="nodeadkeys";; - mac-fr2-ext--*) XMAP="fr";; + mac-us-ext--*) XMAP="us";; + mac-de2-ext--*) XMAP="de"; VARIANT="nodeadkeys";; mac-fr3--*) XMAP="fr";; mac-es--*) XMAP="es";; - mk--tr*) XMAP="tr"; OPTIONS="tr_f";; + mk--hr*) XMAP="hr";; mk--sr*) XMAP="sr";; - mk--hr*) XMAP="hr";; + mk--tr*) XMAP="tr"; VARIANT="f";; no-latin1--*) XMAP="no";; pl--by*) XMAP="by";; + pl--hr*) XMAP="hr";; pl--ru*) XMAP="ru";; - pl--ua*) XMAP="ua";; - pl--by*) XMAP="by";; pl--tj*) XMAP="tj";; - pl--hr*) XMAP="hr";; pl--tr*) XMAP="tr";; + pl--ua*) XMAP="ua";; pl--uz*) XMAP="uz";; pl--*) XMAP="pl";; pt-latin1--*) XMAP="pt";; - uk--en_IE) XMAP="ie";; - uk--*) XMAP="gb";; ru--ge*) XMAP="ge_ru";; - lt--ge*) XMAP="ge_la";; - lt--*) XMAP="lt";; - lv-latin4--*) XMAP="lv";; se-latin1--*) XMAP="se";; - sg-latin1--ch_DE) XMAP="ch"; OPTIONS="de";; - sg-latin1--ch_FR) XMAP="ch"; OPTIONS="fr";; - sg-latin1--ch*) XMAP="ch"; OPTIONS="de";; - sg-latin1--de*) XMAP="ch"; OPTIONS="de";; - sg-latin1--fr*) XMAP="ch"; OPTIONS="fr";; - sk-qwerty--cz*) XMAP="cz_querty";; - sk-qwerty--*) XMAP="sk_querty";; - sr-cy--tr*) XMAP="tr"; OPTIONS="tr_f";; + sg-latin1--ch_DE) XMAP="ch"; VARIANT="de";; + sg-latin1--ch_FR) XMAP="ch"; VARIANT="fr";; + sg-latin1--ch*) XMAP="ch"; VARIANT="de";; + sg-latin1--de*) XMAP="ch"; VARIANT="de";; + sg-latin1--fr*) XMAP="ch"; VARIANT="fr";; + sk-qwerty--cz*) XMAP="cz"; VARIANT="querty";; + sk-qwerty--*) XMAP="sk"; VARIANT="querty";; +# slovene? + sr-cy--tr*) XMAP="tr"; VARIANT="f";; sr-cy--yu*) XMAP="yu";; sr-cy--*) XMAP="sr";; - trfu--hu*) XMAP="hu"; OPTIONS="qwerty";; + tralt--*) XMAP="tr"; VARIANT="alt";; + trfu--hu*) XMAP="hu"; VARIANT="qwerty";; trfu--yu*) XMAP="yu";; - trfu--*) XMAP="tr"; OPTIONS="tr_f";; + trf--*) XMAP="tr"; VARIANT="f";; + trfu--*) XMAP="tr"; VARIANT="f";; + trq--*) XMAP="tr";; + *trqalt*) XMAP="tr"; VARIANT="alt";; trqu--*) XMAP="tr";; - ua--tr*) XMAP="tr"; OPTIONS="tr_f";; ua--by*) XMAP="by";; + ua--tr*) XMAP="tr"; VARIANT="f";; ua--*) XMAP="ua";; + uk--en_IE) XMAP="ie";; + uk--ie*) XMAP="ie";; uk--mt*) XMAP="mt";; - uk--ie*) XMAP="ie";; - uk--*) XMAP="gb"; OPTIONS="intl";; + uk--*) XMAP="gb"; VARIANT="intl";; *--al*) XMAP="al"; LEVEL2="l2";; *--am*) XMAP="am";; *--ar*) XMAP="ar"; LEVEL2="l2";; - *--az*) XMAP="az"; OPTIONS="latin";; + *--az*) XMAP="az"; VARIANT="latin";; *--be*) XMAP="be";; *--ben*) XMAP="ben"; LEVEL2="l2";; - *--bg*) XMAP="bg"; OPTIONS="bds";; + *--bg*) XMAP="bg"; VARIANT="bds";; *--bs*) XMAP="bs";; *--by*) XMAP="by";; *--cz*) XMAP="cz";; - *--de_CH) XMAP="ch"; OPTIONS="de";; - *--de_FR) XMAP="ch"; OPTIONS="fr";; - *--de*) XMAP="de"; OPTIONS="nodeadkeys";; + *--de_CH) XMAP="ch"; VARIANT="de";; + *--de_FR) XMAP="ch"; VARIANT="fr";; *--dev*) XMAP="dev";; + *--de*) XMAP="de"; VARIANT="nodeadkeys";; *--dk*) XMAP="dk";; *--dz*) XMAP="dz";; *--ee*) XMAP="ee";; @@ -1100,13 +1101,12 @@ *--en_CA) XMAP="us";; *--en_GB) XMAP="gb";; *--en_IE) XMAP="ie";; - *--en_GB) XMAP="gb";; *--en_US) XMAP="us";; *--en*) XMAP="us";; *--es*) XMAP="es";; *--fi*) XMAP="fi";; - *--fr_CA) XMAP="ca"; OPTIONS="fr";; - *--fr_CH) XMAP="ch"; OPTIONS="fr";; + *--fr_CA) XMAP="ca"; VARIANT="fr";; + *--fr_CH) XMAP="ch"; VARIANT="fr";; *--fr*) XMAP="fr";; *--ge*) XMAP="ge_la";; *--guj*) XMAP="guj";; @@ -1118,7 +1118,7 @@ *--is*) XMAP="is";; *--it*) XMAP="it";; *--iu*) XMAP="iu";; - *--jp*) XMAP="jp"; OPTIONS="jp106";; + *--jp*) XMAP="jp"; VARIANT="jp106";; *--kan*) XMAP="kan";; *--la*) XMAP="la";; *--lo*) XMAP="lo";; @@ -1134,7 +1134,7 @@ *--ogh*) XMAP="ogham";; *--ori*) XMAP="ori";; *--pl*) XMAP="pl";; - *--pt_BR) XMAP="br"; OPTIONS="abnt2";; + *--pt_BR) XMAP="br";; *--pt*) XMAP="pt";; *--ro*) XMAP="ro";; *--ru*) XMAP="ru";; @@ -1163,10 +1163,19 @@ XMAP="us" # prompt for layout if we ended up with French Canadian; apparently having # US-layout keyboards is common there - elif [ "$XMAP" = "ca" ] && [ "$OPTIONS" = "fr" ]; then + elif [ "$XMAP" = "ca" ] && [ "$VARIANT" = "fr" ]; then PRIORITY=high else PRIORITY=low + + # for Turkish, ensure to add "caps:shift" to make Caps Lock behave correctly + if [ "$XMAP" = "tr" ]; then + case "$OPTIONS" in + *caps:shift*) ;; # do nothing if it's already defined + "") OPTIONS="caps:shift" ;; + *) OPTIONS="$OPTIONS,caps:shift" ;; + esac + fi fi # we can't do non-Latin usernames, so people with Latin layouts need a US @@ -1190,6 +1199,7 @@ XKBLAYOUT="$XMAP" XKBOPTIONS="$OPTIONS" + XKBVARIANT="$VARIANT" else db_get xserver-xorg/config/inputdevice/keyboard/layout || debug_report_status "db_get xserver-xorg/config/inputdevice/keyboard/layout" XKBLAYOUT="$RET" @@ -1234,10 +1244,59 @@ if [ "$RET" = "us" ]; then PRIORITY=low elif [ "$RET" = "br" ]; then - db_set xserver-xorg/config/inputdevice/keyboard/variant "abnt2" + XKBVARIANT=abnt2 fi + +db_set xserver-xorg/config/inputdevice/keyboard/variant "$XKBVARIANT" MAY_BE_NULL=yes validate_string_db_input "$(priority_ceil $PRIORITY)" xserver-xorg/config/inputdevice/keyboard/variant +# handle Turkish keyboard setup specially due to its oddities +db_get xserver-xorg/config/inputdevice/keyboard/layout +if [ "$RET" = "tr" ]; then + TR_KEYMAP="$CONFIG_DIR/xkb/symbols/pc/tr" + + db_get xserver-xorg/config/inputdevice/keyboard/variant + TR_VARIANT="$RET" + + case ",$TR_VARIANT," in + *,f,*|*,tr_f,*) + # X.Org version < 6.9 uses "tr_f", while >= 6.9 uses only "f" + if [ -e "$TR_KEYMAP" ] && + grep -q "^[[:space:]]*xkb_symbols[[:space:]]*\"tr_f\"" $TR_KEYMAP; then + SANITIZED_TR_VARIANT="tr_f" + else + SANITIZED_TR_VARIANT="f" + fi + ;; + *,alt,*|*,tr_alt,*) + # X.Org version < 6.9 uses "tr_alt", while >= 6.9 uses only "alt" + if [ -e "$TR_KEYMAP" ] && + grep -q "^[[:space:]]*xkb_symbols[[:space:]]*\"tr_alt\"" $TR_KEYMAP; then + SANITIZED_TR_VARIANT="tr_alt" + else + SANITIZED_TR_VARIANT="alt" + fi + ;; + esac + + if [ -n "$SANITIZED_TR_VARIANT" ]; then + # remove the unsanitized variant + TR_VARIANT=$(echo $TR_VARIANT | \ + sed -e "s/\<\(tr_\)*\(f\|alt\)[[:space:]]*,//g" \ + -e "s/\(^\|,\)[[:space:]]*\(tr_\)*\(f\|alt\)[[:space:]]*$//g") + + # add the sanitized variant + if [ -n "$TR_VARIANT" ]; then + TR_VARIANT="$SANITIZED_TR_VARIANT" + else + TR_VARIANT="$TR_VARIANT,$SANITIZED_TR_VARIANT" + fi + + # now, re-commit the variant to debconf + db_set xserver-xorg/config/inputdevice/keyboard/variant "$TR_VARIANT" + fi +fi + # ugly kludge, I know; map Apple->AltGr for most European Macs db_get xserver-xorg/config/inputdevice/keyboard/model if [ "$ARCH" = "powerpc" ] && [ "$RET" = "pc105" ]; then -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]