LILO mit graphischem Menü
Ich habe die Version 7.1 von SuSE Linux und freue mich seither über ein
graphisches Menü von lilo. Allerdings stelle ich mir jetzt die Frage, ob man
das Bild nicht auch selbst gestalten könnte. Gibt es dazu Möglichkeiten und
wenn ja, wie funktioniert das?
Doch, das geht auch. Es ist allerdings etwas trickreich. Lilo bietet ein
zusätzliches Programm, mit dessen Hilfe solche Menübilder erstellt werden
können, bzw. bestehende Bilder in ein Menü verwandelt werden.
Zuerst mal die Voraussetzungen:
Lilo hat schon immer eine Datei, die textorientierte Meldungen enthalten
darf, und die meist in /boot/message abgelegt wird. Innerhalb der
/etc/lilo.conf wird im globalen Bereich die Anweisung
message = /boot/message
eingefügt. Nach einem Aufruf von lilo wird diese Datei jetzt in den Master
Boot Record (oder Bootsektor der Partition) geschrieben und beim Booten
dargestellt. Mit einem Trick kann diese Datei auch eine Graphik enthalten
und lilo macht ein Menü daraus.
Das Menübild muß eines der Formate
vorweisen. Es kann dann sogar noch ein zweites Bild mit dem Format 320x200
definiert werden, als Fallback für Rechner, die 640x480 (VESA) nicht
darstellen können. Es muß in PCX-Format (256 Farben) gespeichert sein. Mit
Gimp ist so etwas z.B. problemlos erstellbar.
Das Bild sollte einen Bereich vorweisen, auf dem das
eigentliche Menü sichtbar ist. Also etwas in der Art:
Das blaugraue Viereck zwischen den Pinguinen soll als Menü dienen.
Das Programm, mit dem dieses PCX-Bild jetzt in das nötige Format gebracht
wird heißt mklilomsg und erfordert eine Menge Parameter. Zum einen
muß mindestens ein Bild angegeben werden, das als Menü dienen soll, zum
anderen braucht jedes angegebene Bild die genauen Koordinaten der Fläche,
die das Menü aufnehmen soll. Die grundsätzliche Form ist:
mklilomsg Optionen Zieldatei
Wobei als Optionen mindestens eines der drei folgenden gegeben sein muß:
--logo1 logo1 menu parameters
--logo2 logo2 menu parameters
--message text_message
logo1 und logo2 sind Graphik-Dateien im PCX-Format (256 Farben),
text-message ist eine Datei mit alternativer Textnachricht, die verwendet
wird, wenn der User den Graphikschirm mit <Esc> verlässt.
logo1 sollte eines der oben genannten Formate haben, logo2 wird als
Fallback für den Fall, daß der Rechner keine VESA-Modi kennt mit 320x200
Pixeln aufgebaut. logo2 und text_message können auch weggelassen werden.
Richtig knifflig wird es mit den menu parameters. Jedes Bild braucht 12
numerische (ganzzahlige) Parameter, die alle angegeben werden müssen.
Sie haben die folgende Bedeutung:
- Menübalkenbreite
- Menübalkenhöhe
- Zeilenhöhe einer Menüzeile
- Item-StartX - Start der Menüfläche X-Koordinate (Pixel vom linken Rand)
- Item-StartY - Start der Menüfläche Y-Koordinate (Pixel vom oberen Rand)
- Item X-Offset - Linker Rand zwischen Menüflächenbeginn und Menüeintrag
- Item Y-Offset - Oberer Rand zwischen Menüflächenbeginn und Menüeintrag
- Max. Items - Maximale Anzahl darstellbarer Menüeinträge
- Schriftgröße - Eins von 0x11, 0x12 und 0x13.
- Farbe des normalen Menüeintrags
- Farbe des ausgewählten Menüeintrags
- Farbe des Menübalkens
Die wichtigsten Größen sind also die Item StartX und StartY. Nochmal zur
Veranschaulichung:
Der folgende Befehl würde jetzt aus dem Bild pingus.pcx eine entsprechende
Datei machen, die als Message-Datei anwendbar ist:
mklilomsg --logo1 pingus.pcx 120 20 24 220 180 5 2 7 0x13 0x07 0xff 0x01 /boot/mymessage
Der Menübalken ist 120 Pixel breit und 20 Pixel hoch. Jede Zeile des Menüs
soll 24 Pixel hoch sein. Die Menüfläche beginnt bei den Koordinaten 220,180,
dabei werden links noch 5 und oben 2 Pixel Platz gelassen. Maximal 7
Menüeinträge werden dargestellt. Die Schrift ist 0x13 (8x16 Pixel) die
normale Farbe eines Menüeintrags ist 0x07 ein angewählter
Menüpunkt wird in der Farbe 0xff geschrieben und der Menübalken selbst ist
das Ergebnis einer XOR-Operation mit dem Wert 0x01. Das Ergebnis wird in die
Datei /boot/mymessage geschrieben.
Die beiden Werte für die Farben des normalen und ausgewählten Eintrags
beziehen sich auf die Position der Farbe in der Farbtabelle (Palette) des
Bildes. Der Wert für den Menübalken wird dem Hintergrund mit XOR
dazugerechnet.
Jetzt muß noch der Eintrag
message=/boot/mymessage
in /etc/lilo.conf erfolgen, einmal lilo aufrufen und neu booten...