home *** CD-ROM | disk | FTP | other *** search
- /*
- *
- * Module: keyboard.ycp
- *
- * Author: Thomas Roelz (tom@suse.de)
- *
- * Submodules:
- *
- *
- * Purpose: configure keyboard in running system
- *
- * Modify:
- *
- *
- * $Id: keyboard.ycp 25808 2005-10-05 15:13:41Z jsuchome $
- */
-
- {
- textdomain "country";
-
- import "Arch";
- import "CommandLine";
- import "Confirm";
- import "Keyboard";
- import "Service";
- import "Stage";
- import "Wizard";
-
- include "keyboard/dialogs.ycp";
-
- /**
- * read keyboard settings
- */
- define boolean KeyboardRead () {
-
- Keyboard::Read ();
- // Check if this is a reconfiguration run.
- //
- if (Stage::reprobe ())
- {
- // Reprobe keyboard module to achieve same behaviour as
- // during installation.
- Keyboard::Probe();
- Keyboard::SetConsole( Keyboard::current_kbd );
- Keyboard::SetX11( Keyboard::current_kbd );
-
- y2milestone("Reprobed keyboard");
- }
- return true;
- }
-
- /**
- * write keyboard settings
- */
- define boolean KeyboardWrite () {
-
- Keyboard::Save (false);
- Service::Restart ("kbd");
- return true;
- }
-
- /**
- * the keyboard configuration sequence
- */
- define any KeyboardSequence () {
-
- // dont ask for keyboard on S/390
- if (Arch::s390 ())
- return `next;
-
- map display_info = (map) UI::GetDisplayInfo ();
- if (!display_info["TextMode"]:true)
- {
- if (Confirm::MustBeRoot ())
- {
- // call sax
- SCR::Execute (.target.bash, "/usr/sbin/sax2 -O Keyboard");
- return `finish;
- }
- return `cancel;
- }
-
- KeyboardRead ();
-
- Wizard::OpenAcceptDialog();
-
- symbol result = KeyboardDialog ($[]);
-
- if (result == `next)
- {
- KeyboardWrite ();
- }
- else
- {
- y2milestone( "User cancelled --> no change" );
- }
- Wizard::CloseDialog();
- return result;
- }
-
- /**
- * Handler for keyboard summary
- */
- define boolean KeyboardSummaryHandler (map options) {
-
- // summary label
- CommandLine::Print (sformat (_("Current Keyboard Layout: %1"),
- Keyboard::current_kbd));
- return false;
- }
-
- /**
- * Handler for listing keyboard layouts
- */
- define boolean KeyboardListHandler (map options) {
-
- foreach (string code, string name, Keyboard::Selection (), {
- CommandLine::Print (sformat ("%1 (%2)", code, name));
- });
- return false;
- }
-
-
- /**
- * Handler for changing keyboard settings
- */
- define boolean KeyboardSetHandler (map options) {
-
- string keyboard = options["layout"]:"";
-
- if (keyboard == "" || !haskey (Keyboard::Selection(), keyboard))
- {
- // error message (%1 is given layout); do not translate 'list'
- CommandLine::Print (sformat (_("Keyboard layout '%1' is invalid. Use a 'list' command to see possible values."), keyboard));
- }
- Keyboard::Set (keyboard);
-
- return (Keyboard::Modified ());
- }
-
-
- /* -- the command line description map -------------------------------------- */
- map cmdline = $[
- "id" : "keyboard",
- // translators: command line help text for Securoty module
- "help" : _("Keyboard configuration."),
- "guihandler" : KeyboardSequence,
- "initialize" : KeyboardRead,
- "finish" : KeyboardWrite,
- "actions" : $[
- "summary" :$[
- "handler" : KeyboardSummaryHandler,
- // command line help text for 'summary' action
- "help" : _("Keyboard configuration summary."),
- ],
- "set" :$[
- "handler" : KeyboardSetHandler,
- // command line help text for 'set' action
- "help" : _("Set new values for keyboard configuration."),
- ],
- "list": $[
- "handler" : KeyboardListHandler,
- // command line help text for 'list' action
- "help" : _("List all available keyboard layouts.")
- ],
- ],
- "options" : $[
- "layout" : $[
- // command line help text for 'set layout' option
- "help" : _("New keyboard layout"),
- "type" : "string"
- ],
- ],
- "mappings" : $[
- "summary" : [],
- "set" : [ "layout" ],
- "list" : [],
- ]
- ];
-
- CommandLine::Run (cmdline);
- return true;
-
- }
-