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 settings = { 15 system = { 16 hostName = "earthy"; 17 - services.sync.enable = true; 18 }; 19 }; 20
··· 14 settings = { 15 system = { 16 hostName = "earthy"; 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"; 28 }; 29 }; 30
+1
modules/nixos/services/default.nix
··· 9 imports = [ 10 ./i18n.nix 11 ./mpdscribble.nix 12 ./pipewire.nix 13 ./printing.nix 14 ./privacy.nix
··· 9 imports = [ 10 ./i18n.nix 11 ./mpdscribble.nix 12 + ./navidrome.nix 13 ./pipewire.nix 14 ./printing.nix 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 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;
··· 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;
+1 -1
modules/shared/home/services/syncthing.nix
··· 25 inherit devices; 26 options = { 27 urAccepted = -1; # disable usage reporting 28 - relaysEnabled = false; 29 }; 30 folders = { 31 docs = {
··· 25 inherit devices; 26 options = { 27 urAccepted = -1; # disable usage reporting 28 + # relaysEnabled = false; 29 }; 30 folders = { 31 docs = {
+44 -103
modules/shared/options/default.nix
··· 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 }
··· 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 }