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

Stoiko Ivanov s.ivanov at proxmox.com
Mon Jul 20 18:02:59 CEST 2020


On Mon, 20 Jul 2020 18:00:25 +0200
Thomas Lamprecht <t.lamprecht at proxmox.com> wrote:

> 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+//;
sounds much better - will send a v2
thanks!

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






More information about the pve-devel mailing list