diff --git a/ci/niv-cron.nix b/ci/niv-cron.nix index 2ec96a87..ebd9b057 100644 --- a/ci/niv-cron.nix +++ b/ci/niv-cron.nix @@ -10,7 +10,7 @@ with lib; { nix.config = { - extra-platforms = ["aarch64-linux" "armv6l-linux" "armv7l-linux"]; + extra-platforms = [ "aarch64-linux" "armv6l-linux" "armv7l-linux" ]; #extra-sandbox-paths = with channels.cipkgs; map (package: builtins.unsafeDiscardStringContext "${package}?") [bash qemu "/run/binfmt"]; }; diff --git a/ci/nodes.nix b/ci/nodes.nix index 157382c3..f6106762 100644 --- a/ci/nodes.nix +++ b/ci/nodes.nix @@ -5,7 +5,7 @@ channels.nixfiles.path = ../.; nix.config = { - extra-platforms = ["aarch64-linux" "armv6l-linux" "armv7l-linux"]; + extra-platforms = [ "aarch64-linux" "armv6l-linux" "armv7l-linux" ]; #extra-sandbox-paths = with channels.cipkgs; map (package: builtins.unsafeDiscardStringContext "${package}?") [bash qemu "/run/binfmt"]; }; diff --git a/config/hosts/settings.nix b/config/hosts/settings.nix new file mode 100644 index 00000000..5c1c527c --- /dev/null +++ b/config/hosts/settings.nix @@ -0,0 +1,5 @@ +{ ... }: { + excludes = [ + "to-do" + ]; +} diff --git a/config/hosts/shinmyoumaru/nixos.nix b/config/hosts/shinmyoumaru/nixos.nix index 4a2db1dd..c385b14e 100644 --- a/config/hosts/shinmyoumaru/nixos.nix +++ b/config/hosts/shinmyoumaru/nixos.nix @@ -13,15 +13,20 @@ ]; boot = { - kernelModules = mkForce ["loop" "atkbd"]; + kernelModules = mkForce [ "loop" "atkbd" ]; initrd = { includeDefaultModules = false; availableKernelModules = mkForce [ "mmc_block" "usbhid" "ext4" - "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat" - "hid_logitech_hidpp" "hid_logitech_dj" "hid_microsoft" + "hid_generic" + "hid_lenovo" + "hid_apple" + "hid_roccat" + "hid_logitech_hidpp" + "hid_logitech_dj" + "hid_microsoft" ]; }; }; diff --git a/config/modules/home/settings.nix b/config/modules/home/settings.nix index cb0cb9c9..f520cfc2 100644 --- a/config/modules/home/settings.nix +++ b/config/modules/home/settings.nix @@ -1,9 +1,12 @@ { sources, ... }: { - external = [ - (import (sources.arcexprs + "/modules")).home-manager - (import (sources.katexprs + "/modules")).home - (import (sources.impermanence + "/home-manager.nix")) - (import sources.anicca).modules.home - (sources.tf-nix + "/modules/home/secrets.nix") - ]; + functor = { + enable = true; + external = [ + (import (sources.arcexprs + "/modules")).home-manager + (import (sources.katexprs + "/modules")).home + (import (sources.impermanence + "/home-manager.nix")) + (import sources.anicca).modules.home + (sources.tf-nix + "/modules/home/secrets.nix") + ]; + }; } diff --git a/config/modules/home/vim.nix b/config/modules/home/vim.nix index c7ea2c72..42e206b2 100644 --- a/config/modules/home/vim.nix +++ b/config/modules/home/vim.nix @@ -39,7 +39,7 @@ let visible = false; }; in - mapAttrs opt knownSettings; + mapAttrs opt knownSettings; }; setExpr = name: value: @@ -47,13 +47,13 @@ let v = if isBool value then (if value then "" else "no") + name else - "${name}=${ + "${name}=${ if isList value then concatStringsSep "," value else toString value }"; in - optionalString (value != null) ("set " + v); + optionalString (value != null) ("set " + v); in @@ -74,7 +74,7 @@ in settings = mkOption { type = vimSettingsType; - default = {}; + default = { }; example = literalExample '' { expandtab = true; @@ -149,7 +149,8 @@ in ]; }; - in mkIf cfg.enable { + in + mkIf cfg.enable { programs.vim.package = vim; home.packages = [ cfg.package ]; } diff --git a/config/modules/meta/deploy.nix b/config/modules/meta/deploy.nix index 512fb956..fa309e9c 100644 --- a/config/modules/meta/deploy.nix +++ b/config/modules/meta/deploy.nix @@ -70,7 +70,7 @@ in config.tf = mkMerge (singleton { imports = [ - ../../targets/common + ../../targets/common.nix ]; deps = { select.allProviders = true; diff --git a/config/modules/meta/network.nix b/config/modules/meta/network.nix index fa55d68c..455da214 100644 --- a/config/modules/meta/network.nix +++ b/config/modules/meta/network.nix @@ -31,7 +31,7 @@ with lib; options = { nixpkgs.crossOverlays = mkOption { type = types.listOf types.unspecified; - default = []; + default = [ ]; }; }; config = { @@ -72,7 +72,7 @@ with lib; nixos = { extraModules = [ "${toString sources.home-manager}/nixos" - ] ++ singleton meta.modules.nixos; + ] ++ lib.singleton meta.modules.nixos; specialArgs = { inherit (config.network) nodes; inherit sources meta; diff --git a/config/modules/meta/settings.nix b/config/modules/meta/settings.nix new file mode 100644 index 00000000..aa321df9 --- /dev/null +++ b/config/modules/meta/settings.nix @@ -0,0 +1,5 @@ +{ sources, ... }: { + functor = { + enable = true; + }; +} diff --git a/config/modules/nixos/settings.nix b/config/modules/nixos/settings.nix index 3c5e2105..04de02bd 100644 --- a/config/modules/nixos/settings.nix +++ b/config/modules/nixos/settings.nix @@ -1,10 +1,13 @@ { sources, ... }: { - external = [ - (import (sources.arcexprs + "/modules")).nixos - (import (sources.katexprs + "/modules")).nixos - (import (sources.impermanence + "/nixos.nix")) - (import sources.anicca).modules.nixos - (sources.tf-nix + "/modules/nixos/secrets.nix") - (sources.tf-nix + "/modules/nixos/secrets-users.nix") - ]; + functor = { + enable = true; + external = [ + (import (sources.arcexprs + "/modules")).nixos + (import (sources.katexprs + "/modules")).nixos + (import (sources.impermanence + "/nixos.nix")) + (import sources.anicca).modules.nixos + (sources.tf-nix + "/modules/nixos/secrets.nix") + (sources.tf-nix + "/modules/nixos/secrets-users.nix") + ]; + }; } diff --git a/config/profiles/base/base16.nix b/config/profiles/base/base16.nix index e23efe22..0809b337 100644 --- a/config/profiles/base/base16.nix +++ b/config/profiles/base/base16.nix @@ -2,6 +2,7 @@ { base16 = { + inherit (config.home-manager.users.kat.base16) schemes alias; console = { enable = true; scheme = config.home-manager.users.kat.base16.alias.default; diff --git a/config/profiles/base/default.nix b/config/profiles/base/default.nix deleted file mode 100644 index 13c5f438..00000000 --- a/config/profiles/base/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, meta, lib, pkgs, ... }: - -{ - imports = with meta; [ - users.kat.base - users.arc - users.hexchen - ./system.nix - ./kitty.nix - ./home.nix - ./profiles.nix - ./shell.nix - ./base16.nix - ./network.nix - ./access.nix - ./locale.nix - ./nix.nix - ./ssh.nix - ./packages.nix - ./secrets.nix - ]; -} diff --git a/config/profiles/base/includes.nix b/config/profiles/base/includes.nix new file mode 100644 index 00000000..d32491aa --- /dev/null +++ b/config/profiles/base/includes.nix @@ -0,0 +1,7 @@ +{ config, meta, ... }: { + imports = with meta; [ + users.kat.base + users.hexchen + users.arc + ]; +} diff --git a/config/profiles/base/secrets.nix b/config/profiles/base/secrets.nix index 3e395ae8..2d63828b 100644 --- a/config/profiles/base/secrets.nix +++ b/config/profiles/base/secrets.nix @@ -1,6 +1,8 @@ -{ config, lib, pkgs, ... }: +{ config, meta, lib, pkgs, ... }: { + imports = lib.optional (meta ? trusted) meta.trusted.secrets; + secrets = { root = "/var/lib/kat/secrets"; persistentRoot = "/var/lib/kat/secrets"; diff --git a/config/profiles/cross/armvcommon.nix b/config/profiles/cross/arm-common.nix similarity index 100% rename from config/profiles/cross/armvcommon.nix rename to config/profiles/cross/arm-common.nix diff --git a/config/profiles/cross/default.nix b/config/profiles/cross/default.nix index 8e09bbba..c9e32aad 100644 --- a/config/profiles/cross/default.nix +++ b/config/profiles/cross/default.nix @@ -1,37 +1,35 @@ -rec { - common = ./armvcommon.nix; - armv7-base = ./armv7.nix; - armv6-base = ./armv6.nix; - aarch64-base = ./aarch64.nix; - - - aarch64 = { - deploy.profile.cross = { - enable = true; - aarch64 = true; +{ lib, tree, ... }: with lib; let + profiles = tree.dirs // tree.files; + appendedProfiles = with profiles; { + aarch64 = { + deploy.profile.cross = { + enable = true; + aarch64 = true; + }; + imports = [ + aarch64 + ]; }; - imports = [ - aarch64-base - ]; - }; - armv7l = { - deploy.profile.cross = { - enable = true; - armv7l = true; + armv7l = { + deploy.profile.cross = { + enable = true; + armv7l = true; + }; + imports = [ + arm-common + armv7 + ]; }; - imports = [ - common - armv7-base - ]; - }; - armv6l = { - deploy.profile.cross = { - enable = true; - armv6l = true; + armv6l = { + deploy.profile.cross = { + enable = true; + armv6l = true; + }; + imports = [ + arm-common + armv6 + ]; }; - imports = [ - common - armv6-base - ]; }; -} +in +profiles // appendedProfiles diff --git a/config/profiles/cross/settings.nix b/config/profiles/cross/settings.nix new file mode 100644 index 00000000..bd6dd5cf --- /dev/null +++ b/config/profiles/cross/settings.nix @@ -0,0 +1,4 @@ +{ ... }: { + defaultOnly = true; + includeFolders.default.enable = true; +} diff --git a/config/profiles/default.nix b/config/profiles/default.nix new file mode 100644 index 00000000..a47892b6 --- /dev/null +++ b/config/profiles/default.nix @@ -0,0 +1,9 @@ +{ lib, tree, ... }@args: with lib; +let + wrappedBase = base: mapAttrs + (name: paths: { + imports = if isAttrs paths then attrValues paths else singleton paths; + }) + (base); +in +(wrappedBase (filterAttrs (n: v: ! v ? "default") tree.dirs)) // (mapAttrs (n: v: removeAttrs v [ "default" ]) (filterAttrs (n: v: v ? "default") tree.dirs)) // (removeAttrs tree.files [ "default" ]) diff --git a/config/profiles/gui/default.nix b/config/profiles/gui/default.nix deleted file mode 100644 index 8a70d37d..00000000 --- a/config/profiles/gui/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, pkgs, meta, ... }: - -{ - imports = [ - meta.services.dnscrypt-proxy - ./adb.nix - ./fonts.nix - ./sway.nix - ./filesystems.nix - ./qt.nix - ./gpg.nix - ./xdg-portals.nix - ./nfs.nix - ./mingetty.nix - ./sound.nix - ]; - - services.tumbler.enable = true; - - deploy.profile.gui = true; -} diff --git a/config/profiles/hardware/amdgpu/default.nix b/config/profiles/hardware/amdgpu.nix similarity index 100% rename from config/profiles/hardware/amdgpu/default.nix rename to config/profiles/hardware/amdgpu.nix diff --git a/config/profiles/hardware/default.nix b/config/profiles/hardware/default.nix index 6b5f253a..e2fb66e6 100644 --- a/config/profiles/hardware/default.nix +++ b/config/profiles/hardware/default.nix @@ -1,28 +1,25 @@ -let hardwareProfiles = { lib }: - let profiles = with profiles; lib.domainMerge - { - folder = ""; # not used in this usage - folderPaths = [ - ./. - ../../trusted/profiles/hardware - ]; - } // { +{ lib, tree, ... }: with lib; let + profiles = (filterAttrs (n: v: v ? "default") tree.dirs) + // tree.defaultDirs + // (mapAttrs (n: v: removeAttrs v [ "default" ]) (filterAttrs (n: v: v ? "default") tree.dirs)) + // tree.files; + appendedProfiles = with profiles; { ms-7b86 = { imports = [ - ms-7b86-base + ms-7b86 ryzen amdgpu ]; }; rm-310 = { imports = [ - rm-310-base + rm-310 intel ]; }; v330-14arr = { imports = [ - v330-14arr-base + v330-14arr ryzen amdgpu laptop @@ -31,10 +28,11 @@ let hardwareProfiles = { lib }: }; eeepc-1015pem = { imports = [ - eeepc-1015pem-base + eeepc-1015pem intel laptop ]; }; - }; in profiles; -in { __functor = self: hardwareProfiles; isModule = false; } + }; +in +profiles // appendedProfiles diff --git a/config/profiles/hardware/eeepc-1015pem-base/default.nix b/config/profiles/hardware/eeepc-1015pem.nix similarity index 100% rename from config/profiles/hardware/eeepc-1015pem-base/default.nix rename to config/profiles/hardware/eeepc-1015pem.nix diff --git a/config/profiles/hardware/hcloud-imperative/default.nix b/config/profiles/hardware/hcloud-imperative.nix similarity index 100% rename from config/profiles/hardware/hcloud-imperative/default.nix rename to config/profiles/hardware/hcloud-imperative.nix diff --git a/config/profiles/hardware/intel/default.nix b/config/profiles/hardware/intel.nix similarity index 100% rename from config/profiles/hardware/intel/default.nix rename to config/profiles/hardware/intel.nix diff --git a/config/profiles/hardware/laptop/default.nix b/config/profiles/hardware/laptop/default.nix index f7cee909..87623b95 100644 --- a/config/profiles/hardware/laptop/default.nix +++ b/config/profiles/hardware/laptop/default.nix @@ -1,9 +1,11 @@ -{ config, ... }: - -{ - deploy.profile.hardware.laptop = true; - +{ ... }: { imports = [ - ./light.nix + ({ config, ... }: { + deploy.profile.hardware.laptop = true; + + imports = [ + ./light.nix + ]; + }) ]; } diff --git a/config/profiles/hardware/laptop/settings.nix b/config/profiles/hardware/laptop/settings.nix new file mode 100644 index 00000000..e74c4905 --- /dev/null +++ b/config/profiles/hardware/laptop/settings.nix @@ -0,0 +1,7 @@ +{ ... }: { + defaultOnly = true; + includeFolders = { + enable = true; + default.enable = true; + }; +} diff --git a/config/profiles/hardware/ms-7b86-base/default.nix b/config/profiles/hardware/ms-7b86.nix similarity index 100% rename from config/profiles/hardware/ms-7b86-base/default.nix rename to config/profiles/hardware/ms-7b86.nix diff --git a/config/profiles/hardware/oracle/default.nix b/config/profiles/hardware/oracle/default.nix index 925b7687..432c1a0e 100644 --- a/config/profiles/hardware/oracle/default.nix +++ b/config/profiles/hardware/oracle/default.nix @@ -1,26 +1,26 @@ -rec { - common = ./common.nix; - ubuntu-base = ./ubuntu.nix; - oracle-base = ./oracle.nix; - - ubuntu = { - deploy.profile.hardware.oracle = { - common = true; - ubuntu = true; +{ lib, sources, tree, ... }: with lib; let + profiles = tree.dirs // tree.files; + appendedProfiles = with profiles; { + ubuntu = { config, ... }: { + deploy.profile.hardware.oracle = { + ubuntu = true; + common = true; + }; + imports = with import (sources.tf-nix + "/modules"); [ + nixos.ubuntu-linux + common + ]; }; - imports = [ - common - ubuntu-base - ]; - }; - oracle = { - deploy.profile.hardware.oracle = { - common = true; - oracle = true; + oracle = { config, ... }: { + deploy.profile.hardware.oracle = { + oracle = true; + common = true; + }; + imports = with import (sources.tf-nix + "/modules"); [ + nixos.oracle-linux + common + ]; }; - imports = [ - common - oracle-base - ]; }; -} +in +profiles // appendedProfiles diff --git a/config/profiles/hardware/oracle/oracle.nix b/config/profiles/hardware/oracle/oracle.nix deleted file mode 100644 index c13ddd68..00000000 --- a/config/profiles/hardware/oracle/oracle.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, sources, ... }: { - imports = with import (sources.tf-nix + "/modules"); [ - nixos.oracle-linux - ]; -} diff --git a/config/profiles/hardware/oracle/settings.nix b/config/profiles/hardware/oracle/settings.nix new file mode 100644 index 00000000..bd6dd5cf --- /dev/null +++ b/config/profiles/hardware/oracle/settings.nix @@ -0,0 +1,4 @@ +{ ... }: { + defaultOnly = true; + includeFolders.default.enable = true; +} diff --git a/config/profiles/hardware/oracle/ubuntu.nix b/config/profiles/hardware/oracle/ubuntu.nix deleted file mode 100644 index 5e8a6285..00000000 --- a/config/profiles/hardware/oracle/ubuntu.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ sources, ... }: { - imports = with import (sources.tf-nix + "/modules"); [ - nixos.ubuntu-linux - ]; -} diff --git a/config/profiles/hardware/rm-310-base/default.nix b/config/profiles/hardware/rm-310.nix similarity index 100% rename from config/profiles/hardware/rm-310-base/default.nix rename to config/profiles/hardware/rm-310.nix diff --git a/config/profiles/hardware/ryzen/default.nix b/config/profiles/hardware/ryzen.nix similarity index 100% rename from config/profiles/hardware/ryzen/default.nix rename to config/profiles/hardware/ryzen.nix diff --git a/config/profiles/hardware/settings.nix b/config/profiles/hardware/settings.nix new file mode 100644 index 00000000..c34c280d --- /dev/null +++ b/config/profiles/hardware/settings.nix @@ -0,0 +1,5 @@ +{ ... }: { + defaultOnly = true; + includeFolders.enable = true; + includeFolders.default.enable = true; +} diff --git a/config/profiles/hardware/v330-14arr-base/default.nix b/config/profiles/hardware/v330-14arr.nix similarity index 100% rename from config/profiles/hardware/v330-14arr-base/default.nix rename to config/profiles/hardware/v330-14arr.nix diff --git a/config/profiles/hardware/wifi.nix b/config/profiles/hardware/wifi.nix new file mode 100644 index 00000000..08bb69af --- /dev/null +++ b/config/profiles/hardware/wifi.nix @@ -0,0 +1,18 @@ +{ config, tf, lib, ... }: with lib; + +{ + kw.secrets.variables = mapListToAttrs + (field: + nameValuePair "wireless-${field}" { + path = "secrets/wifi"; + inherit field; + }) [ "ssid" "password" ]; + + deploy.profile.hardware.wifi = true; + networking.wireless = { + enable = true; + networks.${builtins.unsafeDiscardStringsContext tf.variables.wireless-ssid.get} = { + pskRaw = tf.variables.wireless-password.get; + }; + }; +} diff --git a/config/profiles/hardware/wifi/default.nix b/config/profiles/hardware/wifi/default.nix deleted file mode 100644 index 2823f57d..00000000 --- a/config/profiles/hardware/wifi/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, ... }: - -{ - deploy.profile.hardware.wifi = true; - networking.wireless.enable = true; -} diff --git a/config/profiles/settings.nix b/config/profiles/settings.nix new file mode 100644 index 00000000..efd987b0 --- /dev/null +++ b/config/profiles/settings.nix @@ -0,0 +1,5 @@ +{ ... }: { + defaultOnly = true; + recursiveInclude = true; + includeFolders.default.enable = true; +} diff --git a/config/profiles/vfio/default.nix b/config/profiles/vfio/profile.nix similarity index 100% rename from config/profiles/vfio/default.nix rename to config/profiles/vfio/profile.nix diff --git a/config/services/settings.nix b/config/services/settings.nix new file mode 100644 index 00000000..1c4d723a --- /dev/null +++ b/config/services/settings.nix @@ -0,0 +1,6 @@ +{ ... }: { + includeFolders = { + enable = true; + default.enable = true; + }; +} diff --git a/config/targets/common/default.nix b/config/targets/common.nix similarity index 100% rename from config/targets/common/default.nix rename to config/targets/common.nix diff --git a/config/targets/home/default.nix b/config/targets/home.nix similarity index 100% rename from config/targets/home/default.nix rename to config/targets/home.nix diff --git a/config/targets/infra/default.nix b/config/targets/infra.nix similarity index 100% rename from config/targets/infra/default.nix rename to config/targets/infra.nix diff --git a/config/targets/oci-root/default.nix b/config/targets/oci-root.nix similarity index 100% rename from config/targets/oci-root/default.nix rename to config/targets/oci-root.nix diff --git a/config/targets/rinnosuke-domains/default.nix b/config/targets/rinnosuke-domains.nix similarity index 100% rename from config/targets/rinnosuke-domains/default.nix rename to config/targets/rinnosuke-domains.nix diff --git a/config/users/arc/default.nix b/config/users/arc/default.nix index ecdab928..8144d8ba 100644 --- a/config/users/arc/default.nix +++ b/config/users/arc/default.nix @@ -1,12 +1,16 @@ -{ config, pkgs, ... }: +{ ... }: { + imports = [ + ({ config, pkgs, ... }: -{ - users.users.arc = { - uid = 1001; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ8Z6briIboxIdedPGObEWB6QEQkvxKvnMW/UVU9t/ac mew-pgp" - ]; - shell = pkgs.zsh; - }; + { + users.users.arc = { + uid = 1001; + isNormalUser = true; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ8Z6briIboxIdedPGObEWB6QEQkvxKvnMW/UVU9t/ac mew-pgp" + ]; + shell = pkgs.zsh; + }; + }) + ]; } diff --git a/config/users/arc/settings.nix b/config/users/arc/settings.nix new file mode 100644 index 00000000..e74c4905 --- /dev/null +++ b/config/users/arc/settings.nix @@ -0,0 +1,7 @@ +{ ... }: { + defaultOnly = true; + includeFolders = { + enable = true; + default.enable = true; + }; +} diff --git a/config/users/hexchen/default.nix b/config/users/hexchen/default.nix index 016bfeab..2a624572 100644 --- a/config/users/hexchen/default.nix +++ b/config/users/hexchen/default.nix @@ -1,38 +1,42 @@ -{ config, lib, pkgs, ... }: +{ ... }: { + imports = [ + ({ config, lib, pkgs, ... }: -{ - users.users.hexchen = { - uid = 1002; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDNVUDKx9sukRkb6INny432+2HZBWx/qIEAOvngF1qcj hexchen@montasch" - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI3T1eFS77URHZ/HVWkMOqx7W1U54zJtn9C7QWsHOtyH72i/4EVj8SxYqLllElh1kuKUXSUipPeEzVsipFVvfH0wEuTDgFffiSQ3a8lfUgdEBuoySwceEoPgc5deapkOmiDIDeeWlrRe3nqspLRrSWU1DirMxoFPbwqJXRvpl6qJPxRg+2IolDcXlZ6yxB4Vv48vzRfVzZNUz7Pjmy2ebU8PbDoFWL/S3m7yOzQpv3L7KYBz7+rkjuF3AU2vy6CAfIySkVpspZZLtkTGCIJF228ev0e8NvhuN6ZnjzXxVTQOy32HCdPdbBbicu0uHfZ5O7JX9DjGd8kk1r2dnZwwy/ hexchen@yubi5" - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4CLJ+mFfq5XiBXROKewmN9WYmj+79bj/AoaR6Iud2pirulot3tkrrLe2cMjiNWFX8CGVqrsAELKUA8EyUTJfStlcTE0/QNESTRmdDaC+lZL41pWUO9KOiD6/0axAhHXrSJ0ScvbqtD0CtpnCKKxtuOflVPoUGZsH9cLKJNRKfEka0H0GgeKb5Tp618R/WNAQOwaCcXzg/nG4Bgv3gJW4Nm9IKy/MwRZqtILi8Mtd+2diTqpMwyNRmbenmRHCQ1vRw46joYkledVqrmSlfSMFgIHI1zRSBXb/JkG2IvIyB5TGbTkC4N2fqJNpH8wnCKuOvs46xmgdiRA26P48C2em3 hexchen@yubi5c" - ]; - }; + { + users.users.hexchen = { + uid = 1002; + isNormalUser = true; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDNVUDKx9sukRkb6INny432+2HZBWx/qIEAOvngF1qcj hexchen@montasch" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI3T1eFS77URHZ/HVWkMOqx7W1U54zJtn9C7QWsHOtyH72i/4EVj8SxYqLllElh1kuKUXSUipPeEzVsipFVvfH0wEuTDgFffiSQ3a8lfUgdEBuoySwceEoPgc5deapkOmiDIDeeWlrRe3nqspLRrSWU1DirMxoFPbwqJXRvpl6qJPxRg+2IolDcXlZ6yxB4Vv48vzRfVzZNUz7Pjmy2ebU8PbDoFWL/S3m7yOzQpv3L7KYBz7+rkjuF3AU2vy6CAfIySkVpspZZLtkTGCIJF228ev0e8NvhuN6ZnjzXxVTQOy32HCdPdbBbicu0uHfZ5O7JX9DjGd8kk1r2dnZwwy/ hexchen@yubi5" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4CLJ+mFfq5XiBXROKewmN9WYmj+79bj/AoaR6Iud2pirulot3tkrrLe2cMjiNWFX8CGVqrsAELKUA8EyUTJfStlcTE0/QNESTRmdDaC+lZL41pWUO9KOiD6/0axAhHXrSJ0ScvbqtD0CtpnCKKxtuOflVPoUGZsH9cLKJNRKfEka0H0GgeKb5Tp618R/WNAQOwaCcXzg/nG4Bgv3gJW4Nm9IKy/MwRZqtILi8Mtd+2diTqpMwyNRmbenmRHCQ1vRw46joYkledVqrmSlfSMFgIHI1zRSBXb/JkG2IvIyB5TGbTkC4N2fqJNpH8wnCKuOvs46xmgdiRA26P48C2em3 hexchen@yubi5c" + ]; + }; - home-manager.users.hexchen = { - programs.vim = { - enable = true; - extraConfig = '' - set viminfo='20,<1000 - set mouse=a - ''; - }; + home-manager.users.hexchen = { + programs.vim = { + enable = true; + extraConfig = '' + set viminfo='20,<1000 + set mouse=a + ''; + }; - programs.git = { - enable = true; - userName = "hexchen"; - userEmail = "hexchen@lilwit.ch"; - signing = { - key = "B1DF5EAD"; - }; - extraConfig = { - pull.rebase = true; - }; - }; + programs.git = { + enable = true; + userName = "hexchen"; + userEmail = "hexchen@lilwit.ch"; + signing = { + key = "B1DF5EAD"; + }; + extraConfig = { + pull.rebase = true; + }; + }; - programs.bat.enable = true; - programs.jq.enable = true; - }; + programs.bat.enable = true; + programs.jq.enable = true; + }; + }) + ]; } diff --git a/config/users/hexchen/settings.nix b/config/users/hexchen/settings.nix new file mode 100644 index 00000000..e74c4905 --- /dev/null +++ b/config/users/hexchen/settings.nix @@ -0,0 +1,7 @@ +{ ... }: { + defaultOnly = true; + includeFolders = { + enable = true; + default.enable = true; + }; +} diff --git a/config/users/kat/base/default.nix b/config/users/kat/base/default.nix deleted file mode 100644 index 9ec0e8f4..00000000 --- a/config/users/kat/base/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ ... }: - -{ - imports = [ - ./vim - ./shell.nix - ./git.nix - ./tmux.nix - ./base16.nix - ./xdg.nix - ./ssh.nix - ./packages.nix - ./weechat.nix - ./inputrc.nix - ./secrets.nix - ]; - - home.stateVersion = "20.09"; -} diff --git a/config/users/kat/base/state.nix b/config/users/kat/base/state.nix new file mode 100644 index 00000000..2e77c69e --- /dev/null +++ b/config/users/kat/base/state.nix @@ -0,0 +1,3 @@ +{ config, ... }: { + home.stateVersion = "20.09"; +} diff --git a/config/users/kat/default.nix b/config/users/kat/default.nix index 4866d5f8..9692877d 100644 --- a/config/users/kat/default.nix +++ b/config/users/kat/default.nix @@ -1,28 +1,30 @@ -let katUser = { lib }: - let - userImport = profile: { config, ... }: { +{ lib, tree, ... }: with lib; let + wrapImports = imports: mapAttrs + (name: paths: { config, ... }: { config.home-manager.users.kat = { - imports = [ - (./. + "/${profile}") - ]; + imports = if isAttrs paths then attrValues paths else singleton paths; }; - }; - serviceImport = profile: { config, ... }: { - config.home-manager.users.kat = { - imports = [ - (./services + "/${profile}") - ]; - }; - }; - profileNames = lib.folderList ./. [ "base" "services" ]; - serviceNames = lib.folderList ./services [ ]; - userProfiles = with userProfiles; - lib.genAttrs profileNames userImport // { - services = lib.genAttrs serviceNames serviceImport; - base = { imports = [ ./nixos.nix (userImport "base") ]; }; - server = {}; - guiFull = { imports = [ gui sway dev media personal ]; }; - }; - in - userProfiles; -in { __functor = self: katUser; isModule = false; } + }) + imports; + dirImports = wrapImports tree.dirs; + serviceImports = wrapImports tree.dirs.services; +in +(removeAttrs dirImports (singleton "base")) // { + base = { + imports = [ + dirImports.base + tree.files.nixos + ]; + }; + server = { }; + guiFull = { + imports = with dirImports; [ + gui + sway + dev + media + personal + ]; + }; + services = serviceImports; +} diff --git a/config/users/kat/dev/default.nix b/config/users/kat/dev/default.nix deleted file mode 100644 index 9f7451e7..00000000 --- a/config/users/kat/dev/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - imports = [ - ./vim - ./rink.nix - ./shell.nix - ./rustfmt.nix - ./packages.nix - ./cookiecutter.nix - ]; -} diff --git a/config/users/kat/dev/settings.nix b/config/users/kat/dev/settings.nix new file mode 100644 index 00000000..cf0de060 --- /dev/null +++ b/config/users/kat/dev/settings.nix @@ -0,0 +1,5 @@ +{ ... }: { + excludes = [ + "emacs" + ]; +} diff --git a/config/users/kat/gui/default.nix b/config/users/kat/gui/default.nix deleted file mode 100644 index d56e63db..00000000 --- a/config/users/kat/gui/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ config, ... }: - -{ - imports = [ - ./firefox - ./packages.nix - ./gtk.nix - ./base16.nix - ./foot.nix - ./kitty.nix - ./xdg.nix - ./ranger.nix - ./fonts.nix - ./qt.nix - ]; -} diff --git a/config/users/kat/media/default.nix b/config/users/kat/media/default.nix deleted file mode 100644 index efaf126e..00000000 --- a/config/users/kat/media/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - imports = [ - ./mpv.nix - ./obs.nix - ./syncplay.nix - ./packages.nix - ]; -} diff --git a/config/users/kat/personal/default.nix b/config/users/kat/personal/default.nix deleted file mode 100644 index b8f88d5d..00000000 --- a/config/users/kat/personal/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: - -{ - imports = [ - ./gpg.nix - ./git.nix - ./packages.nix - ./weechat.nix - ./email.nix - ./shell.nix - ./pass.nix - ./taskwarrior.nix - ./bitw.nix - ]; -} diff --git a/config/users/kat/personal/shell.nix b/config/users/kat/personal/shell.nix index 5b63ae93..27d947cc 100644 --- a/config/users/kat/personal/shell.nix +++ b/config/users/kat/personal/shell.nix @@ -7,6 +7,6 @@ ''; }; programs.zsh = { - shellAliases = mapListToAttrs (attr: nameValuePair "abby${attr}" "mpv $(bitw get secrets/abby -f ${attr})") ["radio" "tv"]; + shellAliases = mapListToAttrs (attr: nameValuePair "abby${attr}" "mpv $(bitw get secrets/abby -f ${attr})") [ "radio" "tv" ]; }; } diff --git a/config/users/kat/personal/vim/default.nix b/config/users/kat/personal/vim/default.nix index 2f73a34e..b3b69611 100644 --- a/config/users/kat/personal/vim/default.nix +++ b/config/users/kat/personal/vim/default.nix @@ -3,7 +3,7 @@ { programs.neovim = { extraConfig = '' - ${source ./init.vim} + source ${./init.vim} ''; plugins = with pkgs.vimPlugins; [ notmuch-vim diff --git a/config/users/kat/services/weechat/default.nix b/config/users/kat/services/weechat.nix similarity index 100% rename from config/users/kat/services/weechat/default.nix rename to config/users/kat/services/weechat.nix diff --git a/config/users/kat/settings.nix b/config/users/kat/settings.nix new file mode 100644 index 00000000..65042aa2 --- /dev/null +++ b/config/users/kat/settings.nix @@ -0,0 +1,7 @@ +{ ... }: { + defaultOnly = true; + recursiveInclude = true; + includeFolders = { + default.enable = true; + }; +} diff --git a/config/users/kat/sway/default.nix b/config/users/kat/sway/default.nix deleted file mode 100644 index d1b06dde..00000000 --- a/config/users/kat/sway/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, pkgs, ... }: - -{ - imports = [ - ./xkb.nix - ./waybar - ./wofi - ./mako.nix - ./sway.nix - ./gammastep.nix - ./konawall.nix - ./packages.nix - ]; -} diff --git a/default.nix b/default.nix index 7a5bb7e3..2f0823c4 100644 --- a/default.nix +++ b/default.nix @@ -32,13 +32,7 @@ let If only one exists, the path for that one is returned. Otherwise a module is generated which contains both import paths. */ - xargNames = lib.unique (lib.folderList ./config [ "trusted modules" ] ++ lib.folderList ./config/trusted [ "pkgs" "tf" ]); - xarg = (lib.mapListToAttrs - (folder: lib.nameValuePair folder (lib.domainMerge { - inherit folder; - folderPaths = [ (./config + "/${folder}") (./config/trusted + "/${folder}") ]; - })) - xargNames) // { modules = lib.recursiveMod { folder = ./config/modules; inherit sources; }; }; + xarg = lib.recursiveMod { folder = ./config; inherit sources lib; }; /* We provide the runners with this file this way. We also provide our nix args here. This is also where pkgs are passed through to the meta config. diff --git a/nix/sources.json b/nix/sources.json index 5d1f63e3..26d585ab 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -89,10 +89,10 @@ "homepage": null, "owner": "kittywitch", "repo": "nixexprs", - "rev": "da3150b0837cf75c0c0fe36369ce424b80ee18ce", - "sha256": "0w43bih23d3iv95k4arm3xys679rr7rblr5a74isvzxz0m70w3kr", + "rev": "05050726c147903a257c03bc454250cf0cb6b997", + "sha256": "0fk4fyxvc4kivd5g6nnxrrwll51innx1dlx7wq7mvaarlm9vj5h0", "type": "tarball", - "url": "https://github.com/kittywitch/nixexprs/archive/da3150b0837cf75c0c0fe36369ce424b80ee18ce.tar.gz", + "url": "https://github.com/kittywitch/nixexprs/archive/05050726c147903a257c03bc454250cf0cb6b997.tar.gz", "url_template": "https://github.com///archive/.tar.gz" }, "niv": { diff --git a/overlays/exprs b/overlays/exprs index da3150b0..05050726 160000 --- a/overlays/exprs +++ b/overlays/exprs @@ -1 +1 @@ -Subproject commit da3150b0837cf75c0c0fe36369ce424b80ee18ce +Subproject commit 05050726c147903a257c03bc454250cf0cb6b997 diff --git a/shell.nix b/shell.nix index b7218cfc..3ac14026 100644 --- a/shell.nix +++ b/shell.nix @@ -68,9 +68,11 @@ with lib; pkgs.mkShell { nf-actions nf-actions-test ] ++ config.runners.lazy.nativeBuildInputs - ++ (map (node: writeShellScriptBin "${node.networking.hostName}-img" '' + ++ (map + (node: writeShellScriptBin "${node.networking.hostName}-img" '' nix build -f . network.nodes.${node.networking.hostName}.system.build.sdImage --show-trace - '') (filter (node: node.system.build ? sdImage) (attrValues meta.network.nodes))); + '') + (filter (node: node.system.build ? sdImage) (attrValues meta.network.nodes))); shellHook = '' export HOME_HOSTNAME=$(hostname -s) export HOME_UID=$(id -u)