<item level="0" text="Filesystem Check..." entryID="harddisk_check"><screen module="HarddiskSetup" screen="HarddiskFsckSelection"/></item>
</menu>
<!--<item text="Remote Control"><setup id="rc" /></item>-->
- <!--<item text="Keyboard"><setup id="keyboard" /></item>-->
<!--<item text="OSD"><setup id="osd" /></item>-->
<item requires="Display"><setup level="1" id="lcd" /></item>
<item level="0" text="Network..." entryID="network_setup"><screen module="NetworkSetup" screen="NetworkAdapterSelection" /></item>
+ <item text="Keyboard"><setup id="keyboard" /></item>
<!--<menu level="1" text="Network..." entryID="network_setup">
<id val="network" />
<item level="1" text="Device Setup..." entryID="device_setup"><screen module="NetworkSetup" screen="NetworkAdapterSelection"/></item>
--- /dev/null
+from Components.Console import Console
+from os import listdir as os_listdir, path as os_path
+from re import compile as re_compile
+
+class Keyboard:
+ def __init__(self):
+ self.keyboardmaps = []
+ self.readKeyboardMapFiles()
+
+ def readKeyboardMapFiles(self):
+ for keymapfile in os_listdir('/usr/share/keymaps/'):
+ if (keymapfile.endswith(".info")):
+ f = open('/usr/share/keymaps/' + keymapfile)
+ mapfile = None
+ mapname = None
+ for line in f:
+ m = re_compile('^\s*(\w+)\s*=\s*(.*)\s*$').match(line)
+ if m:
+ key, val = m.groups()
+ if key == 'kmap':
+ mapfile = val
+ if key == 'name':
+ mapname = val
+ if (mapfile is not None) and (mapname is not None):
+ self.keyboardmaps.append(( mapfile,mapname))
+ f.close()
+
+ if len(self.keyboardmaps) == 0:
+ self.keyboardmaps = [('dream-de.kmap', 'Dreambox Keyboard Deutsch'), ('eng.kmap', 'Keyboard English')]
+
+ def activateKeyboardMap(self, index):
+ try:
+ keymap = self.keyboardmaps[index]
+ print "Activating keymap:",keymap[1]
+ keymappath = '/usr/share/keymaps/' + keymap[0]
+ if os_path.exists(keymappath):
+ Console().ePopen(("loadkmap < " + str(keymappath)))
+ except:
+ print "Selected keymap does not exist!"
+
+ def getKeyboardMaplist(self):
+ return self.keyboardmaps
+
+ def getDefaultKeyboardMap(self):
+ return 'eng.kmap'
+
+keyboard = Keyboard()
MultiContent.py MediaPlayer.py TunerInfo.py VideoWindow.py ChoiceList.py \
Element.py Playlist.py ParentalControl.py ParentalControlList.py \
Ipkg.py SelectionList.py Scanner.py SystemInfo.py DreamInfoHandler.py \
- Task.py language_cache.py Console.py ResourceManager.py TuneTest.py
+ Task.py language_cache.py Console.py ResourceManager.py TuneTest.py \
+ Keyboard.py
from config import config, ConfigSelection, ConfigSubsection, ConfigOnOff, ConfigText
from Components.Timezones import timezones
from Components.Language import language
+from Components.Keyboard import keyboard
def InitSetupDevices():
config.timezone.val = ConfigSelection(default = timezones.getDefaultTimezone(), choices = timezones.getTimezoneList())
config.timezone.val.addNotifier(timezoneNotifier)
+ def keyboardNotifier(configElement):
+ keyboard.activateKeyboardMap(configElement.index)
+
config.keyboard = ConfigSubsection();
- config.keyboard.keymap = ConfigSelection(choices = [("en", _("English")), ("de",_("German"))])
+ config.keyboard.keymap = ConfigSelection(default = keyboard.getDefaultKeyboardMap(), choices = keyboard.getKeyboardMaplist())
+ config.keyboard.keymap.addNotifier(keyboardNotifier)
def languageNotifier(configElement):
language.activateLanguage(configElement.value)