foryali first commit

works continue..
This commit is contained in:
Ertuğrul Erata
2017-03-05 21:42:13 +03:00
parent af9d310d6d
commit db4f70f2c6
28 changed files with 1045 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
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")
@@ -0,0 +1,19 @@
Index: zorg-cli
===================================================================
--- zorg-cli (revision 31546)
+++ zorg-cli (revision 31547)
@@ -94,8 +94,12 @@
setDriver(opts.driver)
elif opts.keymap:
- keymap = opts.keymap.split("/", 1)
- link.Xorg.Display["zorg"].setKeymap(*keymap)
+ if "/" in opts.keymap:
+ layout, variant = opts.keymap.split("/", 1)
+ else:
+ layout, variant = opts.keymap, ""
+ link.Xorg.Display["zorg"].setKeymap(layout, variant)
+
else:
parser.print_help()
+40
View File
@@ -0,0 +1,40 @@
Section "Module"
SubSection "extmod"
Option "omit xfree86-dga" "true"
EndSubSection
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "OffTime" "0"
Option "SuspendTime" "0"
Option "AllowMouseOpenFail" "true"
Option "StandbyTime" "0"
EndSection
Section "Device"
Identifier "VideoCard"
Driver "vesa"
EndSection
Section "Screen"
Identifier "Screen"
Device "VideoCard"
Monitor "Default Monitor"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Layout"
Screen "Screen"
EndSection
Section "Monitor"
Identifier "Default Monitor"
HorizSync 31.5 - 50
VertRefresh 50 - 70
EndSection