* Installation CD: start a web browser showing the NixOS manual on

tty7.
* Add w3m to the installation CD's path since it's needed for the
  manual anyway.

svn path=/nixos/trunk/; revision=10074
This commit is contained in:
Eelco Dolstra 2008-01-04 16:11:12 +00:00
parent f499a74998
commit 3abf5072ce
3 changed files with 36 additions and 7 deletions

View file

@ -14,6 +14,7 @@ rec {
readOnlyRoot = true;
# The label used to identify the installation CD.
rootLabel = "NIXOS";
extraTTYs = [7 8]; # manual, rogue
};
services = {
@ -43,6 +44,15 @@ rec {
";
}
# Show the NixOS manual on tty7.
{ name = "manual";
job = "
start on udev
stop on shutdown
respawn ${pkgs.w3m}/bin/w3m ${import ../doc/manual}/manual.html < /dev/tty7 > /dev/tty7 2>&1
";
}
# Allow the user to do something useful on tty8 while waiting
# for the installation to finish.
{ name = "rogue";
@ -57,6 +67,13 @@ rec {
# And a background to go with that.
ttyBackgrounds = {
specificThemes = [
{ tty = 7;
# Theme is GPL according to http://kde-look.org/content/show.php/Green?content=58501.
theme = pkgs.fetchurl {
url = http://www.kde-look.org/CONTENT/content-files/58501-green.tar.gz;
sha256 = "0sdykpziij1f3w4braq8r8nqg4lnsd7i7gi1k5d7c31m2q3b9a7r";
};
}
{ tty = 8;
theme = pkgs.fetchurl {
url = http://www.bootsplash.de/files/themes/Theme-GNU.tar.bz2;
@ -86,6 +103,7 @@ rec {
extraPackages = pkgs: [
pkgs.vim
pkgs.subversion # for nixos-checkout
pkgs.w3m # needed for the manual anyway
];
};
@ -99,7 +117,7 @@ rec {
pkgs = system.pkgs;
# Since the CD is read-only, the mount points must be on disk.
cdMountPoints = pkgs.runCommand "mount-points" {} "
@ -176,10 +194,7 @@ rec {
{ source = pkgs.memtest86 + "/memtest.bin";
target = "boot/memtest.bin";
}
{ source = pkgs.fetchurl {
url = http://www.gnome-look.org/CONTENT/content-files/36909-soft-tux.xpm.gz;
sha256 = "14kqdx2lfqvh40h6fjjzqgff1mwk74dmbjvmqphi6azzra7z8d59";
};
{ source = system.config.boot.grubSplashImage;
target = "boot/background.xpm.gz";
}
{ source = cdMountPoints;

View file

@ -234,6 +234,19 @@
";
};
extraTTYs = mkOption {
default = [];
example = [8 9];
description = "
Tty (virtual console) devices, in addition to the consoles on
which mingetty and syslogd run, that must be initialised.
Only useful if you have some program that you want to run on
some fixed console. For example, the NixOS installation CD
opens the manual in a web browser on console 7, so it sets
<option>boot.extraTTYs</option> to <literal>[7]</literal>.
";
};
};

View file

@ -9,8 +9,9 @@ let
optional = cond: service: pkgs.lib.optional cond (makeJob service);
requiredTTYs =
(config.services.mingetty.ttys)
++ [10] /* !!! sync with syslog.conf */ ;
config.services.mingetty.ttys
++ config.boot.extraTTYs
++ [config.services.syslogd.tty];
jobs = map makeJob [