diff -rup virtinst-0.500.4/virtinst/cli.py new/virtinst/cli.py --- virtinst-0.500.4/virtinst/cli.py 2011-03-29 17:28:44.519612002 -0400 +++ new/virtinst/cli.py 2011-03-29 17:27:49.611612002 -0400 @@ -769,11 +769,13 @@ def get_graphics(vnc, vncport, vnclisten guest.add_device(VirtualVideoDevice(conn=guest.conn)) if sdl is not None: - guest.graphics_dev = VirtualGraphics(type=VirtualGraphics.TYPE_SDL) + guest.graphics_dev = VirtualGraphics(conn=guest.conn, + type=VirtualGraphics.TYPE_SDL) return if vnc is not None: - guest.graphics_dev = VirtualGraphics(type=VirtualGraphics.TYPE_VNC) + guest.graphics_dev = VirtualGraphics(conn=guest.conn, + type=VirtualGraphics.TYPE_VNC) if vncport: guest.graphics_dev.port = vncport if vnclisten: diff -rup virtinst-0.500.4/virtinst/VirtualGraphics.py new/virtinst/VirtualGraphics.py --- virtinst-0.500.4/virtinst/VirtualGraphics.py 2010-08-23 15:24:44.000000000 -0400 +++ new/virtinst/VirtualGraphics.py 2011-03-29 17:28:27.291611998 -0400 @@ -33,9 +33,11 @@ class VirtualGraphics(VirtualDevice.Virt TYPE_VNC = "vnc" KEYMAP_LOCAL = "local" + KEYMAP_DEFAULT = "default" + _special_keymaps = [KEYMAP_LOCAL, KEYMAP_DEFAULT] def __init__(self, type=TYPE_VNC, port=-1, listen=None, passwd=None, - keymap=None, conn=None): + keymap=KEYMAP_DEFAULT, conn=None): VirtualDevice.VirtualDevice.__init__(self, conn=conn) @@ -66,19 +68,23 @@ class VirtualGraphics(VirtualDevice.Virt type = property(get_type) def get_keymap(self): + if self._keymap == self.KEYMAP_DEFAULT: + return self._default_keymap() + if self._keymap == self.KEYMAP_LOCAL: + return _util.default_keymap() return self._keymap def set_keymap(self, val): - if not val: - val = self._default_keymap() - + # At this point, 'None' is a valid value if val == None: - # At this point, 'None' is a valid value + self._keymap = None + return + + if val in self._special_keymaps: self._keymap = val return - if type(val) != type("string"): + if type(val) is not str: raise ValueError, _("Keymap must be a string") - if val.lower() == self.KEYMAP_LOCAL: val = _util.default_keymap() elif len(val) > 16: @@ -145,7 +151,7 @@ class VirtualGraphics(VirtualDevice.Virt listenxml = "" passwdxml = "" if self.keymap: - keymapxml = " keymap='%s'" % self._keymap + keymapxml = " keymap='%s'" % self.keymap if self.listen: listenxml = " listen='%s'" % self._listen if self.passwd: