Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 Jan 2004 04:08:07 +0000
From:      Robert Downes <nullentropy@lineone.net>
To:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: Dvorak keymap in single user mode
Message-ID:  <3FF4EEA7.4030709@lineone.net>
In-Reply-To: <3FF4E439.3040700@lineone.net>
References:  <3FF4E439.3040700@lineone.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Robert Downes wrote:

> I use the US Dvorak keyboard layout, and I find it very difficult to 
> type in single user mode (when installing world, for example), because 
> single user mode uses the QWERTY keyboard layout, and does not seem to 
> pay any attention to kbdmap (I think that's the command name - the one 
> with the interactive keymap chooser).
>
> Someone suggested that it's possible to compile the Dvorak layout into 
> my kernel, but how is this done, and is there an easier way of 
> changing keyboard layout in single user mode?
>

Okay, made some progress here.

Finally noticed that kbdmap says, quite clearly,

*BUGS* <http://www.freebsd.org/cgi/man.cgi?query=kbdmap&sektion=1&apropos=0&manpath=FreeBSD+5.1-RELEASE+and+Ports#end>;
     The *kbdmap* and *vidfont* utilities work only on a (virtual) console and not
     with X11.

The single user mode is not a virtual console, as virtual consoles are 
not permitted to run during single user mode.

However, the command-line (non-interactive) equivalent is kbdcontrol, 
and it seems to suffer no such limitation.

So, once in single user mode, type

    mount -a

to make sure that /usr is mounted (needed because it contains the 
keymaps), and then type

    df

to check that the filesystems are mounted. (Actually, you may not need 
all of them.)

If /usr is now showing up, type

    kbdcontrol -l us.dvorak

and you will be reunited with the (cough... superior... cough) Dvorak 
keyboard layout.

This can be done with any of the available layout files in

    /usr/share/syscons/keymaps

However, never happy with a simple option, I wonder if there's an easy 
(read lazy) option... is it possible to automate this process, so that 
this command is run by default? (Or is that inadvisable because it 
requires /usr to be available, and /usr should not necessarily be 
available in single user mode everytime?)
-- 

Bob



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FF4EEA7.4030709>