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