profiles/common/base.nix (view raw)
1{ pkgs, unstable-pkgs, lib, ... }:
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 = lib.mkDefault 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
39 services.tailscale.enable = true;
40 services.tailscale.package = unstable-pkgs.tailscale;
41
42 programs.zsh.enable = true;
43 programs.git.enable = true;
44
45 programs.vim = {
46 enable = true;
47 package = unstable-pkgs.vim;
48 };
49
50 environment.shells = [ pkgs.zsh ];
51 environment.variables = {
52 EDITOR = "hx";
53 VISUAL = "hx";
54 SYSTEMD_EDITOR = "hx";
55 };
56
57 environment.systemPackages =
58 with pkgs;
59 [
60 gcc
61 binutils
62 pkg-config
63 glibc
64 gnumake
65 cmake
66 sqlite-interactive
67
68 wget
69 htop
70 tmux
71 ]
72 ++ [
73 unstable-pkgs.jujutsu
74 unstable-pkgs.vim
75 unstable-pkgs.helix
76 unstable-pkgs.ghostty.terminfo
77 ];
78
79 environment.etc.certfile = {
80 source = "/etc/ssl/certs/ca-bundle.crt";
81 target = "ssl/cert.pem";
82 };
83}