btw i use nix
1{
2 pkgs,
3 lib,
4 config,
5 ...
6}:
7
8{
9 imports = [
10 ./hardware-configuration.nix
11 ./backups.nix
12 ];
13
14 custom = {
15 enable = true;
16 tailscale = true;
17 laptop = true;
18 printing = true;
19 gui.i3 = true;
20 gui.sway = true;
21 ocaml = true;
22 workstation = true;
23 autoUpgrade.enable = true;
24 homeManager.enable = true;
25 zsa = true;
26 };
27
28 home-manager.users.${config.custom.username} = {
29 services.kdeconnect.enable = true;
30 services.spotifyd = {
31 enable = true;
32 settings.global = {
33 username = "ryangibb321@gmail.com";
34 password_cmd = "pass show spotify/ryangibb321@gmail.com";
35 };
36 };
37 custom = {
38 machineColour = "blue";
39 nvim-lsps = true;
40 mail.enable = true;
41 calendar.enable = true;
42 battery.enable = true;
43 emacs.enable = true;
44 };
45 home.sessionVariables = {
46 LEDGER_FILE = ''~/vault/ledger/`date "+%Y"`.ledger'';
47 };
48 programs.git.extraConfig.commit.gpgSign = true;
49 };
50
51 boot.loader.grub = {
52 enable = true;
53 default = "saved";
54 device = "nodev";
55 efiSupport = true;
56 useOSProber = true;
57 };
58
59 environment.systemPackages = with pkgs; [
60 dell-command-configure
61 file-roller
62 unzip
63 cheese
64 gparted
65 chromium
66 calibre
67 zotero
68 element-desktop
69 iamb
70 spotify
71 gimp
72 (python3.withPackages (
73 p: with p; [
74 numpy
75 matplotlib
76 pandas
77 ]
78 ))
79 lsof
80 gthumb
81 restic
82 mosquitto
83 texlive.combined.scheme-full
84 typst
85 evince
86 pdfpc
87 krop
88 transmission_4
89 transmission_4-gtk
90 libreoffice
91 obs-studio
92 xournalpp
93 inkscape
94 kdenlive
95 tor-browser-bundle-bin
96 ffmpeg
97 audio-recorder
98 speechd
99 deploy-rs
100 nix-prefetch-git
101 tcpdump
102 pandoc
103 w3m
104 ranger
105 bluetuith
106 powertop
107 toot
108 ledger
109 llm
110 (writeShellScriptBin "q" ''
111 llm -m 4 "$*"
112 '')
113 (writeShellScriptBin "qc" ''
114 llm -m 4 "$*" -c
115 '')
116 ddcutil
117 anki
118 (aspellWithDicts (
119 ps: with ps; [
120 en
121 en-computers
122 en-science
123 ]
124 ))
125 moreutils
126 gnome-calendar
127 ];
128
129 services.gnome.gnome-keyring.enable = true;
130 programs.seahorse.enable = true;
131
132 programs.dconf.enable = true;
133 services.gnome.evolution-data-server.enable = true;
134 services.gnome.gnome-online-accounts.enable = true;
135
136 virtualisation.docker.enable = true;
137 users.users.ryan.extraGroups = [ "docker" ];
138
139 virtualisation.virtualbox.host.enable = true;
140 users.extraGroups.vboxusers.members = [ "ryan" ];
141
142 systemd.extraConfig = ''
143 DefaultTimeoutStopSec=30s
144 '';
145
146 programs.steam.enable = true;
147
148 security.sudo.extraConfig = ''
149 Defaults !tty_tickets
150 '';
151
152 # sometimes I want to keep the cache for operating without internet
153 nix.gc.automatic = lib.mkForce false;
154
155 # for CL VPN
156 networking.networkmanager.enableStrongSwan = true;
157
158 services = {
159 syncthing = {
160 enable = true;
161 user = config.custom.username;
162 dataDir = "/home/ryan/syncthing";
163 configDir = "/home/ryan/.config/syncthing";
164 };
165 };
166
167 networking.hostId = "e768032f";
168
169 #system.includeBuildDependencies = true;
170 nix = {
171 distributedBuilds = true;
172 extraOptions = ''
173 builders-use-substitutes = true
174 '';
175 };
176
177 # https://github.com/NixOS/nixpkgs/issues/180175
178 systemd.services.NetworkManager-wait-online.enable = false;
179
180 # https://github.com/NixOS/nixpkgs/issues/330685
181 boot.extraModprobeConfig = ''
182 options snd-hda-intel dmic_detect=0
183 '';
184
185 # ddcutil
186 hardware.i2c.enable = true;
187}