35 Commits
Author SHA1 Message Date
Vince 4c5a77125b Merge pull request #254 from artempavlov/fix-243-dejavu-font
Fix bitmap-looking menu font by restoring DejaVu Sans
2026-09-01 22:09:02 +08:00
Artem Pavlov 3ac5284468 Fixed #243: restore DejaVu Sans font 2026-08-29 10:31:01 +02:00
Vince 241d3be041 Merge pull request #251 from Alexander-Hou/fix-imagemagick-v6-compat
fix: use convert as fallback for imagemagick v6
2026-08-12 09:41:05 +08:00
Cling 964b323d7c fix: use convert as fallback for imagemagick v6 2026-02-22 05:31:28 +08:00
vinceliuice 80dd04ddf3 Fixed #249 2025-09-06 13:23:39 +08:00
vinceliuice 8f30385f55 Update README.md 2025-08-28 19:52:00 +08:00
vinceliuice 6f235a8bc5 Update install.sh 2025-08-17 12:20:45 +08:00
vinceliuice 03d8c9cf0d Fixed #247 2025-08-13 16:01:31 +08:00
Vince 6c26f99622 Merge pull request #242 from aryankaran/patch-1
Fix background in terminal
2025-07-23 22:12:38 +08:00
vinceliuice 739cddf60f Fixed #244 2025-07-23 10:12:03 +08:00
Aryan Karan 7cf2f0918f Fix background in terminal
Becoz of GRUB_BACKGROUND being set it shows backkground in grub terminal too which is highly discouraged as it reduces visibilty of texts to 10-30%  

