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/finaces.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 gcc
61 dell-command-configure
62 file-roller
63 unzip
64 cheese
65 gparted
66 chromium
67 calibre
68 zotero
69 element-desktop
70 iamb
71 spotify
72 gimp
73 (python3.withPackages (
74 p: with p; [
75 numpy
76 matplotlib
77 pandas
78 ]
79 ))
80 lsof
81 gthumb
82 restic
83 mosquitto
84 texlive.combined.scheme-full
85 typst
86 evince
87 pdfpc
88 krop
89 transmission_4
90 transmission_4-gtk
91 libreoffice
92 obs-studio
93 xournalpp
94 inkscape
95 kdenlive
96 tor-browser-bundle-bin
97 ffmpeg
98 audio-recorder
99 speechd
100 deploy-rs
101 nix-prefetch-git
102 tcpdump
103 pandoc
104 powertop
105 toot
106 ledger
107 llm
108 (writeShellScriptBin "q" ''
109 llm -m 4 "$*"
110 '')
111 (writeShellScriptBin "qc" ''
112 llm -m 4 "$*" -c
113 '')
114 ddcutil
115 anki
116 (aspellWithDicts (
117 ps: with ps; [
118 en
119 en-computers
120 en-science
121 ]
122 ))
123 moreutils
124 gnome-calendar
125 cargo
126 rustc
127 rust-analyzer
128 ];
129
130 services.gnome.gnome-keyring.enable = true;
131 programs.seahorse.enable = true;
132
133 programs.dconf.enable = true;
134 services.gnome.evolution-data-server.enable = true;
135 services.gnome.gnome-online-accounts.enable = true;
136
137 virtualisation.docker.enable = true;
138 users.users.ryan.extraGroups = [ "docker" ];
139
140 virtualisation.virtualbox.host.enable = true;
141 users.extraGroups.vboxusers.members = [ "ryan" ];
142
143 systemd.extraConfig = ''
144 DefaultTimeoutStopSec=30s
145 '';
146
147 programs.steam.enable = true;
148
149 security.sudo.extraConfig = ''
150 Defaults !tty_tickets
151 '';
152
153 # sometimes I want to keep the cache for operating without internet
154 nix.gc.automatic = lib.mkForce false;
155
156 # for CL VPN
157 networking.networkmanager.enableStrongSwan = true;
158
159 services = {
160 syncthing = {
161 enable = true;
162 user = config.custom.username;
163 dataDir = "/home/ryan/syncthing";
164 configDir = "/home/ryan/.config/syncthing";
165 };
166 };
167
168 networking.hostId = "e768032f";
169
170 #system.includeBuildDependencies = true;
171 nix = {
172 distributedBuilds = true;
173 extraOptions = ''
174 builders-use-substitutes = true
175 '';
176 };
177
178 # https://github.com/NixOS/nixpkgs/issues/180175
179 systemd.services.NetworkManager-wait-online.enable = false;
180
181 # https://github.com/NixOS/nixpkgs/issues/330685
182 boot.extraModprobeConfig = ''
183 options snd-hda-intel dmic_detect=0
184 '';
185
186 # ddcutil
187 hardware.i2c.enable = true;
188}