Commit Graph
64 Commits
Author SHA1 Message Date
a4219f8f4a Store theme backgrounds as webp (#7477)
* Decode webp in the shell

The background and the lock screen are drawn by Quickshell, so they
decode through Qt, which ships handlers for png, jpeg and gif but not
webp. QImageReader answers "Unsupported image format" and the layer
comes up blank. Any third-party theme shipping a .webp background hits
this today, even though every path that goes looking for a background
already globs the extension.

qt6-imageformats supplies the missing plugin for 71 KB downloaded. Its
one new dependency of substance, libwebp, is already on every machine
by way of libvips.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Store theme backgrounds as webp

WebP codes both of the things these backgrounds are made of better than
the formats they were in: the photographs, where its lossy mode is worth
a third or more over JPEG at matched quality, and the flat art and dot
patterns, where its lossless mode undercuts an oxipng-packed PNG.

28 of them become lossless webp and decode bit-for-bit identically
(AE=0), so the dot patterns and flat-shaded pieces carry no quality
question at all. That includes 0-launch, whose alpha channel comes
through intact. The other 51 are photographs held to the same 38 dB
PSNR floor as the JPEG pass, landing between 38.0 and 54.6 dB. Every
image keeps its exact pixel dimensions, for 29.8 MB.

Each one is encoded from the original as it stands in quattro rather
than from the file the earlier commits produced, so nothing picks up a
second generation of loss on the way here.

13 stay JPEG. WebP is plainly larger for most of them, and three are
grainy enough that its filter smooths the grain instead of coding it:
PSNR plateaus near 34 dB however high the quality goes, well under the
floor.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 14:21:30 +02:00
ec779715bd Shrink theme backgrounds without touching resolution (#7266)
* Re-encode over-encoded theme backgrounds

Several backgrounds shipped at quality 95-100, which buys nothing visible
on a wallpaper but costs 20 MB. Re-encode those at quality 85, leaving
resolution untouched -- every file keeps its original pixel dimensions.

Only files stored above quality 90 are touched, and only when the result
saves at least 15% and stays above 38 dB PSNR against the original. The
34 backgrounds already stored at quality 85 or below are left alone
rather than pushed through another lossy generation for a few hundred KB.
osaka-jade/2-shaded-entrance is skipped for that reason: nothing clears
both bars. ristretto/2-coffee-beans is re-encoded at 90 instead of 85,
where 85 fell below the PSNR floor.

Theme backgrounds drop from 107 MB to 87 MB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Store nord's night-hawks background as a palette PNG

The file uses only 8 distinct colors but was saved as truecolor RGB,
costing 1.8 MB for an image an indexed palette stores in half the space.
Converting to a palette PNG is lossless: same dimensions, and zero pixels
differ from the original.

1782 KB -> 909 KB.

The other palette-eligible PNGs are already indexed, and re-compressing
them with ImageMagick only makes them bigger, so they are left alone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Recompress theme PNGs losslessly with oxipng

Every background PNG was left at its authoring tool's default deflate
settings. Running oxipng over them re-packs the same pixels: all 31 files
decode bit-for-bit identically (AE=0) at unchanged resolution, for 981 KB.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* Store photographic backgrounds as JPEG instead of PNG

Four backgrounds were shipped as PNG despite being photographs and
painterly illustrations, where lossless coding buys nothing the eye can
see. Re-encoding them at the same q85 used by the other backgrounds keeps
every pixel dimension and stays above 40 dB PSNR, for 3.3 MB.

The remaining PNGs stay PNG: JPEG is larger for the dot patterns and the
flat-shaded pieces, and 0-launch.png genuinely uses its alpha channel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 18:29:23 +02:00
David Heinemeier HanssonandClaude Fable 5 503388b4d6 Retune opacity for Hyprland 0.56's corrected alpha premultiplication
Hyprland 0.56 fixed premultiplication in the color-management shader
(hyprwm/Hyprland#14403), so the same opacity values now render visibly
more transparent than on 0.55. Raise each value to its perceptual
equivalent (a^(1/2.2)) to restore the previous look.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 21:22:16 -07:00
David Heinemeier HanssonandClaude Fable 5 f4a7b30366 Retune opacity for Hyprland 0.56's corrected alpha premultiplication
Hyprland 0.56 fixed premultiplication in the color-management shader
(hyprwm/Hyprland#14403), so the same opacity values now render visibly
more transparent than on 0.55. Raise each value to its perceptual
equivalent (a^(1/2.2)) to restore the previous look.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 21:15:47 -07:00
David Heinemeier HanssonandClaude Fable 5 afa2839a5a Rename bg/fg palette keys to background/foreground
The canonical colors.toml keys are now background/foreground, including
all permutations (dark_background, darker_background, lighter_background,
dark_foreground, light_foreground, bright_foreground). The old short
names are gone entirely, not kept as aliases; legacy alacritty-generated
themes still resolve through the ANSI color0/color7 fallback.

Theme files are also regrouped: accent/selection/muted first, then the
backgrounds, then the foregrounds, then the named colors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 16:24:51 -07:00
Ryan Hughes 221fb296fc Simplify theme palette tokens 2026-06-11 02:08:02 -04:00
Ryan Hughes 53357ace61 Rename purple theme color to magenta 2026-06-02 20:39:36 -04:00
Bjarne ØverliandRyan Hughes b1505a085d Implement semantic theme color system 2026-06-02 17:23:28 -04:00
David Heinemeier Hansson ff2a418a25 Use correct highlight for kanagawa 2026-05-27 13:34:39 +02:00
David Heinemeier Hansson 84de3d3a2e Extract more helpers 2026-05-14 12:51:03 +02:00
Ryan Hughes 59a2619426 Update theme specifics to lua 2026-05-11 10:39:22 -04:00
David Heinemeier Hansson 4e341fea3e Add omarchy bg option to all themes 2026-04-28 19:17:46 +02:00
David Heinemeier HanssonandGitHub 2716a3207c Provide unlock themeing (#5476) 2026-04-28 17:55:59 +02:00
David Heinemeier Hansson ae5da6f805 Update all theme previews to consistent size and style 2026-03-27 13:14:14 +01:00
David Heinemeier Hansson 72b3b930c7 Drop the needless active_border_color/active_tab_background settings in favor of just using accent
Closes #4121
2026-01-08 10:32:21 +01:00
David Heinemeier Hansson 3da8c2a023 Extract (almost) all chromium.theme files to use a template based on the background color 2026-01-05 21:47:23 +01:00
David Heinemeier HanssonandGitHub 4a07b94cb6 Use theme config templates with singular color definition (#4053)
* Attempt to templaterize the theme specific files

* Cleanup

* Slim down

* Combine render into -set

* Pull out the dynamic template rendering again, but simpler

* Fix vars

* Variables are lowercase

* Better presentation

* Fix missing colors

* Provide stripped values too

* Fix colors for regular hex format

* Bring back explicit btop themes

They're too involved to derive from a basic color set

* Make an atomic swap of the theme directories

* No longer used by walker to cancel

* Explain why

* Remove redundant const

* Consistent const naming

* No longe have $THEMES_DIR

* Correct the blue

* Set opencode colors too

* Fix colors for readability

* Move the templates together with the others in default

* Split user themes and default themes

* Fix paths

* Look for both user themes and default themes

Plus speed things up

* Migrate to the new setup where default themes live inside omarchy

* Explicitly store the name of the current theme

* Cleanup

* No longer need omarchy-theme-next since themes are now fully rendered, not symlinks

* Get current theme name from the new theme.name file

* Look for user background images in dedicated directory

* Need yq for toml

* Need yq to parse colors.toml

* Look for backgrounds matching the new theme.name

We no longer have symlinks

* Migrate existing user backgrounds to the new proper location

* Install user backgrounds in the correct path

* Fix quoting

* Just rely on the system theme for opencode and get ready for USRSIG2 being available to live reload

* Fix template generation for rgb colors
2026-01-03 18:22:14 -08:00
Derek WiersonandGitHub 64f254653f Fix windowrule syntax change for kanagawa theme (#4032) 2025-12-31 17:12:09 -07:00
Ryan Hughes 5789c0a1fb Add themes for share pickers 2025-12-13 00:44:24 -05:00
438fa96291 Add preview images to the themes menu (#3444)
* Add new script for themes menu

* remove icons from the themes menu

* Make theme titles human readable and add spacing at the end

* Migrate to using a link for the new menu generator

* Retain consistent width

But we still do have movement when filtering the menu down to a
shorter-than-longest name. Should try to stabilize that.

* Update all previews to 2K resolution and same dimensions

* Update script to use first bg file if theme preview file doesn't exist

* Add padding to preview box instead of spaces to theme name

* Consistent formatting/indenting

* Prevent height jump

* Revert padding change and remove background color

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-11-19 08:30:24 +01:00
David Heinemeier Hansson dc00227f0a Fix all themes active border for groups to match regular active border 2025-10-18 21:09:02 +02:00
Alexander ZaytsevandGitHub 2326018341 Group mako settings and adjust notification styles (#2273)
* Move common mako settings to `core.ini`

* Use monospace font, set font size in px

* Increase line height

* Adjust paddings

* Add 10px width so the Welcome notification fits on one line

* Remove extra whitespace

* Remove extra whitespace, adjust wording

* Improve text-to-bg contrast in Tokyo Night

* Follow the system font

* Use sans-serif font

* Restore width and extra space characters

* Adjust vertical paddings

* Remove `omarchy-restart-mako` (no longer needed)
2025-10-07 13:14:48 +02:00
a1228dac6b add kitty.conf for each theme; config switches with theme (#1296)
* add kitty.conf for each theme; config switches with theme

* Revise default config

* Correct restart location

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-16 21:40:07 +02:00
David Heinemeier HanssonandGitHub 432ffb508c Themeing for ghostty (#1701)
* Themeing for ghostty

* Fix theme name

* Set font for ghostty too if its on the system

* Use correct class for ghostty styling

* Uniformity

* Need to keep this alacritty until we have it fully working for other terminals

* Stick to alacritty so we can control font size

* Stick with alacritty for system terminals

* Add menu to install different terminal

* Use taha approved colors
2025-09-16 21:31:40 +02:00
7e1c88b932 update to use $TERMINAL instead of alacitty (#1648)
* update to use $TERMINAL instead of alacitty

* revert

* move env to hyprconfig

* Only set if we have alacritty

* Add launcher for wifi settings so it can be used in mako config

* Set system terminal in config/uwsm/env to ensure its available everywhere

* Ensure that $TERMINAL is available after update

* Didn't work to have the TERMINAL env in Hyprland

* Configure terminal settings against a full set of options

* Make About usable with any terminal

* One more alacritty-specific setting

* Use the new wifi launcher bin

* Only require the update/relaunch if TERMINAL isn't already set in config/uwsm/env

* More alacritty usage converted to $TERMINAL

* Use new launcher

* Change scrolltouchpad input rule to apply to all terminals

* Its a singular match

* Take current font from waybar, in case we don't have alacritty

* Only set font for alacritty if its being used

* Get ready to be terminal agnostic on the refresh of config too

* Use new launcher

* Note the last reliance we have on alacritty

* Make theme setting for terminals generic and include kitty

* Set font_family for kitty as well

* Quiet grep

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-16 14:32:40 +02:00
d3304c4a88 Automatically change VS Code theme along with Omarchy themes (#800)
* Automatically change VS Code theme along with Omarchy themes

* Create a way to skip vscode auto-theming

* Make theme setting resilient to different states of the settings.json

* Improve setting and removing theme and notify when waiting on install

* Explain what we're doing

* Extract dedicated bin for vscode theme change

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-15 18:20:02 +02:00
TahaandGitHub a77264ae99 Add preview images to system theme folders (#1662)
* add preview images to theme folders

* fix image sizes for previews

* rename all preview images to preview.png
2025-09-14 16:28:15 +02:00
1de4a49ab0 feat: Notification settings persist across theme changes (#1484)
* Added a core.ini file for setting persistent notification settings

* migration

* remove: max-icon-size from core.ini

* rearranging mako files

* moving core.ini mako config inside omarchy

* added core.ini to migration

* We don't actually need this

Mako is already loaded. The new config will get picked up automatically
on next reboot.

* Don't change

* No change required here

---------

Co-authored-by: robert stringer <bitmap+github@gmail.com>
Co-authored-by: xz <xz>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-09 14:41:41 +02:00
David Heinemeier Hansson 94eeba4849 Just tweak Alacritty 2025-08-29 21:24:31 +02:00
David Heinemeier Hansson d755de4042 Tweak Kanagawa opacity to more closely match the other themes in appearance 2025-08-29 21:22:17 +02:00
d4403051cf Add Limine + Snapper support (#998)
* Persist urgent notifications

* Create omarchy-snapshot

* Create snapshot before pulling

* Extract alternative bootloader configs

* Add limine-snapper config

* Fix check

* Update login scripts

* Make chroot friendly

* Extract cmdline instead of using blkid due to error

* Add restore command

* Export $TERMINAL so we get clickable restore notifications

* Remove sync -- causes errors...we have nothing to sync yet

* Executable

* Minor cleanup and compatibility for non-ISO

* Give login its own section

* Give no-arg guard and inline commands

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-23 16:52:25 +02:00
David Heinemeier Hansson bf49a86e98 Use omarchy-chromium-bin to give live theme changes 2025-08-14 14:46:59 +02:00
David Heinemeier Hansson 3d22840543 Allow themes to use a custom icon theme via the icons.theme file
They get to pick from the Yaru color set
2025-08-01 14:23:29 +02:00
David Heinemeier Hansson 4578d4e418 Cleanup files from needless comments 2025-07-24 18:02:00 -04:00
Alexandru Ifrim 1ebf88bac0 full swayosd integration 2025-07-23 01:51:04 +03:00
David Heinemeier Hansson af72a45dbd Remove non-existent vibe-code hallucinated options and clean up theme files 2025-07-20 18:07:15 -05:00
5b3c324350 Change default launcher from Wofi to Walker (#218)
* Change launcher from wofi -> walker

* Add migration

* More wofi -> walker locations

* Add rose pine theme

* Rename refresh script

* Minor improvements to walker + add uwsm

* Back out running as service

* Make these executable

* Add plugins dir for now to resolve open issue 355 from v0.13.0 release

* Replace pavucontrol with wiremix (#225)

Add to install

* Revert "Replace pavucontrol with wiremix (#225)"

This reverts commit 620b397859.

* Fix reference

* Add libqalculate so calc works out of the box

* Actually add libqalculate

* Re-add media

* Add catppuccin-latte

* Final cleanup

* Remove partially baked theme

* Remove failing migration

* Remove failing migration

* Fix refresh script

* Simplify css setup

* Rearrange walker theme files

* Change theme name

* Remove unnecessary file

* Clear everything

* Only worry about the config file now

* Disable load in animation for walker

* Run walker as service

* Make sure we have fresh package db

* Add keybindings theme

* Remove history

* Explain section

* Assume wofi is gone, only run if walker isn't there

* Move as the latest

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Roeland <roel4d@webding.org>
2025-07-20 16:17:42 -05:00
David Heinemeier Hansson e2c8e3ccfe Pull backgrounds into the repo to simplify setup and theme selection
This was too complicated for something too remote
2025-07-17 15:16:37 -07:00
46e8fa46ed Extensible, evenly spaced waybar styling (#156)
* Add override to only require one network interface online

* refactor: extensible, evenly spaced waybar style.css

- Use @define-color directive to define colour variables for each theme
(@foreground for text, @background for background-color)
- apply the colour variables in the main theme config, making it more
extensible
- make waybar elements more evenly spaced with consistent margin and
padding values
- add migration to apply the above changes to existing users

* Update style.css

better pixel spacing

---------

Co-authored-by: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-07-14 20:56:54 -07:00
Ryan Hughes dd207232e1 Add margin to notifications 2025-07-13 17:25:00 -04:00
DrInfinite 77524a7afa De-couple hyprlock themes from layout 2025-07-10 18:43:08 +05:30
David Heinemeier Hansson d7b94996c3 Add border to wofi to better delineate from background 2025-07-09 18:52:04 -07:00
David Heinemeier Hansson 201d303c2c Better structuring of the wofi css
Reusing look for select menu and reducing theme duplication
2025-07-07 11:37:50 -07:00
David Heinemeier Hansson 621628d59b Revert "Merge pull request #74 from ryanrhughes/add-boot-screen"
This reverts commit 425603c790, reversing
changes made to 00b621d7d7.
2025-07-06 17:48:33 -07:00
David Heinemeier HanssonandGitHub 425603c790 Merge pull request #74 from ryanrhughes/add-boot-screen
Add graphical boot screen
2025-07-06 16:00:55 -07:00
David Heinemeier Hansson 84d2fc3722 Turn notifications on/off with Super+Ctrl+,
Thanks to @ryanrhughes for the groundwork in #63 on this!
2025-07-06 14:55:26 -07:00
David Heinemeier Hansson 0d4f8145a2 Revert "Merge pull request #63 from ryanrhughes/waybar-add-dnd"
This reverts commit 2dc5b4fd8f, reversing
changes made to dea0a547a6.
2025-07-06 14:41:22 -07:00
Ryan Hughes ce766d475a Add plymouth themes 2025-07-05 16:40:37 -04:00
Ryan Hughes d58d0f0b45 Add DND option to Waybar 2025-07-04 22:33:00 -04:00
David Heinemeier Hansson a736c95fdc Turn on fingerprint authentication for hyprlock
Still requires setting up fprint, but we explain that in the manual.
Closes #54.
2025-07-04 14:51:33 -07:00