52 lines
		
	
	
	
		
			993 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
	
		
			993 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  config,
							 | 
						||
| 
								 | 
							
								  pkgs,
							 | 
						||
| 
								 | 
							
								  lib,
							 | 
						||
| 
								 | 
							
								  inputs,
							 | 
						||
| 
								 | 
							
								  ...
							 | 
						||
| 
								 | 
							
								}:
							 | 
						||
| 
								 | 
							
								let
							 | 
						||
| 
								 | 
							
								  inherit (inputs) nixpkgs emacs-overlay spacemacs;
							 | 
						||
| 
								 | 
							
								  inherit (pkgs) system;
							 | 
						||
| 
								 | 
							
								  cfg = config.david.programs.spacemacs;
							 | 
						||
| 
								 | 
							
								  pkgs' = import nixpkgs {
							 | 
						||
| 
								 | 
							
								    inherit system;
							 | 
						||
| 
								 | 
							
								    overlays = [ emacs-overlay.overlays.default ];
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								in
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  options = {
							 | 
						||
| 
								 | 
							
								    david.programs.spacemacs = {
							 | 
						||
| 
								 | 
							
								      enable = lib.mkEnableOption "spacemacs";
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  config = lib.mkIf cfg.enable {
							 | 
						||
| 
								 | 
							
								    stylix.targets.emacs.enable = false;
							 | 
						||
| 
								 | 
							
								    xdg.configFile = {
							 | 
						||
| 
								 | 
							
								      emacs = {
							 | 
						||
| 
								 | 
							
								        source = "${spacemacs}";
							 | 
						||
| 
								 | 
							
								        recursive = true;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    programs.emacs = {
							 | 
						||
| 
								 | 
							
								      enable = true;
							 | 
						||
| 
								 | 
							
								      package =
							 | 
						||
| 
								 | 
							
								        with pkgs';
							 | 
						||
| 
								 | 
							
								        (emacsPackagesFor emacs-pgtk).emacsWithPackages (epkgs: [
							 | 
						||
| 
								 | 
							
								          git
							 | 
						||
| 
								 | 
							
								          gnutar
							 | 
						||
| 
								 | 
							
								          ripgrep
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    services.emacs = {
							 | 
						||
| 
								 | 
							
								      client = {
							 | 
						||
| 
								 | 
							
								        enable = true;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								      defaultEditor = false;
							 | 
						||
| 
								 | 
							
								      enable = true;
							 | 
						||
| 
								 | 
							
								      socketActivation.enable = true;
							 | 
						||
| 
								 | 
							
								      startWithUserSession = true;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 |