diff --git a/pym/cl_fill.py b/pym/cl_fill.py index 4fa3ea5..80a9a53 100644 --- a/pym/cl_fill.py +++ b/pym/cl_fill.py @@ -182,6 +182,37 @@ class fillVars(object, cl_base.glob_attr): def get_os_locale_xkb(self): """раскладка клавиатуры для X""" + path = '/etc/conf.d/keymaps' + mapDict={"by":"us,by", + "be-latin1":"be,us", + "br-abnt2":"br,us", + "cf":"ca,us", + "dk-latin1":"dk,us", + "fr-latin9":"fr,us", + "de-latin1":"de,us", + "is-latin1":"is,us", + "it":"it,us", + "no-latin1":"no,us", + "pl":"pl,us", + "-u ru4":"us,ru(winkeys)", + "es euro2":"es,us", + "sv-latin1":"se,us", + "ua-utf":"us,ua(winkeys)", + "uk":"gb,us", + "us":"us"} + if os.path.exists(path): + FD = open(path) + data = FD.readlines() + FD.close() + shortNameList = filter(lambda y:y, + map(lambda x:\ + len(x.split("="))==2 and\ + x.split("=")[0]=="KEYMAP" and\ + x.split("=")[1].replace('"',"").strip(),\ + data)) + if shortNameList: + if shortNameList[0] in mapDict.keys(): + return mapDict[shortNameList[0]] lang = self.Get("os_locale_lang") # Языки: # Португальский - pt_BR @@ -192,12 +223,12 @@ class fillVars(object, cl_base.glob_attr): # Украинский - uk_UA # Английский - en_US xkbDict = {'pt_BR':'br,us', - 'fr_FR':'fr,us', - 'de_DE':'de,us', - 'ru_RU':'us,ru(winkeys)', - 'es_ES':'es,us', - 'uk_UA':'us,ua(winkeys)', - 'en_US':'us'} + 'fr_FR':'fr,us', + 'de_DE':'de,us', + 'ru_RU':'us,ru(winkeys)', + 'es_ES':'es,us', + 'uk_UA':'us,ua(winkeys)', + 'en_US':'us'} if lang: if xkbDict.has_key(lang): return xkbDict[lang]