[pve-devel] [PATCH installer] set console keymap on language selection

Thomas Lamprecht t.lamprecht at proxmox.com
Mon Jul 20 18:00:25 CEST 2020


On 20.07.20 16:54, Stoiko Ivanov wrote:
> This is an enhancement for #2804
> 
> Having a shell waiting on vt3, it improves user experience if it has the
> same keyboard map as the X11 installer.
> 
> This is accomplished by setting the contents of '/etc/default/keyboard' see
> keyboard (5) and then running setupcon (1). Simply calling `loadkeys` would not
> work, since the keymaps in debian are generated from the x11 definitions by
> ckbcomp and then saved in '/etc/console-setup/'.
> 
> Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
> ---
> roughly tested with a PBS-iso (can provide should someone else want to test it)
> in a VM (clicking on french yielded azerty, clicking on german qwertz,...) both
> worked. (just in case also tried getting rid of the setxkbmap call - setupcon
> does not magically set the keyboard map of a running X session)
>  proxinstall | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/proxinstall b/proxinstall
> index 556c509..83ac95e 100755
> --- a/proxinstall
> +++ b/proxinstall
> @@ -2668,8 +2668,19 @@ sub create_country_view {
>  	if (my $kmap = $cmap->{kmaphash}->{$sel}) {
>  	    my $xkmap = $cmap->{kmap}->{$kmap}->{x11};
>  	    my $xvar = $cmap->{kmap}->{$kmap}->{x11var};
> -	    syscmd ("setxkbmap $xkmap $xvar") if !$opt_testmode;
>  	    $keymap = $kmap;
> +
> +	    if (! $opt_testmode) {
> +		syscmd ("setxkbmap $xkmap $xvar");
> +		my $kbd_config = qq{
> +		    XKBLAYOUT="$xkmap"
> +		    XKBVARIANT="$xvar"
> +		    BACKSPACE="guess"
> +		};
> +		$kbd_config =~ s/^\t{2} {4}//;

pretty fragile, a indentation change breaks this... why not s/^\s+//;

> +		write_config($kbd_config, '/etc/default/keyboard');
> +		syscmd ("setupcon");
> +	    }
>  	}
>      });
>  
> 






More information about the pve-devel mailing list