123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- Index: zorg-2.0.4/zorg/config.py
- ===================================================================
- --- zorg-2.0.4.orig/zorg/config.py
- +++ zorg-2.0.4/zorg/config.py
- @@ -11,6 +11,21 @@ from zorg.parser import *
- from zorg.probe import VideoDevice, Monitor, Output
- from zorg.utils import *
-
- +KEYMAP_CONF_TEMPLATE="""\
- +# This file is generated by zorg. If you want to change settings
- +# in this file, edit the file 10-keyboard.conf in the same
- +# directory.
- +
- +Section "InputClass"
- + Identifier "Configured Keymap"
- + MatchIsKeyboard "on"
- + MatchTag "use_configured_keymap"
- +
- + %(comment_layout)sOption "xkb_layout" "%(layout)s"
- + %(comment_variant)sOption "xkb_variant" "%(variant)s"
- +EndSection
- +"""
- +
- def saveXorgConfig(card):
- parser = XorgParser()
-
- @@ -265,7 +280,7 @@ def saveDeviceInfo(card):
- f = open(consts.config_file, "w")
- f.write(doc.toPrettyString().replace("\n\n", ""))
-
- -def getKeymap():
- +def getKeymapOld():
- layout = None
- variant = ""
-
- @@ -297,24 +312,44 @@ def getKeymap():
-
- return layout, variant
-
- -def saveKeymap(layout, variant=""):
- - if not os.path.exists(consts.config_dir):
- - os.mkdir(consts.config_dir, 0755)
- +def getKeymap():
- + layout = None
- + variant = ""
-
- try:
- - doc = piksemel.parse(consts.config_file)
- + p = XorgParser()
- + p.parseFile(consts.keymap_conf)
- + section = p.getSections("InputClass")[0]
- + layout = section.get("xkb_layout")
- + variant = section.get("xkb_variant", "")
- +
- except OSError:
- - doc = piksemel.newDocument("ZORG")
- + pass
- +
- + if not layout:
- + from pardus.localedata import languages
-
- - keyboardTag = doc.getTag("Keyboard")
- + try:
- + language = file("/etc/mudur/language").read().strip()
- + except IOError:
- + language = "en"
- +
- + if not languages.has_key(language):
- + language = "en"
-
- - if keyboardTag:
- - keyboardTag.hide()
- + keymap = languages[language].keymaps[0]
- + layout = keymap.xkb_layout
- + variant = keymap.xkb_variant
-
- - keyboardTag = doc.insertTag("Keyboard")
- - keyboardTag.insertTag("Layout").insertData(layout)
- - if variant:
- - keyboardTag.insertTag("Variant").insertData(variant)
- + return layout, variant
-
- - f = file(consts.config_file, "w")
- - f.write(doc.toPrettyString().replace("\n\n", ""))
- +def saveKeymap(layout, variant=""):
- + opts = {"layout": layout,
- + "variant": variant,
- + "comment_layout": "" if layout else "#",
- + "comment_variant": "" if variant else "#"}
- +
- + with open(consts.keymap_conf, "w") as f:
- + f.write(KEYMAP_CONF_TEMPLATE % opts)
- + f.flush()
- + os.fsync(f.fileno())
- Index: zorg-2.0.4/zorg/consts.py
- ===================================================================
- --- zorg-2.0.4.orig/zorg/consts.py
- +++ zorg-2.0.4/zorg/consts.py
- @@ -8,6 +8,7 @@ data_dir = "/usr/share/X11"
- modules_dir = "/usr/lib/xorg/modules"
-
- xorg_conf_file = "/etc/X11/xorg.conf"
- +keymap_conf = "/etc/X11/xorg.conf.d/00-configured-keymap.conf"
- config_file = join(config_dir, "config.xml")
- configured_bus_file = join(config_dir, "configured_bus")
- drivers_file = join(data_dir, "DriversDB")
|