22017988c6
GitOrigin-RevId: c777cdf5c564015d5f63b09cc93bef4178b19b01
46 lines
1.6 KiB
Nix
46 lines
1.6 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
with lib;
|
|
let
|
|
runXdgAutostart = config.services.xserver.desktopManager.runXdgAutostartIfNone;
|
|
in
|
|
{
|
|
options = {
|
|
services.xserver.desktopManager.runXdgAutostartIfNone = mkOption {
|
|
type = types.bool;
|
|
default = false;
|
|
description = ''
|
|
Whether to run XDG autostart files for sessions without a desktop manager
|
|
(with only a window manager), these sessions usually don't handle XDG
|
|
autostart files by default.
|
|
|
|
Some services like <option>i18n.inputMethod</option> and
|
|
<option>service.earlyoom</option> use XDG autostart files to start.
|
|
If this option is not set to <literal>true</literal> and you are using
|
|
a window manager without a desktop manager, you need to manually start
|
|
them or running <package>dex</package> somewhere.
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = mkMerge [
|
|
{
|
|
services.xserver.desktopManager.session = [
|
|
{
|
|
name = "none";
|
|
start = optionalString runXdgAutostart ''
|
|
/run/current-system/systemd/bin/systemctl --user start xdg-autostart-if-no-desktop-manager.target
|
|
'';
|
|
}
|
|
];
|
|
}
|
|
(mkIf runXdgAutostart {
|
|
systemd.user.targets.xdg-autostart-if-no-desktop-manager = {
|
|
description = "Run XDG autostart files";
|
|
# From `plasma-workspace`, `share/systemd/user/plasma-workspace@.target`.
|
|
requires = [ "xdg-desktop-autostart.target" "graphical-session.target" ];
|
|
before = [ "xdg-desktop-autostart.target" "graphical-session.target" ];
|
|
bindsTo = [ "graphical-session.target" ];
|
|
};
|
|
})
|
|
];
|
|
}
|