Theme file format: Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
Rad 27: | Rad 27: | ||
=== 7.2.5 Etiketter === | === 7.2.5 Etiketter === | ||
Textetiketter kan placeras på startskärmen. Typsnittet, färgen och den horisontella justeringen kan specificeras för etiketter. Om en etikett ges id "__timeout__", uppdateras även "text"-egenskapen för den etiketten med ett meddelande som informerar användaren om antalet sekunder som återstår till automatisk start. Detta är användbart om du vill att texten visas någon annanstans istället för direkt på tidslinjen. | Textetiketter kan placeras på startskärmen. Typsnittet, färgen och den horisontella justeringen kan specificeras för etiketter. Om en etikett ges id "__timeout__", uppdateras även "text"-egenskapen för den etiketten med ett meddelande som informerar användaren om antalet sekunder som återstår till automatisk start. Detta är användbart om du vill att texten visas någon annanstans istället för direkt på tidslinjen. | ||
=== 7.2.6 Startmeny === | |||
Startmenyn där GRUB visar menyposter från filen ”grub.cfg”. Det är en lista över objekt, där varje objekt har en titel och en valfri ikon. Ikonen väljs baserat på de *klasser* som specificeras för menyposten. Om det finns en PNG-fil med namnet ”myclass.png” i katalogen ”grub/themes/icons”, kommer den att visas för objekt som har klassen *myclass*. Startmenyn kan anpassas på flera sätt, såsom typsnittet och färgen som används för titeln på menyposten, samt genom att specificera stylade boxar för själva menyn och för markeringen av det valda objektet. | |||
=== 7.2.7 Stiliserade Boxar === | === 7.2.7 Stiliserade Boxar === |
Versionen från 5 september 2024 kl. 06.46
7 Temafilsformat
7.1 Introduktion
GRUB:s grafiska meny stödjer teman som kan anpassa layouten och utseendet på GRUB:s startmeny. Temat konfigureras genom en vanlig textfil som specificerar layouten för olika GUI-komponenter (inklusive startmenyn, tidslinjen för timeout och textmeddelanden) samt utseendet med hjälp av färger, typsnitt och bilder. Ett exempel finns tillgängligt i docs/example_theme.txt
7.2 Temaelement
7.2.1 Färger
Färger kan specificeras på flera sätt:
- HTML-stil "#RRGGBB" eller "#RGB", där *R*, *G* och *B* är hexadecimala siffror (t.ex. "#8899FF")
- Som kommaseparerade decimala RGB-värden (t.ex. "128, 128, 255")
- Med "SVG 1.0 färgnamn" (t.ex. "cornflowerblue") som måste specificeras i små bokstäver.
7.2.2 Typsnitt
De typsnitt som GRUB använder är i "PFF2 font format" för bitmap-typsnitt. Typsnitt specificeras med fulla typsnittsnamn. För närvarande finns det inga förutsättningar för en önskelista av typsnitt eller härledning av ett typsnitt från ett annat. Typsnitt laddas med kommandot "loadfont" i GRUB (loadfont). För att se listan över laddade typsnitt, kör kommandot "lsfonts" (lsfonts). Om det finns för många typsnitt för att passa på skärmen, gör "set pager=1" innan du kör "lsfonts".
7.2.3 Tidslinje för Timeout
Se figur 7.1
Se figur 7.2
Tidslinjer används för att visa den återstående tiden innan GRUB startar standardmenyalternativet. För att skapa en tidslinje som visar den återstående tiden före automatisk start, skapa enkelt en "progress_bar"-komponent med id "__timeout__". Detta indikerar för GRUB att tidslinjen ska uppdateras allt eftersom tiden går, och den ska göras osynlig om nedräkningen till automatisk start avbryts av användaren.
Tidslinjer kan valfritt ha text som visas på dem. Denna text styrs av variabeln "text" som innehåller en printf-mall där enda argumentet %d är antalet sekunder som återstår. Dessutom ersätts speciella värden "@TIMEOUT_NOTIFICATION_SHORT@", "@TIMEOUT_NOTIFICATION_MIDDLE@" och "@TIMEOUT_NOTIFICATION_LONG@" med standard- och översatta mallar.
7.2.4 Cirkulär Tidsindikator
Den cirkulära tidsindikatorn fungerar på liknande sätt som tidslinjen. När den ges ett id av "__timeout__", uppdaterar GRUB den cirkulära tidsindikatorns värde för att indikera den återstående tiden. För den cirkulära tidsindikatorn används två bilder för att rendera den: *center*-bilden och *tick*-bilden. Centerbilden renderas i mitten av komponenten, medan tick-bilden används för att rendera varje markering längs omkretsen av indikatorn.
7.2.5 Etiketter
Textetiketter kan placeras på startskärmen. Typsnittet, färgen och den horisontella justeringen kan specificeras för etiketter. Om en etikett ges id "__timeout__", uppdateras även "text"-egenskapen för den etiketten med ett meddelande som informerar användaren om antalet sekunder som återstår till automatisk start. Detta är användbart om du vill att texten visas någon annanstans istället för direkt på tidslinjen.
7.2.6 Startmeny
Startmenyn där GRUB visar menyposter från filen ”grub.cfg”. Det är en lista över objekt, där varje objekt har en titel och en valfri ikon. Ikonen väljs baserat på de *klasser* som specificeras för menyposten. Om det finns en PNG-fil med namnet ”myclass.png” i katalogen ”grub/themes/icons”, kommer den att visas för objekt som har klassen *myclass*. Startmenyn kan anpassas på flera sätt, såsom typsnittet och färgen som används för titeln på menyposten, samt genom att specificera stylade boxar för själva menyn och för markeringen av det valda objektet.
7.2.7 Stiliserade Boxar
En av de viktigaste funktionerna för att anpassa layouten är användningen av *stiliserade boxar*. En stiliserad box består av 9 rektangulära (och potentiellt tomma) regioner, som används för att sömlöst rita den stiliserade boxen på skärmen:
- Nordväst (nw) Nord (n) Nordost (ne)
- Väst (w) Centrum (c) Öst (e)
- Sydväst (sw) Söder (s) Sydost (se)
För att stödja alla storlekar av boxar på skärmen, skalas mittskivan och skivorna för toppen, botten och sidorna till rätt storlek för komponenten på skärmen enligt följande regler:
- Kantremsorna (nord, syd, öst och väst) skalas i riktningen för kanten de är intill. Till exempel skalas västremsan vertikalt.
- Hörnremsorna (nordväst, nordost, sydost och sydväst) skalas inte.
- Mittremsan skalas för att fylla det återstående utrymmet i mitten.
Som ett exempel på hur en bild kan delas upp, överväg den stiliserade boxen som används för en terminalvy.
Figur 7.3
7.2.8 Skapa Stiliserade Boxbilder
Vektorgrafikredigeraren Inkscape är ett mycket användbart verktyg för att skapa bilder för stiliserade boxar. En process som fungerar väl för att skära upp en ritning i nödvändiga bildremsor är:
- Skapa eller öppna ritningen du vill använda.
- Skapa ett nytt lager högst upp i lagerstacken. Gör det synligt. Välj detta lager som det aktuella lagret.
- Rita 9 rektanglar på din ritning där du vill ha remsorna. Rensa fyllningsalternativet och ställ in strecket till 1 pixel bred fast linje. Hörnen på remsorna måste mötas exakt; om det är av med en enda pixel kommer det troligen att vara uppenbart när den stiliserade boxen renderas i GRUB-menyn. Du bör förmodligen gå till Arkiv | Dokumentegenskaper | Rutnät och aktivera ett rutnät eller skapa en guide (klicka på en av linjalerna bredvid ritningen och dra över ritningen; släpp musknappen för att placera guiden) för att hjälpa till att placera rektanglarna exakt.
- Högerklicka på rektangeln för mittremsan och välj Objektegenskaper. Ändra "Id" till "slice_c" och klicka på Sätt. Upprepa detta för de återstående 8 rektanglarna och ge dem Id-värden som "slice_n", "slice_ne", "slice_e", och så vidare beroende på plats.
- Spara ritningen.
- Välj alla remsrektanglar. Med remslagret valt kan du enkelt trycka på Ctrl+A för att välja alla rektanglar. Statusfältet bör ange att 9 rektanglar är valda.
- Klicka på lagrets döljikon för remslagret i lagerpaletten. Rektanglarna kommer att förbli valda, även om de är dolda.
- Välj Arkiv | Exportera Bitmap och kryssa i rutan *Batchexport 9 valda objekt*. Se till att *Dölj alla utom valda* inte är ikryssad. klicka på *Exportera*. Detta kommer att skapa PNG-filer i samma katalog som ritningen, uppkallade efter remsorna. Dessa kan nu användas för en stiliserad box i ett GRUB-tema.
7.3 Temafilhandbok
Temafilen är en vanlig textfil. Rader som börjar med "#" ignoreras och anses vara kommentarer. (Observera: Detta kanske inte är fallet om den föregående raden slutade där ett värde förväntades.)
Temafilen innehåller två typer av uttalanden:
Globala egenskaper. Konstruktion av komponenter.
7.3.2 Format
Globala egenskaper specificeras med följande enkla format:
namn1: värde1 namn2: "värde som kan innehålla mellanslag" namn3: #88F
I detta exempel tilldelas namn3 ett färgvärde.
7.3.3 Lista över Globala Egenskaper
- title-text - Specificerar texten som ska visas överst i mitten av skärmen som en titel.
- title-font - Definierar typsnittet som används för titelmeddelandet överst på skärmen.
- title-color - Definierar färgen på titelmeddelandet.
- message-font - För närvarande oanvänd. Kvar för bakåtkompatibilitet.
- message-color - För närvarande oanvänd. Kvar för bakåtkompatibilitet.
- message-bg-color - För närvarande oanvänd. Kvar för bakåtkompatibilitet.
- desktop-image - Specificerar bilden som ska användas som bakgrund. Den kommer att skalas för att passa skärmstorleken eller proportionellt skalas beroende på skalningsmetoden.
- desktop-image-scale-method - Specificerar skalningsmetoden för *desktop-image*. Alternativen är "stretch", "crop", "padding", "fitwidth", "fitheight". "stretch" för att passa skärmstorleken. Annars är det proportionell skalning av en del av *desktop-image* till en del av skärmen. "crop" en del av *desktop-image* kommer att skalas proportionellt för att passa skärmstorlekarna. "padding" hela *desktop-image* kommer att innehållas på skärmen. "fitwidth" för att passa *desktop-image*’s bredd med skärmbredden. "fitheight" för att passa *desktop-image*’s höjd med skärmhöjden. Standard är "stretch".
- desktop-image-h-align - Specificerar den horisontella inriktningen av *desktop-image* om *desktop-image-scale-method* inte är lika med "stretch". Alternativen är "left", "center", "right". Standard är "center".
- desktop-image-v-align - Specificerar den vertikala inriktningen av *desktop-image* om *desktop-image-scale-method* inte är lika med "stretch". Alternativen är "top", "center", "bottom". Standard är "center".
- desktop-color - Specificerar färgen för bakgrunden om *desktop-image* inte specificeras.
- terminal-box - Specificerar filnamnsmönstret för de stylade boxskivorna som används för kommandoradsfönstret. Till exempel kommer "terminal-box: terminal_*.png" att använda bilderna "terminal_c.png" som mittenområdet, "terminal_n.png" som den norra (övre) kanten, "terminal_nw.png" som det nordvästra (övre vänstra) hörnet, och så vidare. Om bilden för någon skiva inte hittas, kommer den helt enkelt att lämnas tom.
- terminal-border - Specificerar bredden på terminalfönstrets ram.
- terminal-left - Specificerar den vänstra koordinaten för terminalfönstret.
- terminal-top - Specificerar den övre koordinaten för terminalfönstret.
- terminal-width - Specificerar bredden på terminalfönstret.
- terminal-height - Specificerar höjden på terminalfönstret.
7.3.4 Komponentkonstruktion
Större anpassningsbarhet ges av komponenter. Ett träd av komponenter bildar användargränssnittet. *Behållare* är komponenter som kan innehålla andra komponenter, och det finns alltid en enda rotkomponent som är en instans av en *duk*-behållare.
Komponenter skapas i temafilen genom att prefixa typen av komponent med ett ’+’-tecken:
+ label { text="GRUB" font="aqui 11" color="#8FF" }
Egenskaper för en komponent specificeras som "name = value" (blanksteg runt token är valfritt och ignoreras) där *value* kan vara:
- ett enda ord (t.ex., "align = center", "color = #FF8080"),
- en citatsträng (t.ex., "text = "Hello, World!""),
- en tupel (t.ex., "preferred_size = (120, 80)").
Sidslut
Orginalhemsidan på Engelska :https://www.gnu.org/software/grub/manual/grub/html_node/Theme-file-format.html#Introduction-1 GNU GRUB Manual
Det här är en maskinöversättning av GNU-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webserver.