rpms/xorg-x11-server/devel fedora-setup-keyboard, 1.1, 1.2 xorg-x11-server.spec, 1.393, 1.394

Peter Hutterer whot at fedoraproject.org
Tue Jan 27 00:48:15 UTC 2009


Author: whot

Update of /cvs/pkgs/rpms/xorg-x11-server/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27223

Modified Files:
	fedora-setup-keyboard xorg-x11-server.spec 
Log Message:
* Tue Jan 27 2009 Peter Hutterer <peter.hutterer at redhat.com> 1.5.99.901-5
- replace fedora-setup-keyboard with pure python one (#478431)




Index: fedora-setup-keyboard
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/devel/fedora-setup-keyboard,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- fedora-setup-keyboard	4 Aug 2008 21:15:46 -0000	1.1
+++ fedora-setup-keyboard	27 Jan 2009 00:47:45 -0000	1.2
@@ -1,33 +1,48 @@
-#!/bin/sh
-#
-# Trivial egregious hack to load the console keyboard layout into XKB.
-#
-# Yes, this should really just be written in python.  If you can figure
-# out how to make hal callouts written in python _work_, then please
-# let me know.  In the meantime, we'll do this.
-
-[[ -x /usr/bin/python ]] || exit 0
-[[ -x /usr/bin/hal-set-property ]] || exit 0
-
-source /etc/sysconfig/keyboard >& /dev/null || exit 0
-
-[[ -n "$KEYTABLE" ]] || exit 0
-
-rhplquery () {
-    /usr/bin/python -c "import rhpl.keyboard_models; m = rhpl.keyboard_models.KeyboardModels().get_models(); print \"junk='%s' layout='%s' model='%s' variant='%s' options='%s'\" % tuple(m[\"$1\"])" || echo "exit 0"
-}
-
-eval `rhplquery $KEYTABLE`
-
-hal_set () {
-    if [[ -n "${!1}" ]]; then
-	/usr/bin/hal-set-property --direct --udi "$UDI" --key input.xkb.$1 --string "${!1}"
-    else
-	/usr/bin/hal-set-property --direct --udi "$UDI" --key input.xkb.$1 --remove
-    fi
-}
-
-hal_set layout
-hal_set model
-hal_set variant
-hal_set options
+#!/usr/bin/env python
+# encoding: utf-8
+# vim: tabstop=4 expandtab autoindent shiftwidth=4 fileencoding=utf-8
+"""
+fedora-setup-keyboard.py
+
+Written by Alexander D. Kanevskiy <kad at blackcatlinux.com>
+"""
+
+import sys, os, dbus
+import rhpl.keyboard_models
+from rhpl.simpleconfig import SimpleConfigFile
+
+KBDCONFIG = "/etc/sysconfig/keyboard"
+
+def main():
+    # Sanity checks
+    if 'UDI' not in os.environ:
+        sys.exit(1)
+    if not os.access(KBDCONFIG, os.R_OK):
+        sys.exit(0)
+    # Read config
+    kbd_config = SimpleConfigFile()
+    kbd_config.read(KBDCONFIG)
+    kbd_models = rhpl.keyboard_models.KeyboardModels().get_models()
+    (layout, model, variant, options) = tuple(kbd_models.get(kbd_config.info.get('KEYTABLE',''), ['', '', '', '', ''])[1:])
+    result_dict = { 'layout': layout, 'model': model, 'variant': variant, 'options': options }
+    
+    # Now let's dbus fun begin
+    if 'HALD_DIRECT_ADDR' in os.environ:
+        bus = dbus.connection.Connection(os.environ['HALD_DIRECT_ADDR'])
+    else:
+        bus = dbus.SystemBus()
+    kbd = dbus.Interface(bus.get_object("org.freedesktop.Hal", os.environ['UDI']), 'org.freedesktop.Hal.Device')
+    for key in result_dict:
+        # Respect user settings
+        value = kbd_config.info.get(key.upper(), result_dict[key])
+        if not value:
+            try:
+                kbd.RemoveProperty("input.xkb.%s" % key)
+            except dbus.exceptions.DBusException:
+                pass # key already not exist
+        else:
+            kbd.SetPropertyString("input.xkb.%s" % key, value)
+
+
+if __name__ == '__main__':
+    main()


Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/devel/xorg-x11-server.spec,v
retrieving revision 1.393
retrieving revision 1.394
diff -u -r1.393 -r1.394
--- xorg-x11-server.spec	26 Jan 2009 23:47:11 -0000	1.393
+++ xorg-x11-server.spec	27 Jan 2009 00:47:45 -0000	1.394
@@ -19,7 +19,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.5.99.901
-Release:   4%{?dist}
+Release:   5%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -494,6 +494,9 @@
 
 
 %changelog
+* Tue Jan 27 2009 Peter Hutterer <peter.hutterer at redhat.com> 1.5.99.901-5
+- replace fedora-setup-keyboard with pure python one (#478431)
+
 * Tue Jan 27 2009 Dave Airlie <airlied at redhat.com> 1.5.99.901-4
 - xserver-1.5.99.3-fix-core-fonts.patch (#478999)
 




More information about the scm-commits mailing list