Add systemd service ordering dependencies to prevent EasyEffects from
starting before the Wayland compositor is ready.
**Problem:** EasyEffects would crash during login with "Failed to create
wl_display (No such file or directory)" if started before the Wayland
display server was fully initialized.
**Solution:** Declaring the "After" property ensures EasyEffects waits
for the graphical session to be fully ready. The "PartOf" properly stops
EasyEffects when logging out. Got the tip from
https://github.com/wwmm/easyeffects/issues/1310.
Tested on NixOS 25.11 (Xantusia, 20251223.76701a1) and Home Manager 25.11
(0999ed8) with GNOME 49 on Wayland.
Since PR #8099, the module sets `$SSH_AUTH_SOCK` through shells' options
for interactive shell initialization instead of
`home.sessionVariablesExtra`. The replacement was not faithful, however,
since `home.sessionVariablesExtra` is sourced also in non-interactive
shells. With this commit, the shells' profile options (where
`home.sessionVariablesExtra` is sourced) are used to set
`$SSH_AUTH_SOCK`.
Fixes#8129.
The `herbstclient` alias in the generated `autostart` made it impossible
to use bash functions.
This makes the `herbstclient` alias optional by adding an extra
`herbstclientAlias` option on the herbstluftwm configuration. The new
option defaults to `false` as to not confuse newcomers to the
herbstluftwm module, which is not a breaking change because it was only
an optimization.
The defaultEditor option sets {env}`EDITOR` however strictly speaking
{env}`EDITOR` is intended for editors that are fully compatible with
teletype terminals (ex: `ed` or `vi`'s `ex` mode).
The {env}`VISUAL variable is intended for modern "visual mode"
terminal editors (ex: `vi` or `emacs`).
Technically speaking editors that are assigned to {env}`EDITOR` should
be configured to operate in teletype compatible mode (see `vi -e` and
`vim -e`).
We don't do this currently because for most users this would be
unintuitive behavior when a script or program mistakenly checks
{env}`EDITOR` instead of first checking {env}`VISUAL`.
In the future it may be worthwhile to introduce an additional option to
these modules to configure {env}`EDITOR` in a strictly conforming manner
(i.e. using the teletype/`ex` mode flags or unsetting {env}`EDITOR`
entirely).
Related Issue: #8314
Signed-off-by: Jacob Abel <jacobabel@nullpo.dev>
If snixembed is enabled and you try to use the waybar tray the two tools
conflict with eachother and often waybar's tray will not show any icons.
This adds a warning about it, as the problem can be difficult to
diagnose.
With swayidle one can configure two different kinds of hooks:
- Idle timeouts are executed after the session has been idle for a
specific amount of time.
- Events are executed when systemd notifies us that for example the
user session is locked or that the device is about to suspend.
While not obvious, there is a significant difference between how these
two kinds are configured: there can be several timeouts with separate
commands to be executed, but each event can only be specified once. If
an event is specified multiple times, then the last command wins.
This can be very easy to miss in swayidle's documentation. Furthermore,
because the config is a list of `{ event = "..."; command = "..."; }`
attrset, we double down on this confusion and make it seem like having
multiple handlers for an event was actually supported.
Fix this by converting from a list of "event" submodules to an attrset
where the key is the event name and the value is the command to be
executed. This makes it impossible to specify multiple commands for a
single event by accident.
If a user _does_ want to have multiple commands executed on any event
they can for example use `pkgs.writeShellScript` and manually chain the
commands in that script.
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
* easyeffects: Fix service hanging on system shutdown
* Make systemd take dependencies automatically from dbus service instead of setting them manually
* Add TimeoutStopSpec for 10 seconds
Adds the ability for the auto-upgrade service to update a Nix flake
instead of Nix channels.
This is controlled by a new `useFlake` boolean option. When enabled, the
service will run `nix flake update` in the directory specified by the
`flakeDir` option.
`flakeDir` defaults to the standard Home Manager configuration directory
(`~/.config/home-manager`), making this feature work out-of-the-box for
most users. The path is passed to the upgrade script via an environment
variable in the systemd service unit.