Replace lib.paths with config.dotfiles.*
This commit is contained in:
		
							parent
							
								
									2073f02083
								
							
						
					
					
						commit
						9d90e3a822
					
				
							
								
								
									
										11
									
								
								default.nix
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								default.nix
									
									
									
									
									
								
							|  | @ -11,11 +11,8 @@ with lib.my; | ||||||
| 
 | 
 | ||||||
|   # Common config for all nixos machines; and to ensure the flake operates |   # Common config for all nixos machines; and to ensure the flake operates | ||||||
|   # soundly |   # soundly | ||||||
|   environment.variables.DOTFILES = findFirst pathExists dotFilesDir [ |   environment.variables.DOTFILES = config.dotfiles.dir; | ||||||
|     "${config.user.home}/.config/dotfiles" |   environment.variables.DOTFILES_BIN = config.dotfiles.binDir; | ||||||
|     "/etc/dotfiles" |  | ||||||
|   ]; |  | ||||||
|   environment.variables.DOTFILES_BIN = "$DOTFILES/bin"; |  | ||||||
| 
 | 
 | ||||||
|   # Configure nix and nixpkgs |   # Configure nix and nixpkgs | ||||||
|   environment.variables.NIXPKGS_ALLOW_UNFREE = "1"; |   environment.variables.NIXPKGS_ALLOW_UNFREE = "1"; | ||||||
|  | @ -27,8 +24,8 @@ with lib.my; | ||||||
|       package = pkgs.nixFlakes; |       package = pkgs.nixFlakes; | ||||||
|       extraOptions = "experimental-features = nix-command flakes"; |       extraOptions = "experimental-features = nix-command flakes"; | ||||||
|       nixPath = nixPathInputs ++ [ |       nixPath = nixPathInputs ++ [ | ||||||
|         "nixpkgs-overlays=${dotFilesDir}/overlays" |         "nixpkgs-overlays=${config.dotfiles.dir}/overlays" | ||||||
|         "dotfiles=${dotFilesDir}" |         "dotfiles=${config.dotfiles.dir}" | ||||||
|       ]; |       ]; | ||||||
|       binaryCaches = [ |       binaryCaches = [ | ||||||
|         "https://nix-community.cachix.org" |         "https://nix-community.cachix.org" | ||||||
|  |  | ||||||
|  | @ -1,12 +0,0 @@ | ||||||
| { self, lib, ... }: |  | ||||||
| 
 |  | ||||||
| with builtins; |  | ||||||
| with lib; |  | ||||||
| rec { |  | ||||||
|   # ... |  | ||||||
|   dotFilesDir = toString ../.; |  | ||||||
|   modulesDir  = "${dotFilesDir}/modules"; |  | ||||||
|   configDir   = "${dotFilesDir}/config"; |  | ||||||
|   binDir      = "${dotFilesDir}/bin"; |  | ||||||
|   themesDir   = "${modulesDir}/themes"; |  | ||||||
| } |  | ||||||
|  | @ -6,7 +6,7 @@ with builtins; | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let inherit (inputs) agenix; | let inherit (inputs) agenix; | ||||||
|     secretsDir = "${dotFilesDir}/hosts/${config.networking.hostName}/secrets"; |     secretsDir = "${config.dotfiles.dir}/hosts/${config.networking.hostName}/secrets"; | ||||||
|     secretsFile = "${secretsDir}/secrets.nix"; |     secretsFile = "${secretsDir}/secrets.nix"; | ||||||
| in { | in { | ||||||
|   imports = [ agenix.nixosModules.age ]; |   imports = [ agenix.nixosModules.age ]; | ||||||
|  |  | ||||||
|  | @ -21,48 +21,37 @@ in { | ||||||
|         exec ${pkgs.rofi}/bin/rofi -terminal xst -m -1 "$@" |         exec ${pkgs.rofi}/bin/rofi -terminal xst -m -1 "$@" | ||||||
|       '') |       '') | ||||||
| 
 | 
 | ||||||
|       # For rapidly test changes to rofi's stylesheets |  | ||||||
|       # (writeScriptBin "rofi-test" '' |  | ||||||
|       #   #!${stdenv.shell} |  | ||||||
|       #   themefile=$1 |  | ||||||
|       #   themename=${my.theme.name} |  | ||||||
|       #   shift |  | ||||||
|       #   exec rofi \ |  | ||||||
|       #        -theme ${themesDir}/$themename/rofi/$themefile \ |  | ||||||
|       #        "$@" |  | ||||||
|       #   '') |  | ||||||
| 
 |  | ||||||
|       # Fake rofi dmenu entries |       # Fake rofi dmenu entries | ||||||
|       (makeDesktopItem { |       (makeDesktopItem { | ||||||
|         name = "rofi-browsermenu"; |         name = "rofi-browsermenu"; | ||||||
|         desktopName = "Open Bookmark in Browser"; |         desktopName = "Open Bookmark in Browser"; | ||||||
|         icon = "bookmark-new-symbolic"; |         icon = "bookmark-new-symbolic"; | ||||||
|         exec = "$DOTFILES_BIN/rofi/browsermenu"; |         exec = "${config.dotfiles.binDir}/rofi/browsermenu"; | ||||||
|       }) |       }) | ||||||
|       (makeDesktopItem { |       (makeDesktopItem { | ||||||
|         name = "rofi-browsermenu-history"; |         name = "rofi-browsermenu-history"; | ||||||
|         desktopName = "Open Browser History"; |         desktopName = "Open Browser History"; | ||||||
|         icon = "accessories-clock"; |         icon = "accessories-clock"; | ||||||
|         exec = "$DOTFILES_BIN/rofi/browsermenu history"; |         exec = "${config.dotfiles.binDir}/rofi/browsermenu history"; | ||||||
|       }) |       }) | ||||||
|       (makeDesktopItem { |       (makeDesktopItem { | ||||||
|         name = "rofi-filemenu"; |         name = "rofi-filemenu"; | ||||||
|         desktopName = "Open Directory in Terminal"; |         desktopName = "Open Directory in Terminal"; | ||||||
|         icon = "folder"; |         icon = "folder"; | ||||||
|         exec = "$DOTFILES_BIN/rofi/filemenu"; |         exec = "${config.dotfiles.binDir}/rofi/filemenu"; | ||||||
|       }) |       }) | ||||||
|       (makeDesktopItem { |       (makeDesktopItem { | ||||||
|         name = "rofi-filemenu-scratch"; |         name = "rofi-filemenu-scratch"; | ||||||
|         desktopName = "Open Directory in Scratch Terminal"; |         desktopName = "Open Directory in Scratch Terminal"; | ||||||
|         icon = "folder"; |         icon = "folder"; | ||||||
|         exec = "$DOTFILES_BIN/rofi/filemenu -x"; |         exec = "${config.dotfiles.binDir}/rofi/filemenu -x"; | ||||||
|       }) |       }) | ||||||
| 
 | 
 | ||||||
|       (makeDesktopItem { |       (makeDesktopItem { | ||||||
|         name = "lock-display"; |         name = "lock-display"; | ||||||
|         desktopName = "Lock screen"; |         desktopName = "Lock screen"; | ||||||
|         icon = "system-lock-screen"; |         icon = "system-lock-screen"; | ||||||
|         exec = "$DOTFILES_BIN/zzz"; |         exec = "${config.dotfiles.binDir}/zzz"; | ||||||
|       }) |       }) | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.desktop.browsers.qutebrowser; | let cfg = config.modules.desktop.browsers.qutebrowser; | ||||||
|     pkg = pkgs.unstable.qutebrowser; |     pkg = pkgs.unstable.qutebrowser; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.desktop.browsers.qutebrowser = with types; { |   options.modules.desktop.browsers.qutebrowser = with types; { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.desktop.bspwm; | let cfg = config.modules.desktop.bspwm; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.desktop.bspwm = { |   options.modules.desktop.bspwm = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.desktop.media.graphics; | let cfg = config.modules.desktop.media.graphics; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.desktop.media.graphics = { |   options.modules.desktop.media.graphics = { | ||||||
|     enable         = mkBoolOpt false; |     enable         = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.desktop.media.ncmpcpp; | let cfg = config.modules.desktop.media.ncmpcpp; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.desktop.media.ncmpcpp = { |   options.modules.desktop.media.ncmpcpp = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.desktop.stumpwm; | let cfg = config.modules.desktop.stumpwm; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.desktop.stumpwm = { |   options.modules.desktop.stumpwm = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.editors.emacs; | let cfg = config.modules.editors.emacs; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.editors.emacs = { |   options.modules.editors.emacs = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -6,6 +6,18 @@ with lib.my; | ||||||
|   options = with types; { |   options = with types; { | ||||||
|     user = mkOpt attrs {}; |     user = mkOpt attrs {}; | ||||||
| 
 | 
 | ||||||
|  |     dotfiles = let t = either str path; in { | ||||||
|  |       dir = mkOpt t | ||||||
|  |         (findFirst pathExists (toString ../.) [ | ||||||
|  |           "${config.user.home}/.config/dotfiles" | ||||||
|  |           "/etc/dotfiles" | ||||||
|  |         ]); | ||||||
|  |       binDir     = mkOpt t "${config.dotfiles.dir}/bin"; | ||||||
|  |       configDir  = mkOpt t "${config.dotfiles.dir}/config"; | ||||||
|  |       modulesDir = mkOpt t "${config.dotfiles.dir}/modules"; | ||||||
|  |       themesDir  = mkOpt t "${config.dotfiles.modulesDir}/themes"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|     home = { |     home = { | ||||||
|       file       = mkOpt' attrs {} "Files to place directly in $HOME"; |       file       = mkOpt' attrs {} "Files to place directly in $HOME"; | ||||||
|       configFile = mkOpt' attrs {} "Files to place in $XDG_CONFIG_HOME"; |       configFile = mkOpt' attrs {} "Files to place in $XDG_CONFIG_HOME"; | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.services.docker; | let cfg = config.modules.services.docker; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.services.docker = { |   options.modules.services.docker = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.shell.git; | let cfg = config.modules.shell.git; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.shell.git = { |   options.modules.shell.git = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -10,6 +10,7 @@ let cfg = config.modules.shell.tmux; | ||||||
|       #!${pkgs.stdenv.shell} |       #!${pkgs.stdenv.shell} | ||||||
|       exec ${pkgs.tmux}/bin/tmux -f "$TMUX_HOME/config" "$@" |       exec ${pkgs.tmux}/bin/tmux -f "$TMUX_HOME/config" "$@" | ||||||
|     ''); |     ''); | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.shell.tmux = with types; { |   options.modules.shell.tmux = with types; { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
|  | @ -3,6 +3,7 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.shell.zsh; | let cfg = config.modules.shell.zsh; | ||||||
|  |     configDir = config.dotfiles.configDir; | ||||||
| in { | in { | ||||||
|   options.modules.shell.zsh = with types; { |   options.modules.shell.zsh = with types; { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue