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}