summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>1999-08-04 09:24:26 +0000
committerMatt Wilson <msw@redhat.com>1999-08-04 09:24:26 +0000
commit6ef2cb1ea395c7e9fa5bdfe8fe0d7c169a8d8790 (patch)
treef2e4daf8e6930b12d74fcf2d4aeed832427cd09b
parent3d7505f2dd7c5732a7efff3f9a7e3976dad37061 (diff)
downloadanaconda-6ef2cb1ea395c7e9fa5bdfe8fe0d7c169a8d8790.tar.gz
anaconda-6ef2cb1ea395c7e9fa5bdfe8fe0d7c169a8d8790.tar.xz
anaconda-6ef2cb1ea395c7e9fa5bdfe8fe0d7c169a8d8790.zip
keyboard selection dialog
-rw-r--r--text.py22
-rw-r--r--todo.py124
2 files changed, 135 insertions, 11 deletions
diff --git a/text.py b/text.py
index 5b237d155..3fa627f1a 100644
--- a/text.py
+++ b/text.py
@@ -34,6 +34,23 @@ class LanguageWindow:
todo.language.set (languages.keys()[choice])
return INSTALL_OK
+class KeyboardWindow:
+ def run(self, screen, todo):
+ keyboards = todo.keyboard.available ()
+ keyboards.sort ()
+ current = todo.keyboard.get ()
+
+ (button, choice) = \
+ ListboxChoiceWindow(screen, _("Keyboard Selection"),
+ _("Which model keyboard is attached to this computer?"), keyboards,
+ buttons = [_("Ok"), _("Back")], width = 30, scroll = 1, height = 8)
+
+ if button == string.lower (_("Back")):
+ return INSTALL_BACK
+ todo.keyboard.set (keyboards[choice])
+ return INSTALL_OK
+
+
class RootPasswordWindow:
def run(self, screen, todo):
toplevel = GridForm (screen, _("Root Password"), 1, 3)
@@ -323,7 +340,7 @@ class IndividualPackageWindow:
return INSTALL_OK
-class MouseConfigWindow:
+class MouseWindow:
def run(self, screen, todo):
mice = todo.mouse.available ()
mice.sort ()
@@ -548,12 +565,13 @@ class InstallInterface:
individual = Flag(0)
steps = [
[_("Language Selection"), LanguageWindow, (self.screen, todo)],
+ [_("Keyboard Selection"), KeyboardWindow, (self.screen, todo)],
[_("Welcome"), WelcomeWindow, (self.screen,)],
[_("Partition"), PartitionWindow, (self.screen, todo)],
[_("Network Setup"), NetworkWindow, (self.screen, todo)],
[_("Package Groups"), PackageGroupWindow, (self.screen, todo, individual)],
[_("Individual Packages"), IndividualPackageWindow, (self.screen, todo, individual)],
- [_("Mouse Configuration"), MouseConfigWindow, (self.screen, todo)],
+ [_("Mouse Configuration"), MouseWindow, (self.screen, todo)],
[_("Root Password"), RootPasswordWindow, (self.screen, todo)],
[_("Installation Begins"), BeginInstallWindow, (self.screen, todo)],
]
diff --git a/todo.py b/todo.py
index c03d657ef..d71a5f0d5 100644
--- a/todo.py
+++ b/todo.py
@@ -204,7 +204,6 @@ class Mouse (SimpleConfigFile):
"MM HitTablet (serial)" :
("MMHitTab", "MMHittab", "ttyS"),
}
-
def available (self):
return self.mice.keys ()
@@ -219,6 +218,103 @@ class Mouse (SimpleConfigFile):
self.info["XMOUSETYPE"] = x11
self.info["FULLNAME"] = mouse
+class Keyboard (SimpleConfigFile):
+ # XXX fixme - externalize
+ def __init__ (self):
+ self.info = {}
+
+ def available (self):
+ return [
+ "azerty",
+ "be-latin1",
+ "be2-latin1",
+ "fr-latin0",
+ "fr-latin1",
+ "fr-pc",
+ "fr",
+ "wangbe",
+ "ANSI-dvorak",
+ "dvorak-l",
+ "dvorak-r",
+ "dvorak",
+ "pc-dvorak-latin1",
+ "tr_f-latin5",
+ "trf",
+ "bg",
+ "cf",
+ "cz-lat2-prog",
+ "cz-lat2",
+ "defkeymap",
+ "defkeymap_V1.0",
+ "dk-latin1",
+ "dk",
+ "emacs",
+ "emacs2",
+ "es",
+ "fi-latin1",
+ "fi",
+ "gr-pc",
+ "gr",
+ "hebrew",
+ "hu101",
+ "is-latin1",
+ "it-ibm",
+ "it",
+ "it2",
+ "jp106",
+ "la-latin1",
+ "lt",
+ "lt.l4",
+ "nl",
+ "no-latin1",
+ "no",
+ "pc110",
+ "pl",
+ "pt-latin1",
+ "pt-old",
+ "ro",
+ "ru-cp1251",
+ "ru-ms",
+ "ru-yawerty",
+ "ru",
+ "ru1",
+ "ru2",
+ "ru_win",
+ "se-latin1",
+ "sk-prog-qwerty",
+ "sk-prog",
+ "sk-qwerty",
+ "tr_q-latin5",
+ "tralt",
+ "trf",
+ "trq",
+ "ua",
+ "uk",
+ "us",
+ "croat",
+ "cz-us-qwertz",
+ "de-latin1-nodeadkeys",
+ "de-latin1",
+ "de",
+ "fr_CH-latin1",
+ "fr_CH",
+ "hu",
+ "sg-latin1-lk450",
+ "sg-latin1",
+ "sg",
+ "sk-prog-qwertz",
+ "sk-qwertz",
+ "slovene",
+ ]
+
+ def set (self, keytable):
+ self.info["KEYTABLE"] = keytable
+
+ def get (self):
+ if self.info.has_key ("KEYTABLE"):
+ return self.info["KEYTABLE"]
+
+
class Authentication:
def __init__ (self):
self.domain = ""
@@ -243,6 +339,7 @@ class ToDo:
self.network = Network ()
self.rootpassword = Password ()
self.mouse = Mouse ()
+ self.keyboard = Keyboard ()
self.auth = Authentication ()
def umountFilesystems(self):
@@ -285,18 +382,21 @@ class ToDo:
def writeFstab(self):
format = "%-23s %-23s %-7s %-15s %d %d\n";
- f = open(self.instPath + "/etc/fstab", "w")
- self.mounts.sort(mountListCmp)
+ f = open (self.instPath + "/etc/fstab", "w")
+ self.mounts.sort (mountListCmp)
for n in self.mounts:
(dev, fs, reformat) = n
if (fs == '/'):
- f.write(format % ( '/dev/' + dev, fs, 'ext2', 'defaults', 1, 1))
+ f.write (format % ( '/dev/' + dev, fs, 'ext2', 'defaults', 1, 1))
else:
- f.write(format % ( '/dev/' + dev, fs, 'ext2', 'defaults', 1, 2))
- f.write(format % ("/mnt/floppy", "/dev/fd0", 'ext', 'noauto', 0, 0))
- f.write(format % ("none", "/proc", 'proc', 'defaults', 0, 0))
- f.write(format % ("none", "/dev/pts", 'devpts', 'gid=5,mode=620', 0, 0))
- f.close()
+ f.write (format % ( '/dev/' + dev, fs, 'ext2', 'defaults', 1, 2))
+ f.write (format % ("/mnt/floppy", "/dev/fd0", 'ext', 'noauto', 0, 0))
+ f.write (format % ("none", "/proc", 'proc', 'defaults', 0, 0))
+ f.write (format % ("none", "/dev/pts", 'devpts', 'gid=5,mode=620', 0, 0))
+ f.close ()
+ # touch mtab
+ open (self.instPath + "/etc/mtab", "w+")
+ f.close ()
def writeLanguage(self):
f = open(self.instPath + "/etc/sysconfig/i18n", "w")
@@ -308,6 +408,11 @@ class ToDo:
f.write(str (self.mouse))
f.close()
+ def writeKeyboard(self):
+ f = open(self.instPath + "/etc/sysconfig/keyboard", "w")
+ f.write(str (self.keyboard))
+ f.close()
+
def installLilo(self):
if not self.liloDevice: return
@@ -489,6 +594,7 @@ class ToDo:
self.writeFstab ()
self.writeLanguage ()
self.writeMouse ()
+ self.writeKeyboard ()
self.writeNetworkConfig ()
self.writeRootPassword ()
self.installLilo ()