{"id":50580840,"url":"https://github.com/foonerd/evo-device-boot","last_synced_at":"2026-06-05T02:01:24.123Z","repository":{"id":357298524,"uuid":"1236260117","full_name":"foonerd/evo-device-boot","owner":"foonerd","description":"Beating-heart Plymouth boot theme for evo reference devices on Debian Trixie. Self-contained installer for Raspberry Pi (arm) and amd64.","archived":false,"fork":false,"pushed_at":"2026-05-12T06:20:50.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-12T08:27:47.538Z","etag":null,"topics":["boot-splash","boot-theme","debian","embedded-linux","evoframework","plymouth","plymouth-theme","raspberry-pi","raspberry-pi-5","trixie"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foonerd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-12T05:00:28.000Z","updated_at":"2026-05-12T06:20:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/foonerd/evo-device-boot","commit_stats":null,"previous_names":["foonerd/evo-device-boot"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/foonerd/evo-device-boot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-device-boot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-device-boot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-device-boot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-device-boot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foonerd","download_url":"https://codeload.github.com/foonerd/evo-device-boot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fevo-device-boot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33927313,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["boot-splash","boot-theme","debian","embedded-linux","evoframework","plymouth","plymouth-theme","raspberry-pi","raspberry-pi-5","trixie"],"created_at":"2026-06-05T02:01:23.097Z","updated_at":"2026-06-05T02:01:24.114Z","avatar_url":"https://github.com/foonerd.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# evo-device-boot\n\nA beating-heart Plymouth boot theme for evo reference devices on\nDebian Trixie. Self-contained installer for Raspberry Pi (arm) and\ngeneric x86_64 (amd64). The brand mark from the evoframework.org\nlanding page rendered for the boot chain, plus the supporting\nartefacts (systemd warmup, KMS rotation toggles, cmdline patching)\nthat make the splash feel right on hardware as fast as a Pi 5 with\nNVMe.\n\n## What it ships\n\n- plymouth/   - Plymouth script theme. Animated heart (rounded\n                square in the framework brand green) with twin\n                outward ripple rings, beating lub-dub at 1.5 s per\n                cycle. Centred on a dark base. No text, no mode-\n                specific behaviour - just the heart, on every boot,\n                shutdown, and reboot.\n\n- fbcon-logo/ - kernel framebuffer logo (LOGO_LINUX_CLUT224), shown\n                during the kernel handoff before plymouthd starts.\n                Placeholder for now.\n\n- grub-theme/ - amd64-only GRUB menu theme. Placeholder for now.\n\n- tools/      - parameterised PNG frame generator. The PNGs under\n                plymouth/assets/ are produced by tools/render-frames.py\n                from a single source of truth (heart parameters lifted\n                from evoframework.org/static/css/site.css).\n\n- scripts/    - install.sh, uninstall.sh, verify.sh. Self-contained,\n                no evo runtime dependency. Detect Pi vs amd64 and\n                handle the cmdline.txt-vs-grub split idempotently.\n\n## Targets\n\nTrixie (Debian 13) on:\n\n- arm   - Raspberry Pi 4 and 5 with vc4-kms-v3d\n- amd64 - generic x86_64 with i915 / amdgpu / nouveau KMS\n\n## Orientation\n\nThe heart is a rounded square, so it is shape-invariant under\nrotation. Mount your panel however you mount it; the heart beats.\nThe only thing that \"rotates\" with the panel is the gradient\ndirection (vertical on the framebuffer becomes horizontal on a\nlandscape-mounted panel), which is a quiet aesthetic, not a\nproblem.\n\nIf you do want the rest of the boot chain (kernel console, plymouth,\nUI shell) to share one orientation, set it once at the KMS layer in\n/boot/firmware/cmdline.txt. Common case for the Pi Touch Display 2\n(720x1280 portrait native, used in landscape):\n\n        video=DSI-1:720x1280@60,rotate=270\n\nscripts/install.sh can do this with the EVO_BOOT_DSI_ROTATE and\nEVO_BOOT_HDMI_ROTATE toggles. They honour an existing\n`video=\u003cconnector\u003e:` clause; pass `EVO_BOOT_VIDEO_OVERWRITE=1` to\nreplace one. Note: on Pi 5 + DSI, the rotate= flag is not always\nhonoured by the Plymouth-side framebuffer; this is one reason the\ntheme is deliberately text-free and shape-symmetric.\n\nAcross panel sizes (from 480p touchscreens up to 1080p monitors)\nthe theme scales the heart at startup to occupy a consistent ~17\npercent of the smaller screen dimension.\n\n## Install\n\nOn a target host with the repo cloned locally:\n\n    sudo scripts/install.sh\n\nThat will (idempotently):\n\n1. Check prerequisites (plymouth, plymouth-themes, python3-pil) and\n   either fail with the apt command for you to run, or apt-install\n   them if you pass `EVO_BOOT_AUTO_APT=1`.\n2. Render the PNG frame sequence into plymouth/assets/ if missing.\n3. Copy the theme to /usr/share/plymouth/themes/evo/.\n4. Run `plymouth-set-default-theme -R evo` (rebuilds the initramfs).\n5. Patch the boot cmdline:\n     Pi    - /boot/firmware/cmdline.txt (Plymouth-friendly tokens)\n             and /boot/firmware/config.txt (disable_splash=1).\n             Honours an existing video=\u003cconnector\u003e: clause.\n     amd64 - /etc/default/grub and run update-grub.\n6. Verify and exit non-zero on any failure.\n\nTo install only the theme (no boot config changes):\n\n    sudo EVO_BOOT_SKIP_CMDLINE=1 scripts/install.sh\n\nTo remove:\n\n    sudo scripts/uninstall.sh\n\nTo check an existing install:\n\n    scripts/verify.sh\n\n## Integration\n\nThis repo has no runtime dependency on the evo steward or any device\ncrate. It exposes one self-contained installer; any integrator can\ncall it:\n\n1. evo-device-audio bootstrap.sh can call scripts/install.sh under\n   an EVO_INSTALL_BOOT_THEME toggle.\n2. evo operational can satisfy a \"boot identity\" CapabilityIntent by\n   running scripts/install.sh on the host.\n3. Image build (debos / genimage) can bake the artefacts at build\n   time by invoking the same script in a chroot.\n\n## Splash duration\n\nOn a fast board (Pi 5) the kernel + initramfs come up in a couple of\nseconds, so without help the heart only gets one or two beats on\nscreen before plymouth-quit fires. A small systemd oneshot unit\n(`systemd/evo-splash-warmup.service`) is installed and enabled by\ndefault, ordered `Before=plymouth-quit.service`, holding the splash\nfor `EVO_BOOT_SPLASH_HOLD_SECONDS` (default 3 seconds, ~2 full beats).\n\nTo turn it off:\n\n    sudo EVO_BOOT_SPLASH_HOLD_SECONDS=0 scripts/install.sh\n\nTo change the hold time:\n\n    sudo EVO_BOOT_SPLASH_HOLD_SECONDS=5 scripts/install.sh\n\nThe hold is \"at least N seconds\"; the natural boot to plymouth-quit\ndelay only counts if it is longer than N.\n\n## Repo layout\n\n    evo-device-boot/\n      README.md\n      DESIGN.md\n      LICENSE\n      plymouth/\n        evo.plymouth\n        evo.script\n        assets/                 (generated by tools/render-frames.py)\n      systemd/\n        evo-splash-warmup.service\n      fbcon-logo/               (placeholder)\n      grub-theme/               (placeholder)\n      tools/\n        render-frames.py\n      scripts/\n        install.sh\n        uninstall.sh\n        verify.sh\n      packaging/\n        debian/                 (placeholder)\n\n## Licence\n\nApache-2.0. Mirrors evo-device-audio.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fevo-device-boot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoonerd%2Fevo-device-boot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fevo-device-boot/lists"}