[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

X Strike Force X.Org X11 SVN commit: r1173 - trunk/debian



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 <dnusinow@debian.org>  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 <barbier@debian.org>  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



Reply to: