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 defaultEditor = true;
48 package = unstable-pkgs.vim;
49 };
50
51 environment.shells = [ pkgs.zsh ];
52 environment.variables = {
53 EDITOR = "vim";
54 VISUAL = "vim";
55 SYSTEMD_EDITOR = "vim";
56 };
57
58 environment.systemPackages =
59 with pkgs;
60 [
61 gcc
62 binutils
63 pkg-config
64 glibc
65 gnumake
66 cmake
67 sqlite-interactive
68
69 wget
70 htop
71 tmux
72 ]
73 ++ [
74 unstable-pkgs.jujutsu
75 unstable-pkgs.vim
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}