my nixos/home-manager configuration
1
fork

Configure Feed

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

feat: use well defined topics for modules

+347 -428
-1
flake.nix
··· 149 149 }; 150 150 151 151 modules = [ 152 - ./home-manager/common.nix 153 152 ./home-manager/modules 154 153 opnix.homeManagerModules.default 155 154 ]
+11 -72
home-manager/clever-cloud.nix
··· 1 1 { 2 - config, 3 - pkgs, 4 2 user, 5 3 ... 6 4 }: 7 5 8 6 { 9 - home.file = { 10 - ".ssh/master.pub".enable = true; 11 - ".ssh/clever-cloud.pub".enable = true; 12 - }; 7 + home.username = user.name; 8 + home.homeDirectory = user.homeDirectory; 13 9 14 - home.packages = with pkgs; [ 15 - discord 16 - slack 17 - ]; 18 - 19 - programs = { 20 - onepassword-secrets.enable = true; 21 - 22 - # cli 23 - git = { 10 + modules = { 11 + cli.enable = true; 12 + dev.enable = true; 13 + security.enable = true; 14 + desktop = { 24 15 enable = true; 25 - scopes = [ 26 - { 27 - when = [ 28 - "${user.homeDirectory}/clever-cloud" 29 - ]; 30 - config = { 31 - user.email = "${user.name}.${user.family}@clever-cloud.com"; 32 - user.signingKey = config.home.file.".ssh/clever-cloud.pub".text; 33 - }; 34 - } 35 - ]; 16 + device = "laptop"; 36 17 }; 37 - jujutsu = { 38 - enable = true; 39 - scopes = [ 40 - { 41 - when = [ 42 - "${user.homeDirectory}/clever-cloud" 43 - ]; 44 - config = { 45 - user.email = "${user.name}.${user.family}@clever-cloud.com"; 46 - signing.key = config.home.file.".ssh/clever-cloud.pub".text; 47 - revset-aliases = { 48 - "immutable_heads()" = "builtin_immutable_heads() ~ remote_bookmarks(remote=glob:\"clever-*\")"; 49 - }; 50 - }; 51 - } 52 - ]; 53 - }; 54 - codex.enable = true; 18 + }; 55 19 56 - # gui 57 - ghostty.enable = true; 58 - zen-browser.enable = true; 59 - zed-editor.enable = true; 20 + home.stateVersion = "25.05"; 60 21 61 - # desktop manager 62 - gnome-shell = { 63 - enable = true; 64 - extensionsPackages = [ 65 - pkgs.gnomeExtensions.appindicator 66 - ]; 67 - experimentalFeatures = [ 68 - "scale-monitor-framebuffer" 69 - "xwayland-native-scaling" 70 - ]; 71 - favoriteApps = [ 72 - "zen-twilight.desktop" 73 - "dev.zed.Zed.desktop" 74 - "com.mitchellh.ghostty.desktop" 75 - "discord.desktop" 76 - ]; 77 - showBatteryPercentage = true; 78 - }; 79 - }; 80 - 81 - xdg.configFile."tombi/config.toml" = { 82 - source = config.lib.file.mkOutOfStoreSymlink "${user.configDirectory}/tombi/config.toml"; 83 - }; 22 + programs.home-manager.enable = true; 84 23 }
-61
home-manager/common.nix
··· 1 - { 2 - pkgs, 3 - lib, 4 - user, 5 - ... 6 - }: 7 - 8 - { 9 - home.username = user.name; 10 - home.homeDirectory = user.homeDirectory; 11 - 12 - home.stateVersion = "25.05"; 13 - 14 - home.file = { 15 - ".ssh/master.pub" = { 16 - enable = lib.mkDefault false; 17 - text = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFPO/hKBeNBJVbq8yPL13KRBLCn+gpXyNtAs1UyvyP9Z"; 18 - }; 19 - 20 - ".ssh/clever-cloud.pub" = { 21 - enable = lib.mkDefault false; 22 - text = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID1krg5H1ekYVacZPCKvYARdBy4JT5M+fGo2EFvJD0n4"; 23 - }; 24 - }; 25 - 26 - home.packages = with pkgs; [ 27 - # cli 28 - tealdeer 29 - 30 - # gui 31 - nautilus # gnome file manager 32 - evince # gnome document viewer 33 - loupe # gnome image viewer 34 - gnome-disk-utility 35 - gnome-calculator 36 - libreoffice-fresh 37 - resources 38 - vlc 39 - ]; 40 - 41 - programs = { 42 - # cli 43 - ssh.enable = true; 44 - git.enable = true; 45 - bat.enable = true; 46 - jujutsu.enable = true; 47 - direnv.enable = true; 48 - neovim.enable = true; 49 - nushell.enable = true; 50 - carapace = { 51 - enable = true; 52 - # TODO: remove when https://github.com/nix-community/home-manager/issues/7517 53 - # is resolved 54 - package = pkgs.unstable.carapace; 55 - }; 56 - starship.enable = true; 57 - nix-your-shell.enable = true; 58 - }; 59 - 60 - programs.home-manager.enable = true; 61 - }
+12 -72
home-manager/desktop.nix
··· 1 1 { 2 - config, 3 - pkgs, 4 2 user, 5 3 ... 6 4 }: 7 5 8 6 { 9 - home.file = { 10 - ".ssh/master.pub".enable = true; 11 - ".ssh/clever-cloud.pub".enable = true; 12 - }; 13 - 14 - home.packages = with pkgs; [ 15 - discord 16 - signal-desktop 17 - slack 18 - ]; 19 - 20 - programs = { 21 - onepassword-secrets.enable = true; 22 - 23 - # cli 24 - git = { 25 - enable = true; 26 - scopes = [ 27 - { 28 - when = [ 29 - "${user.homeDirectory}/clever-cloud" 30 - ]; 31 - config = { 32 - user.email = "${user.name}.${user.family}@clever-cloud.com"; 33 - user.signingKey = config.home.file.".ssh/clever-cloud.pub".text; 34 - }; 35 - } 36 - ]; 37 - }; 38 - jujutsu = { 39 - enable = true; 40 - scopes = [ 41 - { 42 - when = [ 43 - "${user.homeDirectory}/clever-cloud" 44 - ]; 45 - config = { 46 - user.email = "${user.name}.${user.family}@clever-cloud.com"; 47 - signing.key = config.home.file.".ssh/clever-cloud.pub".text; 48 - revset-aliases = { 49 - "immutable_heads()" = "builtin_immutable_heads() ~ remote_bookmarks(remote=glob:\"clever-*\")"; 50 - }; 51 - }; 52 - } 53 - ]; 54 - }; 55 - codex.enable = true; 7 + home.username = user.name; 8 + home.homeDirectory = user.homeDirectory; 56 9 57 - # gui 58 - ghostty.enable = true; 59 - prism-launcher.enable = true; 60 - zen-browser.enable = true; 61 - zed-editor.enable = true; 62 - 63 - # desktop manager 64 - gnome-shell = { 10 + modules = { 11 + cli.enable = true; 12 + dev.enable = true; 13 + security.enable = true; 14 + desktop = { 65 15 enable = true; 66 - extensionsPackages = [ 67 - pkgs.gnomeExtensions.appindicator 68 - ]; 69 - favoriteApps = [ 70 - "zen-twilight.desktop" 71 - "dev.zed.Zed.desktop" 72 - "com.mitchellh.ghostty.desktop" 73 - "discord.desktop" 74 - ]; 16 + device = "desktop"; 75 17 }; 18 + gaming.enable = true; 19 + backup.enable = true; 76 20 }; 77 21 78 - services = { 79 - syncthing.enable = true; 80 - }; 22 + home.stateVersion = "25.05"; 81 23 82 - xdg.configFile."tombi/config.toml" = { 83 - source = config.lib.file.mkOutOfStoreSymlink "${user.configDirectory}/tombi/config.toml"; 84 - }; 24 + programs.home-manager.enable = true; 85 25 }
+12 -77
home-manager/laptop.nix
··· 1 1 { 2 - config, 3 - pkgs, 4 2 user, 5 3 ... 6 4 }: 7 5 8 6 { 9 - home.file = { 10 - ".ssh/master.pub".enable = true; 11 - ".ssh/clever-cloud.pub".enable = true; 12 - }; 7 + home.username = user.name; 8 + home.homeDirectory = user.homeDirectory; 13 9 14 - home.packages = with pkgs; [ 15 - discord 16 - signal-desktop 17 - slack 18 - ]; 19 - 20 - programs = { 21 - onepassword-secrets.enable = true; 22 - 23 - # cli 24 - git = { 10 + modules = { 11 + cli.enable = true; 12 + dev.enable = true; 13 + security.enable = true; 14 + desktop = { 25 15 enable = true; 26 - scopes = [ 27 - { 28 - when = [ 29 - "${user.homeDirectory}/clever-cloud" 30 - ]; 31 - config = { 32 - user.email = "${user.name}.${user.family}@clever-cloud.com"; 33 - user.signingKey = config.home.file.".ssh/clever-cloud.pub".text; 34 - }; 35 - } 36 - ]; 16 + device = "laptop"; 37 17 }; 38 - jujutsu = { 39 - enable = true; 40 - scopes = [ 41 - { 42 - when = [ 43 - "${user.homeDirectory}/clever-cloud" 44 - ]; 45 - config = { 46 - user.email = "${user.name}.${user.family}@clever-cloud.com"; 47 - signing.key = config.home.file.".ssh/clever-cloud.pub".text; 48 - revset-aliases = { 49 - "immutable_heads()" = "builtin_immutable_heads() ~ remote_bookmarks(remote=glob:\"clever-*\")"; 50 - }; 51 - }; 52 - } 53 - ]; 54 - }; 55 - codex.enable = true; 56 - 57 - # gui 58 - ghostty.enable = true; 59 - prism-launcher.enable = true; 60 - zen-browser.enable = true; 61 - zed-editor.enable = true; 62 - 63 - # desktop manager 64 - gnome-shell = { 65 - enable = true; 66 - extensionsPackages = [ 67 - pkgs.gnomeExtensions.appindicator 68 - ]; 69 - experimentalFeatures = [ 70 - "scale-monitor-framebuffer" 71 - "xwayland-native-scaling" 72 - ]; 73 - favoriteApps = [ 74 - "zen-twilight.desktop" 75 - "dev.zed.Zed.desktop" 76 - "com.mitchellh.ghostty.desktop" 77 - "discord.desktop" 78 - ]; 79 - showBatteryPercentage = true; 80 - }; 18 + gaming.enable = true; 19 + backup.enable = true; 81 20 }; 82 21 83 - services = { 84 - syncthing.enable = true; 85 - }; 22 + home.stateVersion = "25.05"; 86 23 87 - xdg.configFile."tombi/config.toml" = { 88 - source = config.lib.file.mkOutOfStoreSymlink "${user.configDirectory}/tombi/config.toml"; 89 - }; 24 + programs.home-manager.enable = true; 90 25 }
+25
home-manager/modules/backup/default.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: 6 + let 7 + cfg = config.modules.backup; 8 + 9 + moduleNames = builtins.attrNames (builtins.readDir ./.); 10 + modules = builtins.map (name: ./. + ("/" + name)) moduleNames; 11 + filterOut = module: modules: builtins.filter (module': module' != module) modules; 12 + in 13 + { 14 + imports = filterOut ./default.nix modules; 15 + 16 + options.modules.backup = { 17 + enable = lib.mkEnableOption "backup"; 18 + }; 19 + 20 + config = lib.mkIf cfg.enable { 21 + services = { 22 + syncthing.enable = true; 23 + }; 24 + }; 25 + }
-16
home-manager/modules/bat.nix
··· 1 - { 2 - config, 3 - lib, 4 - ... 5 - }: 6 - 7 - let 8 - cfg = config.programs.bat; 9 - in 10 - { 11 - config = lib.mkIf cfg.enable { 12 - home.shellAliases = { 13 - cat = "bat"; 14 - }; 15 - }; 16 - }
+33
home-manager/modules/cli/default.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: 6 + let 7 + cfg = config.modules.cli; 8 + 9 + moduleNames = builtins.attrNames (builtins.readDir ./.); 10 + modules = builtins.map (name: ./. + ("/" + name)) moduleNames; 11 + filterOut = module: modules: builtins.filter (module': module' != module) modules; 12 + in 13 + { 14 + imports = filterOut ./default.nix modules; 15 + 16 + options.modules.cli = { 17 + enable = lib.mkEnableOption "cli"; 18 + }; 19 + 20 + config = lib.mkIf cfg.enable { 21 + programs = { 22 + bat.enable = true; 23 + carapace.enable = true; 24 + nushell.enable = true; 25 + starship.enable = true; 26 + nix-your-shell.enable = true; 27 + }; 28 + 29 + home.shellAliases = { 30 + cat = "bat"; 31 + }; 32 + }; 33 + }
+5 -10
home-manager/modules/codex.nix home-manager/modules/dev/codex.nix
··· 14 14 githubPersonalAccessTokenPath = 15 15 config.programs.onepassword-secrets.secretPaths.githubPersonalAccessToken; 16 16 17 - context7Runner = pkgs.writeShellScriptBin "context7-mcp-runner" '' 17 + context7Runner = pkgs.writeShellScript "context7-mcp-runner" '' 18 18 export PATH="${lib.makeBinPath [ nodejsPkg ]}:$PATH" 19 19 export CONTEXT7_API_KEY="$(${pkgs.coreutils}/bin/cat ${context7ApiKeyPath})" 20 20 exec "${nodejsPkg}/bin/npx" -y @upstash/context7-mcp 21 21 ''; 22 22 23 - githubRunner = pkgs.writeShellScriptBin "github-mcp-runner" '' 23 + githubRunner = pkgs.writeShellScript "github-mcp-runner" '' 24 24 export GITHUB_PERSONAL_ACCESS_TOKEN="$(${pkgs.coreutils}/bin/cat ${githubPersonalAccessTokenPath})" 25 25 exec "${pkgs.unstable.github-mcp-server}/bin/github-mcp-server" stdio 26 26 ''; 27 27 in 28 28 { 29 29 config = lib.mkIf cfg.enable { 30 - home.packages = [ 31 - context7Runner 32 - githubRunner 33 - ]; 34 - 35 30 programs.codex = { 36 - package = pkgs.unstable.codex; 31 + package = pkgs.codex; 37 32 custom-instructions = '' 38 33 You are Codex, an AI coding assistant for this repo. 39 34 ··· 48 43 settings = { 49 44 mcp_servers = { 50 45 context7 = { 51 - command = "context7-mcp-runner"; 46 + command = "${context7Runner}"; 52 47 args = [ ]; 53 48 }; 54 49 github = { 55 - command = "github-mcp-runner"; 50 + command = "${githubRunner}"; 56 51 args = [ ]; 57 52 }; 58 53 };
+4 -4
home-manager/modules/default.nix
··· 1 1 let 2 - fileNames = builtins.attrNames (builtins.readDir ./.); 3 - files = builtins.map (name: ./. + ("/" + name)) fileNames; 4 - filterOut = file: files: builtins.filter (file': file' != file) files; 2 + moduleNames = builtins.attrNames (builtins.readDir ./.); 3 + modules = builtins.map (name: ./. + ("/" + name)) moduleNames; 4 + filterOut = module: modules: builtins.filter (module': module' != module) modules; 5 5 in 6 6 { 7 - imports = filterOut ./default.nix files; 7 + imports = filterOut ./default.nix modules; 8 8 }
+70
home-manager/modules/desktop/default.nix
··· 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 7 + let 8 + cfg = config.modules.desktop; 9 + 10 + moduleNames = builtins.attrNames (builtins.readDir ./.); 11 + modules = builtins.map (name: ./. + ("/" + name)) moduleNames; 12 + filterOut = module: modules: builtins.filter (module': module' != module) modules; 13 + in 14 + { 15 + imports = filterOut ./default.nix modules; 16 + 17 + options.modules.desktop = { 18 + enable = lib.mkEnableOption "desktop"; 19 + device = lib.mkOption { 20 + type = lib.types.enum [ 21 + "desktop" 22 + "laptop" 23 + ]; 24 + description = "Device type"; 25 + }; 26 + }; 27 + 28 + config = lib.mkIf cfg.enable { 29 + home.packages = with pkgs; [ 30 + # messaging 31 + discord 32 + signal-desktop 33 + slack 34 + 35 + # utilities 36 + nautilus # gnome file manager 37 + evince # gnome document viewer 38 + loupe # gnome image viewer 39 + gnome-disk-utility 40 + gnome-calculator 41 + libreoffice-fresh 42 + resources 43 + vlc 44 + ]; 45 + 46 + programs = { 47 + ghostty.enable = true; 48 + zen-browser.enable = true; 49 + 50 + # desktop manager 51 + gnome-shell = { 52 + enable = true; 53 + extensionsPackages = [ 54 + pkgs.gnomeExtensions.appindicator 55 + ]; 56 + experimentalFeatures = lib.optionals (cfg.device == "laptop") [ 57 + "scale-monitor-framebuffer" 58 + "xwayland-native-scaling" 59 + ]; 60 + favoriteApps = [ 61 + "zen-twilight.desktop" 62 + "dev.zed.Zed.desktop" 63 + "com.mitchellh.ghostty.desktop" 64 + "discord.desktop" 65 + ]; 66 + showBatteryPercentage = (cfg.device == "laptop"); 67 + }; 68 + }; 69 + }; 70 + }
+45
home-manager/modules/dev/default.nix
··· 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + ... 6 + }: 7 + let 8 + cfg = config.modules.dev; 9 + 10 + moduleNames = builtins.attrNames (builtins.readDir ./.); 11 + modules = builtins.map (name: ./. + ("/" + name)) moduleNames; 12 + filterOut = module: modules: builtins.filter (module': module' != module) modules; 13 + in 14 + { 15 + imports = filterOut ./default.nix modules; 16 + 17 + options.modules.dev = { 18 + enable = lib.mkEnableOption "dev"; 19 + }; 20 + 21 + config = lib.mkIf cfg.enable { 22 + home.file = { 23 + ".ssh/master.pub" = { 24 + text = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFPO/hKBeNBJVbq8yPL13KRBLCn+gpXyNtAs1UyvyP9Z"; 25 + }; 26 + 27 + ".ssh/clever-cloud.pub" = { 28 + text = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID1krg5H1ekYVacZPCKvYARdBy4JT5M+fGo2EFvJD0n4"; 29 + }; 30 + }; 31 + 32 + home.packages = with pkgs; [ 33 + tealdeer 34 + ]; 35 + 36 + programs = { 37 + codex.enable = true; 38 + direnv.enable = true; 39 + neovim.enable = true; 40 + git.enable = true; 41 + jujutsu.enable = true; 42 + zed-editor.enable = true; 43 + }; 44 + }; 45 + }
+58
home-manager/modules/dev/git.nix
··· 1 + { 2 + config, 3 + pkgs, 4 + lib, 5 + user, 6 + ... 7 + }: 8 + let 9 + cfg = config.programs.git; 10 + 11 + toml = pkgs.formats.toml { }; 12 + in 13 + { 14 + config = lib.mkIf cfg.enable { 15 + programs.delta.enable = true; 16 + 17 + programs.git = { 18 + settings = { 19 + user = { 20 + name = user.fullName; 21 + email = user.email; 22 + signingKey = config.home.file.".ssh/master.pub".text; 23 + }; 24 + gpg = { 25 + format = "ssh"; 26 + }; 27 + "gpg \"ssh\"" = { 28 + program = "op-ssh-sign"; 29 + }; 30 + tag = { 31 + gpgSign = true; 32 + }; 33 + init = { 34 + defaultBranch = "main"; 35 + }; 36 + pull = { 37 + rebase = true; 38 + }; 39 + "includeIf \"gitdir:${user.homeDirectory}/clever-cloud\"" = { 40 + path = builtins.toString ( 41 + toml.generate "config.toml" { 42 + user = { 43 + email = "${user.name}.${user.family}@clever-cloud.com"; 44 + signingKey = config.home.file.".ssh/clever-cloud.pub".text; 45 + }; 46 + } 47 + ); 48 + }; 49 + }; 50 + ignores = [ 51 + ".zed" 52 + ".direnv/" 53 + ".env" 54 + ".envrc.local" 55 + ]; 56 + }; 57 + }; 58 + }
home-manager/modules/direnv.nix home-manager/modules/dev/direnv.nix
+25
home-manager/modules/gaming/default.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: 6 + let 7 + cfg = config.modules.gaming; 8 + 9 + moduleNames = builtins.attrNames (builtins.readDir ./.); 10 + modules = builtins.map (name: ./. + ("/" + name)) moduleNames; 11 + filterOut = module: modules: builtins.filter (module': module' != module) modules; 12 + in 13 + { 14 + imports = filterOut ./default.nix modules; 15 + 16 + options.modules.gaming = { 17 + enable = lib.mkEnableOption "gaming"; 18 + }; 19 + 20 + config = lib.mkIf cfg.enable { 21 + programs = { 22 + prismlauncher.enable = true; 23 + }; 24 + }; 25 + }
home-manager/modules/ghostty.nix home-manager/modules/desktop/ghostty.nix
-82
home-manager/modules/git.nix
··· 1 - { 2 - config, 3 - pkgs, 4 - lib, 5 - user, 6 - ... 7 - }: 8 - 9 - let 10 - cfg = config.programs.git; 11 - 12 - toml = pkgs.formats.toml { }; 13 - 14 - includeIfFor = 15 - { when, config }: 16 - let 17 - file = toml.generate "config.toml" config; 18 - in 19 - builtins.map (p: { 20 - name = "includeIf \"gitdir:${p}\""; 21 - value = { 22 - path = builtins.toString file; 23 - }; 24 - }) when; 25 - in 26 - { 27 - options.programs.git = { 28 - scopes = lib.mkOption { 29 - type = lib.types.listOf ( 30 - lib.types.submodule { 31 - options = { 32 - when = lib.mkOption { 33 - type = lib.types.listOf lib.types.str; 34 - }; 35 - config = lib.mkOption { 36 - type = lib.types.attrs; 37 - }; 38 - }; 39 - } 40 - ); 41 - default = [ ]; 42 - }; 43 - }; 44 - 45 - config = lib.mkIf cfg.enable { 46 - programs.delta.enable = true; 47 - 48 - programs.git = { 49 - settings = lib.mkMerge [ 50 - { 51 - user = { 52 - name = user.fullName; 53 - email = user.email; 54 - signingKey = config.home.file.".ssh/master.pub".text; 55 - }; 56 - gpg = { 57 - format = "ssh"; 58 - }; 59 - "gpg \"ssh\"" = { 60 - program = "op-ssh-sign"; 61 - }; 62 - tag = { 63 - gpgSign = true; 64 - }; 65 - init = { 66 - defaultBranch = "main"; 67 - }; 68 - pull = { 69 - rebase = true; 70 - }; 71 - } 72 - (lib.listToAttrs (lib.concatMap includeIfFor cfg.scopes)) 73 - ]; 74 - ignores = [ 75 - ".zed" 76 - ".direnv/" 77 - ".env" 78 - ".envrc.local" 79 - ]; 80 - }; 81 - }; 82 - }
home-manager/modules/gnome-shell.nix home-manager/modules/desktop/gnome-shell.nix
+10 -30
home-manager/modules/jujutsu.nix home-manager/modules/dev/jujutsu.nix
··· 4 4 user, 5 5 ... 6 6 }: 7 - 8 7 let 9 8 cfg = config.programs.jujutsu; 10 - 11 - toWhenList = 12 - items: 13 - builtins.map ( 14 - { when, config }: 15 - config 16 - // { 17 - "--when".repositories = when; 18 - } 19 - ) items; 20 9 in 21 10 { 22 - options.programs.jujutsu = { 23 - scopes = lib.mkOption { 24 - type = lib.types.listOf ( 25 - lib.types.submodule { 26 - options = { 27 - when = lib.mkOption { 28 - type = lib.types.listOf lib.types.str; 29 - }; 30 - config = lib.mkOption { 31 - type = lib.types.attrs; 32 - }; 33 - }; 34 - } 35 - ); 36 - default = [ ]; 37 - }; 38 - }; 39 - 40 11 config = lib.mkIf cfg.enable { 41 12 programs.jujutsu = { 42 13 settings = { ··· 67 38 push-new-bookmarks = true; 68 39 private-commits = "description(glob:'private:*')"; 69 40 }; 70 - "--scope" = toWhenList cfg.scopes; 41 + "--scope" = [ 42 + { 43 + "--when".repositories = [ "${user.homeDirectory}/clever-cloud" ]; 44 + user.email = "${user.name}.${user.family}@clever-cloud.com"; 45 + signing.key = config.home.file.".ssh/clever-cloud.pub".text; 46 + revset-aliases = { 47 + "immutable_heads()" = "builtin_immutable_heads() ~ remote_bookmarks(remote=glob:\"clever-*\")"; 48 + }; 49 + } 50 + ]; 71 51 }; 72 52 }; 73 53
home-manager/modules/neovim.nix home-manager/modules/dev/neovim.nix
home-manager/modules/nushell.nix home-manager/modules/cli/nushell.nix
home-manager/modules/onepassword-secrets.nix home-manager/modules/security/onepassword-secrets.nix
+7 -3
home-manager/modules/prism-launcher.nix home-manager/modules/gaming/prismlauncher.nix
··· 6 6 }: 7 7 8 8 let 9 - cfg = config.programs.prism-launcher; 9 + cfg = config.programs.prismlauncher; 10 10 in 11 11 { 12 - options.programs.prism-launcher = { 13 - enable = lib.mkEnableOption "enable prism-launcher"; 12 + options.programs.prismlauncher = { 13 + enable = lib.mkEnableOption "prismlauncher"; 14 14 }; 15 15 16 16 config = lib.mkIf cfg.enable { ··· 21 21 vlc 22 22 alsa-oss 23 23 ]; 24 + 25 + jdk21 = graalvm21-ce; 26 + jdk17 = jdk17; 27 + jdk8 = jdk8; 24 28 25 29 jdks = [ 26 30 graalvm21-ce
+26
home-manager/modules/security/default.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: 6 + let 7 + cfg = config.modules.security; 8 + 9 + moduleNames = builtins.attrNames (builtins.readDir ./.); 10 + modules = builtins.map (name: ./. + ("/" + name)) moduleNames; 11 + filterOut = module: modules: builtins.filter (module': module' != module) modules; 12 + in 13 + { 14 + imports = filterOut ./default.nix modules; 15 + 16 + options.modules.security = { 17 + enable = lib.mkEnableOption "security"; 18 + }; 19 + 20 + config = lib.mkIf cfg.enable { 21 + programs = { 22 + ssh.enable = true; 23 + onepassword-secrets.enable = true; 24 + }; 25 + }; 26 + }
home-manager/modules/ssh.nix home-manager/modules/security/ssh.nix
home-manager/modules/starship.nix home-manager/modules/cli/starship.nix
home-manager/modules/syncthing.nix home-manager/modules/backup/syncthing.nix
+4
home-manager/modules/zed-editor.nix home-manager/modules/dev/zed-editor.nix
··· 35 35 xdg.configFile."zed/settings.json" = { 36 36 source = config.lib.file.mkOutOfStoreSymlink "${user.configDirectory}/zed/settings.json"; 37 37 }; 38 + 39 + xdg.configFile."tombi/config.toml" = { 40 + source = config.lib.file.mkOutOfStoreSymlink "${user.configDirectory}/tombi/config.toml"; 41 + }; 38 42 }; 39 43 }
home-manager/modules/zen-browser.nix home-manager/modules/desktop/zen-browser.nix