NixDaemon

NixOS pentest workstation as one flake — IceBreaker's successor
git clone https://git.daemon-sec.xyz/NixDaemon.git
Log | Files | Refs | README

home.nix (2418B)


      1 # modules/hosts/generic/home.nix — the home for the generic host: the shared,
      2 # self-contained home modules and nothing personal.
      3 #
      4 # The author's home (modules/home/default.nix) reads its zsh config, fonts and
      5 # cursor from a private dotfiles checkout and its keys from sops. None of that
      6 # exists on your machine, so this one turns on home-manager's own zsh instead
      7 # and uses a font from nixpkgs.
      8 { self, ... }:
      9 {
     10   flake.homeModules.generic =
     11     { user, lib, ... }:
     12     {
     13       imports = with self.homeModules; [
     14         terminal # kitty, Rosé Pine, ctrl+a tmux-style keys
     15         neovim # nvf: Neovim with a small Nix-built plugin set
     16         prompt # starship + fastfetch, Rosé Pine
     17         htb-shell # $TARGET in the prompt
     18         cheats # pentest-cheat, nix-cheat, niri-cheat
     19         yazi # file manager with previews
     20       ];
     21 
     22       home = {
     23         username = user;
     24         homeDirectory = "/home/${user}";
     25         stateVersion = "26.05";
     26       };
     27       programs.home-manager.enable = true;
     28 
     29       # The Claude Code skill for this system (skills/nixdaemon/SKILL.md), so
     30       # `claude` anywhere on the machine knows how NixDaemon is put together and
     31       # how to troubleshoot it — the way Omarchy ships one for its own system.
     32       home.file.".claude/skills/nixdaemon/SKILL.md".source = ../../../skills/nixdaemon/SKILL.md;
     33       xdg.enable = true;
     34 
     35       # zsh from home-manager, since there is no dotfiles ZDOTDIR here.
     36       programs.zsh = {
     37         enable = true;
     38         autosuggestion.enable = true;
     39         syntaxHighlighting.enable = true;
     40         history = {
     41           size = 50000;
     42           ignoreDups = true;
     43           share = true;
     44         };
     45       };
     46       programs.starship.enableZshIntegration = lib.mkForce true;
     47       programs.fzf = {
     48         enable = true;
     49         enableZshIntegration = true;
     50       };
     51       programs.zoxide = {
     52         enable = true;
     53         enableZshIntegration = true;
     54       };
     55 
     56       # terminal.nix names DMMono Nerd Font, which ships in the author's
     57       # dotfiles rather than nixpkgs. JetBrains Mono Nerd Font is installed by
     58       # the generic host (fonts.packages) and has real bold/italic faces.
     59       programs.kitty.font.name = lib.mkForce "JetBrainsMono Nerd Font";
     60       programs.kitty.settings = {
     61         bold_font = lib.mkForce "auto";
     62         italic_font = lib.mkForce "auto";
     63         bold_italic_font = lib.mkForce "auto";
     64       };
     65     };
     66 }