profiles/common/base.nix (view raw)
1{ pkgs, unstable-pkgs, ... }:
2{
3 nix = {
4 package = unstable-pkgs.lix;
5
6 settings.experimental-features = [
7 "nix-command"
8 "flakes"
9 ];
10 gc = {
11 automatic = true;
12 dates = "monthly";
13 };
14
15 registry.nixpkgs-unstable = {
16 from = {
17 id = "nixpkgs-unstable";
18 type = "indirect";
19 };
20 to = {
21 type = "github";
22 owner = "NixOS";
23 repo = "nixpkgs";
24 ref = "nixpkgs-unstable";
25 };
26 };
27 };
28
29 boot.loader.systemd-boot.enable = true;
30 boot.loader.efi.canTouchEfiVariables = true;
31 boot.kernelPackages = pkgs.linuxPackages_latest;
32
33 nixpkgs.config.allowUnfree = true;
34 programs.nix-ld.enable = true;
35
36 security.sudo.wheelNeedsPassword = false;
37 services.openssh.enable = true;
38 services.tailscale.enable = true;
39
40 programs.zsh.enable = true;
41 programs.git.enable = true;
42
43 programs.vim = {
44 enable = true;
45 defaultEditor = true;
46 package = unstable-pkgs.vim;
47 };
48
49 environment.shells = [ pkgs.zsh ];
50 environment.variables = {
51 EDITOR = "vim";
52 VISUAL = "vim";
53 SYSTEMD_EDITOR = "vim";
54 };
55
56 environment.systemPackages =
57 with pkgs;
58 [
59 gcc
60 binutils
61 pkg-config
62 glibc
63 gnumake
64 cmake
65 sqlite-interactive
66
67 wget
68 htop
69 tmux
70 ]
71 ++ [
72 unstable-pkgs.jujutsu
73 unstable-pkgs.vim
74 unstable-pkgs.ghostty.terminfo
75 ];
76
77 environment.etc.certfile = {
78 source = "/etc/ssl/certs/ca-bundle.crt";
79 target = "ssl/cert.pem";
80 };
81}