my system configurations ^-^

Compare changes

Choose any two refs to compare.

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