Configuration Highlights

Auto-login and Plymouth Splash

Omarchy enhances the login experience by integrating a custom Plymouth splash and seamless auto-login. This setup occurs during the login phase, ensuring users avoid flickering consoles and enjoy a branded boot and login transition.


Index

  1. Plymouth Theme Setup
  2. Bootloader & Kernel Integration
  3. Seamless Login Helper
  4. Systemd Service Configuration
  5. Refresh Helpers & Migrations

1. Plymouth Theme Setup

Omarchy ships a custom Plymouth theme and sets it as the default at each run.

  • Copy Theme Files
  • Activate “omarchy” Theme
if [ "$(plymouth-set-default-theme)" != "omarchy" ]; then
  sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" \
    /usr/share/plymouth/themes/omarchy/
  sudo plymouth-set-default-theme -R omarchy
fi

This snippet from install/login/plymouth.sh installs and activates the theme .


2. Bootloader & Kernel Integration

Omarchy ensures the splash screen appears early by hooking into initramfs and adding kernel parameters.

  • initramfs Hook
    • Adds plymouth to HOOKS= in /etc/mkinitcpio.conf
    • Regenerates all images via mkinitcpio -P
if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then
  # Insert 'plymouth' after 'base systemd'
  sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' \
    /etc/mkinitcpio.conf
  sudo mkinitcpio -P
fi

(from install/login/alt-bootloaders.sh) .

  • Kernel Parameters
    • systemd-boot: Appends splash quiet to each /boot/loader/entries/*.conf.
    • GRUB: Patches GRUB_CMDLINE_LINUX_DEFAULT and regenerates grub.cfg.
    • UKI: Writes splash and quiet to /etc/cmdline.d/omarchy.conf or /etc/kernel/cmdline.
    • Fallback: Logs instructions if no supported loader found.

3. Seamless Login Helper

To avoid seeing a console prompt between Plymouth and Hyprland, Omarchy compiles a small helper:

/** Seamless Login - Minimal SDDM-style Plymouth transition */
#include <linux/kd.h>
#include <linux/vt.h>
// ... open("/dev/tty1"), activate VT, set KD_GRAPHICS, clear screen ...
execvp(argv[1], &argv[1]);
gcc -o /tmp/seamless-login /tmp/seamless-login.c
sudo mv /tmp/seamless-login /usr/local/bin/seamless-login
sudo chmod +x /usr/local/bin/seamless-login

This helper replicates SDDM’s VT management for a flicker-free handoff .


4. Systemd Service Configuration

Omarchy creates and manages two key unit files:

Unit File Purpose
/etc/systemd/system/omarchy-seamless-login.service Auto-login via seamless-login
/etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf Delay plymouth-quit until graphical.target

omarchy-seamless-login.service

[Unit]
Description=Omarchy Seamless Auto-Login
[email protected]
After=systemd-user-sessions.service plymouth-quit.service systemd-logind.service
PartOf=graphical.target

[Service]
Type=simple
ExecStart=/usr/local/bin/seamless-login uwsm start -- hyprland.desktop
Restart=always
RestartSec=2
User=$USER
TTYPath=/dev/tty1
StandardInput=tty
StandardOutput=journal
PAMName=login

[Install]
WantedBy=graphical.target
  • Conflicts: Disables [email protected].
  • Dependencies: Waits for Plymouth to quit and user-sessions to be ready.
  • ExecStart: Launches Hyprland via UWSM under TTY1.
  • Enable/Disable: Omarchy masks the old getty on tty1, enables this service, and masks plymouth-quit-wait.service to prevent premature termination of the splash .

5. Refresh Helpers & Migrations

Omarchy provides utilities and migrations to maintain and tweak the login setup:

Script / Migration Action
bin/omarchy-refresh-plymouth Recopy theme files & re-run plymouth-set-default-theme
migrations/1754108993.sh Fix multi-monitor login positioning; calls refresh
  • omarchy-refresh-plymouth: Allows manual reloading of the Plymouth theme.
  • Migration hooks: Automatically adjust positioning, password dialog limits, and other fine-tuning when Omarchy is updated.

By orchestrating these steps—theme installation, initramfs integration, kernel parameter tuning, custom helper compilation, and systemd service management—Omarchy delivers a smooth, branded boot and login experience on Hyprland.