annotate configuration.nix @ 2:a2c891f7b914

Occasional commit 2
author Yasuri <yasuri@charliesmp.net>
date Sat, 03 Oct 2026 18:53:08 -0500
parents f78c8a98f113
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
1 { config, lib, pkgs, ... }:
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
2 {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
3 imports =
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
4 [
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
5 ./hardware-configuration.nix
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
6 ];
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
7
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
8 boot.loader.systemd-boot.enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
9 boot.loader.efi.canTouchEfiVariables = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
10
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
11 boot.kernelPackages = pkgs.linuxPackages_latest;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
12
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
13 networking.hostName = "nixos-btw";
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
14
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
15 networking.networkmanager.enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
16
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
17 time.timeZone = "America/Chicago";
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
18
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
19
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
20 services.displayManager.ly.enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
21 services.xserver = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
22 enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
23 autoRepeatDelay = 200;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
24 autoRepeatInterval = 35;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
25 displayManager.sessionCommands = ''
2
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
26 export XCURSOR_THEME=macOS
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
27 export XCURSOR_SIZE=24
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
28 xwallpaper --zoom /home/ivy/wall.png
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
29 ${pkgs.callPackage ./modules/dwmbar.nix { }}/bin/dwmbar &
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
30 xset r rate 200 35
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
31 xrdb -merge /home/ivy/.Xresources
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
32 '';
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
33 windowManager.dwm = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
34 enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
35 package = pkgs.dwm.overrideAttrs {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
36 src = ./config/dwm;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
37 };
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
38 };
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
39 };
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
40
2
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
41 virtualisation.libvirtd.enable = true;
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
42 programs.virt-manager.enable = true;
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
43 services.picom.enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
44
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
45 services.pipewire = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
46 enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
47 pulse.enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
48 };
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
49 services.syncthing = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
50 enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
51 user = "ivy";
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
52 dataDir = "/home/ivy";
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
53 configDir = "/home/ivy/.config/syncthing";
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
54 openDefaultPorts = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
55 };
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
56
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
57 services.libinput.enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
58
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
59 users.users.ivy = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
60 isNormalUser = true;
2
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
61 extraGroups = [ "wheel" "libvirtd" ];
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
62 shell = pkgs.zsh;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
63 packages = with pkgs; [
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
64 tree
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
65 ];
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
66 };
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
67
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
68
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
69 environment.systemPackages = with pkgs; [
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
70 vim
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
71 wget
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
72 alacritty
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
73 git
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
74 fastfetch
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
75 hyfetch
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
76 xwallpaper
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
77 maim
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
78 slop
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
79 mercurial
2
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
80 dnsmasq
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
81 ];
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
82
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
83 programs.zsh.enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
84 fonts.packages = with pkgs; [
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
85 nerd-fonts.jetbrains-mono
2
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
86 nerd-fonts.iosevka
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
87 ];
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
88
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
89
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
90 nix.settings.experimental-features = [ "nix-command" "flakes" ];
2
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
91 # for linux phone dev
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
92 systemd.network.enable = true;
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
93
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
94 # stable name no matter which USB port you use
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
95 systemd.network.links."10-phone" = {
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
96 matchConfig.Driver = "cdc_ether";
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
97 linkConfig.Name = "phone0";
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
98 };
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
99
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
100 systemd.network.networks."10-phone" = {
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
101 matchConfig.Name = "phone0";
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
102 address = [ "172.16.42.2/24" ];
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
103 linkConfig.RequiredForOnline = "no";
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
104 # optional: share the laptop's internet with the phone over USB
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
105 networkConfig.IPMasquerade = "ipv4";
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
106 };
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
107
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
108 # keep NetworkManager's hands off it
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
109 networking.networkmanager.unmanaged = [ "interface-name:phone0" ];
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
110
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
111 # let the phone reach services on the laptop
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
112 networking.firewall.trustedInterfaces = [ "phone0" ];
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
113
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
114 # ssh root@phone
a2c891f7b914 Occasional commit 2
Yasuri <yasuri@charliesmp.net>
parents: 1
diff changeset
115 networking.hosts."172.16.42.1" = [ "phone" ];
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
116
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
117
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
118 system.stateVersion = "26.05";
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
119
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
120 }
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
121