* 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>
* 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>
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>
* Fix helix theme's word selection colors
Without this fix, if users enabled `editor.cursorline`, the word
selection would not be visually distinct from the cursorline selection.
Closes: https://github.com/basecamp/omarchy/issues/5580
Signed-off-by: Luke Hsiao <luke@hsiao.dev>
* Make Retro-82 color0 visually distinct from background
Signed-off-by: Luke Hsiao <luke@hsiao.dev>
* Make matte-black selection background distinct from color0
Signed-off-by: Luke Hsiao <luke@hsiao.dev>
---------
Signed-off-by: Luke Hsiao <luke@hsiao.dev>
* 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
* 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>
* 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)
* 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
* 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>
* 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>
* 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>
* 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>
* 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>