{"id":13467330,"url":"https://github.com/hartwork/grub2-theme-preview","last_synced_at":"2025-04-04T11:16:29.406Z","repository":{"id":25701407,"uuid":"29137860","full_name":"hartwork/grub2-theme-preview","owner":"hartwork","description":":city_sunrise: Preview a full GRUB 2.x theme (or just a background image) using KVM / QEMU","archived":false,"fork":false,"pushed_at":"2024-05-17T16:29:24.000Z","size":623,"stargazers_count":306,"open_issues_count":0,"forks_count":11,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-05-19T00:03:20.106Z","etag":null,"topics":["cli-app","debugging-tool","grub2","grub2-theme","kvm","python","python3","qemu"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/grub2-theme-preview/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hartwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-12T13:58:32.000Z","updated_at":"2024-05-20T12:50:55.044Z","dependencies_parsed_at":"2023-12-28T13:34:04.156Z","dependency_job_id":"b7d7087a-6e3c-42db-aed9-9d5626cddf6c","html_url":"https://github.com/hartwork/grub2-theme-preview","commit_stats":{"total_commits":251,"total_committers":8,"mean_commits":31.375,"dds":"0.40637450199203184","last_synced_commit":"556b04e64c203c4608ab68f1a2bbde8680a27612"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgrub2-theme-preview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgrub2-theme-preview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgrub2-theme-preview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fgrub2-theme-preview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hartwork","download_url":"https://codeload.github.com/hartwork/grub2-theme-preview/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247166169,"owners_count":20894654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-app","debugging-tool","grub2","grub2-theme","kvm","python","python3","qemu"],"created_at":"2024-07-31T15:00:55.144Z","updated_at":"2025-04-04T11:16:29.383Z","avatar_url":"https://github.com/hartwork.png","language":"Python","readme":"[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n[![Run Python test suite](https://github.com/hartwork/grub2-theme-preview/actions/workflows/python_test_suite.yml/badge.svg)](https://github.com/hartwork/grub2-theme-preview/actions/workflows/python_test_suite.yml)\n[![Packaging status](https://repology.org/badge/tiny-repos/grub2-theme-preview.svg)](https://repology.org/project/grub2-theme-preview/versions)\n\n\n# About\n\n**grub2-theme-preview** came into life when I was looking around for\navailable GRUB 2.x themes and wanted a way to quickly see a theme\nin action without rebooting real hardware.\n\nIt takes a theme folder (or just a single picture),\ncreates a temporary bootable image using `grub2-mkrescue` and launches\nthat image in a virtual machine using KVM/QEMU, all without root privileges.\n\n![grub2-theme-preview showing theme \"gutsblack-archlinux\"](https://raw.githubusercontent.com/hartwork/grub2-theme-preview/master/screenshots/grub2-theme-preview__gutsblack-archlinux.png)\n\n(Showing theme [gutsblack-archlinux](https://forums.archlinux.fr/viewtopic.php?t=11361))\n\n\n## Installation\n\nTo install the latest release from [PyPI](https://pypi.org/):\n\n```console\n# pip3 install --user grub2-theme-preview\n```\n\nTo install from a Git clone _for development_:\n\n```console\n# pip3 install --user --editable .\n```\n\nPlease make sure to install these _non-PyPI dependencies_ as well:\n - `grub-mkrescue` of [GRUB 2](https://www.gnu.org/software/grub/) (package `grub-common` on Debian and Ubuntu)\n - [QEMU](https://wiki.qemu.org/Main_Page) (with GTK or SDL display support) — _hypervisor that performs hardware virtualization_\n - [OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF) — EFI bios image for use with QEMU\n - [mtools](https://www.gnu.org/software/mtools/) — _collection of utilities to access MS-DOS_\n - `xorriso` of [libisoburn](https://dev.lovelyhq.com/libburnia/libisoburn) — _frontend which enables creation and expansion of the ISO format_\n\n\n## Usage\n\n```console\n# COLUMNS=80 grub2-theme-preview --help\nusage: grub2-theme-preview [-h] [--grub-cfg PATH] [--verbose]\n                           [--resolution WxH] [--timeout SECONDS]\n                           [--add TARGET=/SOURCE] [--version]\n                           [--grub2-mkrescue COMMAND] [--qemu COMMAND]\n                           [--xorriso COMMAND] [--display DISPLAY]\n                           [--full-screen] [--no-kvm] [--vga CARD] [--debug]\n                           [--plain-rescue-image]\n                           PATH\n\nPreview a GRUB 2.x theme using KVM/QEMU\n\npositional arguments:\n  PATH                  path of theme directory (or PNG/TGA image file) to\n                        preview\n\noptions:\n  -h, --help            show this help message and exit\n  --grub-cfg PATH       path of custom grub.cfg file to use (default:\n                        /boot/grub{2,}/grub.cfg)\n  --verbose             increase verbosity\n  --resolution WxH      set a custom resolution, e.g. 800x600\n  --timeout SECONDS     set GRUB timeout in whole seconds or -1 to disable\n                        (default: 30 seconds)\n  --add TARGET=/SOURCE  make grub2-mkrescue add file(s) from /SOURCE to\n                        /TARGET in the rescue image (can be passed multiple\n                        times)\n  --version             show program's version number and exit\n\ncommand location arguments:\n  --grub2-mkrescue COMMAND\n                        grub2-mkrescue command (default: auto-detect)\n  --qemu COMMAND        KVM/QEMU command (default: qemu-system-\u003cmachine\u003e)\n  --xorriso COMMAND     xorriso command (default: xorriso)\n\narguments related to invokation of QEMU/KVM:\n  --display DISPLAY     pass \"-display DISPLAY\" to QEMU, see \"man qemu\" for\n                        details (default: use QEMU's default display,\n                        hopefully either GTK or SDL)\n  --full-screen         pass \"-full-screen\" to QEMU\n  --no-kvm              do not pass -enable-kvm to QEMU (and hence fall back\n                        to acceleration \"tcg\" which is significantly slower\n                        than KVM)\n  --vga CARD            pass \"-vga CARD\" to QEMU, see \"man qemu\" for details\n                        (default: use QEMU's default VGA card)\n\ndebugging arguments:\n  --debug               enable debugging output\n  --plain-rescue-image  use unprocessed GRUB rescue image with no theme\n                        patched in; useful for checking if a plain GRUB rescue\n                        image shows up a GRUB shell, successfully.\n\nenvironment variables:\n  G2TP_GRUB_LIB         Path of GRUB platform files parent directory\n                        (default: \"/usr/lib/grub\")\n  G2TP_OVMF_IMAGE       Path of OVMF image file (default: auto-detect)\n                        (e.g. \"/usr/share/[..]/OVMF_CODE.fd\")\n\nSoftware libre licensed under GPL v2 or later.\nBrought to you by Sebastian Pipping \u003csebastian@pipping.org\u003e.\n\nPlease report bugs at https://github.com/hartwork/grub2-theme-preview -- thank you!\n```\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhartwork%2Fgrub2-theme-preview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhartwork%2Fgrub2-theme-preview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhartwork%2Fgrub2-theme-preview/lists"}