so better keep the terminal and other screen black expect the grub menu which is already set by theme  ```desktop-image```
2025-04-03 18:35:00 +05:30
vinceliuice f6ab2438e1 update 2024-12-17 13:22:01 +08:00
vinceliuice 42c232dfb4 Fixed #236 2024-10-27 12:54:41 +08:00
Vince 24ac05a101 Merge pull request #235 from Ate329/dev
Fix NixOS build failure due to missing files
2024-10-26 14:25:32 +08:00
Zhiyong (Justin) He 92fc1c9686 Update flake.nix
Fix build failure on NixOS
2024-10-26 00:27:15 +03:00
vinceliuice 55aef0cada Update font 2024-10-25 12:23:36 +08:00
vinceliuice 47a6467e27 Merge branch 'master' of github.com:vinceliuice/grub2-themes 2024-10-12 01:02:48 +08:00
vinceliuice faf75d2a7f Update install.sh 2024-10-12 01:02:38 +08:00
Vince 85db6e7cea Merge pull request #233 from Ate329/master
Update ImageMagick command for GRUB theme background
2024-09-29 19:47:09 +08:00
Zhiyong (Justin) He 3e7139701e Update flake.nix 2024-09-29 13:08:56 +03:00
Vince a697a28fe6 Merge pull request #231 from Ate329/master
Add custom resolution option and fix ImageMagick dependency
2024-09-18 10:59:23 +08:00
Zhiyong (Justin) He 610bc23012 Update README.md 2024-09-17 20:22:28 +03:00
Zhiyong (Justin) He a2b3fa071b Update install.sh 2024-09-17 20:21:13 +03:00
Zhiyong (Justin) He 18ea3defc5 Update README.md 2024-09-17 20:20:35 +03:00
Zhiyong (Justin) He 326a27a6f2 Update install.sh 2024-09-17 20:14:55 +03:00
Zhiyong (Justin) He d73179c4ea Update flake.nix
add imagemagick
2024-09-17 20:08:46 +03:00
Zhiyong (Justin) He daa8aef95f Update install.sh to make it work for customised resolution 2024-09-17 20:02:25 +03:00
Zhiyong (Justin) He 9aa7e35d71 Update flake.nix to fix a bug
ERROR: Unrecognized screen variant 'custom'.
2024-09-17 19:25:41 +03:00
Zhiyong (Justin) He 7cff52a245 Update flake.nix to allow customised resolution for NixOS 2024-09-17 19:08:35 +03:00
vinceliuice e3a5ea51ae update 2024-09-07 11:01:34 +08:00
Vince fa5ec95db0 Merge pull request #229 from paragi/master
Add Nobara Linux icons
2024-09-07 09:37:56 +08:00
Simon Rigét 454f4c6d92 Delete github 2024-09-06 21:39:14 +02:00
Simon Rigét 97ddfd915b Delete excess file 2024-09-06 21:38:53 +02:00
paragi d522f301ef Added Nobara icon 2024-09-06 18:52:08 +02:00
paragi cb1539e4e8 Added Nobara Linux icons 2024-09-06 14:54:10 +02:00
35 changed files with 349 additions and 128 deletions
+38 -26
View File
@@ -1,51 +1,46 @@
![banner](banner.png?raw=true)
## Installation:
Usage: `sudo ./install.sh [OPTIONS...]`
```
-t, --theme theme variant(s) [tela|vimix|stylish|whitesur] (default is tela)
-i, --icon icon variant(s) [color|white|whitesur] (default is color)
-s, --screen screen display variant(s) [1080p|2k|4k|ultrawide|ultrawide2k] (default is 1080p)
-r, --remove Remove theme [tela|vimix|stylish|whitesur] (must add theme name option, default is tela)
-t, --theme theme variant(s) [tela|vimix|stylish|whitesur] (default is tela)
-i, --icon icon variant(s) [color|white|whitesur] (default is color)
-s, --screen screen display variant(s) [1080p|2k|4k|ultrawide|ultrawide2k] (default is 1080p)
-c, --custom-resolution set custom resolution (e.g., 1600x900) (disabled in default)
-r, --remove remove theme [tela|vimix|stylish|whitesur] (must add theme name option, default is tela)
-b, --boot install theme into '/boot/grub' or '/boot/grub2'
-g, --generate do not install but generate theme into chosen directory (must add your directory)
-b, --boot install theme into '/boot/grub' or '/boot/grub2'
-g, --generate do not install but generate theme into chosen directory (must add your directory)
-h, --help Show this help
-h, --help show this help
```
_If no options are used, a user interface `dialog` will show up instead_
*If no options are used, a user interface *`dialog`* will show up instead*
### Examples:
- Install Tela theme on 2k display device:
```sh
sudo ./install.sh -t tela -s 2k
```
- Install Tela theme with custom resolution:
```sh
sudo ./install.sh -t tela -c 1600x900
```
- Install Tela theme into /boot/grub/themes:
```sh
sudo ./install.sh -b -t tela
```
- Uninstall Tela theme:
```sh
sudo ./install.sh -r -t tela
```
## Installation with NixOS:
To use this theme with NixOS you will have to enable [flakes](https://wiki.nixos.org/wiki/flakes). Before you do this, please inform yourself if you really want to, because flakes are still an unstable feature.
First you will have to add grub2 to your `flake.nix` file as a new input.
```nix
# flake.nix
{
description = "NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Add grub2 themes to your inputs ...
@@ -53,13 +48,11 @@ First you will have to add grub2 to your `flake.nix` file as a new input.
url = "github:vinceliuice/grub2-themes";
};
};
outputs = inputs@{ nixpkgs, grub2-themes, ... }: {
nixosConfigurations = {
my_host = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
# ... and then to your modules
modules = [
./configuration.nix
@@ -70,7 +63,6 @@ First you will have to add grub2 to your `flake.nix` file as a new input.
};
}
```
After that, you can configure the theme as shown below. In this example it is inside the `configuration.nix` file but it can be any file you choose.
```nix
# configuration.nix
@@ -81,22 +73,20 @@ After that, you can configure the theme as shown below. In this example it is in
enable = true;
theme = "stylish";
footer = true;
customResolution = "1600x900"; # Optional: Set a custom resolution
};
}
```
## Issues / tweaks:
### Correcting display resolution:
- On the grub screen, press `c` to enter the command line
- Enter `vbeinfo` or `videoinfo` to check available resolutions
- Open `/etc/default/grub`, and edit `GRUB_GFXMODE=[height]x[width]x32` to match your resolution
- Finally, run `grub-mkconfig -o /boot/grub/grub.cfg` to update your grub config
### Setting a custom background:
- Make sure you have `imagemagick` installed, or at least something that provides `convert`
- Make sure you have `imagemagick` installed, or at least something that provides `convert` or `magick`
- Find the resolution of your display, and make sure your background matches the resolution
- 1920x1080 >> 1080p
- 2560x1080 >> ultrawide
@@ -106,6 +96,28 @@ After that, you can configure the theme as shown below. In this example it is in
- Place your custom background inside the root of the project, and name it `background.jpg`
- Run the installer like normal, but with -s `[YOUR_RESOLUTION]` and -t `[THEME]` and -i `[ICON]`
- Make sure to replace `[YOUR_RESOLUTION]` with your resolution and `[THEME]` with the theme
- Alternatively, use the `-c` option to set a custom resolution
### Fonts:
GRUB themes use the PF2 font format. GRUB rasterizes a TrueType or OpenType
font when `grub-mkfont` creates a PF2 file, so the source font must be converted
for each size used by the theme. The bundled themes use the DejaVu Sans files
from `common/DejaVuSans.ttf`; Unifont is also included for broad Unicode
coverage.
To regenerate the bundled fonts, run:
```sh
cd common
./makefont.sh
```
The script supports both command names used by Linux distributions:
`grub-mkfont` (including NixOS) and `grub2-mkfont` (including Fedora and
openSUSE). To convert another font, pass its path, an output prefix, and
optional sizes:
```sh
./makefont.sh /path/to/MyFont.ttf my-font 16 24 32
```
## Contributing:
- If you made changes to icons, or added a new one:
@@ -119,6 +131,6 @@ After that, you can configure the theme as shown below. In this example it is in
## Documents
[Grub2 theme reference](https://wiki.rosalab.ru/en/index.php/Grub2_theme_/_reference)
[Grub2 theme reference](https://wiki.rosalab.ru/en/index.php/Grub2_theme_/_reference)
[Grub2 theme tutorial](https://wiki.rosalab.ru/en/index.php/Grub2_theme_tutorial)
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

+14 -7
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="logos-color.svg"
id="svg371"
viewBox="0 0 304 448"
@@ -17,14 +17,14 @@
inkscape:document-rotation="0"
inkscape:current-layer="svg371"
inkscape:window-maximized="1"
inkscape:window-y="34"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:cy="283.19587"
inkscape:cx="137.0586"
inkscape:zoom="1.7072989"
inkscape:cy="124.17275"
inkscape:cx="199.14498"
inkscape:zoom="0.85364945"
showgrid="false"
id="namedview373"
inkscape:window-height="1010"
inkscape:window-height="1012"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
@@ -1488,4 +1488,11 @@
d="m 8.4665,281.92 c 3.6644,0 6.6145,2.9501 6.6145,6.6145 0,3.6644 -2.9501,6.6145 -6.6145,6.6145 -3.6644,0 -6.6145,-2.9501 -6.6145,-6.6145 0,-3.6644 2.9501,-6.6145 6.6145,-6.6145 z" /></g><path
id="rect1"
style="fill:#ffffff;fill-rule:evenodd;stroke-width:1.97269;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 139.50246,94.999931 c -0.27808,0 -0.50253,0.224446 -0.50253,0.502527 V 102.968 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.465542 c 0,-0.278081 -0.22445,-0.502527 -0.50253,-0.502527 z m 9.52941,0 c -0.27808,0 -0.50253,0.224446 -0.50253,0.502527 V 102.968 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.465542 c 0,-0.278081 -0.22445,-0.502527 -0.50253,-0.502527 z m -9.52941,9.529419 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50253 v 7.46553 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46553 c 0,-0.27808 -0.22445,-0.50253 -0.50253,-0.50253 z m 9.52941,0 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50253 v 7.46553 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46553 c 0,-0.27808 -0.22445,-0.50253 -0.50253,-0.50253 z" /></g></svg>
d="m 139.50246,94.999931 c -0.27808,0 -0.50253,0.224446 -0.50253,0.502527 V 102.968 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.465542 c 0,-0.278081 -0.22445,-0.502527 -0.50253,-0.502527 z m 9.52941,0 c -0.27808,0 -0.50253,0.224446 -0.50253,0.502527 V 102.968 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.465542 c 0,-0.278081 -0.22445,-0.502527 -0.50253,-0.502527 z m -9.52941,9.529419 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50253 v 7.46553 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46553 c 0,-0.27808 -0.22445,-0.50253 -0.50253,-0.50253 z m 9.52941,0 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50253 v 7.46553 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46553 c 0,-0.27808 -0.22445,-0.50253 -0.50253,-0.50253 z" /></g><g
id="nobara"><path
id="path3"
d="m 331.42256,7.9375005 c 8.83687,0 16,7.1631275 16,15.9999945 0,8.836863 -7.16313,15.999991 -16,15.999991 -8.83687,0 -15.99999,-7.163128 -15.99999,-15.999991 0,-8.836867 7.16312,-15.9999945 15.99999,-15.9999945 z"
style="fill:#ffffff;fill-opacity:1" /><path
d="m 332.29044,32.819778 c -0.0269,-0.232768 -0.11775,-0.521595 -0.25003,-0.794301 -0.59159,-1.219628 -1.97601,-1.802867 -3.27906,-1.381423 -0.54525,0.176346 -1.06064,0.575458 -1.41553,1.096184 -0.27575,0.404611 -0.60864,0.697376 -1.02766,0.903785 -0.25439,0.125325 -0.43344,0.187148 -0.69609,0.240367 -0.22313,0.04518 -0.76345,0.03204 -1.03777,-0.0253 -0.96019,-0.200682 -1.73935,-0.893192 -2.03615,-1.809667 -0.13403,-0.413867 -0.12556,0.06875 -0.12556,-7.152871 0,-6.398196 10e-4,-6.649786 0.042,-6.834146 0.12173,-0.555013 0.39726,-1.044613 0.80225,-1.425607 1.08169,-1.017572 2.7785,-0.969967 3.80117,0.106627 0.1589,0.167288 0.19917,0.192098 0.24208,0.149179 0.0285,-0.02855 0.57752,-0.277496 0.83203,-0.377346 0.69106,-0.271125 1.46536,-0.461373 2.28556,-0.5616 0.46181,-0.05644 1.52549,-0.05659 1.98133,-2.95e-4 1.78855,0.220862 3.28248,0.843485 4.66142,1.942722 0.38961,0.310601 1.04885,0.969793 1.35984,1.359754 1.08528,1.360903 1.71883,2.877798 1.94212,4.649924 0.0361,0.28653 0.0405,0.638278 0.0479,3.861795 0.006,2.558334 7.4e-4,3.604594 -0.0176,3.754866 -0.14391,1.170542 -0.99477,2.095149 -2.15028,2.336658 -0.27999,0.05855 -0.81425,0.07056 -1.04766,0.02357 -0.94774,-0.190791 -1.73506,-0.877974 -2.03724,-1.778162 -0.14083,-0.419509 -0.13163,-0.192868 -0.14009,-3.449674 l -0.008,-2.97458 1.32362,-0.377398 c 0.728,-0.207571 1.33067,-0.383895 1.33928,-0.391827 0.009,-0.0079 -0.60607,-0.191759 -1.36597,-0.408487 l -1.38162,-0.394057 -0.0489,-0.180146 c -0.0667,-0.246193 -0.22914,-0.625948 -0.36253,-0.847897 -0.54138,-0.900777 -1.36627,-1.487061 -2.40731,-1.710997 -0.20203,-0.04344 -0.30362,-0.05085 -0.69806,-0.05085 -0.50895,0 -0.72646,0.03234 -1.13715,0.169275 -1.07089,0.35696 -1.93551,1.22296 -2.28317,2.286815 -0.16916,0.517683 -0.18743,0.735854 -0.1769,2.112707 0.008,1.015713 0.0134,1.163924 0.0486,1.282699 0.23817,0.803722 0.94473,1.340119 1.76609,1.340753 1.12472,7.55e-4 2.17653,0.759388 2.53538,1.828412 0.13431,0.400085 0.13159,0.364055 0.14131,1.875631 0.006,0.76785 0.006,1.477163 0.002,1.576234 l -0.007,0.180146 z m -1.33361,-6.853767 c -0.67196,-0.150267 -1.19109,-0.646341 -1.37633,-1.315233 -0.0304,-0.109665 -0.0403,-0.225417 -0.0398,-0.461614 7.6e-4,-0.29241 0.006,-0.330753 0.0718,-0.529175 0.19776,-0.595667 0.64956,-1.026714 1.25429,-1.196683 0.14462,-0.04065 0.23566,-0.0504 0.46162,-0.04948 0.34374,0.0015 0.53874,0.04858 0.83932,0.202797 0.17025,0.08737 0.24658,0.145446 0.4228,0.321663 0.17621,0.176217 0.23428,0.252547 0.32166,0.422797 0.53137,1.035394 0.0117,2.246803 -1.10493,2.57605 -0.21034,0.06203 -0.6373,0.07651 -0.85039,0.02887 z"
id="path1"
style="stroke-width:0.75552" /></g></svg>

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 174 KiB

+17 -6
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="logos-white.svg"
id="svg453"
viewBox="0 0 304 448"
@@ -20,14 +20,14 @@
inkscape:document-rotation="0"
inkscape:current-layer="svg453"
inkscape:window-maximized="1"
inkscape:window-y="34"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:cy="89.030857"
inkscape:cx="-160.00937"
inkscape:zoom="1.2186786"
inkscape:cy="96.897437"
inkscape:cx="259.65032"
inkscape:zoom="3.4469436"
showgrid="true"
id="namedview455"
inkscape:window-height="1010"
inkscape:window-height="1012"
inkscape:window-width="1920"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
@@ -1566,4 +1566,15 @@
transform="matrix(2.0001874,0,0,1.9999487,-74.724614,-74.332896)" />
</g>
</g>
<g
id="nobara">
<path
id="path3"
d="m 331.42256,7.9375005 c 8.83687,0 16,7.1631275 16,15.9999945 0,8.836863 -7.16313,15.999991 -16,15.999991 -8.83687,0 -15.99999,-7.163128 -15.99999,-15.999991 0,-8.836867 7.16312,-15.9999945 15.99999,-15.9999945 z"
style="fill:none;fill-opacity:1" />
<path
d="m 332.29044,32.819778 c -0.0269,-0.232768 -0.11775,-0.521595 -0.25003,-0.794301 -0.59159,-1.219628 -1.97601,-1.802867 -3.27906,-1.381423 -0.54525,0.176346 -1.06064,0.575458 -1.41553,1.096184 -0.27575,0.404611 -0.60864,0.697376 -1.02766,0.903785 -0.25439,0.125325 -0.43344,0.187148 -0.69609,0.240367 -0.22313,0.04518 -0.76345,0.03204 -1.03777,-0.0253 -0.96019,-0.200682 -1.73935,-0.893192 -2.03615,-1.809667 -0.13403,-0.413867 -0.12556,0.06875 -0.12556,-7.152871 0,-6.398196 10e-4,-6.649786 0.042,-6.834146 0.12173,-0.555013 0.39726,-1.044613 0.80225,-1.425607 1.08169,-1.017572 2.7785,-0.969967 3.80117,0.106627 0.1589,0.167288 0.19917,0.192098 0.24208,0.149179 0.0285,-0.02855 0.57752,-0.277496 0.83203,-0.377346 0.69106,-0.271125 1.46536,-0.461373 2.28556,-0.5616 0.46181,-0.05644 1.52549,-0.05659 1.98133,-2.95e-4 1.78855,0.220862 3.28248,0.843485 4.66142,1.942722 0.38961,0.310601 1.04885,0.969793 1.35984,1.359754 1.08528,1.360903 1.71883,2.877798 1.94212,4.649924 0.0361,0.28653 0.0405,0.638278 0.0479,3.861795 0.006,2.558334 7.4e-4,3.604594 -0.0176,3.754866 -0.14391,1.170542 -0.99477,2.095149 -2.15028,2.336658 -0.27999,0.05855 -0.81425,0.07056 -1.04766,0.02357 -0.94774,-0.190791 -1.73506,-0.877974 -2.03724,-1.778162 -0.14083,-0.419509 -0.13163,-0.192868 -0.14009,-3.449674 l -0.008,-2.97458 1.32362,-0.377398 c 0.728,-0.207571 1.33067,-0.383895 1.33928,-0.391827 0.009,-0.0079 -0.60607,-0.191759 -1.36597,-0.408487 l -1.38162,-0.394057 -0.0489,-0.180146 c -0.0667,-0.246193 -0.22914,-0.625948 -0.36253,-0.847897 -0.54138,-0.900777 -1.36627,-1.487061 -2.40731,-1.710997 -0.20203,-0.04344 -0.30362,-0.05085 -0.69806,-0.05085 -0.50895,0 -0.72646,0.03234 -1.13715,0.169275 -1.07089,0.35696 -1.93551,1.22296 -2.28317,2.286815 -0.16916,0.517683 -0.18743,0.735854 -0.1769,2.112707 0.008,1.015713 0.0134,1.163924 0.0486,1.282699 0.23817,0.803722 0.94473,1.340119 1.76609,1.340753 1.12472,7.55e-4 2.17653,0.759388 2.53538,1.828412 0.13431,0.400085 0.13159,0.364055 0.14131,1.875631 0.006,0.76785 0.006,1.477163 0.002,1.576234 l -0.007,0.180146 z m -1.33361,-6.853767 c -0.67196,-0.150267 -1.19109,-0.646341 -1.37633,-1.315233 -0.0304,-0.109665 -0.0403,-0.225417 -0.0398,-0.461614 7.6e-4,-0.29241 0.006,-0.330753 0.0718,-0.529175 0.19776,-0.595667 0.64956,-1.026714 1.25429,-1.196683 0.14462,-0.04065 0.23566,-0.0504 0.46162,-0.04948 0.34374,0.0015 0.53874,0.04858 0.83932,0.202797 0.17025,0.08737 0.24658,0.145446 0.4228,0.321663 0.17621,0.176217 0.23428,0.252547 0.32166,0.422797 0.53137,1.035394 0.0117,2.246803 -1.10493,2.57605 -0.21034,0.06203 -0.6373,0.07651 -0.85039,0.02887 z"
id="path1"
style="stroke-width:0.75552;fill:#ffffff" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 135 KiB

+41 -19
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="logos-whitesur.svg"
id="svg1041"
viewBox="0 0 304 448"
@@ -20,13 +20,13 @@
inkscape:bbox-nodes="true"
inkscape:snap-bbox="true"
inkscape:current-layer="svg1041"
inkscape:window-maximized="0"
inkscape:window-y="121"
inkscape:window-x="487"
inkscape:window-height="704"
inkscape:window-width="1522"
inkscape:cy="200.52083"
inkscape:cx="141.04772"
inkscape:window-maximized="1"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:window-height="1012"
inkscape:window-width="1920"
inkscape:cy="143.05695"
inkscape:cx="130.1979"
inkscape:zoom="1.2442597"
showgrid="false"
inkscape:pagecheckerboard="0"
@@ -867,17 +867,6 @@
offset="1"
stop-color="#a9ff00" />
</radialGradient>
<filter
color-interpolation-filters="sRGB"
height="2.0632422"
width="2.3838971"
y="-0.5316211"
x="-0.69194853"
id="filter8621">
<feGaussianBlur
id="feGaussianBlur254"
stdDeviation="0.72209434" />
</filter>
<filter
color-interpolation-filters="sRGB"
height="2.5046632"
@@ -1132,6 +1121,16 @@
y1="15.081"
x2="7.9373002"
y2="1.852" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient2820"
id="linearGradient4"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.8898,0,0,1.889859,317.61655,16.000057)"
x1="7.9373002"
y1="15.081"
x2="7.9373002"
y2="1.852" />
</defs>
<g
transform="matrix(3.7795,0,0,3.7796018,0.6977347,-9.6627411)"
@@ -3289,4 +3288,27 @@
style="fill:#ffffff;fill-rule:evenodd;stroke-width:1.97269;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke fill markers"
d="m 143.50254,103 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50252 v 7.46554 c 0,0.27809 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46554 c 0,-0.27808 -0.22445,-0.50252 -0.50253,-0.50252 z m 9.52941,0 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50252 v 7.46554 c 0,0.27809 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46554 c 0,-0.27808 -0.22445,-0.50252 -0.50253,-0.50252 z m -9.52941,9.52942 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50252 v 7.46553 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46553 c 0,-0.27808 -0.22445,-0.50252 -0.50253,-0.50252 z m 9.52941,0 c -0.27808,0 -0.50253,0.22445 -0.50253,0.50252 v 7.46553 c 0,0.27808 0.22445,0.50253 0.50253,0.50253 h 7.46553 c 0.27808,0 0.50253,-0.22445 0.50253,-0.50253 v -7.46553 c 0,-0.27808 -0.22445,-0.50252 -0.50253,-0.50252 z" />
</g>
<g
id="nobara">
<path
style="fill:url(#linearGradient4)"
id="path2"
stroke-width="1.88983"
fill="url(#linearGradient1710)"
d="m 326.12055,17.990119 c -3.6016,0 -6.5012,2.899391 -6.5012,6.501003 V 39.49059 c 0,3.601713 2.8994,6.501003 6.5012,6.501003 h 14.999 c 3.6016,0 6.5012,-2.89939 6.5012,-6.501003 V 24.491122 c 0,-3.601612 -2.8994,-6.501003 -6.5012,-6.501003 z" />
<rect
id="rect2"
stroke-width="0"
opacity="0"
ry="0"
rx="0"
height="31.999998"
width="32"
y="16.000053"
x="317.61655" />
<path
d="m 334.48792,40.873141 c -0.0269,-0.232768 -0.11775,-0.521595 -0.25003,-0.794301 -0.59159,-1.219628 -1.97601,-1.802867 -3.27906,-1.381423 -0.54525,0.176346 -1.06064,0.575458 -1.41553,1.096184 -0.27575,0.404611 -0.60864,0.697376 -1.02766,0.903785 -0.25439,0.125325 -0.43344,0.187148 -0.69609,0.240367 -0.22313,0.04518 -0.76345,0.03204 -1.03777,-0.0253 -0.96019,-0.200682 -1.73935,-0.893192 -2.03615,-1.809667 -0.13403,-0.413867 -0.12556,0.06875 -0.12556,-7.152871 0,-6.398196 10e-4,-6.649786 0.042,-6.834146 0.12173,-0.555013 0.39726,-1.044613 0.80225,-1.425607 1.08169,-1.017572 2.7785,-0.969967 3.80117,0.106627 0.1589,0.167288 0.19917,0.192098 0.24208,0.149179 0.0285,-0.02855 0.57752,-0.277496 0.83203,-0.377346 0.69106,-0.271125 1.46536,-0.461373 2.28556,-0.5616 0.46181,-0.05644 1.52549,-0.05659 1.98133,-2.95e-4 1.78855,0.220862 3.28248,0.843485 4.66142,1.942722 0.38961,0.310601 1.04885,0.969793 1.35984,1.359754 1.08528,1.360903 1.71883,2.877798 1.94212,4.649924 0.0361,0.28653 0.0405,0.638278 0.0479,3.861795 0.006,2.558334 7.4e-4,3.604594 -0.0176,3.754866 -0.14391,1.170542 -0.99477,2.095149 -2.15028,2.336658 -0.27999,0.05855 -0.81425,0.07056 -1.04766,0.02357 -0.94774,-0.190791 -1.73506,-0.877974 -2.03724,-1.778162 -0.14083,-0.419509 -0.13163,-0.192868 -0.14009,-3.449674 l -0.008,-2.97458 1.32362,-0.377398 c 0.728,-0.207571 1.33067,-0.383895 1.33928,-0.391827 0.009,-0.0079 -0.60607,-0.191759 -1.36597,-0.408487 l -1.38162,-0.394057 -0.0489,-0.180146 c -0.0667,-0.246193 -0.22914,-0.625948 -0.36253,-0.847897 -0.54138,-0.900777 -1.36627,-1.487061 -2.40731,-1.710997 -0.20203,-0.04344 -0.30362,-0.05085 -0.69806,-0.05085 -0.50895,0 -0.72646,0.03234 -1.13715,0.169275 -1.07089,0.35696 -1.93551,1.22296 -2.28317,2.286815 -0.16916,0.517683 -0.18743,0.735854 -0.1769,2.112707 0.008,1.015713 0.0134,1.163924 0.0486,1.282699 0.23817,0.803722 0.94473,1.340119 1.76609,1.340753 1.12472,7.55e-4 2.17653,0.759388 2.53538,1.828412 0.13431,0.400085 0.13159,0.364055 0.14131,1.875631 0.006,0.76785 0.006,1.477163 0.002,1.576234 l -0.007,0.180146 z m -1.33361,-6.853767 c -0.67196,-0.150267 -1.19109,-0.646341 -1.37633,-1.315233 -0.0304,-0.109665 -0.0403,-0.225417 -0.0398,-0.461614 7.6e-4,-0.29241 0.006,-0.330753 0.0718,-0.529175 0.19776,-0.595667 0.64956,-1.026714 1.25429,-1.196683 0.14462,-0.04065 0.23566,-0.0504 0.46162,-0.04948 0.34374,0.0015 0.53874,0.04858 0.83932,0.202797 0.17025,0.08737 0.24658,0.145446 0.4228,0.321663 0.17621,0.176217 0.23428,0.252547 0.32166,0.422797 0.53137,1.035394 0.0117,2.246803 -1.10493,2.57605 -0.21034,0.06203 -0.6373,0.07651 -0.85039,0.02887 z"
id="path1"
style="stroke-width:0.75552" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 210 KiB

+1
View File
@@ -47,6 +47,7 @@ gpart
ubuntuDDE
archcraft
brunch
nobara
recovery
restart
+53
View File
@@ -0,0 +1,53 @@
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
readonly SCRIPT_DIR
if [[ -n "${GRUB_MKFONT:-}" ]]; then
readonly FONT_TOOL="${GRUB_MKFONT}"
elif command -v grub-mkfont >/dev/null 2>&1; then
readonly FONT_TOOL="grub-mkfont"
elif command -v grub2-mkfont >/dev/null 2>&1; then
readonly FONT_TOOL="grub2-mkfont"
else
printf 'error: grub-mkfont or grub2-mkfont is required\n' >&2
exit 1
fi
generate_font() {
local font_file="$1"
local output_prefix="$2"
shift 2
for size in "$@"; do
"${FONT_TOOL}" \
--output "${SCRIPT_DIR}/${output_prefix}-${size}.pf2" \
--size "${size}" \
"${font_file}"
done
}
usage() {
printf 'Usage: %s [FONT_FILE OUTPUT_PREFIX [SIZE ...]]\n' "$(basename "$0")" >&2
printf 'Without arguments, regenerate the bundled DejaVu Sans and Unifont files.\n' >&2
}
if (( $# == 0 )); then
generate_font "${SCRIPT_DIR}/DejaVuSans.ttf" dejavu_sans 12 14 16 24 32 48
generate_font "${SCRIPT_DIR}/unifont.otf" unifont 16 24 32
elif (( $# >= 2 )); then
font_file="$1"
output_prefix="$2"
shift 2
if (( $# == 0 )); then
set -- 16 24 32
fi
generate_font "${font_file}" "${output_prefix}" "$@"
else
usage
exit 2
fi
Binary file not shown.

Before

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 952 B

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+4 -4
View File
@@ -7,8 +7,8 @@ desktop-image: "background.jpg"
desktop-color: "#000000"
terminal-font: "Terminus Regular 14"
terminal-box: "terminal_box_*.png"
terminal-left: "0"
terminal-top: "0"
#terminal-left: "0"
#terminal-top: "0"
terminal-width: "100%"
terminal-height: "100%"
terminal-border: "0"
@@ -19,7 +19,7 @@ terminal-border: "0"
top = 30%
width = 40%
height = 40%
item_font = "Unifont Regular 16"
item_font = "DejaVu Sans Regular 16"
item_color = "#cccccc"
selected_item_color = "#ffffff"
icon_width = 32
@@ -48,5 +48,5 @@ terminal-border: "0"
id = "__timeout__"
text = "Booting in %d seconds"
color = "#cccccc"
font = "Unifont Regular 16"
font = "DejaVu Sans Regular 16"
}
+2 -2
View File
@@ -7,8 +7,8 @@ desktop-image: "background.jpg"
desktop-color: "#000000"
terminal-font: "Terminus Regular 18"
terminal-box: "terminal_box_*.png"
terminal-left: "0"
terminal-top: "0"
#terminal-left: "0"
#terminal-top: "0"
terminal-width: "100%"
terminal-height: "100%"
terminal-border: "0"
+2 -2
View File
@@ -7,8 +7,8 @@ desktop-image: "background.jpg"
desktop-color: "#000000"
terminal-font: "Terminus Regular 18"
terminal-box: "terminal_box_*.png"
terminal-left: "0"
terminal-top: "0"
#terminal-left: "0"
#terminal-top: "0"
terminal-width: "100%"
terminal-height: "100%"
terminal-border: "0"
+4 -4
View File
@@ -7,8 +7,8 @@ desktop-image: "background.jpg"
desktop-color: "#000000"
terminal-font: "Terminus Regular 14"
terminal-box: "terminal_box_*.png"
terminal-left: "0"
terminal-top: "0"
#terminal-left: "0"
#terminal-top: "0"
terminal-width: "100%"
terminal-height: "100%"
terminal-border: "0"
@@ -19,7 +19,7 @@ terminal-border: "0"
top = 30%
width = 40%
height = 40%
item_font = "Unifont Regular 16"
item_font = "DejaVu Sans Regular 16"
item_color = "#cccccc"
selected_item_color = "#ffffff"
icon_width = 32
@@ -48,5 +48,5 @@ terminal-border: "0"
id = "__timeout__"
text = "Booting in %d seconds"
color = "#cccccc"
font = "Unifont Regular 16"
font = "DejaVu Sans Regular 16"
}
+2 -2
View File
@@ -7,8 +7,8 @@ desktop-image: "background.jpg"
desktop-color: "#000000"
terminal-font: "Terminus Regular 18"
terminal-box: "terminal_box_*.png"
terminal-left: "0"
terminal-top: "0"
#terminal-left: "0"
#terminal-top: "0"
terminal-width: "100%"
terminal-height: "100%"
terminal-border: "0"
+39 -17
View File
@@ -30,21 +30,33 @@
grub2-theme = pkgs.stdenv.mkDerivation {
name = "grub2-theme";
src = "${self}";
buildInputs = [ pkgs.imagemagick ];
installPhase = ''
mkdir -p $out/grub/themes;
mkdir -p $out/grub/themes
# Create placeholder terminal box PNGs that install.sh expects
mkdir -p common
for box in c e n ne nw s se sw w; do
touch common/terminal_box_$box.png
done
# Run the install script
bash ./install.sh \
--generate $out/grub/themes \
--screen ${cfg.screen} \
--theme ${cfg.theme} \
--icon ${cfg.icon};
--icon ${cfg.icon} \
${if cfg.customResolution != null then "--custom-resolution ${cfg.customResolution}" else ""}
if [ -n "${splashImage}" ]; then
rm $out/grub/themes/${cfg.theme}/background.jpg;
${pkgs.imagemagick}/bin/convert ${splashImage} $out/grub/themes/${cfg.theme}/background.jpg;
${pkgs.imagemagick}/bin/magick ${splashImage} $out/grub/themes/${cfg.theme}/background.jpg;
fi;
if [ ${pkgs.lib.trivial.boolToString cfg.footer} == "false" ]; then
sed -i ':again;$!N;$!b again; s/\+ image {[^}]*}//g' $out/grub/themes/${cfg.theme}/theme.txt;
fi;
if [ ${pkgs.lib.trivial.boolToString hasBootMenuConfig} == "true" ]; then
sed -i ':again;$!N;$!b again; s/\+ boot_menu {[^}]*}//g' $out/grub/themes/${cfg.theme}/theme.txt;
cat << EOF >> $out/grub/themes/${cfg.theme}/theme.txt
@@ -53,6 +65,7 @@
}
EOF
fi;
if [ ${pkgs.lib.trivial.boolToString hasTerminalConfig} == "true" ]; then
sed -i 's/^terminal-.*$//g' $out/grub/themes/${cfg.theme}/theme.txt
cat << EOF >> $out/grub/themes/${cfg.theme}/theme.txt
@@ -61,7 +74,9 @@
fi;
'';
};
resolution = resolutions."${cfg.screen}";
resolution = if cfg.customResolution != null
then cfg.customResolution
else resolutions."${cfg.screen}";
in
rec {
options = {
@@ -98,6 +113,15 @@
The screen resolution to use for grub2.
'';
};
customResolution = mkOption {
default = null;
example = "1600x900";
type = types.nullOr (types.strMatching "[0-9]+x[0-9]+");
description = ''
Custom resolution for grub2 theme. Should be in the format "WIDTHxHEIGHT".
If set, this will override the 'screen' option.
'';
};
splashImage = mkOption {
default = null;
example = "/my/path/background.jpg";
@@ -138,19 +162,17 @@
environment.systemPackages = [
grub2-theme
];
boot.loader.grub =
{
theme = "${grub2-theme}/grub/themes/${cfg.theme}";
splashImage =
"${grub2-theme}/grub/themes/${cfg.theme}/background.jpg";
gfxmodeEfi = "${resolution},auto";
gfxmodeBios = "${resolution},auto";
extraConfig = ''
insmod gfxterm
insmod png
set icondir=($root)/theme/icons
'';
};
boot.loader.grub = {
theme = "${grub2-theme}/grub/themes/${cfg.theme}";
splashImage = "${grub2-theme}/grub/themes/${cfg.theme}/background.jpg";
gfxmodeEfi = "${resolution},auto";
gfxmodeBios = "${resolution},auto";
extraConfig = ''
insmod gfxterm
insmod png
set icondir=($root)/theme/icons
'';
};
}]);
};
};
+132 -39
View File
@@ -1,5 +1,12 @@
#! /usr/bin/env bash
# Define which command to use for ImageMagick
if command -v magick &> /dev/null; then
_MAGICK="magick"
else
_MAGICK="convert"
fi
# Exit Immediately if a command fails
set -o errexit
@@ -14,6 +21,7 @@ REO_DIR="$(cd $(dirname $0) && pwd)"
THEME_VARIANTS=('tela' 'vimix' 'stylish' 'whitesur')
ICON_VARIANTS=('color' 'white' 'whitesur')
SCREEN_VARIANTS=('1080p' '2k' '4k' 'ultrawide' 'ultrawide2k')
custom_resolution=""
#################################
# :::::: C O L O R S :::::: #
@@ -62,15 +70,16 @@ cat << EOF
Usage: $0 [OPTION]...
OPTIONS:
-t, --theme theme variant(s) [tela|vimix|stylish|whitesur] (default is tela)
-i, --icon icon variant(s) [color|white|whitesur] (default is color)
-s, --screen screen display variant(s) [1080p|2k|4k|ultrawide|ultrawide2k] (default is 1080p)
-r, --remove Remove theme [tela|vimix|stylish|whitesur] (must add theme name option, default is tela)
-t, --theme theme variant(s) [tela|vimix|stylish|whitesur] (default is tela)
-i, --icon icon variant(s) [color|white|whitesur] (default is color)
-s, --screen screen display variant(s) [1080p|2k|4k|ultrawide|ultrawide2k] (default is 1080p)
-c, --custom-resolution set custom resolution (e.g., 1600x900) (disabled in default)
-r, --remove remove theme [tela|vimix|stylish|whitesur] (must add theme name option, default is tela)
-b, --boot install theme into '/boot/grub' or '/boot/grub2'
-g, --generate do not install but generate theme into chosen directory (must add your directory)
-b, --boot install theme into '/boot/grub' or '/boot/grub2'
-g, --generate do not install but generate theme into chosen directory (must add your directory)
-h, --help Show this help
-h, --help show this help
EOF
}
@@ -95,18 +104,61 @@ generate() {
prompt -i "\n Installing ${theme} ${icon} ${screen} theme..."
# Don't preserve ownership because the owner will be root, and that causes the script to crash if it is ran from terminal by sudo
cp -a --no-preserve=ownership "${REO_DIR}/common/"{*.png,*.pf2} "${THEME_DIR}/${theme}"
cp -a --no-preserve=ownership "${REO_DIR}/common/"*.pf2 "${THEME_DIR}/${theme}"
cp -a --no-preserve=ownership "${REO_DIR}/config/theme-${screen}.txt" "${THEME_DIR}/${theme}/theme.txt"
cp -a --no-preserve=ownership "${REO_DIR}/backgrounds/${screen}/background-${theme}.jpg" "${THEME_DIR}/${theme}/background.jpg"
# Use custom background.jpg as grub background image
if [[ -f "${REO_DIR}/background.jpg" ]]; then
prompt -w "\n Using custom background.jpg as grub background image..."
cp -a --no-preserve=ownership "${REO_DIR}/background.jpg" "${THEME_DIR}/${theme}/background.jpg"
convert -auto-orient "${THEME_DIR}/${theme}/background.jpg" "${THEME_DIR}/${theme}/background.jpg"
# Function to determine which assets to use based on resolution
get_asset_type() {
local width=$(echo $1 | cut -d'x' -f1)
local height=$(echo $1 | cut -d'x' -f2)
if [ $width -le 1920 ] && [ $height -le 1080 ]; then
echo "1080p"
elif [ $width -le 2560 ] && [ $height -le 1440 ]; then
echo "2k"
else
echo "4k"
fi
}
# Determine which configuration file and assets to use
if [[ -n "$custom_resolution" ]]; then
if has_command apt || has_command pacman || has_command eopkg; then
install_depends imagemagick
else
install_depends ImageMagick
fi
asset_type=$(get_asset_type "$custom_resolution")
cp -a --no-preserve=ownership "${REO_DIR}/config/theme-${asset_type}.txt" "${THEME_DIR}/${theme}/theme.txt"
# Replace resolution in theme.txt
sed -i "s/[0-9]\+x[0-9]\+/${custom_resolution}/" "${THEME_DIR}/${theme}/theme.txt"
# Use appropriate background as base and resize it
cp -a --no-preserve=ownership "${REO_DIR}/backgrounds/${asset_type}/background-${theme}.jpg" "${THEME_DIR}/${theme}/background.jpg"
"${_MAGICK}" "${THEME_DIR}/${theme}/background.jpg" -resize ${custom_resolution}^ -gravity center -extent ${custom_resolution} "${THEME_DIR}/${theme}/background.jpg"
else
cp -a --no-preserve=ownership "${REO_DIR}/config/theme-${screen}.txt" "${THEME_DIR}/${theme}/theme.txt"
cp -a --no-preserve=ownership "${REO_DIR}/backgrounds/${screen}/background-${theme}.jpg" "${THEME_DIR}/${theme}/background.jpg"
fi
if [[ ${screen} == 'ultrawide' ]]; then
# Use custom background.jpg as grub background image
if [[ -f "${REO_DIR}/background.jpg" ]]; then
if has_command apt || has_command pacman || has_command eopkg; then
install_depends imagemagick
else
install_depends ImageMagick
fi
prompt -w "\n Using custom background.jpg as grub background image..."
cp -a --no-preserve=ownership "${REO_DIR}/background.jpg" "${THEME_DIR}/${theme}/background.jpg"
"${_MAGICK}" "${THEME_DIR}/${theme}/background.jpg" -auto-orient "${THEME_DIR}/${theme}/background.jpg"
fi
# Determine which assets to use based on custom resolution or screen
if [[ -n "$custom_resolution" ]]; then
asset_type=$(get_asset_type "$custom_resolution")
cp -a --no-preserve=ownership "${REO_DIR}/assets/assets-${icon}/icons-${asset_type}" "${THEME_DIR}/${theme}/icons"
cp -a --no-preserve=ownership "${REO_DIR}/assets/assets-select/select-${asset_type}/"*.png "${THEME_DIR}/${theme}"
cp -a --no-preserve=ownership "${REO_DIR}/assets/info-${asset_type}.png" "${THEME_DIR}/${theme}/info.png"
elif [[ ${screen} == 'ultrawide' ]]; then
cp -a --no-preserve=ownership "${REO_DIR}/assets/assets-${icon}/icons-1080p" "${THEME_DIR}/${theme}/icons"
cp -a --no-preserve=ownership "${REO_DIR}/assets/assets-select/select-1080p/"*.png "${THEME_DIR}/${theme}"
cp -a --no-preserve=ownership "${REO_DIR}/assets/info-1080p.png" "${THEME_DIR}/${theme}/info.png"
@@ -178,15 +230,14 @@ install() {
fi
if grep "GRUB_BACKGROUND=" /etc/default/grub 2>&1 >/dev/null; then
#Replace GRUB_BACKGROUND
sed -i "s|.*GRUB_BACKGROUND=.*|GRUB_BACKGROUND=\"${THEME_DIR}/${theme}/background.jpg\"|" /etc/default/grub
else
#Append GRUB_BACKGROUND
echo "GRUB_BACKGROUND=\"${THEME_DIR}/${theme}/background.jpg\"" >> /etc/default/grub
# remove GRUB_BACKGROUND
sed -i "s|.*GRUB_BACKGROUND=.*||" /etc/default/grub
fi
# Make sure the right resolution for grub is set
if [[ ${screen} == '1080p' ]]; then
if [[ -n "$custom_resolution" ]]; then
gfxmode="GRUB_GFXMODE=${custom_resolution},auto"
elif [[ ${screen} == '1080p' ]]; then
gfxmode="GRUB_GFXMODE=1920x1080,auto"
elif [[ ${screen} == 'ultrawide' ]]; then
gfxmode="GRUB_GFXMODE=2560x1080,auto"
@@ -230,10 +281,18 @@ install() {
#Check if password is cached (if cache timestamp has not expired yet)
elif sudo -n true 2> /dev/null && echo; then
if [[ "${install_boot}" == 'true' ]]; then
sudo "$0" -t ${theme} -i ${icon} -s ${screen} -b
if [[ -n "$custom_resolution" ]]; then
if [[ "${install_boot}" == 'true' ]]; then
sudo "$0" -t ${theme} -i ${icon} -c ${custom_resolution} -b
else
sudo "$0" -t ${theme} -i ${icon} -c ${custom_resolution}
fi
else
sudo "$0" -t ${theme} -i ${icon} -s ${screen}
if [[ "${install_boot}" == 'true' ]]; then
sudo "$0" -t ${theme} -i ${icon} -s ${screen} -b
else
sudo "$0" -t ${theme} -i ${icon} -s ${screen}
fi
fi
else
#Ask for password
@@ -244,16 +303,30 @@ install() {
else
sudo -S $0 -t ${theme} -i ${icon} -s ${screen} <<< ${tui_root_login}
fi
elif [[ -n "$custom_resolution" ]]; then
if [[ "${install_boot}" == 'true' ]]; then
sudo -S $0 -t ${theme} -i ${icon} -c ${custom_resolution} -b <<< ${tui_root_login}
else
sudo -S $0 -t ${theme} -i ${icon} -c ${custom_resolution} <<< ${tui_root_login}
fi
fi
else
prompt -e "\n [ Error! ] -> Run me as root! "
read -r -p " [ Trusted ] Specify the root password : " -t ${MAX_DELAY} -s
if sudo -S echo <<< $REPLY 2> /dev/null && echo; then
#Correct password, use with sudo's stdin
if [[ "${install_boot}" == 'true' ]]; then
sudo -S "$0" -t ${theme} -i ${icon} -s ${screen} -b <<< ${REPLY}
if [[ -n "$custom_resolution" ]]; then
if [[ "${install_boot}" == 'true' ]]; then
sudo "$0" -t ${theme} -i ${icon} -c ${custom_resolution} -b <<< ${REPLY}
else
sudo "$0" -t ${theme} -i ${icon} -c ${custom_resolution} <<< ${REPLY}
fi
else
sudo -S "$0" -t ${theme} -i ${icon} -s ${screen} <<< ${REPLY}
if [[ "${install_boot}" == 'true' ]]; then
sudo "$0" -t ${theme} -i ${icon} -s ${screen} -b <<< ${REPLY}
else
sudo "$0" -t ${theme} -i ${icon} -s ${screen} <<< ${REPLY}
fi
fi
else
#block for 3 seconds before allowing another attempt
@@ -354,14 +427,21 @@ updating_grub() {
grub2-mkconfig -o /boot/grub2/grub.cfg
# Check for Fedora (regular or Atomic)
elif has_command dnf || has_command rpm-ostree; then
# Check for UEFI
if [[ -f /boot/efi/EFI/fedora/grub.cfg ]]; then
prompt -s "Find config file on /boot/efi/EFI/fedora/grub.cfg ...\n"
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# Check for BIOS
elif [[ -f /boot/grub2/grub.cfg ]]; then
if [[ -f /boot/grub2/grub.cfg ]]; then
prompt -s "Find config file on /boot/grub2/grub.cfg ...\n"
grub2-mkconfig -o /boot/grub2/grub.cfg
# Check for UEFI
elif [[ -f /boot/efi/EFI/fedora/grub.cfg ]]; then
prompt -s "Find config file on /boot/efi/EFI/fedora/grub.cfg ...\n"
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
fi
if [[ -f /boot/grub2/grub.cfg && -f /boot/efi/EFI/fedora/grub.cfg ]]; then
prompt -w "\n Under EFI, GRUB2 looks for its configuration in /boot/efi/EFI/fedora/grub.cfg,\n however the postinstall script of grub2-common installs a small shim which chains to the standard configuration at /boot/grub2/grub.cfg which is generated above.\n To reset this shim to defaults, delete the existing /boot/efi/EFI/fedora/grub.cfg and then reinstall grub2-common."
prompt -i "\n sudo rm -f /boot/efi/EFI/fedora/grub.cfg"
prompt -i "sudo dnf reinstall grub2-common"
fi
fi
@@ -371,22 +451,30 @@ updating_grub() {
function install_program () {
if has_command zypper; then
zypper in "$@"
zypper in -y "$@"
elif has_command swupd; then
swupd bundle-add "$@"
elif has_command apt-get; then
apt-get install "$@"
elif has_command dnf; then
dnf install -y "$@"
elif has_command yum; then
yum install "$@"
yum install -y "$@"
elif has_command pacman; then
pacman -S --noconfirm "$@"
pacman -Syyu --noconfirm --needed "$@"
elif has_command xbps-install; then
xbps-install -Sy "$@"
elif has_command eopkg; then
eopkg -y install "$@"
fi
}
install_dialog() {
if [ ! "$(which dialog 2> /dev/null)" ]; then
prompt -w "\n 'dialog' need to be installed for this shell"
install_program "dialog"
install_depends() {
local depend=${1}
if [ ! "$(which '${depend}' 2> /dev/null)" ]; then
prompt -w "\n '${depend}' need to be installed for this shell"
install_program "${depend}"
fi
}
@@ -493,7 +581,7 @@ dialog_installer() {
fi
fi
fi
install_dialog
install_depends dialog
fi
run_dialog
install "${theme}" "${icon}" "${screen}"
@@ -645,6 +733,11 @@ while [[ $# -gt 0 ]]; do
esac
done
;;
-c|--custom-resolution)
shift
custom_resolution="$1"
shift
;;
-h|--help)
usage
exit 0