my system configurations ^-^

Compare changes

Choose any two refs to compare.

Changed files
+120 -73
hosts
earthy
modules
nixos
shared
home
programs
cli
services
options
+1 -4
hosts/earthy/default.nix
··· 14 14 settings = { 15 15 system = { 16 16 hostName = "earthy"; 17 - services = { 18 - sync.enable = true; 19 - navidrome.enable = true; 20 - }; 17 + services.sync.enable = true; 21 18 }; 22 19 }; 23 20
-1
modules/nixos/services/default.nix
··· 9 9 imports = [ 10 10 ./i18n.nix 11 11 ./mpdscribble.nix 12 - ./navidrome.nix 13 12 ./pipewire.nix 14 13 ./printing.nix 15 14 ./privacy.nix
-19
modules/nixos/services/navidrome.nix
··· 1 - { 2 - config, 3 - lib, 4 - ... 5 - }: let 6 - cfg = config.settings.system.services.navidrome; 7 - in { 8 - config = lib.mkIf cfg.enable { 9 - services.navidrome = { 10 - enable = true; 11 - openFirewall = true; 12 - 13 - settings = { 14 - # TODO: use this value for beets 15 - MusicFolder = "${config.settings.system.user.home}/media/music/music"; 16 - }; 17 - }; 18 - }; 19 - }
+3 -4
modules/shared/home/programs/cli/beets.nix
··· 11 11 config = lib.mkIf (cfg.cli.enable 12 12 && cfg.categories.music.enable) { 13 13 systemd.user.services.mpdstats = 14 - lib.mkIf (stdenv.isLinux 15 - && config.services.mpd.enable) 16 - { 14 + lib.mkIf stdenv.isLinux 15 + && config.services.mpd.enable 16 + == true { 17 17 Unit = { 18 18 Description = "Beets MPDStats daemon"; 19 19 Requires = ["mpd.service"]; ··· 27 27 Restart = "on-failure"; 28 28 }; 29 29 }; 30 - 31 30 programs.beets = { 32 31 enable = true; 33 32 mpdIntegration.enableUpdate = true;
+13 -1
modules/shared/home/services/syncthing.nix
··· 2 2 config, 3 3 lib, 4 4 osConfig, 5 + pkgs, 5 6 ... 6 7 }: let 8 + inherit (pkgs.stdenv) isDarwin; 9 + 7 10 cfg = osConfig.settings.system.services.sync; 8 11 9 12 devices = { ··· 25 28 inherit devices; 26 29 options = { 27 30 urAccepted = -1; # disable usage reporting 28 - # relaysEnabled = false; 31 + relaysEnabled = false; 29 32 }; 30 33 folders = { 31 34 docs = { ··· 42 45 label = "Pictures"; 43 46 devices = allDevices; 44 47 path = config.xdg.userDirs.pictures; 48 + }; 49 + # ignored in documents 50 + git = { 51 + label = "Git"; 52 + devices = allDevices; 53 + path = 54 + if isDarwin 55 + then "${config.xdg.userDirs.documents}/git" 56 + else "~/git"; 45 57 }; 46 58 videos = { 47 59 label = "Videos";
+103 -44
modules/shared/options/default.nix
··· 11 11 programs = { 12 12 enable = 13 13 mkEnableOption "Enable all programs" 14 - // {default = true;}; 14 + // { 15 + default = true; 16 + }; 15 17 16 - cli.enable = 17 - mkEnableOption "Enable CLI programs" 18 - // {default = cfg.programs.enable;}; 19 - tui.enable = 20 - mkEnableOption "Enable TUI programs" 21 - // {default = cfg.programs.enable;}; 22 - gui.enable = 23 - mkEnableOption "Enable GUI programs" 24 - // {default = cfg.desktop.enable;}; 18 + cli = { 19 + enable = 20 + mkEnableOption "Enable CLI programs" 21 + // { 22 + default = cfg.programs.enable; 23 + }; 24 + }; 25 + gui = { 26 + enable = 27 + mkEnableOption "Enable GUI programs" 28 + // { 29 + default = cfg.desktop.enable; 30 + }; 31 + }; 32 + tui = { 33 + enable = 34 + mkEnableOption "Enable TUI programs" 35 + // { 36 + default = cfg.programs.enable; 37 + }; 38 + }; 25 39 26 40 categories = { 27 41 enable = 28 42 mkEnableOption "Enable all program categories" 29 - // {default = cfg.programs.enable;}; 43 + // { 44 + default = cfg.programs.enable; 45 + }; 30 46 core.enable = 31 47 mkEnableOption "Enable core programs" 32 - // {default = cfg.programs.categories.enable;}; 48 + // { 49 + default = cfg.programs.categories.enable; 50 + }; 33 51 design.enable = 34 52 mkEnableOption "Enable design programs" 35 - // {default = cfg.programs.categories.enable;}; 53 + // { 54 + default = cfg.programs.categories.enable; 55 + }; 36 56 dev.enable = 37 57 mkEnableOption "Enable development programs" 38 - // {default = cfg.programs.categories.enable;}; 58 + // { 59 + default = cfg.programs.categories.enable; 60 + }; 39 61 edu.enable = 40 62 mkEnableOption "Enable educational programs" 41 - // {default = cfg.programs.categories.enable;}; 63 + // { 64 + default = cfg.programs.categories.enable; 65 + }; 42 66 fs.enable = 43 67 mkEnableOption "Enable file management programs" 44 - // {default = cfg.programs.categories.enable;}; 68 + // { 69 + default = cfg.programs.categories.enable; 70 + }; 45 71 fun.enable = 46 72 mkEnableOption "Enable fun programs" 47 - // {default = cfg.programs.categories.enable;}; 73 + // { 74 + default = cfg.programs.categories.enable; 75 + }; 48 76 gaming.enable = 49 77 mkEnableOption "Enable gaming programs" 50 - // {default = cfg.programs.categories.enable;}; 78 + // { 79 + default = cfg.programs.categories.enable; 80 + }; 51 81 mail.enable = 52 82 mkEnableOption "Enable email programs" 53 - // {default = cfg.programs.categories.enable;}; 83 + // { 84 + default = cfg.programs.categories.enable; 85 + }; 54 86 media.enable = 55 87 mkEnableOption "Enable multimedia programs" 56 - // {default = cfg.programs.categories.enable;}; 88 + // { 89 + default = cfg.programs.categories.enable; 90 + }; 57 91 music.enable = 58 92 mkEnableOption "Enable music programs" 59 - // {default = cfg.programs.categories.enable;}; 93 + // { 94 + default = cfg.programs.categories.enable; 95 + }; 60 96 printing.enable = 61 97 mkEnableOption "Enable 3D printing programs" 62 - // {default = cfg.programs.categories.enable;}; 98 + // { 99 + default = cfg.programs.categories.enable; 100 + }; 63 101 privacy.enable = 64 102 mkEnableOption "Enable privacy programs" 65 - // {default = cfg.programs.categories.enable;}; 103 + // { 104 + default = cfg.programs.categories.enable; 105 + }; 66 106 tools.enable = 67 107 mkEnableOption "Enable QOL programs" 68 - // {default = cfg.programs.categories.enable;}; 108 + // { 109 + default = cfg.programs.categories.enable; 110 + }; 69 111 web.enable = 70 112 mkEnableOption "Enable browsers" 71 - // {default = cfg.programs.categories.enable;}; 113 + // { 114 + default = cfg.programs.categories.enable; 115 + }; 72 116 }; 73 117 }; 74 - 75 118 system = { 76 119 user = { 77 120 name = mkOption { ··· 90 133 default = "users"; 91 134 }; 92 135 }; 93 - 94 136 hostName = mkOption { 95 137 type = types.str; 96 138 description = "The hostname of your system"; 97 139 default = "nixos"; 98 140 }; 99 - 100 141 services = { 101 142 enable = 102 143 mkEnableOption "Enable system services" 103 - // {default = true;}; 144 + // { 145 + default = true; 146 + }; 104 147 bluetooth.enable = 105 148 mkEnableOption "Enable Bluetooth" 106 - // {default = cfg.system.services.enable;}; 149 + // { 150 + default = cfg.system.services.enable; 151 + }; 107 152 sound.enable = 108 153 mkEnableOption "Enable sound" 109 - // {default = cfg.system.services.enable;}; 154 + // { 155 + default = cfg.system.services.enable; 156 + }; 110 157 sync.enable = 111 158 mkEnableOption "Enable syncthing" 112 - // {default = false;}; 159 + // { 160 + default = false; 161 + }; 113 162 printing.enable = 114 163 mkEnableOption "Enable printing" 115 - // {default = cfg.system.services.enable;}; 116 - navidrome.enable = 117 - mkEnableOption "Enable navidrome" 118 - // {default = false;}; 164 + // { 165 + default = cfg.system.services.enable; 166 + }; 119 167 networking.enable = 120 168 mkEnableOption "Enable networking" 121 - // {default = cfg.system.services.enable;}; 169 + // { 170 + default = cfg.system.services.enable; 171 + }; 122 172 security.enable = 123 173 mkEnableOption "Enable security" 124 - // {default = cfg.system.services.enable;}; 174 + // { 175 + default = cfg.system.services.enable; 176 + }; 125 177 backups.enable = 126 - mkEnableOption "Enable restic" 127 - // {default = false;}; 178 + mkEnableOption "Enable backups" 179 + // { 180 + default = cfg.system.services.enable; 181 + }; 128 182 }; 129 183 }; 130 - 131 184 desktop = { 132 185 enable = 133 186 mkEnableOption "Enable desktop environment" 134 - // {default = true;}; 187 + // { 188 + default = true; 189 + }; 135 190 niri.enable = 136 191 mkEnableOption "Enable Niri twm" 137 - // {default = cfg.desktop.enable;}; 192 + // { 193 + default = cfg.desktop.enable; 194 + }; 138 195 hyprland.enable = 139 196 mkEnableOption "Enable Hyprland and its ecosystem" 140 - // {default = cfg.desktop.enable;}; 197 + // { 198 + default = cfg.desktop.enable; 199 + }; 141 200 }; 142 201 }; 143 202 }