easyeffects: add global settings and paired presets - #9716
Open
Tenshock wants to merge 3 commits into
Open
Conversation
9 tasks
Tenshock
force-pushed
the
update-easyeffects
branch
from
July 30, 2026 10:28
763056e to
62a1946
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add
services.easyeffects.settingsfor declaratively managing global EasyEffects 8 settings.Settings are grouped by KConfig section and written to EasyEffects' mutable database during Home Manager activation using
kwriteconfig6. Boolean, integer, float, string, and path values are supported. Setting a value tonulldeletes the corresponding key.Using activation instead of
xdg.configFilekeeps the database writable by EasyEffects. An assertion rejects non-empty settings when using EasyEffects versions older than 8.0.0.Also allow one
services.easyeffects.extraPresets.<name>entry to contain bothinputandoutputblocks. Each block is generated as a separate preset file in its corresponding directory:Existing one-sided input or output presets remain compatible.
Finally, extend
services.easyeffects.presetwith a structured form for selecting different startup presets for the input and output pipelines:The existing string form remains supported. The structured form requires EasyEffects 8.0.0 or later and must select at least one pipeline; an empty string leaves that pipeline unchanged. After the service starts, Home Manager sends the pipeline-specific load commands to EasyEffects' local service socket.
Tests cover:
null.Checklist
Change is backwards compatible.
Code formatted with
nix fmtornix-shell -A dev --run treefmt.Code tested through
nix build .#test-alland targeted
nix run .#tests -- easyeffects.Test cases updated/added.
Commit messages are formatted like