mirror of
				https://github.com/DreamMaoMao/maomaowm.git
				synced 2025-11-03 09:01:47 -05:00 
			
		
		
		
	
		
			
	
	
		
			69 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								{ 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 ];
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								  ];
							 | 
						||
| 
								 | 
							
								}
							 |