diff --git a/modules/home/dm/default.nix b/modules/home/dm/default.nix index 81d8ba4..2a12633 100644 --- a/modules/home/dm/default.nix +++ b/modules/home/dm/default.nix @@ -1,5 +1,74 @@ { - imports = [ - ./qtile + config, + pkgs, + lib, + osConfig, + ... +}: let + cfg = config.myConfig.dm; +in { + imports = [./qtile]; + + options.myConfig.dm.tray = { + syncthing.enable = lib.mkEnableOption ""; + networkmanager.enable = lib.mkEnableOption ""; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.tray.syncthing.enable { + assertions = [ + { + assertion = osConfig.services.syncthing.enable; + message = "Syncthing has to be enabled on the system level."; + } + ]; + + xsession.enable = osConfig.services.xserver.enable; + + systemd.user.services = { + syncthingtray = lib.mkIf cfg.tray.syncthing.enable { + Unit = { + Description = "Syncthingtray"; + Requires = ["tray.target"]; + After = ["graphical-session-pre.target" "tray.target"]; + PartOf = ["graphical-session.target"]; + }; + Service = { + ExecStart = "${pkgs.syncthingtray-minimal}/bin/syncthingtray --wait"; + }; + Install = { + WantedBy = ["graphical-session.target"]; + }; + }; + }; + }) + + (lib.mkIf cfg.tray.networkmanager.enable { + assertions = [ + { + assertion = osConfig.networking.networkmanager.enable; + message = "Networkmanager has to be enabled on the system level."; + } + ]; + + xsession.enable = osConfig.services.xserver.enable; + + systemd.user.services = { + nm-applet = lib.mkIf cfg.tray.networkmanager.enable { + Unit = { + Description = "Networkmanager-applet"; + Requires = ["tray.target"]; + After = ["graphical-session-pre.target" "tray.target"]; + PartOf = ["graphical-session.target"]; + }; + Service = { + ExecStart = "${pkgs.networkmanagerapplet}/bin/nm-applet"; + }; + Install = { + WantedBy = ["graphical-session.target"]; + }; + }; + }; + }) ]; } diff --git a/users/seb/home.nix b/users/seb/home.nix index bcf90e7..b5100fb 100644 --- a/users/seb/home.nix +++ b/users/seb/home.nix @@ -1,6 +1,9 @@ {pkgs, ...}: { myConfig = { - dm.qtile.enable = true; + dm = { + qtile.enable = true; + tray.syncthing.enable = true; + }; vscode.enable = true; shell = { bash.enable = true; @@ -45,7 +48,6 @@ hunspellDicts.de_DE hunspellDicts.en_US steam - networkmanagerapplet # Fonts (nerdfonts.override {fonts = ["JetBrainsMono"];})