1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-12-02 23:21:02 +01:00

easyeffects: Make service compatible with v8.0.x (#8192)

Fixes #8185

The upstream easyeffects project has migrated from GTK to Qt, deprecating --gapplication-service and removing DBus integration. See #8185 for more details.
Tested with version 8.0.3 and 7.2.5 , uses lib.versionOlder cfg.package.version "8.0.0" to be backwards compatible.

    Removed DBus service configuration (Type=dbus, BusName)
    Move presets and config dir from $XDG_CONFIG_HOME to $XDG_DATA_HOME (new upstream location)

Other notes
Since they have moved config directory, it will warn show warnings because of empty dirs. These warnings will also show in the service until you remove them. I dont think this is a problem and new users will not experience this.

easyeffects --version
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/output directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/output
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/output
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/irs directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/irs
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/irs
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/rnnoise directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/rnnoise
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/rnnoise
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/autoload/output directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/autoload/output
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/autoload/output
This commit is contained in:
hausken 2025-11-24 18:56:44 +01:00 committed by GitHub
parent df3eda5816
commit 125e40fa68
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 21 additions and 14 deletions

View file

@ -11,6 +11,8 @@ let
presetOpts = lib.optionalString (cfg.preset != "") "--load-preset ${cfg.preset}";
olderThan8 = lib.versionOlder cfg.package.version "8.0.0"; # This version introduces breaking changes and this check is used to stay backwards compatible
jsonFormat = pkgs.formats.json { };
presetType =
@ -31,7 +33,7 @@ let
default = { };
description = ''
List of presets to import to easyeffects.
Presets are written to input and output folder in `$XDG_CONFIG_HOME/easyeffects`.
Presets are written to input and output folder in `$XDG_DATA_HOME/easyeffects`.
Top level block (input/output) determines the folder the file is written to.
See community presets at:
@ -97,15 +99,9 @@ in
(lib.hm.assertions.assertPlatform "services.easyeffects" pkgs lib.platforms.linux)
];
# Running easyeffects will just attach itself to `gapplication` service
# at-spi2-core is to minimize `journalctl` noise of:
# "AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files"
home.packages = with pkgs; [
cfg.package
at-spi2-core
];
home.packages = with pkgs; lib.optional olderThan8 at-spi2-core ++ [ cfg.package ]; # Only include if easyeffects version is below 8.0.0
xdg.configFile = lib.mkIf (cfg.extraPresets != { }) (
xdg.dataFile = lib.mkIf (cfg.extraPresets != { }) (
lib.mapAttrs' (
k: v:
# Assuming only one of either input or output block is defined, having both in same file not seem to be supported by the application since it separates it by folder
@ -126,15 +122,26 @@ in
Install.WantedBy = [ "graphical-session.target" ];
Service = {
ExecStart = "${cfg.package}/bin/easyeffects --gapplication-service ${presetOpts}";
ExecStart =
if olderThan8 then
"${cfg.package}/bin/easyeffects --gapplication-service ${presetOpts}"
else
"${cfg.package}/bin/easyeffects --hide-window --service-mode ${presetOpts}";
ExecStop = "${cfg.package}/bin/easyeffects --quit";
Type = "dbus";
BusName = "com.github.wwmm.easyeffects";
KillMode = "mixed";
Restart = "on-failure";
RestartSec = 5;
TimeoutStopSec = 10;
};
}
// (
if olderThan8 then
{
Type = "dbus";
BusName = "com.github.wwmm.easyeffects";
}
else
{ }
);
};
};
}

View file

@ -27,6 +27,6 @@
nmt.script = ''
assertFileContent \
home-files/.config/easyeffects/input/example-preset.json "${./example-preset.json}"
home-files/.local/share/easyeffects/input/example-preset.json "${./example-preset.json}"
'';
}