home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2007 January, February, March & April
/
Chip-Cover-CD-2007-02.iso
/
boot
/
i386
/
root
/
usr
/
share
/
YaST2
/
clients
/
keyboard.ycp
< prev
next >
Wrap
Text File
|
2006-11-29
|
4KB
|
185 lines
/*
*
* 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;
}