Compare commits

..

No commits in common. "master" and "v2.8" have entirely different histories.
master ... v2.8

4861 changed files with 2753 additions and 1052 deletions

4
.github/FUNDING.yml vendored
View file

@ -1,4 +0,0 @@
# These are supported funding model platforms
github: [AdisonCavani] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
custom: ["https://www.buymeacoffee.com/adisoncavani"]# Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

24
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,24 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: AdisonCavani
---
**Describe the bug**
A clear and concise description of what the bug is.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Ubuntu 20.10]
- Resolution [e.g. 1920 x 1080]
**Additional context**
Add any other context about the problem here.

View file

@ -1,46 +0,0 @@
name: Issue / bug
description: File a bug/issue
title: "bug: <title>"
labels: [bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: false
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **Resolution**: 1920x1080
value: |
- OS:
- Resolution:
render: markdown
validations:
required: false
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach screenshots or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false

View file

@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: AdisonCavani
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View file

@ -1,42 +0,0 @@
name: Feature request
description: Suggest an idea for this project
title: "feat: <title>"
labels: [feature-request]
body:
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: false
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen
validations:
required: false
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here
validations:
required: false
- type: dropdown
attributes:
label: Contributing
multiple: false
options:
- "No, I am afraid I cannot help regarding this"
- "Yes, I am willing to help implement this feature in a PR"
validations:
required: true
- type: markdown
attributes:
value: |
It takes a lot of work and time maintaining this project; any contribution is welcomed

View file

@ -16,5 +16,5 @@ Please delete options that are not relevant.
# Checklist: # Checklist:
- [ ] My code follows the style guidelines of this project (correct file and folder structure) - [ ] My code follows the style guidelines of this project (correct file and folder structure)
- [ ] The background image for theme follows naming convention: `theme_name.png` - [ ] The background image for theme is called ``background.png``
- [ ] I updated [`themes.json`](https://github.com/AdisonCavani/distro-grub-themes/blob/master/themes.json) file (JSON database) - [ ] ``theme.txt`` has correct *'desktop-image: "background.png"'* attribute

View file

@ -1,57 +0,0 @@
name: Check nix packages
on:
pull_request:
paths:
- "./*.nix"
- ".github/workflows/nix.yml"
- "assets/**"
- "customize/**"
push:
branches: [master]
paths:
- "./*.nix"
- ".github/workflows/nix.yml"
- "assets/**"
- "customize/**"
jobs:
flake:
name: Check flake
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check Nix flake inputs
uses: DeterminateSystems/flake-checker-action@v5
with:
send-statistics: false
fail-mode: true
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v9
- name: Check repository
run: nix flake check
matrix:
name: Generate build matrix
runs-on: ubuntu-latest
outputs:
themes: ${{ steps.generate-matrix.outputs.themes }}
steps:
- uses: actions/checkout@v4
- name: Generate matrix
id: generate-matrix
run: |
THEMES=$(ls assets/backgrounds/ | sed 's/\.png$//g' | jq --raw-input | jq --slurp -c)
echo "themes=$THEMES" >> $GITHUB_OUTPUT
build:
name: Check nix build for theme ${{ matrix.theme }}
runs-on: ubuntu-latest
needs:
- matrix
strategy:
matrix:
theme: ${{ fromJSON(needs.matrix.outputs.themes) }}
steps:
- uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v9
- name: Build package
run: nix build .#${{ matrix.theme }}-grub-theme

View file

@ -1,56 +1,34 @@
name: Update changes on commit name: Update changes on commit
on: on:
workflow_dispatch:
push: push:
branches: [master] branches: [ master ]
paths: paths:
- "assets/**" - 'assets/icons'
- "customize/**" - 'customize/**'
- 'font'
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@master - uses: actions/checkout@master
- name: 📂 Create temp folder - name: 🖼️ Update icons
run: | run: |
mkdir temp for dest in customize/* ; do cp -rv assets/icons "$dest"; done
- name: 🖼️ Add backgrounds - name: 📇 Update fonts
run: | run: |
for file in assets/backgrounds/*.png ; do for dest in customize/* ; do cp -rva font/. "$dest"; done
filename=$(basename "$file" .png) - name: 💼 Update archives
mkdir "temp/$filename" run: |
cp "$file" "temp/$filename/background.png" cd customize;
done for dest in * ; do find "$dest" -printf "%P\n" | tar -vcf ../themes/"$dest".tar --no-recursion -C "$dest" -T -; done
- name: 🎨 Add icons - name: 🔥 Commit changes
run: | run: |
for dest in temp/* ; do cp -rv assets/icons "$dest"; done git config user.name github-actions
- name: 📇 Add fonts git config user.email github-actions@github.com
run: | git fetch
for dest in temp/* ; do cp -rva assets/fonts/. "$dest"; done git add .
- name: 🌿 Add menu git commit -m "🤖 Update files"
run: | git push
for dest in temp/* ; do cp -rva assets/menu/. "$dest"; done
- name: 📃 Add theme
run: |
for dest in temp/* ; do cp -rv assets/theme.txt "$dest"; done
- name: 🗑️ Cleanup old themes
run: |
rm -rf themes/*
- name: 💼 Create archives
run: |
cd temp;
for dest in * ; do find "$dest" -printf "%P\n" | tar -vcf ../themes/"$dest".tar --no-recursion -C "$dest" -T -; done
- name: Remove artifacts
run: |
rm -r temp
- name: 🔥 Commit changes
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git fetch
git add .
git commit -m "🤖 Update files"
git push

339
.gitignore vendored
View file

@ -1,4 +1,335 @@
.envrc ## Ignore Visual Studio temporary files, build results, and
.direnv ## files generated by popular Visual Studio add-ons.
.vscode ##
result ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
src/Properties/launchSettings.json

View file

@ -1,48 +1,22 @@
# Contributing guide # Contributing guide
Thank you for investing your time in contributing to this project! :sparkles:. Thank you for investing your time in contributing to our project! :sparkles:.
## New contributor guide ## New contributor guide
To get an overview of the project, read the [README](README.md) and [wiki page](https://github.com/AdisonCavani/distro-grub-themes/wiki). To get an overview of the project, read the [README](README.md).
### Project structure: ## Getting started
Project structure:
``` ```
. .
├── assets - assets for creating background images ├── assets - assets for creating background images
| ├── backgrounds - backgrounds used in each theme | ├── background_template - Photoshop project files for creating background images
| ├── fonts - fonts | ├── icons - icons that get copied to icons folder in every theme
| ├── icons - icons | └── preview_template - Photoshop project files for creating preview images
| ├── menu - menu parts ├── customize - non-compressed themes
| └── theme.txt - theme configuration file ├── font - fonts used in each theme
├── docs - documentation markdown files
├── preview - preview images for README.md ├── preview - preview images for README.md
├── themes - compressed themes ready to install in .tar format └── themes - compressed themes ready to install in .tar format
└── themes.json - json file containing all themes definitions (used as database for wiki page)
``` ```
### Workflow
Folders that trigger new action/workflow:
- assets
- customize
Every time you create new commit on master branch, github action bot will update all files (as defined in [this file](https://github.com/AdisonCavani/distro-grub-themes/blob/master/.github/workflows/update-content.yml)).
You can track your workflows [here](https://github.com/AdisonCavani/distro-grub-themes/actions).
### Branches
```
├── master - main branch containing latest changes
├── legacy - obsolete C# program, replaced by Github Actions workflow
└── templates - PSD, phosothop templates for background images
```
### Frequently Asked Questions
**Q**: Where are `psd` templates located?
**A**: Templates are located in [`templates branch`](https://github.com/AdisonCavani/distro-grub-themes/tree/templates).
**Q**: How can I edit `psd` template? I don't have Photoshop
**A**: You can import `psd` into GIMP, however this might cause to lose some Photoshop related data. I recommend to use [Photopea](https://www.photopea.com/) - free web-based Photoshop alternative.

386
README.md
View file

@ -2,45 +2,383 @@
[![name](https://img.shields.io/github/license/AdisonCavani/distro-grub-themes)](https://github.com/AdisonCavani/distro-grub-themes/blob/master/LICENSE) [![name](https://img.shields.io/github/license/AdisonCavani/distro-grub-themes)](https://github.com/AdisonCavani/distro-grub-themes/blob/master/LICENSE)
[![name](https://img.shields.io/github/v/release/AdisonCavani/distro-grub-themes)](https://github.com/AdisonCavani/distro-grub-themes/releases) [![name](https://img.shields.io/github/v/release/AdisonCavani/distro-grub-themes)](https://github.com/AdisonCavani/distro-grub-themes/releases)
[![Build](https://github.com/AdisonCavani/distro-grub-themes/actions/workflows/update-content.yml/badge.svg?event=push)](https://github.com/AdisonCavani/distro-grub-themes/actions/workflows/update-content.yml) [![Build](https://github.com/AdisonCavani/distro-grub-themes/actions/workflows/update-content.yml/badge.svg?event=push)](https://github.com/AdisonCavani/distro-grub-themes/actions/workflows/update-content.yml)<br>
<br>
A pack of GRUB2 themes for different Linux distributions and OSs.<br> A pack of GRUB2 themes for different Linux distributions and OSs.<br>
It aims to replace the default GRUB look, with a nice and colorful theme. It aims to replace the default GRUB look, with a nice and colorful theme.
## Get started ## Get started
- **Theme preview** is available at [k1ng.dev/distro-grub-themes/preview](https://k1ng.dev/distro-grub-themes/preview). - [Themes](#themes)
- **Documentation** is available at [k1ng.dev/distro-grub-themes](https://k1ng.dev/distro-grub-themes). - [Supported distributions](#supported-distributions)
- Raw markdown files are located in [`/docs`](./docs) folder. - [Supported vendors](#supported-vendors)
## Funding - [Preview themes](#preview-themes)
I put a lot of effort and my free time into maintaining this project. - [Distro themes](#distro-themes)
If you appreciate that, you can buy me a coffee. - [Vendor themes](#vendor-themes)
[<img src="https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-1.svg" alt="Buy Me A Coffee" height="50px" />](https://www.buymeacoffee.com/adisoncavani) - [Installation](#installation)
- [Installation via Grub Customizer](#installation-via-grub-customizer)
- [Manual Installation](#manual-installation)
- [Install theme in Ventoy](#install-theme-in-ventoy)
## Contributing - [To-do list](#to-do-list)
Development happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. # Themes
Read below to learn how you can take part in improving it.
### Code of Conduct ## Supported distributions
This project has adopted a Code of Conduct that we expect project participants to adhere to. - Arch Linux
Please read [the full text](https://github.com/AdisonCavani/distro-grub-themes/blob/master/.github/CODE_OF_CONDUCT.md) so that you can understand what actions will and will not be tolerated. - Arco Linux
- Artix Linux
- Bedrock Linux
- CentOS
- Debian
- Deepin
- ElementaryOS
- EndeavourOS
- Fedora
- FreeBSD
- Garuda
- Gentoo
- KDE Neon
- Kubuntu
- Linux Mint
- Manjaro
- MX Linux
- openSUSE
- Pop!_OS
- Rocky Linux
- Slackware
- Solus
- Ubuntu
- Ubuntu Mate
- Ventoy
- Void Linux
- Windows 10
- Windows 11
- Xero Linux
- Zorin OS
### Contributing Guide ## Supported vendors
Read [contributing guide](https://github.com/AdisonCavani/distro-grub-themes/blob/master/CONTRIBUTING.md) to learn how to propose changes, bugfixes and improvements. - Acer
- Aorus
- Apple
- Asus
- ASRock
- Dell
- Framework
- Gigabyte
- HP
- Legion
- Lenovo
- MSI
- Razer
- System76
- Toshiba
- Vaio
### License ## Preview themes
This project is licensed under [GNU General Public License v3.0](https://github.com/AdisonCavani/distro-grub-themes/blob/master/LICENSE)
### Contributors ### Distro themes
Thank you to all the people who already contributed to this project! <p float="left">
<img src="./preview/Arch%20Linux.png" width="49%"/>
<img src="./preview/Arco%20Linux.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Artix%20Linux.png" width="49%"/>
<img src="./preview/Bedrock.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/CentOS.png" width="49%"/>
<img src="./preview/Debian.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Deepin.png" width="49%"/>
<img src="./preview/ElementaryOS.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/EndeavourOS.png" width="49%"/>
<img src="./preview/Fedora.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/FreeBSD.png" width="49%"/>
<img src="./preview/Garuda.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Gentoo.png" width="49%"/>
<img src="./preview/KDEneon.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Kubuntu.png" width="49%"/>
<img src="./preview/Linux%20Mint.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Manjaro.png" width="49%"/>
<img src="./preview/MX%20Linux.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/OpenSUSE.png" width="49%"/>
<img src="./preview/PopOS.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Rocky%20Linux.png" width="49%"/>
<img src="./preview/Slackware.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Solus.png" width="49%"/>
<img src="./preview/Ubuntu.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/UbuntuMate.png" width="49%"/>
<img src="./preview/Ventoy.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Void%20Linux.png" width="49%"/>
<img src="./preview/Windows%2010.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Windows%2011.png" width="49%"/>
<img src="./preview/Xero.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/ZorinOS.png" width="49%"/>
</p>
<a href="https://github.com/AdisonCavani/distro-grub-themes/graphs/contributors"> ### Vendor themes
<img src="https://contrib.rocks/image?repo=AdisonCavani/distro-grub-themes" />
</a> <p float="left">
<img src="./preview/Acer.png" width="49%"/>
<img src="./preview/Aorus.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Apple.png" width="49%"/>
<img src="./preview/Asus.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/ASRock.png" width="49%"/>
<img src="./preview/Dell.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Framework.png" width="49%"/>
<img src="./preview/Gigabyte.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/HP.png" width="49%"/>
<img src="./preview/Legion.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Lenovo.png" width="49%"/>
<img src="./preview/MSI.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Razer.png" width="49%"/>
<img src="./preview/System76.png" width="49%"/>
</p>
<p float="left">
<img src="./preview/Toshiba.png" width="49%"/>
<img src="./preview/Vaio.png" width="49%"/>
</p>
# Installation
## Installation via GRUB Customizer
In order to clone the repository from GitHub, you have to install Git, via the `git` package <br>
Alternatively, you can download a zip archive by clicking on **Code** then **Download ZIP**
#### Clone the repository
You can clone the repository or go to the [release page](https://github.com/AdisonCavani/distro-grub-themes/releases) and download a single theme.
```shell
git clone https://github.com/AdisonCavani/distro-grub-themes.git
```
### Install GRUB Customizer
**Warning**: ``grub-customizer`` is not available on Ubuntu 21.10 and above. See [#56](https://github.com/AdisonCavani/distro-grub-themes/issues/56). You should [install it manually](#manual-installation), instead.<br><br>
apt
```shell
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
```
pacman
```shell
sudo pacman -S grub-customizer
```
dnf<br>
**WARNING**: Grub Customizer DOES NOT WORK on recent Fedora releases without extensive modification. [Manually installing](#manual-installation) a GRUB theme is much more secure and hassle free. Use at your own risk.
```shell
sudo dnf install grub-customizer
```
eopkg
```shell
sudo eopkg install grub-customizer
```
### Install a pre-made theme with GRUB Customizer
- Open GRUB Customizer
- Click on the **Appearance settings** tab
- Select _Custom resolution_ and select or type in your resolution, e.g 1920x1080
- Press the _Add theme_ button, then navigate to the directory where you cloned the repository; in my case `/home/adison/distro-grub-themes`
- Select your theme located in the `/themes` directory
- Save the changes
### Install a custom-made theme with GRUB Customizer
- Edit your theme located in the `/customize` folder
- With your file manager, inside the modified theme's directory, select all files and create an archive with .tar or .tar.xz format
- Open GRUB Customizer
- Click on the **Appearance settings** tab
- Enable _Custom resolution_ and select or type in your resolution, e.g 1920x1080
- Press the _Add theme_ button, then navigate to the directory where you cloned the repository; in my case `/home/adison/distro-grub-themes`
- Change the _Archive files_ setting to **All files**
- Select your archive
- Save the changes
#### Note:
KDE Neon's default theme is set in a separate file that overrides any theme changes you make. Run the following to disable the default GRUB theme:
```shell
sudo rm /etc/default/grub.d/99_breeze-grub.cfg
sudo update-grub
```
To revert back to the orignal KDE Neon theme, open GRUB Customizer, and in the Appearance settings tab, change the theme dropdown back to breeze.
## Manual Installation
In order to clone the repository from GitHub, you have to install Git, via the `git` package <br>
Alternatively, you can download a zip archive by clicking on **Code** then **Download ZIP**
#### Clone the repository
You can clone the repository, or go to the [release page](https://github.com/AdisonCavani/distro-grub-themes/releases) and download a single theme.
```shell
git clone https://github.com/AdisonCavani/distro-grub-themes.git
```
#### Create the themes directory
To create the themes directory, replace `BOOT_GRUB_LOCATION` with the directory where GRUB is located.<br>
Usually it's /boot/grub or /boot/grub2 but some distributions have a different one, so you'll have to figure it out.
```shell
sudo mkdir BOOT_GRUB_LOCATION/themes
```
#### Edit or use a pre-made theme
```shell
cd distro-grub-themes/customize
```
#### Copy theme
The theme must be unpacked inside a folder before you can copy it.
```
sudo cp -r <theme_name>/ BOOT_GRUB_LOCATION/themes
```
#### Edit GRUB config
You can use your favourite text editor for this. Here, we use nano.
```
sudo nano /etc/default/grub
```
Uncomment this line and set your display resolution:
```
GRUB_GFXMODE=1920x1080
```
Make sure ``GRUB_TERMINAL_OUTPUT="console"`` is commented out!
At the end of the file, add the path of your theme:
```
GRUB_THEME="BOOT_GRUB_LOCATION/themes/<theme_name>/theme.txt"
```
Ctrl+O to save, Ctrl+X to exit
#### Update Grub config
You'll need to tell GRUB to update its configuration in order to include the new theme.
##### Ubuntu and Debian-based systems:
```
sudo update-grub
```
##### Fedora, Arch & others:
If you have a UEFI system, run:
```
sudo grub-mkconfig -o BOOT_GRUB_LOCATION/grub.cfg
```
or
```
sudo grub2-mkconfig -o BOOT_GRUB_LOCATION/grub.cfg
```
or for Fedora
```
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
```
**WARNING: these commands may not work for you. Your GRUB config directory may vary depending on your distribution.**
#### Note:
KDE Neon's default theme is set in a separate file that overrides any theme changes you make. Run the following to disable the default GRUB theme:
```shell
sudo rm /etc/default/grub.d/99_breeze-grub.cfg
sudo update-grub
```
To revert back to the orignal KDE Neon theme, set the `GRUB_THEME` value in `/etc/default/grub` to `/boot/grub/themes/breeze/theme.txt`.
## Install theme in Ventoy
Extract `Ventoy.tar` to `/ventoy/theme`
Locate `ventoy.json` file in `/plugin/ventoy/` directory and change:
```
"file": "/ventoy/theme/blur/theme.txt",
```
to
```
"file": "/ventoy/theme/Ventoy/theme.txt",
```
For more information, head over to the [Ventoy website](https://www.ventoy.net/en/plugin_theme.html).
# To-do list
| Feature | Status |
|---------------------------|---------------|
| 4K & 2K displays support | In the future |
| Ultrawide display support | In the future |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 943 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/preview/hp_1080p.psd Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/preview/mx_1080p.psd Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

View file

@ -1,28 +0,0 @@
{ stdenvNoCC, lib, theme }:
let
themes = builtins.map (theme: (builtins.head (lib.strings.splitString "." theme))) (builtins.attrNames (builtins.readDir ./../assets/backgrounds));
in
assert builtins.any (x: x == theme) themes;
stdenvNoCC.mkDerivation {
name = "distro-grub-themes";
src = ./../.;
installPhase = ''
mkdir -p $out
cp ./assets/backgrounds/${theme}.png $out/background.png
cp ./assets/splash_image.jpg $out/splash_image.jpg
cp -r ./assets/icons $out
cp -r ./assets/fonts/. $out
cp -r ./assets/menu/. $out
cp -r ./assets/theme.txt $out
'';
meta = with lib; {
homepage = "https://github.com/AdisonCavani/distro-grub-themes";
description = "A pack of GRUB2 themes for each Linux distribution";
license = licenses.gpl3;
maintainers = with maintainers; [ zakuciael ];
platforms = platforms.linux;
};
}

View file

@ -1,28 +0,0 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.distro-grub-themes;
themes = builtins.map (theme: (builtins.head (lib.strings.splitString "." theme))) (builtins.attrNames (builtins.readDir ./../assets/backgrounds));
in
{
options.distro-grub-themes = {
enable = mkEnableOption "Enable Distro Grub Theme";
theme = mkOption {
type = types.enum themes;
default = "nixos";
example = "arch-linux";
description = ''
Selected theme name.
IMPORTANT! Theme name must be the same as in assert/backgrounds directory without the extension
'';
};
};
config = mkIf (cfg.enable)
{
boot.loader.grub = {
theme = pkgs.callPackage ./default.nix { theme = cfg.theme; };
splashImage = ./../assets/splash_image.jpg;
};
};
}

View file

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Some files were not shown because too many files have changed in this diff Show more