NixOS + home-manager configs, mirrored from GitLab SaaS. gitlab.com/andreijiroh-dev/nixops-config
nix-flake nixos home-manager nixpkgs nix-flakes
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

update home-manager configs as usual

decouple configs for packages and git user config into their own
nix files and use a lot of imports there

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.dev>

+143 -115
+13 -4
flake.nix
··· 72 72 }; 73 73 }; 74 74 homeConfigurations = { 75 - gildedguy = home-manager.lib.homeManagerConfiguration { 75 + # Usage 76 + # - From GitHub: 77 + # nix run home-manager/master -- switch --flake github:andreijiroh-dev/nixops-config#stellapent-cier 78 + # - Locally: 79 + # nix run home-manager/master -- switch --flake .#stellapent-cier 80 + stellapent-cier = home-manager.lib.homeManagerConfiguration { 76 81 pkgs = nixpkgs.legacyPackages.x86_64-linux; 77 82 modules = [ 78 83 ./shared/home-manager/main.nix ··· 85 90 ]; 86 91 }; 87 92 88 - ajhalili2006 = home-manager.lib.homeManagerConfiguration { 93 + # Usage 94 + # - From GitHub: 95 + # nix run home-manager/master -- switch --flake github:andreijiroh-dev/nixops-config#plain 96 + # - Locally: 97 + # nix run home-manager/master -- switch --flake .#plain 98 + plain = home-manager.lib.homeManagerConfiguration { 89 99 modules = [ 90 100 ./shared/home-manager/main.nix 91 101 { ··· 98 108 }; 99 109 }; 100 110 101 - # this is for external users who want to reproduce my configs 102 - # as needed 111 + # This is for external users who want to reproduce my configs as needed 103 112 nixosModules = { 104 113 flatpak = ./shared/flatpak.nix; 105 114 gnupg = ./shared/gnupg.nix;
+54
shared/home-manager/git.nix
··· 1 + { pkgs, ... }: 2 + 3 + # Reference: https://mynixos.com/home-manager/options/programs.git and 4 + # https://nix-community.github.io/home-manager/options.xhtml#opt-programs.git.enable 5 + # (look for programs.git prefix) 6 + { 7 + programs.git = { 8 + enable = true; 9 + package = pkgs.gitAndTools.gitFull; 10 + lfs = { 11 + enable = true; 12 + }; 13 + userName = "Andrei Jiroh Halili"; 14 + userEmail = "ajhalili2006@andreijiroh.dev"; 15 + signing = { 16 + key = "4D5E631758CB9CC45941B1CE67BFC91B3DA12BE8"; 17 + signByDefault = true; 18 + }; 19 + aliases = { 20 + signoff = "commit --signoff"; 21 + amend = "commit -a --amend"; 22 + remotes = "remote -v"; 23 + root = "rev-parse --show-toplevel"; 24 + unstage = "restore --staged"; 25 + stats = "status"; 26 + co = "checkout"; 27 + switch-remote = "branch -u"; 28 + set-push-url = "remote set-url --push"; 29 + set-push-remote = "remote set-url --push"; 30 + }; 31 + extraConfig = { 32 + format = { 33 + signOff = true; 34 + }; 35 + init = { 36 + defaultBranch = "main"; 37 + }; 38 + 39 + # https://groups.google.com/g/binary-transparency/c/f-BI4o8HZW0 40 + transfer = { 41 + fsckobjects = true; 42 + }; 43 + fetch = { 44 + fsckobjects = true; 45 + }; 46 + receive = { 47 + fsckobjects = true; 48 + }; 49 + push = { 50 + autoSetupRemote = true; 51 + }; 52 + }; 53 + }; 54 + }
+6 -104
shared/home-manager/main.nix
··· 14 14 }; 15 15 }; 16 16 17 + imports = [ 18 + ./packages.nix 19 + ./git.nix 20 + ]; 21 + 17 22 # This value determines the Home Manager release that your configuration is 18 23 # compatible with. This helps avoid breakage when a new Home Manager release 19 24 # introduces backwards incompatible changes. ··· 23 28 # release notes. 24 29 home.stateVersion = "24.11"; # Please read the comment before changing. 25 30 26 - # The home.packages option allows you to install Nix packages into your 27 - # environment. 28 - home.packages = with pkgs; [ 29 - # # It is sometimes useful to fine-tune packages, for example, by applying 30 - # # overrides. You can do that directly here, just don't forget the 31 - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of 32 - # # fonts? 33 - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) 34 - 35 - # # You can also create simple shell scripts directly inside your 36 - # # configuration. For example, this adds a command 'my-hello' to your 37 - # # environment: 38 - # (pkgs.writeShellScriptBin "my-hello" '' 39 - # echo "Hello, ${config.home.username}!" 40 - # '') 41 - ## desktop apps ## 42 - _1password-gui 43 - firefoxpwa 44 - 45 - ## devtools ## 46 - # https://httpie.io 47 - httpie 48 - # https://devenv.sh 49 - devenv 50 - # https://cli.github.com 51 - gh 52 - glab 53 - gitlab-ci-ls 54 - fjo 55 - # bet we'll going to have a field day since Copilot is now available for free 56 - # (this is seperate from the gh copilot extension for those asking) 57 - # context: https://github.blog/news-insights/product-news/github-copilot-in-vscode-free/ 58 - github-copilot-cli 59 - # markdownlint 60 - markdownlint-cli 61 - # https://doppler.com 62 - doppler 63 - direnv 64 - shellcheck # https://funtoo.org 65 - hadolint 66 - _1password-cli 67 - keychain 68 - gnupg 69 - gpg-tui 70 - 71 - ## programming languages 72 - deno 73 - nodejs_22 74 - python313 75 - pipx 76 - pipenv 77 - 78 - ## language servers ## 79 - # nix language server - https://github.com/oxalica/nil 80 - nil 81 - # https://github.com/alesbrelih/gitlab-ci-ls 82 - gitlab-ci-ls 83 - ]; 84 - 85 31 home.sessionPath = [ 86 32 "$HOME/bin" 87 33 ]; ··· 149 95 150 96 # Let Home Manager install and manage itself. 151 97 programs.home-manager.enable = true; 152 - 153 - # let me cook with the configs, starting with git 154 - programs.git = { 155 - enable = true; 156 - package = pkgs.gitAndTools.gitFull; 157 - lfs = { 158 - enable = true; 159 - }; 160 - userName = "Andrei Jiroh Halili"; 161 - userEmail = "ajhalili2006@andreijiroh.dev"; 162 - signing = { 163 - key = "4D5E631758CB9CC45941B1CE67BFC91B3DA12BE8"; 164 - signByDefault = true; 165 - }; 166 - aliases = { 167 - signoff = "commit --signoff"; 168 - amend = "commit -a --amend"; 169 - remotes = "remote -v"; 170 - root = "rev-parse --show-toplevel"; 171 - unstage = "restore --staged"; 172 - stats = "status"; 173 - }; 174 - extraConfig = { 175 - format = { 176 - signOff = true; 177 - }; 178 - init = { 179 - defaultBranch = "main"; 180 - }; 181 - 182 - # https://groups.google.com/g/binary-transparency/c/f-BI4o8HZW0 183 - transfer = { 184 - fsckobjects = true; 185 - }; 186 - fetch = { 187 - fsckobjects = true; 188 - }; 189 - receive = { 190 - fsckobjects = true; 191 - }; 192 - push = { 193 - autoSetupRemote = true; 194 - }; 195 - }; 196 - }; 98 + 197 99 programs.bash = { 198 100 enable = true; 199 101 enableCompletion = true;
+4 -7
shared/home-manager/nest.nix
··· 1 1 { pkgs, ... }: 2 2 3 3 { 4 - # TBD 4 + imports = [ 5 + ./git.nix 6 + ./packages.nix 7 + ]; 5 8 6 9 home.stateVersion = "24.11"; 7 - 8 - home.packages = with pkgs; [ 9 - _1password-cli 10 - gh 11 - glab 12 - ]; 13 10 14 11 home.shellAliases = { 15 12 signoff = "git commit --signoff";
+66
shared/home-manager/packages.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + # The home.packages option allows you to install Nix packages into your 5 + # environment. 6 + home.packages = with pkgs; [ 7 + # # It is sometimes useful to fine-tune packages, for example, by applying 8 + # # overrides. You can do that directly here, just don't forget the 9 + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of 10 + # # fonts? 11 + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) 12 + 13 + # # You can also create simple shell scripts directly inside your 14 + # # configuration. For example, this adds a command 'my-hello' to your 15 + # # environment: 16 + # (pkgs.writeShellScriptBin "my-hello" '' 17 + # echo "Hello, ${config.home.username}!" 18 + # '') 19 + ## desktop apps ## 20 + _1password-gui 21 + firefoxpwa 22 + 23 + ## devtools ## 24 + # https://httpie.io 25 + httpie 26 + # https://devenv.sh 27 + devenv 28 + # https://cli.github.com 29 + gh 30 + glab 31 + gitlab-ci-ls 32 + fjo 33 + # bet we'll going to have a field day since Copilot is now available for free 34 + # (this is seperate from the gh copilot extension for those asking) 35 + # context: https://github.blog/news-insights/product-news/github-copilot-in-vscode-free/ 36 + github-copilot-cli 37 + # markdownlint 38 + markdownlint-cli 39 + # https://doppler.com 40 + doppler 41 + # needed for devenv 42 + direnv 43 + # https://developers.1password.com 44 + _1password-cli 45 + keychain # https://funtoo.org 46 + gnupg 47 + gpg-tui 48 + 49 + ## programming languages 50 + deno 51 + nodejs_22 52 + python313 53 + pipx 54 + pipenv 55 + 56 + # linters 57 + shellcheck 58 + hadolint 59 + 60 + ## language servers ## 61 + # nix language server - https://github.com/oxalica/nil 62 + nil 63 + # https://github.com/alesbrelih/gitlab-ci-ls 64 + gitlab-ci-ls 65 + ]; 66 + }