From 8154dc023f9d2a0f657b5f2e8e94d59eb7e05f41 Mon Sep 17 00:00:00 2001 From: seraphim <18ycm9tx@anonaddy.me> Date: Tue, 18 Aug 2026 18:46:52 +0700 Subject: wallust+matugen. Normal color theme for the system --- foot/.config/foot/foot.ini | 2 +- matugen/.config/matugen/config.toml | 10 ++++++ matugen/.config/matugen/templates/niri.kdl | 6 ++++ niri/.config/niri/apply-colors.sh | 40 ++++++++++++++++++++++ niri/.config/niri/config.kdl | 3 ++ niri/.config/niri/theme-switcher.sh | 10 +++--- .../etc/portage/package.accept_keywords/pywal16 | 1 - portage/etc/portage/package.use/pywal16 | 1 - portage/etc/portage/package.use/zz-autounmask | 3 -- portage/var/lib/portage/world | 5 ++- wallust/.config/wallust/templates/dbg.ini | 4 +++ .../wallust/templates/foot-colors-custom.ini | 20 +++++++++++ wallust/.config/wallust/templates/shell-colors.sh | 20 +++++++++++ wallust/.config/wallust/wallust.toml | 4 +++ waybar/.config/waybar/config.jsonc | 4 +-- waybar/.config/waybar/style.css | 13 +++---- waybar/.config/waybar/theme-dark.css | 2 ++ waybar/.config/waybar/theme-light.css | 2 ++ waybar/.config/waybar/theme.css | 1 + zshrc/.zshrc | 28 +++++++++++++-- 20 files changed, 155 insertions(+), 24 deletions(-) create mode 100644 matugen/.config/matugen/config.toml create mode 100644 matugen/.config/matugen/templates/niri.kdl create mode 100755 niri/.config/niri/apply-colors.sh delete mode 100644 portage/etc/portage/package.accept_keywords/pywal16 delete mode 100644 portage/etc/portage/package.use/pywal16 create mode 100644 wallust/.config/wallust/templates/dbg.ini create mode 100644 wallust/.config/wallust/templates/foot-colors-custom.ini create mode 100644 wallust/.config/wallust/templates/shell-colors.sh create mode 100644 wallust/.config/wallust/wallust.toml create mode 100644 waybar/.config/waybar/theme-dark.css create mode 100644 waybar/.config/waybar/theme-light.css create mode 120000 waybar/.config/waybar/theme.css diff --git a/foot/.config/foot/foot.ini b/foot/.config/foot/foot.ini index d3b8d81..fd03722 100644 --- a/foot/.config/foot/foot.ini +++ b/foot/.config/foot/foot.ini @@ -1,5 +1,5 @@ [main] -include=~/.cache/wal/colors-foot.ini +include=~/.cache/wallust/foot-theme.ini font=JetBrainsMono Nerd Font:size=12 pad=2x0 diff --git a/matugen/.config/matugen/config.toml b/matugen/.config/matugen/config.toml new file mode 100644 index 0000000..338672f --- /dev/null +++ b/matugen/.config/matugen/config.toml @@ -0,0 +1,10 @@ +# matugen config — generates Material You / Material Design 3 colors. +# matugen is installed via portage (x11-misc/matugen). + +[config] +# Disable caching so the -m light/dark mode flag is always respected. +caching = false + +[templates.niri] +input_path = '~/.config/matugen/templates/niri.kdl' +output_path = '~/.cache/matugen/theme.kdl' diff --git a/matugen/.config/matugen/templates/niri.kdl b/matugen/.config/matugen/templates/niri.kdl new file mode 100644 index 0000000..afc1f04 --- /dev/null +++ b/matugen/.config/matugen/templates/niri.kdl @@ -0,0 +1,6 @@ +layout { + focus-ring { + active-color "{{ colors.primary.default.hex }}" + inactive-color "{{ colors.outline.default.hex }}" + } +} diff --git a/niri/.config/niri/apply-colors.sh b/niri/.config/niri/apply-colors.sh new file mode 100755 index 0000000..5383ed7 --- /dev/null +++ b/niri/.config/niri/apply-colors.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Apply a wallpaper and generate colors with wallust (16-color palette) + matugen (Material You / M3). +# Usage: apply-colors.sh [light|dark] +# Called by theme-switcher.sh and the waybar random-wallpaper click. + +set -euo pipefail + +IMG="${1:-}" +MODE="${2:-auto}" + +if [ -z "$IMG" ] || [ ! -f "$IMG" ]; then + echo "usage: $0 [light|dark]" >&2 + exit 1 +fi + +# wallust: classic 16-color palette (foot, btop, ...) +case "$MODE" in + light) wallust run --palette light "$IMG" ;; + dark) wallust run --palette dark "$IMG" ;; + *) wallust run "$IMG" ;; +esac + +# foot needs bare RRGGBB, not #RRGGBB — strip the leading '#' +sed -i 's/#\([0-9a-fA-F]\)/\1/g' ~/.cache/wallust/foot-theme.ini 2>/dev/null || true + +# matugen: Material You / M3 colors (niri focus ring, ...) +# --prefer is required for non-interactive runs (multiple source colors). +case "$MODE" in + light) matugen image "$IMG" -m "light" --prefer saturation ;; + dark) matugen image "$IMG" -m "dark" --prefer saturation ;; + *) matugen image "$IMG" --prefer saturation ;; +esac + +# set the wallpaper +awww img "$IMG" + +# reload consumers +killall -SIGUSR2 waybar 2>/dev/null || true +killall -USR1 foot 2>/dev/null || true +niri msg action reload-config 2>/dev/null || true diff --git a/niri/.config/niri/config.kdl b/niri/.config/niri/config.kdl index 6f573ca..a5640d8 100644 --- a/niri/.config/niri/config.kdl +++ b/niri/.config/niri/config.kdl @@ -1,3 +1,6 @@ +// Material You / Material Design 3 colors, generated by matugen (see theme-switcher.sh / apply-colors.sh) +include optional=true "/home/seraphim/.cache/matugen/theme.kdl" + spawn-at-startup "xrdb" "-merge" "/home/seraphim/.Xresources" spawn-at-startup "vicinae" "server" spawn-at-startup "gentoo-pipewire-launcher" diff --git a/niri/.config/niri/theme-switcher.sh b/niri/.config/niri/theme-switcher.sh index 0ab25af..665aab8 100755 --- a/niri/.config/niri/theme-switcher.sh +++ b/niri/.config/niri/theme-switcher.sh @@ -9,6 +9,7 @@ LIGHT_BLUR_WALLPAPER="$HOME/Pictures/wallpapers/day-blur.jpg" DARK_BLUR_WALLPAPER="$HOME/Pictures/wallpapers/night-blur.jpg" STATE_FILE="/tmp/current_theme_state" +SCRIPT_DIR="$(cd "$(dirname "$(realpath "$0")")" && pwd)" while true; do HOUR=$(date +%H) @@ -24,23 +25,20 @@ while true; do if [ "$CURRENT_STATE" != "$TARGET_STATE" ]; then if [ "$TARGET_STATE" = "light" ]; then - wal -n -l -i "$LIGHT_WALLPAPER" - awww img "$LIGHT_WALLPAPER" + sh "$SCRIPT_DIR/apply-colors.sh" "$LIGHT_WALLPAPER" light awww -n backdrop img "$LIGHT_BLUR_WALLPAPER" # Сообщаем системе, что включилась светлая тема darkman set light else - wal -n -i "$DARK_WALLPAPER" - awww img "$DARK_WALLPAPER" + sh "$SCRIPT_DIR/apply-colors.sh" "$DARK_WALLPAPER" dark awww -n backdrop img "$DARK_BLUR_WALLPAPER" # Сообщаем системе, что включилась тёмная тема darkman set dark fi - killall -SIGUSR2 waybar - killall -USR1 foot + ln -sf "theme-${TARGET_STATE}.css" "$HOME/dotfiles-gentoo/waybar/.config/waybar/theme.css" echo "$TARGET_STATE" >"$STATE_FILE" fi diff --git a/portage/etc/portage/package.accept_keywords/pywal16 b/portage/etc/portage/package.accept_keywords/pywal16 deleted file mode 100644 index 4a3f43e..0000000 --- a/portage/etc/portage/package.accept_keywords/pywal16 +++ /dev/null @@ -1 +0,0 @@ -x11-misc/pywal16 ~amd64 diff --git a/portage/etc/portage/package.use/pywal16 b/portage/etc/portage/package.use/pywal16 deleted file mode 100644 index 0ff79d1..0000000 --- a/portage/etc/portage/package.use/pywal16 +++ /dev/null @@ -1 +0,0 @@ -x11-misc/pywal16 python_targets_python3_12 diff --git a/portage/etc/portage/package.use/zz-autounmask b/portage/etc/portage/package.use/zz-autounmask index 63fca63..4b6f92b 100644 --- a/portage/etc/portage/package.use/zz-autounmask +++ b/portage/etc/portage/package.use/zz-autounmask @@ -441,9 +441,6 @@ >=dev-python/flit-core-3.12.0 python_targets_python3_12 # required by dev-python/setuptools-scm-10.1.2::gentoo[-test] # required by dev-python/setuptools-83.0.0::gentoo -# required by x11-misc/pywal16-3.7.2::guru -# required by x11-misc/pywal16 (argument) ->=dev-python/vcs-versioning-2.2.2 python_targets_python3_12 # required by dev-python/jaraco-text-4.2.0::gentoo # required by dev-python/setuptools-83.0.0::gentoo # required by dev-python/vcs-versioning-2.2.2::gentoo diff --git a/portage/var/lib/portage/world b/portage/var/lib/portage/world index a0a2265..52a01f6 100644 --- a/portage/var/lib/portage/world +++ b/portage/var/lib/portage/world @@ -6,6 +6,8 @@ app-admin/stow app-admin/sudo app-admin/testdisk app-editors/emacs +app-editors/fresh +app-editors/micro app-editors/neovim app-editors/vis app-eselect/eselect-repository @@ -21,6 +23,7 @@ app-shells/ohmyzsh app-shells/starship app-shells/zsh app-shells/zsh-autocomplete +dev-util/android-tools dev-util/opencode-bin dev-vcs/git games-util/steam-launcher @@ -80,6 +83,6 @@ www-client/librewolf www-client/mullvad-browser-bin x11-apps/xrdb x11-drivers/nvidia-drivers -x11-misc/pywal16 +x11-misc/matugen x11-misc/sddm x11-misc/silent-sddm-theme diff --git a/wallust/.config/wallust/templates/dbg.ini b/wallust/.config/wallust/templates/dbg.ini new file mode 100644 index 0000000..edc18bb --- /dev/null +++ b/wallust/.config/wallust/templates/dbg.ini @@ -0,0 +1,4 @@ +plain={{background}} +strip={{background.strip}} +hex={{background.hex}} +rgb={{background.rgb}} diff --git a/wallust/.config/wallust/templates/foot-colors-custom.ini b/wallust/.config/wallust/templates/foot-colors-custom.ini new file mode 100644 index 0000000..0a2fb2b --- /dev/null +++ b/wallust/.config/wallust/templates/foot-colors-custom.ini @@ -0,0 +1,20 @@ +# wallust foot template — outputs #rrggbb, the '#' is stripped by apply-colors.sh +[colors] +background={{background}} +foreground={{foreground}} +regular0={{color0}} +regular1={{color1}} +regular2={{color2}} +regular3={{color3}} +regular4={{color4}} +regular5={{color5}} +regular6={{color6}} +regular7={{color7}} +bright0={{color8}} +bright1={{color9}} +bright2={{color10}} +bright3={{color11}} +bright4={{color12}} +bright5={{color13}} +bright6={{color14}} +bright7={{color15}} diff --git a/wallust/.config/wallust/templates/shell-colors.sh b/wallust/.config/wallust/templates/shell-colors.sh new file mode 100644 index 0000000..3cfb24d --- /dev/null +++ b/wallust/.config/wallust/templates/shell-colors.sh @@ -0,0 +1,20 @@ +# CUSTOM wallust shell template +color0={{color0}} +color1={{color1}} +color2={{color2}} +color3={{color3}} +color4={{color4}} +color5={{color5}} +color6={{color6}} +color7={{color7}} +color8={{color8}} +color9={{color9}} +color10={{color10}} +color11={{color11}} +color12={{color12}} +color13={{color13}} +color14={{color14}} +color15={{color15}} +background={{background}} +foreground={{foreground}} +cursor={{cursor}} diff --git a/wallust/.config/wallust/wallust.toml b/wallust/.config/wallust/wallust.toml new file mode 100644 index 0000000..995b5f8 --- /dev/null +++ b/wallust/.config/wallust/wallust.toml @@ -0,0 +1,4 @@ +backend = "fastresize" + +[templates] +foottheme = { template = "foot-colors-custom.ini", target = "~/.cache/wallust/foot-theme.ini" } diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc index 892da84..eedc711 100644 --- a/waybar/.config/waybar/config.jsonc +++ b/waybar/.config/waybar/config.jsonc @@ -81,7 +81,7 @@ "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "tooltip-format": "Playing at {volume}%", "scroll-step": 5, - "format-muted": "vol muted", + "format-muted": "vol muted", "format-icons": { "headphone": "", "default": ["", "", ""] @@ -108,6 +108,6 @@ "tooltip": true, "format": "{}", "return-type": "json", - "on-click": "sh -c 'wal -i $(find ~/Pictures/wallpapers -type f | shuf -n 1) 2>/dev/null || wal -r'" + "on-click": "sh -c '~/.config/niri/apply-colors.sh \"$(find ~/Pictures/wallpapers -type f | shuf -n 1)\"'" } } diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css index 2c4e35d..cf8dbee 100644 --- a/waybar/.config/waybar/style.css +++ b/waybar/.config/waybar/style.css @@ -1,4 +1,4 @@ -@import "../../.cache/wal/colors-waybar.css"; +@import "/home/seraphim/dotfiles-gentoo/waybar/.config/waybar/theme.css"; @define-color bg @background; @define-color fg @foreground; @@ -17,7 +17,7 @@ window#waybar { #waybar > box { border-radius: 0px; - border-bottom: 1.5px solid rgba(255, 255, 255, 0.1); + border-bottom: 1.5px solid alpha(@foreground, 0.12); margin: 0px 0px 2px 0px; background-color: @background; box-shadow: 0 1px 2px rgba(0, 0, 0, 1); @@ -52,7 +52,7 @@ window#waybar { #workspaces button.active { color: @background; - background-color: #df6124; + background-color: @foreground; padding: 0px 4px; margin: 4px 2px; opacity: 1.0; @@ -146,20 +146,21 @@ tooltip label { @keyframes blink { to { - color: #4a4a4a; + color: #999999; } } #pulseaudio.warning, #memory.warning, #cpu.warning { - color: #e3c1b1; + color: alpha(@foreground, 0.65); background-color: @background; } #pulseaudio.critical, #memory.critical, #cpu.critical { - color: #df6124; + color: @foreground; background-color: @background; + font-weight: 900; } diff --git a/waybar/.config/waybar/theme-dark.css b/waybar/.config/waybar/theme-dark.css new file mode 100644 index 0000000..d88a91d --- /dev/null +++ b/waybar/.config/waybar/theme-dark.css @@ -0,0 +1,2 @@ +@define-color background #111111; +@define-color foreground #fafafa; diff --git a/waybar/.config/waybar/theme-light.css b/waybar/.config/waybar/theme-light.css new file mode 100644 index 0000000..b757ab6 --- /dev/null +++ b/waybar/.config/waybar/theme-light.css @@ -0,0 +1,2 @@ +@define-color background #fafafa; +@define-color foreground #111111; diff --git a/waybar/.config/waybar/theme.css b/waybar/.config/waybar/theme.css new file mode 120000 index 0000000..aea3c67 --- /dev/null +++ b/waybar/.config/waybar/theme.css @@ -0,0 +1 @@ +theme-dark.css \ No newline at end of file diff --git a/zshrc/.zshrc b/zshrc/.zshrc index be47620..13469c7 100644 --- a/zshrc/.zshrc +++ b/zshrc/.zshrc @@ -112,8 +112,30 @@ alias ls="eza -lha --icons" alias ll="eza -lh --icons" alias la="eza -lha --icons" alias tree="eza --tree --icons" -eval "$(starship init zsh)" - - +# In your shell startup file +wallust() { + command wallust run "$@" + # Regenerate btop theme after wallust runs + cat > ~/.config/btop/themes/wallust.theme << EOF +main_bg="#$(grep -m1 '^color0' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +main_fg="#$(grep -m1 '^color15' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +title_bg="#$(grep -m1 '^color0' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +title_fg="#$(grep -m1 '^color15' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +highlight_bg="#$(grep -m1 '^color1' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +highlight_fg="#$(grep -m1 '^color15' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +progress_fg="#$(grep -m1 '^color2' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +progress_bg="#$(grep -m1 '^color0' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +graph_bg="#$(grep -m1 '^color0' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +graph_fg="#$(grep -m1 '^color1' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +box_bg="#$(grep -m1 '^color0' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +box_fg="#$(grep -m1 '^color7' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +misc_fg="#$(grep -m1 '^color7' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +selected_fg="#$(grep -m1 '^color0' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +selected_bg="#$(grep -m1 '^color4' ~/.cache/wallust/colors.sh | grep -oE '#[0-9a-fA-F]{6}')" +EOF +} +# Walllust installation +export PATH="$HOME/.cargo/bin:$PATH" # Swing Music installation export PATH="/home/seraphim/.local/bin:$PATH" +eval "$(starship init zsh)" -- cgit v1.2.3