Omahub
← All plugins
A

Theme Scheduler

by acrogenesis

Automatically switch between light and dark Omarchy themes on a daily schedule.

Install
$ omarchy plugin add https://github.com/acrogenesis/omarchy-theme-scheduler --enable
Appearance #bar #quickshell

Theme Scheduler for Omarchy

Automatically switch between a light and dark Omarchy theme using your local time. The plugin runs inside Omarchy Shell, catches up after sleep or restart, and does not require root access or systemd units.

Features

  • Independent day and night themes
  • Random light and dark choices using each theme's Omarchy mode metadata
  • 15-minute schedule controls
  • Local-time operation with overnight schedules supported
  • Resume/restart catch-up
  • Manual theme overrides remain until the next scheduled boundary
  • Bar panel, middle-click “apply now,” and shell IPC controls
  • Configuration stored at ~/.config/omarchy/theme-scheduler/config.json

Install

omarchy plugin add https://github.com/acrogenesis/omarchy-theme-scheduler.git --enable

The plugin is safe on first install: its internal automation toggle defaults to off. Add its widget to the bar, choose the two themes and times, then enable automatic switching.

Requirements

  • Omarchy 4 with the Quattro shell plugin API
  • No external packages, root access, or background system services

Remove

omarchy plugin remove acrogenesis.theme-scheduler

Removing the plugin leaves its settings at ~/.config/omarchy/theme-scheduler/config.json so a later reinstall can reuse them. Delete that file separately only if you also want to discard the saved schedule and theme choices.

For local development:

ln -sfn "$PWD" ~/.config/omarchy/plugins/acrogenesis.theme-scheduler
omarchy plugin enable acrogenesis.theme-scheduler --section right

Commands

omarchy-shell acrogenesis.theme-scheduler status
omarchy-shell acrogenesis.theme-scheduler enable
omarchy-shell acrogenesis.theme-scheduler disable
omarchy-shell acrogenesis.theme-scheduler applyNow

How scheduling behaves

At each day/night boundary, the service applies the configured theme with omarchy theme set. It records that boundary after a successful switch. This means choosing another theme manually will not be immediately undone; the scheduler takes control again at the next boundary.

The day and night pickers also offer Random light theme and Random dark theme. Omarchy declares the classification as mode = "light" or mode = "dark" in each theme's effective colors.toml. Themes without that metadata remain available for explicit selection but are excluded from random choices. Each picker lists its matching mode first, the opposite mode second, and any unclassified themes last; themes within every group are alphabetical.

The service evaluates the wall clock every minute. If the computer sleeps through a boundary or Omarchy Shell starts later, it applies the theme for the current period when it resumes.

Development

node tests/test_schedule.js
bash tests/test_theme_catalog.sh
omarchy plugin validate .
qmllint -I /usr/share/omarchy/shell ./*.qml

License

MIT