diff --git a/modules/misc/numlock.nix b/modules/misc/numlock.nix new file mode 100644 index 000000000..df11f22a7 --- /dev/null +++ b/modules/misc/numlock.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.xsession.numlock; + +in + +{ + options = { + xsession.numlock.enable = mkEnableOption "Num Lock"; + }; + + config = mkIf cfg.enable { + systemd.user.services.numlockx = { + Unit = { + Description = "NumLockX"; + After = [ "graphical-session-pre.target" ]; + PartOf = [ "graphical-session.target" ]; + }; + + Service = { + Type = "oneshot"; + ExecStart = "${pkgs.numlockx}/bin/numlockx"; + }; + + Install = { + WantedBy = [ "graphical-session.target" ]; + }; + }; + }; +} diff --git a/modules/modules.nix b/modules/modules.nix index 03e048e2b..1ec06144d 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -28,6 +28,7 @@ let (loadModule ./misc/lib.nix { }) (loadModule ./misc/news.nix { }) (loadModule ./misc/nixpkgs.nix { }) + (loadModule ./misc/numlock.nix { condition = hostPlatform.isLinux; }) (loadModule ./misc/pam.nix { }) (loadModule ./misc/qt.nix { }) (loadModule ./misc/submodule-support.nix { })