auroradb7ac21
matugen: theme foot from the wallpaper, drop pywal16
+42 −14
8 files changed
- M .config/foot/foot.ini +1 −1
- M .config/matugen/config.toml +5 −2
- A .config/matugen/templates/foot.ini +27 −0
- M .config/quickshell/aurora/Wall.qml +4 −5
- M .local/bin/setwall +1 −1
- M README.md +3 −3
- M packages/aur.txt +0 −1
- M packages/desktop.txt +1 −1
| @@ -1,4 +1,4 @@ | |||
| 1 | − | include=~/.cache/wal/colors-foot-dark.ini | |
| 1 | + | include=~/.cache/matugen/foot.ini | |
| 2 | 2 | ||
| 3 | 3 | [main] | |
| 4 | 4 | font=JetBrains Mono Nerd Font:size=11 | |
| @@ -1,6 +1,5 @@ | |||
| 1 | 1 | # matugen: Material colours for everything that is UI. aurora (Wall.qml) runs it on every wallpaper | |
| 2 | − | # change, with the scheme type / contrast from its settings. pywal16 still runs too, only for the terminal. | |
| 3 | − | # Outputs go to ~/.cache/matugen/, like pywal's ~/.cache/wal/. | |
| 2 | + | # change, with the scheme type / contrast from its settings. Outputs go to ~/.cache/matugen/. | |
| 4 | 3 | [config] | |
| 5 | 4 | ||
| 6 | 5 | [templates.aurora] | |
| @@ -32,3 +31,7 @@ output_path = '~/.cache/matugen/gtk.css' | |||
| 32 | 31 | [templates.qt] | |
| 33 | 32 | input_path = '~/.config/matugen/templates/qt-colors.conf' | |
| 34 | 33 | output_path = '~/.cache/matugen/qt-colors.conf' | |
| 34 | + | ||
| 35 | + | [templates.foot] | |
| 36 | + | input_path = '~/.config/matugen/templates/foot.ini' | |
| 37 | + | output_path = '~/.cache/matugen/foot.ini' | |
| @@ -0,0 +1,27 @@ | |||
| 1 | + | # Auto-generated by matugen, do not edit, edit the template instead. Included by foot.ini (new terminals only). | |
| 2 | + | # ANSI colours come from the wallpaper (pywal-like): Material primary/secondary/tertiary at fixed lightness. | |
| 3 | + | [colors-dark] | |
| 4 | + | background={{colors.surface.default.hex_stripped | set_lightness: 5.0}} | |
| 5 | + | foreground={{colors.on_surface.default.hex_stripped}} | |
| 6 | + | cursor={{colors.surface.default.hex_stripped | set_lightness: 5.0}} {{colors.primary.default.hex_stripped}} | |
| 7 | + | selection-background={{colors.primary_container.default.hex_stripped}} | |
| 8 | + | selection-foreground={{colors.on_primary_container.default.hex_stripped}} | |
| 9 | + | urls={{colors.tertiary.default.hex_stripped}} | |
| 10 | + | ||
| 11 | + | regular0={{colors.surface.default.hex_stripped | set_lightness: 14.0}} | |
| 12 | + | regular1={{colors.primary_container.default.hex_stripped}} | |
| 13 | + | regular2={{colors.tertiary_container.default.hex_stripped | set_lightness: 58.0}} | |
| 14 | + | regular3={{colors.tertiary.default.hex_stripped | set_lightness: 58.0}} | |
| 15 | + | regular4={{colors.secondary.default.hex_stripped | set_lightness: 58.0}} | |
| 16 | + | regular5={{colors.inverse_primary.default.hex_stripped | set_lightness: 58.0}} | |
| 17 | + | regular6={{colors.secondary_container.default.hex_stripped | set_lightness: 58.0}} | |
| 18 | + | regular7={{colors.on_surface_variant.default.hex_stripped}} | |
| 19 | + | ||
| 20 | + | bright0={{colors.outline.default.hex_stripped}} | |
| 21 | + | bright1={{colors.primary_container.default.hex_stripped | set_lightness: 74.0}} | |
| 22 | + | bright2={{colors.tertiary_container.default.hex_stripped | set_lightness: 74.0}} | |
| 23 | + | bright3={{colors.tertiary.default.hex_stripped | set_lightness: 74.0}} | |
| 24 | + | bright4={{colors.secondary.default.hex_stripped | set_lightness: 74.0}} | |
| 25 | + | bright5={{colors.inverse_primary.default.hex_stripped | set_lightness: 74.0}} | |
| 26 | + | bright6={{colors.secondary_container.default.hex_stripped | set_lightness: 74.0}} | |
| 27 | + | bright7={{colors.on_surface.default.hex_stripped}} | |
| @@ -4,8 +4,8 @@ import Quickshell | |||
| 4 | 4 | import Quickshell.Io | |
| 5 | 5 | ||
| 6 | 6 | // Wallpapers: folder listing, cached thumbnails, and applying them. aurora owns the wallpaper: | |
| 7 | − | // apply() writes hyprpaper.conf, switches hyprpaper live, runs matugen (UI colours, Theme then recolours itself) | |
| 8 | − | // and pywal16 (terminal colours only). recolor() re-runs just matugen when the scheme/contrast setting changes. | |
| 7 | + | // apply() writes hyprpaper.conf, switches hyprpaper live, runs matugen (all colours, terminal included; Theme then | |
| 8 | + | // recolours itself). recolor() re-runs just matugen when the scheme/contrast setting changes. | |
| 9 | 9 | // ~/.local/bin/setwall is only a CLI front-end for the IPC calls (wallrandom / wall / wallset). | |
| 10 | 10 | Singleton { | |
| 11 | 11 | id: root | |
| @@ -48,15 +48,14 @@ Singleton { | |||
| 48 | 48 | 'printf "splash = false\\nwallpaper {\\n monitor =\\n path = %s\\n}\\n" "$p" > "$c"; ' + | |
| 49 | 49 | 'if pgrep -x hyprpaper >/dev/null; then hyprctl hyprpaper wallpaper ",$p"; ' + | |
| 50 | 50 | 'else hyprctl dispatch \'hl.dsp.exec_cmd("hyprpaper")\'; fi; ' + | |
| 51 | − | 'matugen image "$p" -m dark -t "$3" --contrast="$4" --prefer saturation -q; ' + | |
| 52 | − | 'wal -i "$p" -n -q' | |
| 51 | + | 'matugen image "$p" -m dark -t "$3" --contrast="$4" --prefer saturation -q' | |
| 53 | 52 | function apply(path) { | |
| 54 | 53 | if (!path) return | |
| 55 | 54 | current = path | |
| 56 | 55 | Quickshell.execDetached(["sh", "-c", applyJob, "sh", path, conf, Settings.matuScheme, String(Settings.matuContrast)]) | |
| 57 | 56 | } | |
| 58 | 57 | ||
| 59 | − | // matugen only (UI colours). --prefer: v4 otherwise asks on stdin when the image has several source colours. | |
| 58 | + | // matugen only. --prefer: v4 otherwise asks on stdin when the image has several source colours. | |
| 60 | 59 | // With "missing", only if there is no output yet (fresh install). | |
| 61 | 60 | readonly property string matuJob: | |
| 62 | 61 | '[ "$4" = missing ] && [ -f "$HOME/.cache/matugen/aurora.json" ] && exit 0; ' + | |
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | #!/bin/sh | |
| 2 | 2 | # Set the wallpaper through aurora. aurora owns the wallpaper: it writes hyprpaper.conf, | |
| 3 | − | # switches hyprpaper live and runs matugen (UI colours) + pywal (terminal colours). This is just the CLI front-end for its IPC. | |
| 3 | + | # switches hyprpaper live and runs matugen (colours). This is just the CLI front-end for its IPC. | |
| 4 | 4 | # | |
| 5 | 5 | # setwall random wallpaper from the folder selected in aurora's picker | |
| 6 | 6 | # setwall -m open (toggle) aurora's wallpaper picker | |
| @@ -3,7 +3,7 @@ | |||
| 3 | 3 |  | |
| 4 | 4 | ||
| 5 | 5 | My desktop: **Arch Linux + Hyprland** (Lua config) + **aurora**, a custom Quickshell shell (bar, panel, | |
| 6 | − | notifications, OSD, dock), themed live from the wallpaper with **matugen** (pywal16 for the terminal) and deployed with **GNU stow**. | |
| 6 | + | notifications, OSD, dock), themed live from the wallpaper with **matugen** and deployed with **GNU stow**. | |
| 7 | 7 | ||
| 8 | 8 | ## aurora | |
| 9 | 9 | One shell instead of waybar, dunst, wlogout, fuzzel and a pile of scripts. Everything below is themed from the | |
| @@ -57,7 +57,7 @@ You don't need the installer for that. Browse the repo and copy what you like, f | |||
| 57 | 57 | - `.config/quickshell/aurora/`: the shell (needs Quickshell; it reads its colours from matugen's `~/.cache/matugen/aurora.json`) | |
| 58 | 58 | - `.config/hypr/`: Hyprland in the new Lua config format | |
| 59 | 59 | - `.local/bin/`: small scripts (`setwall`, `brictl`, `sysact`, `tms`, ...) | |
| 60 | − | - `.config/matugen/templates/`: matugen templates for aurora, Hyprland, hyprlock, GTK, Qt, zathura, cava | |
| 60 | + | - `.config/matugen/templates/`: matugen templates for aurora, Hyprland, hyprlock, GTK, Qt, foot, zathura, cava | |
| 61 | 61 | ||
| 62 | 62 | ## Installing (fresh Arch only) | |
| 63 | 63 | ```bash | |
| @@ -99,7 +99,7 @@ The lists live in `packages/*.txt`: one package per line, `#` for comments, and | |||
| 99 | 99 | |---|---| | |
| 100 | 100 | | WM | Hyprland (Lua config), hypridle, hyprlock, hyprpaper | | |
| 101 | 101 | | Shell / bar | aurora (Quickshell) | | |
| 102 | − | | Theming | matugen: picking a wallpaper in aurora (or `setwall`) re-themes everything (GTK via adw-gtk3, Qt via qt6ct); accent = the wallpaper's own colour, near-black surfaces. pywal16 colours the terminal | | |
| 102 | + | | Theming | matugen: picking a wallpaper in aurora (or `setwall`) re-themes everything (GTK via adw-gtk3, Qt via qt6ct); accent = the wallpaper's own colour, near-black surfaces. The terminal (foot) too, with ANSI colours tinted toward the wallpaper | | |
| 103 | 103 | | Terminal / shell | foot, zsh | | |
| 104 | 104 | | Editor | Neovim (LazyVim) | | |
| 105 | 105 | | Launcher / menus | aurora's runner (`aurora-run`, also a dmenu replacement for scripts) | | |
| @@ -3,7 +3,6 @@ envycontrol | |||
| 3 | 3 | htop-vim | |
| 4 | 4 | hyprshade-git | |
| 5 | 5 | jmtpfs | |
| 6 | − | python-pywal16-git | |
| 7 | 6 | yaru-icon-theme | |
| 8 | 7 | zsh-fast-syntax-highlighting-git | |
| 9 | 8 | claude-code | |
| @@ -12,7 +12,7 @@ xdg-desktop-portal-hyprland | |||
| 12 | 12 | xdg-desktop-portal-gtk | |
| 13 | 13 | qt6-wayland | |
| 14 | 14 | ||
| 15 | − | # Theming: matugen = UI colours (aurora, hypr, gtk, qt), pywal16 (aur.txt) = terminal only | |
| 15 | + | # Theming: matugen = all colours (aurora, hypr, gtk, qt, foot, ...) | |
| 16 | 16 | matugen | |
| 17 | 17 | adw-gtk-theme | |
| 18 | 18 | qt5ct | |