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.

Dedouple home-manager config from home.{username,homeDirectory}

+201 -172
+4
hosts/stellapent-cier/configuration.nix
··· 95 95 home-manager.useUserPackages = true; 96 96 home-manager.useGlobalPkgs = true; 97 97 home-manager.users.gildedguy = (import ./users/gildedguy.nix); 98 + programs.home-manager.enable = true; # allow home-manager to manage itself 98 99 99 100 # Install firefox. 100 101 programs.firefox.enable = true; ··· 109 110 btop 110 111 htop 111 112 google-chrome 113 + direnv 112 114 ]; 113 115 114 116 # Some programs need SUID wrappers, can be configured further or are 115 117 # started in user sessions. 116 118 programs.mtr.enable = true; 119 + 120 + # enable gpg-agent with SSH support 117 121 programs.gnupg.agent = { 118 122 enable = true; 119 123 enableSSHSupport = true;
+4 -172
hosts/stellapent-cier/users/gildedguy.nix
··· 1 1 { config, pkgs, lib, ... }: 2 2 3 - let 4 - vscExts = (import ../../../shared/vscode/extensions.nix) { 5 - pkgs = pkgs; 6 - lib = lib; 7 - }; 8 - #extList = lib.attrsets.mapAttrsToList (name: value: value) vscExts; 9 - in 10 - with pkgs; 11 3 { 12 - # https://fnordig.de/til/nix/home-manager-allow-unfree.html 13 - nixpkgs = { 14 - config = { 15 - allowUnfree = true; 16 - # https://github.com/nix-community/home-manager/issues/2942 17 - allowUnfreePredicate = (_: true); 18 - }; 19 - }; 4 + imports = [ 5 + ../../../shared/home-manager/main.nix 6 + ]; 20 7 21 - # Home Manager needs a bit of information about you and the paths it should 22 - # manage. Also don't ask how we got here on the roleplaying part. 23 8 home.username = "gildedguy"; 24 9 home.homeDirectory = "/home/gildedguy"; 25 - 26 - # This value determines the Home Manager release that your configuration is 27 - # compatible with. This helps avoid breakage when a new Home Manager release 28 - # introduces backwards incompatible changes. 29 - # 30 - # You should not change this value, even if you update Home Manager. If you do 31 - # want to update the value, then make sure to first check the Home Manager 32 - # release notes. 33 - home.stateVersion = "24.11"; # Please read the comment before changing. 34 - 35 - # The home.packages option allows you to install Nix packages into your 36 - # environment. 37 - home.packages = with pkgs; [ 38 - # # Adds the 'hello' command to your environment. It prints a friendly 39 - # # "Hello, world!" when run. 40 - # pkgs.hello 41 - 42 - # # It is sometimes useful to fine-tune packages, for example, by applying 43 - # # overrides. You can do that directly here, just don't forget the 44 - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of 45 - # # fonts? 46 - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) 47 - 48 - # # You can also create simple shell scripts directly inside your 49 - # # configuration. For example, this adds a command 'my-hello' to your 50 - # # environment: 51 - # (pkgs.writeShellScriptBin "my-hello" '' 52 - # echo "Hello, ${config.home.username}!" 53 - # '') 54 - 55 - ## devtools ## 56 - # https://httpie.io 57 - httpie 58 - # https://devenv.sh 59 - devenv 60 - # https://cli.github.com 61 - gh 62 - # bet we'll going to have a field day since Copilot is now available for free 63 - # (this is seperate from the gh copilot extension for those asking) 64 - # context: https://github.blog/news-insights/product-news/github-copilot-in-vscode-free/ 65 - github-copilot-cli 66 - # markdownlint 67 - markdownlint-cli 68 - # https://doppler.com 69 - doppler 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 - home.sessionPath = [ 86 - "$HOME/bin" 87 - ]; 88 - 89 - # Home Manager is pretty good at managing dotfiles. The primary way to manage 90 - # plain files is through 'home.file'. 91 - home.file = { 92 - # # Building this configuration will create a copy of 'dotfiles/screenrc' in 93 - # # the Nix store. Activating the configuration will then make '~/.screenrc' a 94 - # # symlink to the Nix store copy. 95 - # ".screenrc".source = dotfiles/screenrc; 96 - 97 - # # You can also set the file content immediately. 98 - # ".gradle/gradle.properties".text = '' 99 - # org.gradle.console=verbose 100 - # org.gradle.daemon.idletimeout=3600000 101 - # ''; 102 - }; 103 - 104 - # Home Manager can also manage your environment variables through 105 - # 'home.sessionVariables'. These will be explicitly sourced when using a 106 - # shell provided by Home Manager. If you don't want to manage your shell 107 - # through Home Manager then you have to manually source 'hm-session-vars.sh' 108 - # located at either 109 - # 110 - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh 111 - # 112 - # or 113 - # 114 - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh 115 - # 116 - # or 117 - # 118 - # /etc/profiles/per-user/gildedguy/etc/profile.d/hm-session-vars.sh 119 - # 120 - home.sessionVariables = { 121 - EDITOR = "nano"; 122 - NIXOS_ALLOW_UNFREE = "1"; # for impure builds 123 - GIT_EDITOR = "code --wait"; 124 - VISUAL = "code --wait"; 125 - DOCKER_BUILDKIT = "1"; 126 - }; 127 - 128 - # Let Home Manager install and manage itself. 129 - programs.home-manager.enable = true; 130 - 131 - # let me cook with the configs, starting with git 132 - programs.git = { 133 - enable = true; 134 - package = pkgs.gitAndTools.gitFull; 135 - lfs = { 136 - enable = true; 137 - }; 138 - userName = "Andrei Jiroh Halili"; 139 - userEmail = "ajhalili2006@andreijiroh.dev"; 140 - aliases = { 141 - signoff = "commit --signoff"; 142 - amend = "commit -a --amend"; 143 - remotes = "remote -v"; 144 - root = "rev-parse --show-toplevel"; 145 - unstage = "restore --staged"; 146 - stats = "status"; 147 - }; 148 - extraConfig = { 149 - format = { 150 - signOff = true; 151 - }; 152 - init = { 153 - defaultBranch = "main"; 154 - }; 155 - 156 - # https://groups.google.com/g/binary-transparency/c/f-BI4o8HZW0 157 - transfer = { 158 - fsckobjects = true; 159 - }; 160 - fetch = { 161 - fsckobjects = true; 162 - }; 163 - receive = { 164 - fsckobjects = true; 165 - }; 166 - push = { 167 - autoSetupRemote = true; 168 - }; 169 - }; 170 - }; 171 - 172 - programs.vscode = { 173 - enable = true; 174 - package = pkgs.vscode; 175 - enableExtensionUpdateCheck = true; 176 - mutableExtensionsDir = true; 177 - }; 178 - } 10 + }
+193
shared/home-manager/main.nix
··· 1 + # This is the meta configuration for my dotfiles with home-manager, except 2 + # some home.{username,userDirectory} configs to ensure portability between 3 + # hosts 4 + 5 + { config, pkgs, lib, ... }: 6 + 7 + { 8 + # https://fnordig.de/til/nix/home-manager-allow-unfree.html 9 + nixpkgs = { 10 + config = { 11 + allowUnfree = true; 12 + # https://github.com/nix-community/home-manager/issues/2942 13 + allowUnfreePredicate = (_: true); 14 + }; 15 + }; 16 + 17 + # This value determines the Home Manager release that your configuration is 18 + # compatible with. This helps avoid breakage when a new Home Manager release 19 + # introduces backwards incompatible changes. 20 + # 21 + # You should not change this value, even if you update Home Manager. If you do 22 + # want to update the value, then make sure to first check the Home Manager 23 + # release notes. 24 + home.stateVersion = "24.11"; # Please read the comment before changing. 25 + 26 + # The home.packages option allows you to install Nix packages into your 27 + # environment. 28 + home.packages = with pkgs; [ 29 + # # Adds the 'hello' command to your environment. It prints a friendly 30 + # # "Hello, world!" when run. 31 + # pkgs.hello 32 + 33 + # # It is sometimes useful to fine-tune packages, for example, by applying 34 + # # overrides. You can do that directly here, just don't forget the 35 + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of 36 + # # fonts? 37 + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) 38 + 39 + # # You can also create simple shell scripts directly inside your 40 + # # configuration. For example, this adds a command 'my-hello' to your 41 + # # environment: 42 + # (pkgs.writeShellScriptBin "my-hello" '' 43 + # echo "Hello, ${config.home.username}!" 44 + # '') 45 + 46 + ## devtools ## 47 + # https://httpie.io 48 + httpie 49 + # https://devenv.sh 50 + devenv 51 + # https://cli.github.com 52 + gh 53 + # bet we'll going to have a field day since Copilot is now available for free 54 + # (this is seperate from the gh copilot extension for those asking) 55 + # context: https://github.blog/news-insights/product-news/github-copilot-in-vscode-free/ 56 + github-copilot-cli 57 + # markdownlint 58 + markdownlint-cli 59 + # https://doppler.com 60 + doppler 61 + direnv 62 + shellcheck 63 + hadolint 64 + 65 + ## programming languages 66 + deno 67 + nodejs_22 68 + python313 69 + pipx 70 + pipenv 71 + 72 + ## language servers ## 73 + # nix language server - https://github.com/oxalica/nil 74 + nil 75 + # https://github.com/alesbrelih/gitlab-ci-ls 76 + gitlab-ci-ls 77 + ]; 78 + 79 + home.sessionPath = [ 80 + "${config.home.homeDirectory}/bin" 81 + ]; 82 + 83 + # Home Manager is pretty good at managing dotfiles. The primary way to manage 84 + # plain files is through 'home.file'. 85 + home.file = { 86 + # # Building this configuration will create a copy of 'dotfiles/screenrc' in 87 + # # the Nix store. Activating the configuration will then make '~/.screenrc' a 88 + # # symlink to the Nix store copy. 89 + # ".screenrc".source = dotfiles/screenrc; 90 + 91 + # # You can also set the file content immediately. 92 + # ".gradle/gradle.properties".text = '' 93 + # org.gradle.console=verbose 94 + # org.gradle.daemon.idletimeout=3600000 95 + # ''; 96 + }; 97 + 98 + # Home Manager can also manage your environment variables through 99 + # 'home.sessionVariables'. These will be explicitly sourced when using a 100 + # shell provided by Home Manager. If you don't want to manage your shell 101 + # through Home Manager then you have to manually source 'hm-session-vars.sh' 102 + # located at either 103 + # 104 + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh 105 + # 106 + # or 107 + # 108 + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh 109 + # 110 + # or 111 + # 112 + # /etc/profiles/per-user/gildedguy/etc/profile.d/hm-session-vars.sh 113 + # 114 + home.sessionVariables = { 115 + EDITOR = "nano"; 116 + NIXOS_ALLOW_UNFREE = "1"; # for impure builds 117 + GIT_EDITOR = "code --wait"; 118 + VISUAL = "code --wait"; 119 + DOCKER_BUILDKIT = "1"; 120 + }; 121 + 122 + # Let Home Manager install and manage itself. 123 + programs.home-manager.enable = true; 124 + 125 + # let me cook with the configs, starting with git 126 + programs.git = { 127 + enable = true; 128 + package = pkgs.gitAndTools.gitFull; 129 + lfs = { 130 + enable = true; 131 + }; 132 + userName = "Andrei Jiroh Halili"; 133 + userEmail = "ajhalili2006@andreijiroh.dev"; 134 + aliases = { 135 + signoff = "commit --signoff"; 136 + amend = "commit -a --amend"; 137 + remotes = "remote -v"; 138 + root = "rev-parse --show-toplevel"; 139 + unstage = "restore --staged"; 140 + stats = "status"; 141 + }; 142 + extraConfig = { 143 + format = { 144 + signOff = true; 145 + }; 146 + init = { 147 + defaultBranch = "main"; 148 + }; 149 + 150 + # https://groups.google.com/g/binary-transparency/c/f-BI4o8HZW0 151 + transfer = { 152 + fsckobjects = true; 153 + }; 154 + fetch = { 155 + fsckobjects = true; 156 + }; 157 + receive = { 158 + fsckobjects = true; 159 + }; 160 + push = { 161 + autoSetupRemote = true; 162 + }; 163 + 164 + 165 + }; 166 + }; 167 + 168 + programs.vscode = { 169 + enable = true; 170 + package = pkgs.vscode; 171 + enableExtensionUpdateCheck = true; 172 + mutableExtensionsDir = true; 173 + # userSettings = { 174 + # "nix.enableLanguageServer" = true; 175 + # "nix.serverPath" = "nil"; 176 + # "window.customTitleBarVisibility" = "auto"; 177 + # "window.titleBarStyle" = "custom"; 178 + # "window.menuBarVisibility" = "classic"; 179 + # "redhat.telemetry.enabled" = true; 180 + # "github.copilot.editor.enableAutoCompletions" = false; 181 + # "github.copilot.chat.followUps" = "always"; 182 + # "github.copilot.chat.terminalChatLocation" = "terminal"; 183 + # "git.confirmSync" = false; 184 + # "microsoft-authentication.implementation" = "msal"; 185 + # "workbench.colorTheme" = "GitHub Dark Colorblind (Beta)"; 186 + # "workbench.iconTheme" = "material-icon-theme"; 187 + # "workbench.productIconTheme" = "material-product-icons"; 188 + # }; 189 + # We're importing what's generated from nix4vscode here as a workaround 190 + # for now. 191 + #extensions = lib.attrsets.mapAttrsToList (_: v: v) vscExts; 192 + }; 193 + }