colours from the wallpaper through matugen
- matugen/amane.colors: a matugen template (primary, on_primary, primary_container, primary_fixed, on_surface, on_surface_variant, outline_variant, surface_container high/normal/lowest) that skwd-wall renders into ~/.config/amane/theme on every new wallpaper - theme.rs: a Theme service reads that file and shell.conf twice a second (matugen replaces its output, which a file watch can lose) and fades all ten colours together on one Animation; without a theme file the shell keeps its pink on purple - the island, the idle pill and the workspace pill draw with the theme; white overlays (chips, tracks, hover tints) stay as they are - shell.conf: cover_colors (true: the open media card and equalizer take the cover's gradient as background, accents stay the wallpaper's) and transition_ms (0 switches instantly), both applied without a restart - parse: settings() and rgb(), with a test (6 pass) - checked on the desktop with a hand-written theme file: pill, workspace pill and card recolour, cover_colors switches the card background live
This commit is contained in:
@@ -8,10 +8,28 @@ A Dynamic-Island-style media widget for Amane (Rust Wayland shell library), runn
|
||||
- **Output switcher:** moves only the shown player's audio to another device.
|
||||
- **Per-player volume** (scroll the volume chip, click to mute), set on that player's own PulseAudio/PipeWire streams, so it also works for browsers that ignore MPRIS volume.
|
||||
- **Real 10-band equalizer per player** (31 Hz to 16 kHz, ±12 dB): a PipeWire filter-chain per player, with 8 presets (Flat, Bass, Treble, Vocal, Pop, Rock, Jazz, Classic). Curves are saved per player.
|
||||
- **Background:** a diagonal gradient from the cover's own colours, darkened so white text stays readable.
|
||||
- **Background:** a diagonal gradient in the wallpaper's colours (see Colours); optionally the open card takes the song cover's colours.
|
||||
- **Opening animation:** the pill fades out, the empty shape grows, then the card fades in. Closing runs backwards. Moving the pointer off the open card closes it.
|
||||
- **Every monitor:** each monitor shows the pill. The card opens only on the monitor you click (a keybind opens it on the focused one), and only the focused monitor's pill shows live bars; the others show still bars, which keeps the cost at about one island's.
|
||||
- **Workspace pill:** top left on every monitor, that monitor's Hyprland workspaces as round numbered slots in the island's look. The focused workspace is pink, the one shown on another monitor a softer pink, empty ones dim. Click one to switch to it.
|
||||
- **Workspace pill:** top left on every monitor, that monitor's Hyprland workspaces as round numbered slots in the island's look. The focused workspace takes the accent colour, the one shown on another monitor a softer accent, empty ones dim. Click one to switch to it.
|
||||
|
||||
## Colours
|
||||
|
||||
The shell takes its colours from the wallpaper through matugen. Skwd-wall v2 runs matugen on every new wallpaper and renders `matugen/amane.colors` into `~/.config/amane/theme`; the shell reads that file twice a second and cross-fades to the new colours. Without the file it keeps its original pink on purple.
|
||||
|
||||
Register the template in Skwd-wall as a matugen integration:
|
||||
|
||||
- template: `~/.config/amane/matugen/amane.colors`
|
||||
- output: `~/.config/amane/theme`
|
||||
|
||||
The Material You scheme type is Skwd-wall's setting (`matugen.schemeType`).
|
||||
|
||||
`shell.conf` (read live, no restart):
|
||||
|
||||
```
|
||||
cover_colors = false # true: the open media card and equalizer take the song cover's colours as background
|
||||
transition_ms = 400 # how long a colour change cross-fades; 0 switches instantly
|
||||
```
|
||||
|
||||
## Layout
|
||||
|
||||
@@ -22,7 +40,10 @@ src/sound.rs per-player volume, mute, output and equalizer (pactl, pw-cli,
|
||||
src/spectrum.rs the shown player's sound as 24 levels (pw-record | cava)
|
||||
src/art.rs cover download (curl) and the palette file
|
||||
src/workspaces.rs the workspace pill, top left on every monitor
|
||||
src/theme.rs the shell's colours: the matugen theme file, shell.conf, the cross-fade
|
||||
src/parse.rs pure text parsing with unit tests, no amane dependency
|
||||
matugen/ the matugen template (amane.colors), rendered by skwd-wall into ./theme
|
||||
shell.conf settings: cover_colors, transition_ms
|
||||
island-eq saved equalizer curves (a snapshot of ~/.config/amane/island-eq)
|
||||
tools/ remote test driver and fake MPRIS players, see AGENTS.md
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user