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