Skip to main content

Preview a GRUB 2.x theme using KVM/QEMU

Project description

About

grub2-theme-preview came into life when I was looking around for available GRUB 2.x themes and wanted a way to quickly see a theme in action without rebooting real hardware.

It takes a theme folder (or just a single picture), creates a temporary bootable image using grub2-mkrescue and launches that image in a virtual machine using KVM/QEMU, all without root privileges.

grub2-theme-preview showing theme "gutsblack-archlinux"

(Showing theme gutsblack-archlinux)

Installation

To install the latest release from PyPI:

# pip install --user grub2-theme-preview

To install from a Git clone for development:

# pip install --user --editable .

Please make sure to install these non-PyPI dependencies as well:

  • grub2-mkrescue (can be installed as grub-mkrescue on some systems)
  • QEMUhypervisor that performs hardware virtualization
  • mtoolscollection of utilities to access MS-DOS
  • libisoburnfrontend which enables creation and expansion of the ISO format

Usage

# grub2-theme-preview --help
usage: grub2-theme-preview [-h] [--image] [--grub-cfg PATH] [--verbose]
                           [--resolution WxH] [--timeout SECONDS] [--version]
                           [--grub2-mkrescue COMMAND] [--qemu COMMAND]
                           [--xorriso COMMAND] [--debug]
                           [--plain-rescue-image]
                           PATH

positional arguments:
  PATH                  Path of theme directory (or image file) to preview

optional arguments:
  -h, --help            show this help message and exit
  --image               Preview a background image rather than a whole theme
  --grub-cfg PATH       Path of custom grub.cfg file to use (default:
                        /boot/grub{2,}/grub.cfg)
  --verbose             Increase verbosity
  --resolution WxH      Set a custom resolution, e.g. 800x600
  --timeout SECONDS     Set timeout in whole seconds or -1 to disable
                        (default: 30 seconds)
  --version             show program's version number and exit

command location arguments:
  --grub2-mkrescue COMMAND
                        grub2-mkrescue command (default: grub-mkrescue)
  --qemu COMMAND        KVM/QEMU command (default: qemu-system-<machine>)
  --xorriso COMMAND     xorriso command (default: xorriso)

debugging arguments:
  --debug               Enable debugging output
  --plain-rescue-image  Use unprocessed GRUB rescue image with no theme
                        patched in; useful for checking if a plain GRUB rescue
                        image shows up a GRUB shell, successfully.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grub2-theme-preview-1.4.1.tar.gz (198.8 kB view details)

Uploaded Source

Built Distribution

grub2_theme_preview-1.4.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file grub2-theme-preview-1.4.1.tar.gz.

File metadata

  • Download URL: grub2-theme-preview-1.4.1.tar.gz
  • Upload date:
  • Size: 198.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.10

File hashes

Hashes for grub2-theme-preview-1.4.1.tar.gz
Algorithm Hash digest
SHA256 313dffe12196e598f6a593fc362196dd8bd75d8d05f1adeb57dac2f6c45f9a10
MD5 6b8267c14eda6ee9e134234805c51cab
BLAKE2b-256 b16e1a70dcde3b6b2b7ec3c35bd18faa82bf7e131a63f6506f76fcbba23f7edc

See more details on using hashes here.

File details

Details for the file grub2_theme_preview-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: grub2_theme_preview-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.40.0 CPython/3.6.10

File hashes

Hashes for grub2_theme_preview-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a316d4dfc62786365b308533f56742c1b4e578cd38ae08eb06e363b07a6d7266
MD5 f2a2b36a846982f7a89c064f9fee9d45
BLAKE2b-256 9011a94dbc74cb78be2d6333753b901bb34cf524757cab1991e421ff69e3bb2c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page