Create flake.nix
This commit is contained in:
		
							
								
								
									
										48
									
								
								flake.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								flake.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| { | ||||
|   "nodes": { | ||||
|     "home-manager": { | ||||
|       "inputs": { | ||||
|         "nixpkgs": [ | ||||
|           "nixpkgs" | ||||
|         ] | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1756579987, | ||||
|         "narHash": "sha256-duCce8zGsaMsrqqOmLOsuaV1PVIw/vXWnKuLKZClsGg=", | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "rev": "99a69bdf8a3c6bf038c4121e9c4b6e99706a187a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-community", | ||||
|         "repo": "home-manager", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1756542300, | ||||
|         "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", | ||||
|         "owner": "nixos", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nixos", | ||||
|         "ref": "nixos-unstable", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "root": { | ||||
|       "inputs": { | ||||
|         "home-manager": "home-manager", | ||||
|         "nixpkgs": "nixpkgs" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "root": "root", | ||||
|   "version": 7 | ||||
| } | ||||
							
								
								
									
										46
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| { | ||||
|   description = "Home Manager configuration of j"; | ||||
|  | ||||
|   inputs = { | ||||
|     # Specify the source of Home Manager and Nixpkgs. | ||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; | ||||
|     home-manager = { | ||||
|       url = "github:nix-community/home-manager"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|   outputs = | ||||
|     { nixpkgs, home-manager, ... }: | ||||
|     let | ||||
|       system = "x86_64-linux"; | ||||
|       pkgs = nixpkgs.legacyPackages.${system}; | ||||
|     in | ||||
|     { | ||||
|       # TCS config | ||||
|       homeConfigurations."j@lenny" = home-manager.lib.homeManagerConfiguration { | ||||
|         inherit pkgs; | ||||
|  | ||||
|         # Specify your home configuration modules here, for example, | ||||
|         # the path to your home.nix. | ||||
|         modules = [ | ||||
| 		./home-manager/common.nix | ||||
| 		./home-manager/lenny.nix | ||||
| 	]; | ||||
|  | ||||
|         # Optionally use extraSpecialArgs | ||||
|         # to pass through arguments to home.nix | ||||
|       }; | ||||
|  | ||||
|       # Home | ||||
|       homeConfigurations."j" = home-manager.lib.homeManagerConfiguration { | ||||
|         inherit pkgs; | ||||
|  | ||||
|         # Specify your home configuration modules here, for example, | ||||
|         # the path to your home.nix. | ||||
|         modules = [ | ||||
| 		./home-manager/common.nix | ||||
| 	]; | ||||
|       }; | ||||
|     }; | ||||
| } | ||||
							
								
								
									
										151
									
								
								home-manager/common.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								home-manager/common.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,151 @@ | ||||
| { config, pkgs, ... }: | ||||
|  | ||||
| { | ||||
|   # Home Manager needs a bit of information about you and the paths it should | ||||
|   # manage. | ||||
|   home.username = "j"; | ||||
|   home.homeDirectory = "/home/j"; | ||||
|  | ||||
|   # This value determines the Home Manager release that your configuration is | ||||
|   # compatible with. This helps avoid breakage when a new Home Manager release | ||||
|   # introduces backwards incompatible changes. | ||||
|   # | ||||
|   # You should not change this value, even if you update Home Manager. If you do | ||||
|   # want to update the value, then make sure to first check the Home Manager | ||||
|   # release notes. | ||||
|   home.stateVersion = "25.05"; # Please read the comment before changing. | ||||
|  | ||||
|   # The home.packages option allows you to install Nix packages into your | ||||
|   # environment. | ||||
|   home.packages = with pkgs; [ | ||||
|     # Desktop | ||||
|     pavucontrol | ||||
|     wofi | ||||
|     waybar | ||||
|  | ||||
|     pkgs.nerd-fonts.fira-code | ||||
|     pkgs.nerd-fonts.monoid | ||||
|  | ||||
|     wezterm | ||||
|  | ||||
|     # Editors | ||||
|     emacs | ||||
|     neovim | ||||
|     helix | ||||
|  | ||||
|     # Utils | ||||
|     jq | ||||
|     bat # less alternative | ||||
|     eza # Better ld | ||||
|     zoxide # better cd | ||||
|     yazi # File manager | ||||
|  | ||||
|     # Shells | ||||
|     fish | ||||
|     grc # Colorizer | ||||
|     fishPlugins.grc | ||||
|     starship | ||||
|  | ||||
|     # Dev tools | ||||
|     git | ||||
|  | ||||
|     #uutils-coreutils | ||||
|  | ||||
|     # # It is sometimes useful to fine-tune packages, for example, by applying | ||||
|     # # overrides. You can do that directly here, just don't forget the | ||||
|     # # parentheses. Maybe you want to install Nerd Fonts with a limited number of | ||||
|     # # fonts? | ||||
|     # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) | ||||
|  | ||||
|     # # You can also create simple shell scripts directly inside your | ||||
|     # # configuration. For example, this adds a command 'my-hello' to your | ||||
|     # # environment: | ||||
|     # (pkgs.writeShellScriptBin "my-hello" '' | ||||
|     #   echo "Hello, ${config.home.username}!" | ||||
|     # '') | ||||
|   ]; | ||||
|  | ||||
|   # Home Manager is pretty good at managing dotfiles. The primary way to manage | ||||
|   # plain files is through 'home.file'. | ||||
|   home.file = { | ||||
|     # # Building this configuration will create a copy of 'dotfiles/screenrc' in | ||||
|     # # the Nix store. Activating the configuration will then make '~/.screenrc' a | ||||
|     # # symlink to the Nix store copy. | ||||
|     # ".screenrc".source = dotfiles/screenrc; | ||||
|  | ||||
|     # # You can also set the file content immediately. | ||||
|     # ".gradle/gradle.properties".text = '' | ||||
|     #   org.gradle.console=verbose | ||||
|     #   org.gradle.daemon.idletimeout=3600000 | ||||
|     # ''; | ||||
|   }; | ||||
|  | ||||
|   # Home Manager can also manage your environment variables through | ||||
|   # 'home.sessionVariables'. These will be explicitly sourced when using a | ||||
|   # shell provided by Home Manager. If you don't want to manage your shell | ||||
|   # through Home Manager then you have to manually source 'hm-session-vars.sh' | ||||
|   # located at either | ||||
|   # | ||||
|   #  ~/.nix-profile/etc/profile.d/hm-session-vars.sh | ||||
|   # | ||||
|   # or | ||||
|   # | ||||
|   #  ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh | ||||
|   # | ||||
|   # or | ||||
|   # | ||||
|   #  /etc/profiles/per-user/j/etc/profile.d/hm-session-vars.sh | ||||
|   # | ||||
|   home.sessionVariables = { | ||||
|     # EDITOR = "emacs"; | ||||
|     EDITOR = "nvim"; | ||||
|   }; | ||||
|  | ||||
|   # Let Home Manager install and manage itself. | ||||
|   programs.home-manager.enable = true; | ||||
|  | ||||
|   programs.eza = { | ||||
|   	enableFishIntegration = true; | ||||
| 	icons = "auto"; | ||||
| 	git = true; | ||||
| 	extraOptions = [ | ||||
| 		"--color=always" | ||||
| 		"--tree" | ||||
| 		"--level=1" | ||||
| 		"--group-directories=first" | ||||
| 		"--dereference" | ||||
| 	]; | ||||
|   }; | ||||
|  | ||||
|   programs.fish = { | ||||
|       enable = true; | ||||
|       interactiveShellInit = ''set fish_greeting ''; | ||||
|       plugins = [ | ||||
|         { name = "grc"; src = pkgs.fishPlugins.grc.src; } | ||||
|       ]; | ||||
|   }; | ||||
|  | ||||
|   programs.starship = { | ||||
|     enable = true; | ||||
|     settings = { | ||||
| 	    add_newline = false; | ||||
|     }; | ||||
|   }; | ||||
|  | ||||
|   programs.zoxide.enable = true; | ||||
|   programs.bash = { | ||||
|     enable = true; | ||||
|     initExtra = '' | ||||
|       if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] | ||||
|       then | ||||
|         shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" | ||||
|         exec ${pkgs.fish}/bin/fish $LOGIN_OPTION | ||||
|       fi | ||||
|     ''; # Launch fish on startup | ||||
|   }; | ||||
|  | ||||
|   fonts.fontconfig.enable = true; | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
							
								
								
									
										15
									
								
								home-manager/lenny.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								home-manager/lenny.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| { config, pkgs, ... }: | ||||
| { | ||||
|   home.packages = with pkgs; [ | ||||
|   	jujutsu | ||||
|   ]; | ||||
|   programs.git = { | ||||
|       enable = true; | ||||
|       userName = "Fernando Sánchez"; | ||||
|       userEmail = "f.sanchez@thechannelstore.tv"; | ||||
|       extraConfig = { | ||||
|               init.defaultBranch = "main"; | ||||
|       }; | ||||
|   }; | ||||
|  | ||||
| } | ||||
							
								
								
									
										13
									
								
								home-manager/personal.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								home-manager/personal.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| { config, pkgs, ... }: | ||||
| { | ||||
|   home.packages = with pkgs; [ ]; | ||||
|   programs.git = { | ||||
|       enable = true; | ||||
|       userName = "J. Fernando Sánchez"; | ||||
|       userEmail = "balkian@gmail.com"; | ||||
|       extraConfig = { | ||||
|               init.defaultBranch = "main"; | ||||
|       }; | ||||
|   }; | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user