@@ -282,6 +282,268 @@ Aether launches `aether-wp` automatically when you apply a theme with an animate
282282
283283When applying a static wallpaper, Aether automatically kills any running ` aether-wp ` process and falls back to ` swaybg ` .
284284
285+ ## Color Utilities
286+
287+ Standalone commands for working with colors. No running GUI needed.
288+
289+ ### Color Info
290+
291+ Show all representations of a hex color:
292+
293+ ``` bash
294+ aether --color-info " #7cd480"
295+ aether --color-info " #7cd480" --json
296+ ```
297+
298+ ### Color Convert
299+
300+ Convert a color between formats:
301+
302+ ``` bash
303+ aether --color-convert " #7cd480" --to rgb
304+ aether --color-convert " #7cd480" --to hsl
305+ aether --color-convert " #7cd480" --to oklab
306+ aether --color-convert " #7cd480" --to oklch
307+ ```
308+
309+ ### Contrast
310+
311+ Check WCAG contrast ratio between two colors:
312+
313+ ``` bash
314+ aether --contrast " #0a180a" " #a5baa7"
315+ ```
316+
317+ Returns the ratio and AA/AAA pass/fail for normal and large text.
318+
319+ ### Adjust Color
320+
321+ Apply the 12-step adjustment pipeline to a single color:
322+
323+ ``` bash
324+ aether --adjust-color " #7cd480" --vibrance 20 --saturation -10
325+ ```
326+
327+ Supports all adjustment flags: ` --vibrance ` , ` --saturation ` , ` --contrast ` , ` --brightness ` , ` --shadows ` , ` --highlights ` , ` --hue-shift ` , ` --temperature ` , ` --tint ` , ` --gamma ` , ` --black-point ` , ` --white-point ` .
328+
329+ ### Darken / Lighten
330+
331+ ``` bash
332+ aether --darken " #7cd480" 70 # 0 = black, 100 = unchanged
333+ aether --lighten " #7cd480" 20 # 0 = unchanged, 100 = white
334+ ```
335+
336+ ## Palette Operations
337+
338+ ### Extract Palette
339+
340+ Extract a 16-color palette from a wallpaper without applying it (read-only):
341+
342+ ``` bash
343+ aether --extract-palette ~ /wallpaper.jpg
344+ aether --extract-palette ~ /wallpaper.jpg --extract-mode pastel --light-mode --json
345+ ```
346+
347+ ### Palette from Color
348+
349+ Generate a full 16-color ANSI palette from a single base color:
350+
351+ ``` bash
352+ aether --palette-from-color " #7cd480"
353+ ```
354+
355+ ### Gradient
356+
357+ Generate a color gradient between two colors:
358+
359+ ``` bash
360+ aether --gradient " #0a180a" " #bed3c0"
361+ aether --gradient " #0a180a" " #bed3c0" --steps 8
362+ ```
363+
364+ Defaults to 16 steps. Use ` --steps ` for a custom count.
365+
366+ ### Adjust Palette
367+
368+ Apply adjustments to an entire palette (JSON array or blueprint name):
369+
370+ ``` bash
371+ aether --adjust-palette ' ["#0a180a","#a8ad42","#7cd480"]' --vibrance 20
372+ aether --adjust-palette " Nord" --temperature 15
373+ ```
374+
375+ ### Palette Info
376+
377+ Analyze a palette for contrast, dark/light detection, and monochrome detection:
378+
379+ ``` bash
380+ aether --palette-info ' ["#0a180a","#a8ad42","#7cd480","#a0c877","#53ba97","#7cc094","#8fd7b0","#a5baa7","#39513c","#a8ad42","#7cd480","#a0c877","#53ba97","#7cc094","#8fd7b0","#bed3c0"]'
381+ aether --palette-info " Nord" --json
382+ ```
383+
384+ ## Blueprint Management
385+
386+ ### Show Blueprint
387+
388+ Display full details of a saved blueprint:
389+
390+ ``` bash
391+ aether --show-blueprint " Nord"
392+ aether --show-blueprint " Nord" --json
393+ ```
394+
395+ ### Delete Blueprint
396+
397+ ``` bash
398+ aether --delete-blueprint " Old Theme"
399+ ```
400+
401+ ### Export Blueprint
402+
403+ Export a blueprint to a JSON file:
404+
405+ ``` bash
406+ aether --export-blueprint " Nord"
407+ aether --export-blueprint " Nord" --output ~ /themes/nord.json
408+ ```
409+
410+ ## Inspection
411+
412+ ### List Apps
413+
414+ List all applications that Aether can generate themes for:
415+
416+ ``` bash
417+ aether --list-apps
418+ aether --list-apps --json
419+ ```
420+
421+ ### List Modes
422+
423+ List available extraction modes with descriptions:
424+
425+ ``` bash
426+ aether --list-modes
427+ ```
428+
429+ ### Show Variables
430+
431+ Show all template variables that would be generated for a source (wallpaper or blueprint):
432+
433+ ``` bash
434+ aether --show-variables ~ /wallpaper.jpg
435+ aether --show-variables " Nord" --json
436+ ```
437+
438+ ### Current Theme
439+
440+ Show the currently applied theme colors (reads from ` ~/.config/aether/theme/colors.toml ` ):
441+
442+ ``` bash
443+ aether --current-theme
444+ aether --current-theme --json
445+ ```
446+
447+ ### Preview Template
448+
449+ Preview the rendered output of a specific app template:
450+
451+ ``` bash
452+ aether --preview-template kitty ~ /wallpaper.jpg
453+ aether --preview-template alacritty " Nord" --json
454+ ```
455+
456+ ## Wallpapers
457+
458+ ### Search Wallhaven
459+
460+ Search wallhaven.cc from the command line:
461+
462+ ``` bash
463+ aether --search-wallhaven " dark forest"
464+ aether --search-wallhaven " mountains" --sorting relevance --purity 100 --page 2 --json
465+ ```
466+
467+ ** Options:**
468+
469+ | Option | Description |
470+ | --------| -------------|
471+ | ` --categories ` | Filter categories (default "111" = all) |
472+ | ` --purity ` | Purity filter (default "100" = SFW) |
473+ | ` --sorting ` | Sort by: date_added, relevance, random, views, favorites, toplist |
474+ | ` --order ` | Sort order: desc, asc |
475+ | ` --page ` | Page number |
476+ | ` --at-least ` | Minimum resolution (e.g. "1920x1080") |
477+ | ` --colors ` | Filter by color hex (without #) |
478+
479+ ### List Wallpapers
480+
481+ List local wallpapers from ` ~/Wallpapers ` :
482+
483+ ``` bash
484+ aether --list-wallpapers
485+ aether --list-wallpapers --json
486+ ```
487+
488+ ### Random Wallpaper
489+
490+ Pick a random wallpaper from the local directory:
491+
492+ ``` bash
493+ aether --random-wallpaper
494+ ```
495+
496+ ## Favorites
497+
498+ ### List Favorites
499+
500+ ``` bash
501+ aether --list-favorites
502+ aether --list-favorites --json
503+ ```
504+
505+ ### Toggle Favorite
506+
507+ ``` bash
508+ aether --toggle-favorite ~ /Wallpapers/forest.jpg
509+ aether --toggle-favorite ~ /Wallpapers/forest.jpg --type wallhaven
510+ ```
511+
512+ ### Is Favorite
513+
514+ ``` bash
515+ aether --is-favorite ~ /Wallpapers/forest.jpg
516+ ```
517+
518+ ## Remote Control
519+
520+ When Aether is running, you can control the editor in real time using bare subcommands (no ` -- ` prefix). These connect to the running instance via a Unix domain socket.
521+
522+ ``` bash
523+ aether status # show editor state
524+ aether extract ~ /wallpaper.jpg # load wallpaper into editor
525+ aether set-color 4 " #53ba97" # change a palette color
526+ aether adjust --vibrance 20 # move sidebar sliders
527+ aether set-mode pastel # change extraction mode
528+ aether toggle-light-mode # flip light/dark
529+ aether apply # apply current theme
530+ aether load-blueprint " Nord" # load blueprint into editor
531+ aether apply-blueprint " Nord" # apply blueprint directly
532+ aether set-wallpaper ~ /wall.jpg # set wallpaper path
533+ ```
534+
535+ See [ Remote Control] ( remote-control.md ) for the full IPC reference and AI integration guide.
536+
537+ ## JSON Output
538+
539+ All commands support ` --json ` for machine-readable output:
540+
541+ ``` bash
542+ aether --color-info " #7cd480" --json
543+ aether --extract-palette ~ /wallpaper.jpg --json
544+ aether status --json
545+ ```
546+
285547## Scripting Examples
286548
287549### Theme Rotation Script
0 commit comments