[[Vorlage(Getestet, focal)]] {{{#!vorlage Wissen [:sudo: Root-Rechte erlangen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] Das Thema für ein GRUB 2-Menü kann auch über eine andere Datei als '''/etc/default/grub''' erfolgen. Der Vorteil dabei ist, das sämtliche Einstellungen zum Aussehen ausschließlich über diese zentrale Datei gemacht werden. Folgende Einstellungen sind unter anderem möglich: * Frei positionierbare Text- und Grafikbereiche * Das Verwenden anderer Schriftarten * Verwendung von Farben für Schrift und Hintergrund * Größenabhängige Rahmen (Styled Boxes) * Hintergrundbilder Hier ein paar Beispiele, die die Möglichkeiten veranschaulichen. Der Link unter den Bildern startet das Herunterladen der Themen. Hinweise zur Verwendung sind nach dem Entpacken in der Datei '''readme''' zu finden: {{{#!vorlage Tabelle [[Bild(theme_ubuntuusers.jpg x200)]] [[Bild(Preview_glas_grub_theme.jpg, x200)]] [[Bild(descent_thema2.jpg, x200)]] +++ <:>[[Anhang(ubuntuusers_grub_theme.tar.gz,'Ein ubuntuusers.de-Thema')]] {dl} <:>[[Anhang(glas_grub_theme.tar.gz,'\"Glas\" mit DEINEM Hintergrund')]] {dl} <:>[:Spiele/Descent:Descent] basiertes [[Anhang(descent.tar.gz,'Thema')]] {dl} }}} Es gibt keine einfache Möglichkeit, ein neues Design als Vorschau anzuzeigen. Änderungen werden erst beim Booten des Betriebssystems sichtbar. Für umfangreiche Änderungen am Erscheinungsbildes des GRUB 2-Menüs sollte man sich mit Hilfe einer [:Grafik#Bildbearbeitung:Bildbearbeitung] eine 1:1 Ansicht erstellen. Hierin lässt sich das grundsätzliche Aussehen überprüfen und die Maße von Textboxen und Grafiken auslesen, ohne den Rechner neu booten zu müssen. In einer [:Virtualisierung:Virtuellen Maschine] können das Thema getestet und mögliche Fehler korrigiert werden. {{{#!vorlage Hinweis Alle Änderungen an GRUB 2 und der Konfiguration können nur mit Root-Rechten [1] durchgeführt werden. }}} = Ein normales GRUB 2-Menü = [[Bild(grub_menu_legende.png, align="right", 300)]] Ein normales GRUB 2-Menü besteht bei genauer Betrachtung aus mehreren Komponenten: {{{#!vorlage Tabelle Komponente Was ist änderbar? Siehe +++ Der Hintergrund Andere Farbe, Hintergrundbild [#Globale-Konfigurationsangaben globale Angaben] +++ Der Titel (title) Schriftart, Text und Farbe [#Globale-Konfigurationsangaben globale Angaben], [#Schriftarten Schriftarten] +++ Das Bootmenü Diese Liste bietet sehr viele Gestaltungsmöglichkeiten. [#boot-menu boot_menu] +++ Textzeilen (label) Position, Schriftart, Farbe [#label label] +++ Gruppierte Komponenten (vbox) Position [#vbox vbox] }}} Neben diesen Komponenten gibt es noch eine Vielzahl weiterer Elemente, die die Gestaltungsmöglichkeiten erweitern: * [#Fortschrittsanzeigen Fortschrittsanzeigen] als [#progress-bar-Textbasierte-Balkenanzeige Text]- oder [#progress-bar-Grafische-Balkenanzeige Balken-]Anzeige, Farben und Text anpassbar. * [#image image]: Bereiche in denen Bilder (z.B. ein Logo) dargestellt werden. Größe und Position sind anpassbar. = Vorbereitungen = Ein GRUB 2-Thema besteht aus einer Textdatei (Konfigurationsdatei), Schriftarten und Grafiken. Diese Dateien werden im Ordner '''/boot/grub/themes/NAMEdesTHEMAS''' abgelegt. [#Boot-Menue-Icons Icons] liegen separat. Beispiel: '''/boot/grub/themes/ubuntuusers/'''. Die Konfigurationsdatei heißt normalerweise '''theme.txt''', kann aber auch anders lauten. Um das Thema in GRUB 2 einzustellen, bedarf es der Anpassung folgender Variablen in [:GRUB_2/Konfiguration:/etc/default/grub]: * GRUB_THEME="/PFAD/ZUR/KONFIGURATIONSDATEI" * GRUB_GFXMODE=BREITExHÖHE Die letzte Angabe ist nur notwendig, wenn eine andere Auflösung als 640x480 Pixel gewünscht ist. Hinweise zur Ermittlung der richtigen Auflösung findet man im [:GRUB_2/Aussehen#Aufloesung:Grundlagenartikel]. Nach den Änderungen muss GRUB 2 [:GRUB_2/Konfiguration#Grub-Konfiguration-updaten:aktualisiert] werden. Bei folgenden Änderungen am GRUB 2-Thema ist GRUB ebenfalls zu aktualisieren: 1. Wenn eine neues Bildformat (zum Beispiel: '''.jpg''' oder '''.png''') zum Thema hinzugefügt wird 1. Wenn eine neue Schriftart, -größe zum Thema hinzugefügt wird Bei Änderungen in der Konfigurationsdatei (Themendatei) muss der Befehl nicht ausgeführt werden. = Konfiguration = Die Konfigurationsdatei ist eine einfache Textdatei und kann mit jedem [:Editor:] bearbeitet werden. Sie besteht aus den [#Globale-Konfigurationsangaben Globalen Konfigurationsangaben] und einer Reihe von Komponentendeklarationen und der Zuweisung von Werten. {{{#!vorlage Hinweis Die Komponente [#boot-menu boot_menu] sollte immer angegeben sein, da sonst keine Möglichkeit besteht, ein Betriebssystem zu starten. }}} == Globale Konfigurationsangaben == Globale Angaben stehen gewöhnlich am Anfang der Datei und betreffen das Aussehen des Hintergrundes, des Titels und der GRUB 2-Konsole. Zu beachten ist, das hier alle Werte hinter einem Doppelpunkt stehen müssen. {{{#!vorlage Tabelle Angabe Bemerkung +++ `title-font: "DejaVu Sans Regular 20"` Bezeichnet die [#Schriftarten Schriftart] für den Titel. Wird die Angabe weggelassen, wird die Standard Schriftart benutzt. +++ `title-text: "Guten Tag, ich bin das GRUB-Menü"` Soll kein Titel erscheinen, ist ein Leerstring (`= ""`) anzugeben. +++ `title-color: "Farbe"` Schriftfarbe für den Titel. Farben können wie im Abschnitt [#Komponentendeklaration Komponentendeklaration] definiert werden. +++ `desktop-image: "Hintergrundbild"` Definiert das Bild für den gesamten Hintergrund. Nicht passende Bilder werden automatisch skaliert. Mögliche Formate sind: '''.png''', '''.jpg''' und '''.tga''' +++ `desktop-color: "Hintergrundfarbe"` Definiert eine Farbe für den gesamten Hintergrund, falls kein Hintergrundbild vorhanden ist. +++ `terminal-­box: "Rahmenelemente_*.png"` Optional; definiert bei Aufruf der GRUB-Shell einen Rahmen ([#Styled-Box Styled Box]) um das GRUB-Shell Fenster. +++ `terminal-font: "Unknown Regular 16"` Setzt die Schriftart für das GRUB-Terminal. Bei der Verwendung eigener [#Schriftarten Schriftarten] sollte diese Variable mit der GRUB Standard Schriftart "Unknown Regular 16" gesetzt werden! }}} == Komponentendeklaration == Eine Komponente des GRUB-Menüs wird folgendermaßen erstellt: {{{#!code text #Erste Zeile, Überschrift + label{ top = 20 width = 100% color = "red" text = "Willkommen im ubuntuusers.de GRUB-Menü" } }}} Erläuterung der Zeilen: 1. Zeilen die mit einer Raute beginnen, sind Kommentare 1. Durch ein „+“ und Angabe des Komponentennamens (hier: [#label label]) wird eine Komponente deklariert. Alles zwischen den geschweiften Klammern gehört zu dieser Komponente. 1. und folgende Zeile 1. Die Angabe von Zahlenwerten (Positions- und Größenangaben) kann unterschiedlich erfolgen: a. Als Pixelangabe (hier: „20“) a. Als Prozentangabe (hier: „100%“) a. Gemischt: 100%-80 1. Farben können als [http://www.w3.org/TR/SVG/types.html#ColorKeywords SVG-Farbnamen] {en}, in Hexadezimalform ("#8899ff") oder als RGB-Werte ("255, 255, 255") angegeben werden. Alle Angaben müssen in Anführungszeichen stehen. 1. Worte oder Sätze müssen in Anführungszeichen gesetzt werden == Allgemeine Angaben == Folgende Angaben können in jeder Komponente verwendet werden: {{{#!vorlage Tabelle Angabe Bemerkung +++ `left = 20 | 10% | 20%+50` Abstand von linker Seite der Komponente zum linken Bildschirmrand. Mögliche Werte sind: Pixel (hier: 20), Prozentangaben (10%) oder eine Mischung aus beiden (20%+50). +++ `top = 20 | 10% | 100%-150` Abstand der Komponente zum oberen Bildschirmrand. +++ `width = 50 | 100% | 100%-50` Breite der Komponente. Ist bei einem [#label label] der Text breiter als mit `width` angegeben, wird das [#label label] verbreitert. +++ `height = 50 | 100% | 100%-200` Höhe der Komponente. }}} = Komponenten = Die Komponentenliste in der Konfigurationsdatei wird von GRUB von unten nach oben abgearbeitet. Alle Komponenten die in der '''theme.txt''' weiter oben stehen, werden als letztes dargestellt (Ausnahme: [#Globale-Konfigurationsangaben Globale Konfigurationsangaben]). Dies ist bei überlappenden Komponenten zu beachten. Möchte man zum Beispiel das ein Bild das Boot-Menü teilweise überdeckt, muss es in der Konfigurationsdatei oberhalb der Boot-Menü-Komponente stehen. == boot_menu == {{{#!vorlage Tabelle <:>[[Bild(boot_menue.jpg, x251)]] <:>[[Bild(bootmenu_elemente.png, x251)]] <:>[[Bild(bootmenu_elemente_2.png, x251)]] +++ <:>Bootmenü mit Rahmen[[BR]]und individuellen Icons <:>Lage des Menübereiches[[BR]]und des Rollbalkens (Scrollbar) <:>Maße von Menüpunkten[[BR]]und des Rollbalkens }}} ##[[Vorlage(Bildunterschrift,boot_menue.jpg, 250, "Bootmenü mit Rahmen und individuellen Icons", right)]] Die boot_menu-Komponente stellt alle gefundenen Menüeinträge (üblicherweise Betriebssysteme) in einer Liste zur Verfügung. Die Darstellung lässt sich in vielerlei Hinsicht anpassen. === Boot-Menü Einträge === Die Einträge des Boot-Menüs werden automatisch eingefügt. Sind [#Boot-Menue-Icons Symbole] (vor den Texteinträgen) definiert, werden sie ebenfalls automatisch verwendet. Neben den [#Allgemeine-Angaben allgemeinen Angaben] können folgende Eigenschaften geändert werden: {{{#!vorlage Tabelle Angabe Bemerkung +++ `item_font = "DejaVus Sans Regular 20"` Verwendete [#Schriftarten Schriftart] für einen nicht ausgewählten Eintrag. +++ `selected_item_font = "DejaVus Sans Regular 20"` Verwendete [#Schriftarten Schriftart] für einen ausgewählten Eintrag. +++ `item_color = "#FB7C22"` Schriftfarbe eines nicht ausgewählten Eintrags (Standardwert = "black"). +++ `selected_item_color = "#E21818"` Schriftfarbe eines ausgewählten Eintrags (Standardwert = "black"). +++ `item_height = 20` Höhe eines Eintrags (Standardwert = 42 Pixel). +++ `item_spacing = 10` Abstand zwischen den einzelnen Menüeinträgen (Standardwert = 16 Pixel). +++ `icon_width = 40` Iconbreite (Standardwert = 32 Pixel). Werden keine Icons benutzt, kann dieser Wert auf "`0`" gesetzt werden. Damit wird der Abstand zwischen dem linken Bild (Kennung: _w, siehe [#Styled-Box Styled-Box]) und dem Text reduziert. +++ `icon_hight = 40` Iconhöhe (Standardwert = 32 Pixel). +++ `item_padding = 5` Abstand zwischen den Menüeinträgen und dem Rahmen (Standardwert = 14 Pixel). +++ `item_icon_space = 5` Bestimmt den Abstand zwischen einem Boot-Menü-Eintrag und dem [#Boot-Menue-Icons Boot-Menü Icon] (Standardwert = 4 Pixel). }}} === Rahmen für das gesamte Boot-Menü === ##[[Vorlage(Bildunterschrift, bootmenu_elemente.png, 250 "Lage des Menübereiches und der Scrollbar", right)]] ##[[Vorlage(Bildunterschrift,bootmenu_elemente_2.png, 250, "Maße von Menüpunkten und Scrollbar", right)]] Dieser Rahmen wird mit den Bildern einer [#Styled-Box Styled-Box] definiert. {{{#!vorlage Tabelle Angabe Bemerkung +++ `menu_pixmap_style = "BILDNAME_*.png"` Es werden alle 9 Elemente (Kennung: _nw, _n, _ne, _w, _c, _e, _sw, _s und _se) unterstützt. Auch wenn diese nur teilweise vorhanden sind. }}} === Rahmen für die Einträge === Dieser Rahmen dient zur „Markierung” eines ausgewählten Boot-Menü Eintrags und wird mit den Bildern einer [#Styled-Box Styled-Box] definiert. {{{#!vorlage Tabelle Angabe Bemerkung +++ `selected_item_pixmap_style = "BILDNAME_*.png"` Es werden alle 9 Elemente (Kennung: _nw, _n, _ne, _w, _c, _e, _sw, _s und _se) unterstützt. Auch wenn sie nur teilweise vorhanden sind. }}} === Scrollleiste === Ein Rollbalken (scrollbar) zeigt an, dass mehr Boot-Menü-Einträge vorhanden sind, als in das Boot-Menü hineinpassen. Diese Leiste liegt innerhalb des rechten Elements des [#Rahmen-fuer-das-gesamte-Boot-Menue Boot-Menü Rahmens] (Kennung _e). Das rechte Element des Rahmen muss also breit genug sein, um die Scrollleiste aufnehmen zu können. Für die Scrollleiste selber werden wieder Bilder einer [#Styled-Box Styled-Box] benötigt, allerdings sollten nur die Bilder mit Kennung _n, _c und _s verwendet werden, da es sonst zu Fehlern in der Darstellung kommt. Bei Verständnisproblemen sollte man sich die Beispielthemen, die diesem Artikel beiliegen, anschauen. {{{#!vorlage Tabelle Angabe Bemerkung +++ `scrollbar = true` Scrollbar anzeigen oder verstecken. Mögliche Werte: `true` = Scrollbar anzeigen, `false` = Scrollbar nicht anzeigen. +++ `scrollbar_width = 20` Definiert die Breite der Scrollbar. Der Wert muss der tatsächlichen Breite der Bilder von `scrollbar_frame` entsprechen. +++ `scrollbar_frame = BILDNAME_*.png` Definiert den Rahmen der Scrollleiste. +++ `scrollbar_thumb = BILDNAME_*.png` Definiert den Mittelteil der Scrollleiste. Es muss mindestens das Bild mit der Kennung _c vorliegen. }}} == label == Ein Label ist für einzeilige Textausgaben zuständig. Neben den [#Allgemeine-Angaben Allgemeinen Angaben] sind noch folgende Angaben möglich: {{{#!vorlage Tabelle Angabe Bemerkung +++ `text = "Der Text der erscheinen soll"` Zeilenumbrüche sind bei einem label nicht möglich. +++ `font = "DejaVu Sans Regular"` Die [#Schriftarten Schriftart] des Textes. Es wird der interne Schriftname angegeben. +++ `color = "red"` Farbe des Textes. +++ `align = "left" | "center" | "right"` Positioniert die Textzeile innerhalb des label (links, zentriert oder rechts). Lässt man die Angabe weg, so ist "left" (links) der Standard. }}} Möchte man mehrere Zeilen untereinander setzen, so muss man mehrere Label hintereinander definieren. Am besten geht das mit Hilfe einer [#vbox vbox]. Ein label kann auch für die Anzeige der verbleibenden Sekunden (Countdown) genutzt werden: {{{#!vorlage Tabelle Angabe Bemerkung +++ `id = "__timeout__"` Voraussetzung, dass ein Countdown bearbeitet wird. +++ `text = "Noch %d Sekunden."` Das „%d“ im Text wird durch die verbleibenden Sekunden ersetzt. Mehr Möglichkeiten bieten die [#Fortschrittsanzeigen Fortschrittsanzeigen]. }}} == image == Bei Verwendung von Größenangaben (`width, hight`) wird das Bild auf die Angaben vergrößert, ansonsten werden die nativen Werte vom Image übernommen. Zusätzlich zu den allgemeinen Positionsangaben: {{{#!vorlage Tabelle Angabe Bemerkung +++ `file = "Logo.png"` Das Bild ist im [#Vorbereitungen Themenverzeichnis] abzulegen. }}} == Fortschrittsanzeigen == [[Vorlage(Bildunterschrift, progress_bar_styled.png, 320, "Eine grafisch animierte Fortschrittsanzeige", right)]] Der in der [:GRUB_2/Konfiguration:] gesetzte GRUB_TIMEOUT=Wert (Zeit in Sekunden) wird mit einer speziellen Anzeige visualisiert. Es werden drei Komponenten-Arten ("Progress Indicator") unterschieden: * [#progress-bar-Textbasierte-Balkenanzeige Textbasierte Balkenanzeige] ("Solid Color Horizontal Progress Bar") * [#progress-bar-Grafische-Balkenanzeige Grafische Balkenanzeige] ("Styled Horizontal Progress Indicator") * [#circular-progress-Grafische-Kreisanzeige Grafische Kreisanzeige] ("Circular Progress Indicator") - ohne eigenen Anzeigetext Der Text einer Balkenanzeige kann entweder frei gewählt, oder mit Hilfe unten stehender Variablen als lokalisierter Standard ausgegeben werden. {{{#!vorlage Tabelle Angabe Ausgegebener Text +++ `text = "In %d Sekunden gehts los!!!!"` „In 5 Sekunden gehts los!!!“ (Das „%d“ wird in eine Zahl gewandelt) +++ `text = "@TIMEOUT_NOTIFICATION_LONG@"` „Der hervorgehobenen Text wird automatisch in xxs ausgeführt.“ +++ `text = "@TIMEOUT_NOTIFICATION_MIDDLE@" ` „xxs verbleibend.“ +++ `text = "@TIMEOUT_NOTIFICATION_SHORT@"` „xxs“ }}} === progress_bar (Textbasierte Balkenanzeige) === Zusätzlich zu den allgemeinen Positions- und Schriftangaben: {{{#!vorlage Tabelle Angabe Bemerkung +++ `id = "__timeout__"` unveränderbare Pflichtangabe! +++ `text_color = "red"` Textfarbe +++ `bg_color = "#fb8b00"` Hintergrundfarbe +++ `fg_color = "#d40000"` Vordergrundfarbe +++ `border_color = "black"` Rahmenfarbe +++ `show_text = "true"` Anzeigetext anzeigen (Standard: "true") }}} === progress_bar (Grafische Balkenanzeige) === In der grafischen Balkenanzeige werden statt der textbasierten `bg_color =`, `fg_color =` und `border_color =` die grafischen Elemente einer [#Styled-Box Styled Box] verwendet. {{{#!vorlage Tabelle Angabe Bemerkung +++ `bar_style = Hintergrundbalken_*.png` Typ: Styled Box für den Rahmen. +++ `highlight_style = Vordergrundbalken_*.png` Typ: Styled Box für den Fortschrittsbalken - verändert sich mit ablaufender Zeit. +++ <-2>Verwendet werden die Elemente mit der Kennung: _c (zuzätzlich optional: _n und _s). Die anderen Elemente führen ggf. zu einem optischen Fehler. }}} {{{#!vorlage Tabelle [[Bild(Pfeil_e.png, x15)]] <:>[[Bild(Ziel_e.png, x15)]] <:>[[Bild(Ziel_Balken.png, x15)]] +++ <:>`highlight_style =`[[BR]]`Pfeil_e.png` <:>`bar_style =`[[BR]]`Ziel_e.png` <:>Ergebnis: Pfeil fliegt auf Ziel }}} Zur Veranschaulichung der Möglichkeiten ein Beispiel von einem fliegenden Pfeil, der die verstrichene Zeit versinnbildlicht: Werden die '''*_c.png''' transparent erstellt und ausnahmsweise '''*_e.png''' genutzt, können Bilder (Images) (hier: der Pfeil) verzerrungsfrei bewegt werden. === circular_progress (Grafische Kreisanzeige) === {{{#!vorlage Tabelle [[Bild(ubuu_heart.png, 90)]] <:>[[Bild(circular_01.png, 90)]] +++ <-2 :> Beispiele für circular progress +++ +++ <-2 :>[[Bild(illustration_circular_box.png, 200)]] +++ <-2 :>Schemazeichnung }}} Es werden zwei Bilder benötigt: * Ein Zifferblatt ("center_bitmap") * Ein Zeigerelement ("tick_bitmap") - rotiert, ohne sich selbst zu drehen, im Uhrzeigersinn Maßgeblich für die Geometrie sind die jeweiligen Breitenangaben (width). Die Ausrichtung ist jeweils mittig. Beispiel: Gegeben sind: * center_bitmap mit width = 120 Pixel * tick_bitmap mit width = 20 Pixel * das Zeigerelement soll den Mittelpunkt des center_bitmap mit einem Radius von 100 Pixel umkreisen. Die Breite der Komponente errechnet sich wie folgt: width,,((Komponente)),, = 2 x Radius + width,,((tick_bitmap)),, + 4 Pixel width,,((Komponente)),, = 2 x 100 + 20 + 4 = 224 Pixel Es verbleibt immer ein Rand von 2 Pixel zwischen Zeigerelement und Komponentenaußenkante. Passt das center_bitmap nicht in die Angaben für die Komponente, wird es beschnitten. Üblicherweise wird die Höhe (`height`) der Komponente gleich der errechneten Breite (`width`) gesetzt. Zusätzlich zu den allgemeinen Positionsangaben: {{{#!vorlage Tabelle Angabe Bemerkung +++ `id = "__timeout__"` Unveränderbare Pflichtangabe! +++ `center_bitmap = "center.png"` Hintergrundbild, Name frei wählbar. +++ `tick_bitmap = "tick.png"` Zeigerelement, Name frei wählbar. +++ `start_angle = "200"` Anfangswinkel (optional; "200" entspricht ca. 12:00 Uhr). +++ `num_ticks = "30"` Anzahl Zeigerelemente, sollte mit Anzahl Sekunden übereinstimmen. +++ `ticks_disappear = `[[BR]]`"true" | "false"` Anzeige verschwindet (Standard: "true"); Anzeige baut sich auf ("false"). }}} == Container == [[Vorlage(Bildunterschrift,vbox.png, 200, "Kombinierte Container vbox und hbox [[Anhang(vbox_hbox_kombi.txt,Quellcode)]]", right)]] Möchte man mehrere [#Komponenten Komponenten] zu einem logischen Block gruppieren kann man Container benutzen. Alle Container werden mit den [#Allgemeine-Angaben allgemeinen Angaben] positioniert. Neben normalen Komponenten können Container auch weitere Container beinhalten. {{{#!vorlage Hinweis Timerkomponenten funktionieren in Containern nicht! }}} === vbox === Möchte man zum Beispiel mehrere [#label Textzeilen] untereinander setzen, können aufwändige Positionsangaben pro label anfallen. Besser ist es, die einzelnen label in einen vbox-Container zu setzen: {{{+ vbox{ top = 240 left = 5 + label { font = "DejaVu Sans Regular 15" text = "Erste Textzeile" } + label { font = "DejaVu Sans Regular 15" text = "Zweite Textzeile" } + label { font = "DejaVu Sans Regular 15" text = "Dritte Textzeile, sehr breit" } } }}} Die Breite des vbox-Containers wird durch die breiteste Komponente bestimmt (hier die dritte Zeile). Dem entsprechend werden alle anderen Komponenten innerhalb des Containers verbreitert. Höhenangaben der Komponenten werden eingehalten. {{{#!vorlage Hinweis Breitenangaben werden nicht berücksichtigt! }}} === hbox === Möchte man mehrere Komponenten nebeneinander setzen, bietet sich dieser Container an: {{{ + hbox { # Ein Bild + image { file = "key_up.png" } # Eine Textausgabe (hier ein Leerstring um einen Abstand zum nächsten Bild einzustellen) + label { width = 10 text = "" } # Ein Bild + image { file = "key_down.png" } # Eine Textzeile + label { font = "DejaVu Sans Regular 15" height = 15 text = " markieren" } } }}} Die Höhe des Containers wird durch die größte Höhe der Komponente bestimmt, die innerhalb des Containers definiert wurde. Alle anderen Komponenten werden in der Höhe entsprechend angepasst. Breitenangaben der Komponenten werden eingehalten. === canvas === Dieser Container ist eine Art Leinwand. Alle Angaben - insbesondere die Positions-, Größen- und %-Angaben - von Komponenten innerhalb des Containers beziehen sich und sind auf diesen begrenzt, d.h. zum Beispiel `width = 100%` entspricht der canvas-Breite. {{{ + canvas { ... + Komponenten ... } }}} = Boot-Menü Icons = Die Einträge im [#boot-menu Bootmenü] lassen sich mit unterschiedlichen Symbolen (Icons) versehen. Hierzu werden die Angaben `--class BILDNAME` in der '''boot/grub/grub.cfg''' ausgewertet. Beispiel: {{{ menuentry 'Ubuntu, mit Linux 3.2.0-29-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os { ... } }}} Es werden hier vier `--class`-Werte definiert, denen man jeweils ein Symbol zuordnen kann. Weist ein Menüeintrag mehrere `--class`-Einträge auf, werden sie von links nach rechts abgearbeitet, das zuerst gefundene Symbol wird angezeigt. Der Dateiname des Icons besteht aus dem `--class`-Wert und der Erweiterung '''.png''' (hier wäre er für den ersten Eintrag zum Beispiel '''ubuntu.png'''). Das Icon muss im Format '''png''' abgespeichert werden. Mögliche Speicherorte: * Das Unterverzeichnis '''/boot/grub/themes/VERZEICHNIS/icons''' im definierten Themenverzeichnis (Standard) * Falls die Variable „icondir=“ gesetzt ist, zusätzlich dieser Pfad; Beispiel: {{{ icondir=(hd0,1)/boot/grub/themes/icons }}} Die Variable '''icondir''' kann via [:GRUB_2/Konfiguration#Skript-40-custom: Skript-40-custom] gesetzt werden. Unter Ubuntu werden verschiedene `--class` Werte automatisch gesetzt, die mit einem Symbol belegt werden können, es gilt: * Es werden keine Ubuntu-Versionen unterschieden * Für [:memtest:]-Einträge werden keine Symbole spezifiziert * Für den Untermenü-Eintrag "Previous Linux versions" (submenu) ist ebenfalls kein Symbol spezifiziert {{{#!vorlage Tabelle Automatisch gesetzte --class-Werte +++ Menüeintrag --class-Werte +++ <|2>Hauptmenü „Ubuntu“ und „Ubuntu (recovery mode)“ --class ubuntu --class gnu-linux --class gnu --class os +++ „Windows“ --class windows --class os +++ Einträge im Untermenü „Previous Linux versions“ „Ubuntu“ und „Ubuntu (recovery mode)“ --class gnu-linux --class gnu --class os }}} Eigene via [:GRUB_2/Konfiguration#Skript-40-custom: Skript-40-custom] erstellte Einträge können leicht angepasst werden, z.B.: {{{ menuentry "Restart" --class restart {reboot} menuentry "Shut Down" --class shutdown {halt} }}} {{{#!vorlage Hinweis Die ''--class''-Einträge dürfen keine Erweiterung '''.png''' besitzen! }}} = Styled Box = [[Vorlage(Bildunterschrift, styled_box_rund.png, 200, "Elemente einer Styled Box", right)]] Manche Komponenten bieten die Möglichkeit, diese grafisch mit Rahmenelementen aufzupeppen. Dafür werden maximal 9 separate Bilder (Format '''.png''') mit definierter Kennung benötigt. Allgemein: {{{ Dateiname = Bildname_KENNUNG.png }}} Die KENNUNG im Dateinamen bestimmt die Position des Bildelements. So steht der Dateiname '''Bildname_w.png''' für die Position links (Westen). Unterstützt eine Komponente die Eigenschaft vom Typ "styled box", wird diese wie folgt angegeben: {{{Eigenschaft = BILDNAME_*.png}}} {{{#!vorlage Hinweis Vorhandene Elemente werden dabei automatisch verwendet, und wenn nötig auf die angegebene Komponentengröße skaliert. Je nach Komponente werden nicht alle Elemente benötigt bzw. führen sogar zu kleinen optischen Abweichungen. }}} {{{#!vorlage Tabelle Element Kennung Skalierbarkeit +++ Eckteile _nw, _ne, _sw, _se keine +++ Seitenteile (link & rechts) _w, _e vertikal +++ oben & unten _n, _s horizontal +++ Mittelteil _c vertikal & horizontal }}} = Schriftarten = [[Bild(schriftarten.png, 220, align="right")]] Wie Schriftarten in das GRUB 2-spezifische Format '''.pf2''' umgewandelt werden können, steht im [:GRUB_2/Aussehen:Grundlagenartikel] im Abschnitt [:GRUB_2/Aussehen#Schriftarten:Schriftarten]. {{{#!vorlage Hinweis Die Verwendung eigener Schriftarten, mit unvollständigem Zeichensatz, kann GRUB 2 zum Absturz bringen! Es lässt sich dann zum Beispiel kein Betriebssystem starten oder Befehlszeilen editieren. Um das zu vermeiden ist bei Verwendung eigener Schriftarten unbedingt die Variable `terminal-font:` zu setzen. Siehe dazu [#Globale-Konfigurationsangaben Globale Konfigurationsangaben]. }}} Die Option `-v` gibt unter anderem auch den internen Schriftnamen aus, den man zum Beispiel in einem [#label label] für eine Schriftart angeben muss. = Hinweise = == Ladezeit == Je größer die Gesamtgröße aller Dateien, desto länger die Ladezeit beim Bootvorgang. Die [#Styled-Boxes Styled-Box] benötigt etwas mehr Zeit für den Aufbau. == Grafische Nebeneffekte == Leider lassen sich bisher gewisse optische Effekte nicht vermeiden: * Beim Verlassen des GRUB 2-Menüs wird kurz die GRUB-Shell eingeblendet * Der Abbruch des Timers läßt alle Komponenten mit der `id = "__timeout__"` verschwinden == Eigene Themen vorstellen == * Im hiesigen [forum:grafik-und-desktopgestaltung:Forum Grafik- und Desktopgestaltung] gibt es einen Sammelthread ''"[topic:grub-aussehen-erweiterte-konfiguration-beipiel: GRUB Aussehen - erweiterte Konfiguration - Beipiele]"'' mit GRUB 2-Themen. Dort kannst Du Dein Thema auch anderen zeigen. * [uf_thread:1823915:Diskussion] {en} auf Ubuntuforums.org, in dem auch GRUB 2-Themen vorgestellt werden. = Links = == Intern == * [:GRUB_2/Aussehen:] - Design-Grundlagen * [:GRUB_2/Aussehen_-_einfache_Konfiguration:] - Wenn man nur ein Hintergrundbild haben möchte * Fertige Themen, ausreichend kommentiert und sofort einsetzbar: * [[Anhang(ubuntuusers_grub_theme.tar.gz)]] {dl} - Ein Thema mit dem Thema ubuntuusers. Größe: 1024x768 * [[Anhang(glas_grub_theme.tar.gz)]] {dl} - Ein Thema mit dem Thema "Glas". * [[Anhang(descent.tar.gz)]] {dl} - Das Spiel [:Spiele/Descent:Descent] als Grundlage für ein Thema. Größe: 1024x768 * [:GRUB_2/Konfiguration:] - Einstellungsmöglichkeiten von GRUB * [:GRUB_2:] {Übersicht} - Übersicht zu GRUB == Extern == * [http://www.gnu.org/software/grub/manual/html_node/Theme-file-format.html#Theme-file-format GRUB 2 Handbuch] {en} * [http://grub.gibibit.com/ GRUB Graphical Menus Project] {en} (teilweise veraltet) * [uf_thread:1534689:A Beginner's Guide to Theming GRUB2] {en} - Diskussion auf Ubuntuforums.org * [ubuntuone:2EslXTLj5s2zzbeYKx17wJ:Handbuch] {en} {dl} oder [https://drive.google.com/file/d/0B4mCN-7zXfMkODVwdEh3MDFUbnM/edit?usp=sharing Handbuch] {en} {dl} #tag: Grafik, System