summaryrefslogtreecommitdiffstats
path: root/tools/keyboarddrake
blob: 8421406b2f49808343aaf3facd23d6af77e7a3c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/perl

use lib qw(/usr/lib/libDrakX);

# i18n: IMPORTANT: to get correct namespace (drakx-kbd-mouse-x11 instead of libDrakX)
BEGIN { unshift @::textdomains, 'drakx-kbd-mouse-x11' }

use standalone;     #- warning, standalone must be loaded very first, for 'explanations'

use interactive;
use keyboard;
use Xconfig::xfree;
use common;
use any;
use c;

require_root_capability();
my $in;
my $keyboard = keyboard::read_or_default();
if (my ($kb) = grep { !/^-/ } @ARGV) {
    keyboard::KEYBOARD2text($kb) or die "bad keyboard $kb\n";
    $keyboard->{KEYBOARD} = $kb;
} elsif (member('--migrate', @ARGV)) {
    keyboard::write($keyboard);
    exit 0;
} else {
    $ugtk3::wm_icon = "/usr/share/mcc/themes/default/keyboard-mdk.png";
    $in = 'interactive'->vnew('su');

    my ($xkb_models, $model2text) = keyboard::xkb_models();
    s/ /|/ foreach values %$model2text;
    my $default_XkbModel = keyboard::default_XkbModel($keyboard);
    $keyboard->{XkbModel} ||= $default_XkbModel;
    my $is_default_XkbModel = $keyboard->{XkbModel} eq $default_XkbModel;

  choose:
    $in->ask_from(N("Keyboard"),
		  N("Please, choose your keyboard layout."),
		  [ { label => N("Keyboard layout"),
		      title => 1,
		    },
		    { val => \$keyboard->{KEYBOARD},
		      format => sub { translate(keyboard::KEYBOARD2text($_[0])) },
		      list => [ keyboard::KEYBOARDs() ],
		      type => 'list',
		      changed => sub {
			  if ($is_default_XkbModel) {
			      $keyboard->{XkbModel} = keyboard::default_XkbModel($keyboard);
			  }
		      },
		    },
		    { label => N("Keyboard type"),
		      title => 1,
		    },
		    { val => \$keyboard->{XkbModel},
		      format => sub { $model2text->{$_[0]} },
		      separator => '|',
		      changed => sub { $is_default_XkbModel = 0 },
		      list => $xkb_models },
		]) or goto end;

    keyboard::group_toggle_choose($in, $keyboard) or goto choose;

    if ($::expert) {
	my $isNotDelete = !$in->ask_yesorno("BackSpace", N("Do you want the BackSpace to return Delete in console?"), 1);
	$keyboard->{BACKSPACE} = $isNotDelete ? "BackSpace" : "Delete";
    }
}


keyboard::configure_and_set_standalone($keyboard);

end:
    $in->exit(0) if $in;
ic license. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ /* * Portions from Erik Troan (ewt@redhat.com) * * Copyright 1996 Red Hat Software * */ #ifndef _TOOLS_H_ #define _TOOLS_H_ #include <stdlib.h> #include "bootsplash.h" int image_has_stage2(); enum return_type create_IMAGE_LOCATION(char *location_full); int ramdisk_possible(void); enum return_type copy_file(char * from, char * to, void (*callback_func)(int overall)); enum return_type recursiveRemove(char *file); enum return_type recursiveRemove_if_it_exists(char *file); enum return_type preload_mount_compressed_fd(int compressed_fd, int image_size, char *image_name, char *location_mount); enum return_type mount_compressed_image(char *compressed_image, char *location_mount); enum return_type mount_compressed_image_may_preload(char *image_name, char *location_mount, int preload); enum return_type load_compressed_fd(int fd, int size); enum return_type may_load_compressed_image(void); int try_mount(char * dev, char * location); #ifndef DISABLE_DISK int get_disks(char *** names, char *** models); #endif #ifndef DISABLE_CDROM int get_cdroms(char *** names, char *** models); #endif char * floppy_device(void); #endif