grace/dots

dotfiles/nix configs

git clone https://git.gae.moe/grace/dots

Grace Yoderbig changesc1be8e3

main
2.0 KiB100 linesraw
1{
2  config,
3  lib,
4  pkgs,
5  modulesPath,
6  ...
7}:
8
9{
10  imports = [
11    ../modules/users.nix
12    ../modules/tailscale.nix
13    ../modules/terminal.nix
14  ];
15
16  hardware.enableAllHardware = true;
17  hardware.enableRedistributableFirmware = true;
18
19  boot.loader = {
20    systemd-boot = {
21      enable = true;
22      configurationLimit = 10;
23    };
24    efi = {
25      canTouchEfiVariables = false;
26      efiSysMountPoint = "/boot";
27    };
28  };
29
30  networking = {
31    hostName = "portable";
32    networkmanager.enable = true;
33  };
34
35  environment.sessionVariables.NIX_HOST = "portable";
36  nix.settings.experimental-features = [
37    "nix-command"
38    "flakes"
39  ];
40
41  services.openssh = {
42    enable = true;
43    openFirewall = true;
44    settings = {
45      PermitRootLogin = "no";
46      PasswordAuthentication = false;
47      KbdInteractiveAuthentication = false;
48    };
49  };
50
51  services.cage = {
52    enable = true;
53    user = "grace";
54    extraArguments = [ "-s" ];
55    program = pkgs.writeShellScript "portable-terminal" ''
56      exec ${pkgs.foot}/bin/foot --config=/etc/foot/foot.ini
57    '';
58  };
59
60  services.getty.autologinUser = lib.mkDefault "grace";
61  users.users.grace.initialHashedPassword = lib.mkDefault "";
62
63  system.disableInstallerTools = false;
64  environment.systemPackages = with pkgs; [
65    parted
66    dosfstools
67    e2fsprogs
68  ];
69
70  system.stateVersion = "26.05";
71
72  system.build.usbImage = import (modulesPath + "/../lib/make-disk-image.nix") {
73    inherit config lib pkgs;
74    name = "nixos-portable-usb";
75    baseName = "nixos-portable";
76    format = "raw";
77    partitionTableType = "efi";
78    bootSize = "1024M";
79    diskSize = "auto";
80    additionalSpace = "2G";
81    label = "nixos-portable";
82    memSize = 2048;
83
84    contents = [
85      {
86        source = lib.cleanSourceWith {
87          src = ../.;
88          filter =
89            path: type:
90            let
91              name = baseNameOf path;
92            in
93            !(builtins.elem name [ ".jj" ] || lib.hasPrefix "result" name);
94        };
95        target = "/etc/nixos";
96        mode = "u+w";
97      }
98    ];
99  };
100}