feat: add nixos module
This commit is contained in:
68
nix/nixos-modules.nix
Normal file
68
nix/nixos-modules.nix
Normal file
@@ -0,0 +1,68 @@
|
||||
{ inputs, self }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.programs.maomaowm;
|
||||
mmsg = lib.types.submodule {
|
||||
options = {
|
||||
enable = lib.mkEnableOption "Enable mmsg, the ipc for maomaowm";
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = inputs.mmsg.packages.${pkgs.system}.mmsg;
|
||||
description = "The mmsg package to use";
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
programs.maomaowm = {
|
||||
enable = lib.mkEnableOption "maomaowm, a wayland compositor based on dwl";
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
default = self.packages.${pkgs.system}.maomaowm;
|
||||
description = "The maomaowm package to use";
|
||||
};
|
||||
mmsg = lib.mkOption {
|
||||
type = mmsg;
|
||||
default = {
|
||||
enable = true;
|
||||
};
|
||||
description = "Options for mmsg, the ipc for maomaowm";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
xdg.portal = {
|
||||
enable = lib.mkDefault true;
|
||||
|
||||
wlr.enable = lib.mkDefault true;
|
||||
|
||||
configPackages = [ cfg.package ];
|
||||
};
|
||||
|
||||
security.polkit.enable = lib.mkDefault true;
|
||||
|
||||
programs.xwayland.enable = lib.mkDefault true;
|
||||
|
||||
services = {
|
||||
displayManager.sessionPackages = [ cfg.package ];
|
||||
|
||||
graphical-desktop.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
})
|
||||
|
||||
(lib.mkIf cfg.mmsg.enable {
|
||||
environment.systemPackages = [ cfg.mmsg.package ];
|
||||
})
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user