diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b922114a0..a5e943bed 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -136,6 +136,8 @@ /modules/programs/zsh/prezto.nix @NickHu +/modules/services/caffeine.nix @uvNikita + /modules/services/cbatticon.nix @pmiddend /modules/services/clipmenu.nix @DamienCassou diff --git a/modules/misc/news.nix b/modules/misc/news.nix index 3e5d8d529..92e716b47 100644 --- a/modules/misc/news.nix +++ b/modules/misc/news.nix @@ -1720,6 +1720,14 @@ in A new module is available: 'programs.gh'. ''; } + + { + time = "2020-11-01T11:17:02+00:00"; + condition = hostPlatform.isLinux; + message = '' + A new module is available: 'services.caffeine'. + ''; + } ]; }; } diff --git a/modules/modules.nix b/modules/modules.nix index 26e6d14b2..75145e487 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -132,6 +132,7 @@ let (loadModule ./programs/zsh.nix { }) (loadModule ./programs/zsh/prezto.nix { }) (loadModule ./services/blueman-applet.nix { }) + (loadModule ./services/caffeine.nix { condition = hostPlatform.isLinux; }) (loadModule ./services/cbatticon.nix { condition = hostPlatform.isLinux; }) (loadModule ./services/clipmenu.nix { condition = hostPlatform.isLinux; }) (loadModule ./services/compton.nix { }) diff --git a/modules/services/caffeine.nix b/modules/services/caffeine.nix new file mode 100644 index 000000000..bb24a0e05 --- /dev/null +++ b/modules/services/caffeine.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.caffeine; + +in { + meta.maintainers = [ maintainers.uvnikita ]; + + options = { + services.caffeine = { enable = mkEnableOption "Caffeine service"; }; + }; + + config = mkIf cfg.enable { + systemd.user.services.caffeine = { + Unit = { Description = "caffeine"; }; + + Install = { WantedBy = [ "graphical-session.target" ]; }; + + Service = { + Restart = "on-failure"; + PrivateTmp = true; + ProtectSystem = "full"; + ProtectHome = "yes"; + Type = "exec"; + Slice = "session.slice"; + ExecStart = "${pkgs.caffeine-ng}/bin/caffeine"; + }; + }; + }; +}