[et-mgmt-tools] [PATCH] virtinst: also look at xorg.conf for keymap

Cole Robinson crobinso at redhat.com
Mon Dec 1 15:28:15 UTC 2008


Guido Günther wrote:
> Hi,
> attached patch looks at xorg.conf if no /etc/sysconfig/keyboard for the
> default keyboard. This helps with distros that don't have
> /etc/sysconfig/ like Debian.
> Cheers,
>  -- Guido
> 

Couple small nits:

>  HG changeset patch
> # User Guido Günther <agx at sigxcpu.org>
> # Date 1227979760 -3600
> # Node ID a292eb8430cd2d9544e89dba127323704f3963ce
> # Parent  16e923676e84d81cf9bf6dc2cdd30d95bf65bbe1
> parse xorg.conf for keymap
> 
> diff -r 16e923676e84 -r a292eb8430cd virtinst/util.py
> --- a/virtinst/util.py	Tue Nov 25 10:25:08 2008 -0500
> +++ b/virtinst/util.py	Sat Nov 29 18:29:20 2008 +0100
> @@ -33,6 +33,7 @@
>  
>  
>  KEYBOARD_DIR = "/etc/sysconfig/keyboard"
> +XORG_CONF = "/etc/X11/xorg.conf"
>  
>  def default_route():
>      route_file = "/proc/net/route"
> @@ -276,6 +277,28 @@
>              return -1
>      return 0
>  
> +def xorg_keymap():
> +    """Look in /etc/X11/xorg.conf for the host machine's keymap, and attempt to
> +       map it to a keymap supported by qemu"""
> +
> +    import keytable

This is unused ('python setup.py check' will warn about this :)

> +    kt = None
> +    try:
> +        f = open(XORG_CONF, "r")
> +    except IOError, e:
> +        logging.debug('Could not open "%s": %s ' % (XORG_CONF, str(e)))
> +    else:
> +        keymap_re = re.compile(r'\s*Option\s+"XkbLayout"\s+"(?P<kt>[a-z-]+)"')
> +        for line in f:
> +            m = keymap_re.match(line)
> +            if m:    
> +                kt = m.group('kt')
> +                break
> +        else:
> +            logging.debug("Didn't find keymap '%s' in keytable!" % kt)

This logging isn't really accurate here. Maybe 'Didn't find keymap in
xorg.conf'

The rest looks fine.

Thanks,
Cole




More information about the et-mgmt-tools mailing list