diff --git a/config/hardware/spark.nix b/config/hardware/spark.nix index 24cd42c..b3845f8 100644 --- a/config/hardware/spark.nix +++ b/config/hardware/spark.nix @@ -9,22 +9,23 @@ efi.canTouchEfiVariables = true; }; initrd = { - availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" "rtsx_usb_sdmmc" ]; + availableKernelModules = + [ "xhci_pci" "ahci" "usbhid" "sd_mod" "rtsx_usb_sdmmc" ]; kernelModules = [ ]; }; kernelModules = [ "kvm-intel" ]; extraModulePackages = [ ]; }; - fileSystems."/" = - { device = "/dev/disk/by-label/nixos"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-label/BOOT"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-label/BOOT"; + fsType = "vfat"; + }; hardware = { bluetooth.enable = true; @@ -48,12 +49,11 @@ }; interfaces = { - enp3s0 = { - useDHCP = false; - }; - + enp3s0 = { useDHCP = false; }; + intif0 = { - macAddress = pkgs.lib.network.generate-mac-address config.instance.hostname "intif0"; + # pkgs.lib.network.generate-mac-address config.instance.hostname "intif0"; + macAddress = "02:47:A7:B2:B4:8D"; }; }; }; diff --git a/config/hardware/zbox.nix b/config/hardware/zbox.nix index faa4b03..1d5fa1d 100644 --- a/config/hardware/zbox.nix +++ b/config/hardware/zbox.nix @@ -34,8 +34,7 @@ "/state" = { device = "/dev/disk/by-label/zbox-data"; fsType = "btrfs"; - options = - [ "noatime" "nodiratime" "compress=zstd" "noexec" "subvol=@state" ]; + options = [ "noatime" "nodiratime" "compress=zstd" "subvol=@state" ]; }; "/nix" = { @@ -85,6 +84,7 @@ }; networking = { + useDHCP = false; macvlans = { intif0 = { interface = "eno1"; @@ -93,6 +93,7 @@ }; interfaces = { + eno1.useDHCP = false; intif0 = { # output of: echo clunk-intif0|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/' macAddress = "02:dd:80:52:83:9b"; diff --git a/config/host-config/limina.nix b/config/host-config/limina.nix index 40768e5..1283eca 100644 --- a/config/host-config/limina.nix +++ b/config/host-config/limina.nix @@ -100,7 +100,7 @@ in { "L /root/.ssh/known_hosts - - - - /state/root/ssh/known_hosts" ]; - security.acme.email = "niten@fudo.org"; + security.acme.defaults.email = "niten@fudo.org"; networking.firewall.allowedTCPPorts = [ 80 443 ]; diff --git a/config/host-config/nostromo.nix b/config/host-config/nostromo.nix index 8a78ae3..5b8d5bb 100644 --- a/config/host-config/nostromo.nix +++ b/config/host-config/nostromo.nix @@ -85,6 +85,24 @@ in { target-file = "/run/services/postgres/db.passwd"; user = config.services.postgresql.superUser; }; + pricebot-auth-token = { + source-file = + config.fudo.secrets.files.service-secrets.nostromo."pricebot-auth.token"; + target-file = "/run/services/pricebot/auth.token"; + user = "root"; + }; + }; + + pricebot = { + enable = true; + mattermost-url = "https://chat.fudo.org"; + mattermost-auth-token-file = host-secrets.pricebot-auth-token.target-file; + monitors = { + btc = { + mattermost-channel-id = "3m4bsxcrwbrmpqd4yawwh98q8o"; + notify-user = "niten"; + }; + }; }; services = { diff --git a/config/host-config/spark.nix b/config/host-config/spark.nix index 8f954f8..3b2bce7 100644 --- a/config/host-config/spark.nix +++ b/config/host-config/spark.nix @@ -1,21 +1,19 @@ { config, lib, pkgs, ... }: { - fudo.slynk.enable = true; + fudo = { + slynk.enable = true; + wallfly.location = "office"; + }; networking = { - interfaces = { - intif0.useDHCP = true; - }; + interfaces = { intif0.useDHCP = true; }; firewall.enable = false; }; i18n.inputMethod = { enabled = "fcitx5"; - fcitx5.addons = with pkgs; [ - fcitx5-chinese-addons - fcitx5-rime - ]; + fcitx5.addons = with pkgs; [ fcitx5-chinese-addons fcitx5-rime ]; }; # fudo.adguard-dns-proxy = { diff --git a/config/host-config/system3.nix b/config/host-config/system3.nix index 0b036e4..e8f33dd 100644 --- a/config/host-config/system3.nix +++ b/config/host-config/system3.nix @@ -3,7 +3,10 @@ with lib; let state-dir = "/state"; in { - fudo.slynk.enable = true; + fudo = { + slynk.enable = true; + wallfly.location = "office"; + }; environment.systemPackages = with pkgs; [ opencv-java ]; diff --git a/config/host-config/wormhole0.nix b/config/host-config/wormhole0.nix index 8fb58b1..b40e54d 100644 --- a/config/host-config/wormhole0.nix +++ b/config/host-config/wormhole0.nix @@ -26,7 +26,7 @@ in { networking = { hostName = hostname; - firewall.enable = false; + firewall = { enable = false; }; defaultGateway = { address = "10.0.0.1"; @@ -41,7 +41,7 @@ in { ipv4 = { addresses = [{ address = primary-ip; - prefixLength = 24; + prefixLength = 16; }]; }; }; @@ -75,6 +75,11 @@ in { target-file = "/run/mosquitto-secrets/xiaoxuan.passwd"; user = mosquitto-user; }; + mosquitto-wallfly-passwd = { + source-file = host-passwds.mosquitto-wallfly; + target-file = "/run/mosquitto-secrets/wallfly.passwd"; + user = mosquitto-user; + }; }; systemd = { @@ -102,14 +107,14 @@ in { }; tmpfiles.rules = [ - "L /root/.gnupg - - - - ${state-dir}/user/root/gnupg" - "L /root/.ssh/id_rsa - - - - ${state-dir}/user/root/ssh/id_rsa" - "L /root/.ssh/id_rsa.pub - - - - ${state-dir}/user/root/ssh/id_rsa.pub" - "L /root/.ssh/known_hosts - - - - ${state-dir}/user/root/ssh/known_hosts" - "L /etc/adjtime - - - - ${state-dir}/etc/adjtime" - "d /state/services 0711 root root - -" + "L /root/.gnupg - - - - ${state-dir}/user/root/gnupg" + "L /root/.ssh/id_rsa - - - - ${state-dir}/user/root/ssh/id_rsa" + "L /root/.ssh/id_rsa.pub - - - - ${state-dir}/user/root/ssh/id_rsa.pub" + "L /root/.ssh/known_hosts - - - - ${state-dir}/user/root/ssh/known_hosts" + "L /etc/adjtime - - - - ${state-dir}/etc/adjtime" + "d /state/services 0711 root root - -" "d ${zigbee2mqtt-statedir} 0700 ${zigbee2mqtt-user} - - -" - "d ${mosquitto-statedir} 0700 ${mosquitto-user} - - -" + "d ${mosquitto-statedir} 0700 ${mosquitto-user} - - -" ]; }; @@ -150,6 +155,7 @@ in { listeners = [{ settings.allow_anonymous = false; port = 1883; + address = "0.0.0.0"; users = { zigbee2mqtt = { passwordFile = @@ -161,14 +167,18 @@ in { host-secrets.mosquitto-home-assistant-passwd.target-file; acl = [ "readwrite #" ]; }; - niten = { - passwordFile = host-secrets.mosquitto-niten-passwd.target-file; - acl = [ "readwrite #" ]; - }; - xiaoxuan = { - passwordFile = host-secrets.mosquitto-xiaoxuan-passwd.target-file; - acl = [ "readwrite #" ]; - }; + # niten = { + # passwordFile = host-secrets.mosquitto-niten-passwd.target-file; + # acl = [ "readwrite #" ]; + # }; + # xiaoxuan = { + # passwordFile = host-secrets.mosquitto-xiaoxuan-passwd.target-file; + # acl = [ "readwrite #" ]; + # }; + # wallfly = { + # passwordFile = host-secrets.mosquitto-wallfly-passwd.target-file; + # acl = [ "readwrite homeassistant/binary_sensor/#" ]; + # }; }; }]; }; diff --git a/config/host-config/zbox.nix b/config/host-config/zbox.nix index de99ccd..d9fb006 100644 --- a/config/host-config/zbox.nix +++ b/config/host-config/zbox.nix @@ -1,25 +1,38 @@ { config, lib, pkgs, ... }: -{ +let state-dir = "/state"; +in { config = { - fudo.slynk.enable = true; + fudo = { + slynk.enable = true; + wallfly.location = "family_room"; + }; environment.systemPackages = with pkgs; [ opencv-java ]; networking = { - useDHCP = false; interfaces.intif0.useDHCP = true; - }; - - i18n.inputMethod = { - enabled = "fcitx5"; - fcitx5.addons = with pkgs; [ - fcitx5-chinese-addons - fcitx5-rime - ]; + firewall.enable = false; }; - hardware.bluetooth.enable = true; - hardware.xpadneo.enable = true; + i18n.inputMethod = { + enabled = "fcitx5"; + fcitx5.addons = with pkgs; [ fcitx5-chinese-addons fcitx5-rime ]; + }; + + systemd.tmpfiles.rules = [ + "d ${state-dir}/lib/flatpak 0755 root root - -" + "d ${state-dir}/etc 0755 root root - -" + "L /var/lib/flatpak - - - - ${state-dir}/lib/flatpak" + "L /etc/adjtime - - - - ${state-dir}/etc/adjtime" + ]; + + hardware = { + bluetooth = { + enable = true; + package = pkgs.bluezFull; + }; + xpadneo.enable = true; + }; }; } diff --git a/config/profile-config/common-ui.nix b/config/profile-config/common-ui.nix index d321c6c..ef88dd2 100644 --- a/config/profile-config/common-ui.nix +++ b/config/profile-config/common-ui.nix @@ -51,10 +51,11 @@ in { }; pulse.enable = true; jack.enable = true; - media-session = { - enable = true; - config.alsa-monitor = { api.alsa.headroom = 1024; }; - }; + wireplumber.enable = true; + # media-session = { + # enable = true; + # config.alsa-monitor = { api.alsa.headroom = 1024; }; + # }; }; udev.packages = with pkgs; [ via ]; @@ -84,67 +85,5 @@ in { services.flatpak.enable = enable-gui; - fonts = mkIf enable-gui { - fontDir.enable = true; - fontconfig.enable = true; - #fontconfig.antialias = true; - #fontconfig.penultimate.enable = true; - #fontconfig.subpixel.lcdfilter = "default"; - - fonts = with pkgs; [ - cantarell_fonts - dejavu_fonts - dina-font - dosemu_fonts - fira-code - fira-code-symbols - freefont_ttf - liberation_ttf - mplus-outline-fonts - nerdfonts - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - proggyfonts - terminus_font - ubuntu_font_family - ucsFonts - ultimate-oldschool-pc-font-pack - unifont - xorg.fontadobe100dpi - xorg.fontadobe75dpi - xorg.fontadobeutopia100dpi - xorg.fontadobeutopia75dpi - xorg.fontadobeutopiatype1 - xorg.fontarabicmisc - xorg.fontbh100dpi - xorg.fontbh75dpi - xorg.fontbhlucidatypewriter100dpi - xorg.fontbhlucidatypewriter75dpi - xorg.fontbhttf - xorg.fontbhtype1 - xorg.fontbitstream100dpi - xorg.fontbitstream75dpi - xorg.fontbitstreamtype1 - xorg.fontcronyxcyrillic - xorg.fontcursormisc - xorg.fontdaewoomisc - xorg.fontdecmisc - xorg.fontibmtype1 - xorg.fontisasmisc - xorg.fontjismisc - xorg.fontmicromisc - xorg.fontmisccyrillic - xorg.fontmiscethiopic - xorg.fontmiscmeltho - xorg.fontmiscmisc - xorg.fontmuttmisc - xorg.fontschumachermisc - xorg.fontscreencyrillic - xorg.fontsonymisc - xorg.fontsunmisc - xorg.fontwinitzkicyrillic - xorg.fontxfree86type1 - ]; - }; + fonts = mkIf enable-gui { fontDir.enable = true; }; } diff --git a/config/profile-config/common.nix b/config/profile-config/common.nix index 28fc3ec..b9c9ded 100644 --- a/config/profile-config/common.nix +++ b/config/profile-config/common.nix @@ -69,7 +69,7 @@ in { proxiable = true; }; - kerberos = pkgs.heimdalFull; + kerberos = pkgs.heimdal; }; services = { @@ -84,6 +84,12 @@ in { GSSAPIKeyExchange yes GSSAPIStoreCredentialsOnRekey yes ''; + # FIXME: This is temporary! Getting error: Unsupported KEX algorithm "sntrup761x25519-sha512@openssh.com" + kexAlgorithms = [ + "curve25519-sha256" + "curve25519-sha256@libssh.org" + "diffie-hellman-group-exchange-sha256" + ]; }; fail2ban = @@ -104,8 +110,8 @@ in { (attrValues config.fileSystems); in length btrfsFilesystems > 0; - # pcscd.enable = true; - # udev.packages = with pkgs; [ yubikey-personalization ]; + pcscd.enable = true; + udev.packages = with pkgs; [ yubikey-personalization ]; }; networking.firewall = { @@ -152,6 +158,7 @@ in { # rollback results in sudo lectures after each reboot Defaults lecture = never ''; + pam = { enableSSHAgentAuth = true; @@ -163,6 +170,12 @@ in { # googleAuthenticator.enable = true; }; }; + + # yubikey = { + # enable = true; + # debug = true; + # mode = "challenge-response"; + # }; }; }; diff --git a/config/service/metrics.nix b/config/service/metrics.nix index 4af7c21..c2188d4 100644 --- a/config/service/metrics.nix +++ b/config/service/metrics.nix @@ -236,6 +236,9 @@ in { in "${alias}.${domain-name}"; state-directory = prometheus-cfg.state-directory; private-network = is-private-network; + # TODO: prometheus 22.05 breaks dns_sd_configs + # Revert when fixed. + package = pkgs.pkgs2111.prometheus; }; grafana = mkIf metricsMonitor { diff --git a/config/service/wallfly-presence.nix b/config/service/wallfly-presence.nix new file mode 100644 index 0000000..c93640b --- /dev/null +++ b/config/service/wallfly-presence.nix @@ -0,0 +1,92 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.fudo.services.wallfly-presence; + hostname = config.instance.hostname; + domain-name = config.instance.local-domain; + site-name = config.instance.local-site; + mqtt-broker = cfg.mqtt.broker-host; + is-mqtt-broker = hostname == mqtt-broker; + site-users = config.fudo.sites."${config.instance.local-site}".local-users; + domain-users = config.fudo.domains."${domain-name}".local-users; + user-cfg = genAttrs (unique (site-users ++ domain-users)) (username: { + password-file = + pkgs.lib.passwd.stablerandom-passwd-file "wallfly-${username}" + config.instance.build-seed; + }); + local-user-cfg = + filterAttrs (username: opts: hasAttr username config.instance.local-users) + user-cfg; + +in { + options.fudo.services.wallfly-presence = with types; { + enable = mkEnableOption "Enable WallFly presence for the local site."; + + mqtt = { + broker-host = mkOption { + type = str; + description = "Host to serve as local MQTT broker."; + }; + + port = mkOption { + type = port; + description = "Port on which to listen for MQTT connections."; + default = 1884; + }; + + listen-address = mkOption { + type = str; + description = "Address on which to listen for MQTT connections."; + default = "0.0.0.0"; + }; + }; + }; + + config = mkIf cfg.enable { + fudo = { + secrets.host-secrets."${hostname}" = (mapAttrs' (username: userOpts: + nameValuePair "wallfly-user-${username}-passwd" { + source-file = userOpts.password-file; + target-file = "/run/wallfly-${username}/passwd"; + user = username; + }) local-user-cfg) // (optionalAttrs is-mqtt-broker (mapAttrs' + (username: userOpts: + nameValuePair "wallfly-server-${username}-passwd" { + source-file = userOpts.password-file; + target-file = "/run/wallfly-mqtt/${username}.passwd"; + user = config.systemd.services.mosquitto.serviceConfig.User; + }) user-cfg)); + + zones."${domain-name}" = { + aliases.mqtt = "${mqtt-broker}.${domain-name}"; + }; + + wallfly = { + enable = true; + mqtt = { + broker-uri = + "tcp://${mqtt-broker}.${domain-name}:${toString cfg.mqtt.port}"; + username = "wallfly-$USER"; + password-file = "/run/wallfly-$USER/passwd"; + }; + }; + }; + + services = { + mosquitto = mkIf (is-mqtt-broker) { + enable = true; + listeners = [{ + settings.allow_anonymous = false; + port = cfg.mqtt.port; + address = cfg.mqtt.listen-address; + users = mapAttrs' (username: userOpts: + nameValuePair "wallfly-${username}" { + passwordFile = "/run/wallfly-mqtt/${username}.passwd"; + acl = [ "readwrite homeassistant/binary_sensor/#" ]; + }) user-cfg; + }]; + }; + }; + }; +} diff --git a/config/services.nix b/config/services.nix index 5d11550..908a399 100644 --- a/config/services.nix +++ b/config/services.nix @@ -14,6 +14,7 @@ ./service/metrics.nix ./service/postgresql.nix ./service/selby-forum.nix + ./service/wallfly-presence.nix # ./service/wireguard-gateway.nix ]; } diff --git a/config/site-config/seattle.nix b/config/site-config/seattle.nix index 13b3b0f..7d892e6 100644 --- a/config/site-config/seattle.nix +++ b/config/site-config/seattle.nix @@ -3,6 +3,11 @@ with lib; let local-domain = "sea.fudo.org"; in { + fudo.services.wallfly-presence = { + enable = true; + mqtt.broker-host = "wormhole0"; + }; + fileSystems = { # "/mnt/documents" = { # device = "whitedwarf.${local-domain}:/volume1/Documents"; @@ -136,7 +141,8 @@ in { description = "RPC security service for NFS client and server"; wantedBy = [ "auth-rpcgss-module.service" ]; conflicts = [ "umount.target" ]; - after = [ "host-keytab-watcher.service" "rpc_pipefs.target" ]; + after = + [ "host-keytab-watcher.service" "rpc_pipefs.target" "local-fs.target" ]; wants = [ "host-keytab-watcher.service" ]; requires = [ "rpc_pipefs.target" ]; partOf = [ "nfs-utils.service" ]; @@ -144,6 +150,7 @@ in { serviceConfig = { Type = "forking"; ExecStart = "${pkgs.nfs-utils}/bin/rpc.gssd"; + Restart = "always"; }; }; @@ -158,12 +165,16 @@ in { DefaultDependencies = false; ConditionPathExists = [ "|!/run/gssproxy.pid" "|!/proc/net/rpc/use-gss-proxy" ]; + Restart = "always"; }; serviceConfig = { Type = "forking"; ExecStart = "${pkgs.nfs-utils}/bin/rpc.svcgssd"; + Restart = "always"; }; }; + + rpcbind.after = [ "local-fs.target" ]; }; services.printing = { diff --git a/config/users.nix b/config/users.nix index 2573088..8fb7049 100644 --- a/config/users.nix +++ b/config/users.nix @@ -10,7 +10,7 @@ login-hashed-passwd = "$6$a1q2Duoe35hd5$IaZGXPfqyGv9uq5DQm7DZq0vIHsUs39sLktBiBBqMiwl/f/Z4jSvNZLJp9DZJYe5u2qGBYh1ca.jsXvQA8FPZ/"; ssh-authorized-keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDoWkjyeIfgwm0b78weToVYOQSD0RQ0qbNzpsN5NokbIFv2/980kLtnYrQEgIJ/JwMLlT3uJYacbCT5/a6Fb8oLxNpj0AF1EKaWZ3Rrlg72Sq+9SEwJwWWmZizX83sovMwUBMaUp6jWLhAhPpzBW5pfc5YWoc89wxGbELSwzgt5EgHbSJgvDnaHSp3fVaY01wfDXbL/oO160iNe7wv2HLMZu/FkWBkIjz6HmoGJJzYM89bUpHbyYG28lmCHB/8UPog5/BsjOn3/qupgf4zh6mMdMsXLvbR2jVwVjxcEMj9N5nCvc+Y3oi7Mij6VNrWbhkaAJMEzeMhWYrF3/pFQxUqG37aK3d0gw9kp5tMDLIlAPX4y1lfA87pIzoa0+Alql0CJQA1IJvp9SFG7lBmSthWQLmZvwwfoGg/ZjF6rOgsVoZ8TizpQnydWJDr6NboU9LL9Oa64OM5Rs0AU3cR2UbOF4QIcWFJ/7oDe3dOnfZ8QYqx9eXJyxoAUpDanaaTHYBiAKkeOBwQU+MVLKCcONKw9FZclf/1TpDB5b3/JeUFANjHQTv0UXA4YYU7iCx6H7XB4qwwtU9O19CGQYYfCfULX12/fRpYJw6VJaQWyyU4Bn5dk/dcB2nGI36jwbLMfhbUTIApujioAnd/GQIMakHEZ1+syPhMx9BxMkZb99B0A1Q== openpgp:0x4EC95B64" + "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIFPoobMZkyOmotVUMTFMYGOoDjZ++yMnf/S6JWCDj+9DAAAABHNzaDo= niten@system3" "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGVez4of30f+j0cWKj5kYCKeFjyNsYvG9UbOMxF5hImD2lP5MSbFBv31gFgHjx3yCG4zQRZlpuyU5uWo0qIwe9N84/LcZcB9WrWKZXDmuof7zPFy0J+Hj+LVLDQI/mVXHNwkMhBMHpPrdwA05EYDAYCYklWT4cSByu10pHtST+olF8i+A+UQgUzgNZzdJVeiYZv6MBDTYsJWptGeDUkl2B0Es3gtbGYcCCfnyS3RC7DIXlDo3NBbAr7WaHY2MBbT+R/+jicn9E3IY3NCM5jENxqmvHy9MDsxEEYgFNm7IDwq4V1VRUWy277YsvRbmEaHb+osOA5u1VNN4z3UftOZcSZgR5C/vR71cENXoPt1YQpCzu7i38ojtvL+tDVEKT7sIovrQw8q1sszNlW2nXh8RSPiIq5TMnrV73MP0egKcr9n3tfxwi1BIkLjvfom/02BkTK9R9v+VMNhYU1YwROhORCiMIgoxUGiUvtH8u38JGr7E0hhMoAjCE5k80WPUivl0= niten@socrates" ]; home-directory = "/home/niten"; diff --git a/flake.lock b/flake.lock index c99ff8b..a9f6a75 100644 --- a/flake.lock +++ b/flake.lock @@ -3,6 +3,7 @@ "blobs": { "flake": false, "locked": { + "lastModified": 0, "narHash": "sha256-bzJh3skCEKFM7KO9N6icOJsRqXmjbSo1s8uNh3t9mYI=", "path": "/state/secrets/blobs", "type": "path" @@ -15,6 +16,7 @@ "build-keypairs": { "flake": false, "locked": { + "lastModified": 1634322891, "narHash": "sha256-4eRLRLCzZ6kQIRZqy51bj60jhFSQ/wlKLeNgABPhTyw=", "path": "/state/secrets/build-keypairs", "type": "path" @@ -27,6 +29,7 @@ "build-seed": { "flake": false, "locked": { + "lastModified": 1635809629, "narHash": "sha256-6rzGK/itD/RBRoNGw1L2wLV1IcVbn2b0V49ay1J9z7k=", "path": "/state/secrets/build.seed", "type": "path" @@ -80,6 +83,52 @@ "url": "https://git.fudo.org/chute/chute.git" } }, + "clj-nix": { + "inputs": { + "devshell": "devshell", + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "pricebot", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1655125606, + "narHash": "sha256-mnqND6/PZMug5Jr92adJcNmwS+XYtVvtKjuowK9A9ec=", + "owner": "jlesquembre", + "repo": "clj-nix", + "rev": "77302aa77afa25e24292aa54eec31e70caa4faf0", + "type": "github" + }, + "original": { + "owner": "jlesquembre", + "repo": "clj-nix", + "type": "github" + } + }, + "clj-nix_2": { + "inputs": { + "devshell": "devshell_2", + "flake-utils": "flake-utils_5", + "nixpkgs": [ + "wallfly", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1655801580, + "narHash": "sha256-4XUFDP1ES1KNWwDukQEixCe4uV7Z951kgaVAFhXI2ew=", + "owner": "jlesquembre", + "repo": "clj-nix", + "rev": "579141e009200fcd28d251731e9ac5ba46a1ec2a", + "type": "github" + }, + "original": { + "owner": "jlesquembre", + "repo": "clj-nix", + "type": "github" + } + }, "clj2nix": { "inputs": { "flake-compat": "flake-compat", @@ -120,9 +169,56 @@ "type": "github" } }, + "devshell": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "pricebot", + "clj-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1644227066, + "narHash": "sha256-FHcFZtpZEWnUh62xlyY3jfXAXHzJNEDLDzLsJxn+ve0=", + "owner": "numtide", + "repo": "devshell", + "rev": "7033f64dd9ef8d9d8644c5030c73913351d2b660", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "devshell_2": { + "inputs": { + "flake-utils": "flake-utils_4", + "nixpkgs": [ + "wallfly", + "clj-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1644227066, + "narHash": "sha256-FHcFZtpZEWnUh62xlyY3jfXAXHzJNEDLDzLsJxn+ve0=", + "owner": "numtide", + "repo": "devshell", + "rev": "7033f64dd9ef8d9d8644c5030c73913351d2b660", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "dnssec-keys": { "flake": false, "locked": { + "lastModified": 1636405858, "narHash": "sha256-KGZFtyc7Sd5mGjLxnM+R/XnCtOwyZ4IuOMcblIjlCnM=", "path": "/state/secrets/dnssec-keys", "type": "path" @@ -136,15 +232,14 @@ "inputs": { "doom-emacs": "doom-emacs_2", "doom-snippets": "doom-snippets", - "emacs-overlay": [ - "fudo-home", - "emacs-overlay" - ], + "emacs-overlay": "emacs-overlay", "emacs-so-long": "emacs-so-long", + "evil-escape": "evil-escape", "evil-markdown": "evil-markdown", "evil-org-mode": "evil-org-mode", "evil-quick-diff": "evil-quick-diff", "explain-pause-mode": "explain-pause-mode", + "flake-compat": "flake-compat_3", "flake-utils": "flake-utils", "format-all": "format-all", "nix-straight": "nix-straight", @@ -159,14 +254,17 @@ "org-yt": "org-yt", "php-extras": "php-extras", "revealjs": "revealjs", - "rotate-text": "rotate-text" + "rotate-text": "rotate-text", + "sln-mode": "sln-mode", + "ts-fold": "ts-fold", + "ws-butler": "ws-butler" }, "locked": { - "lastModified": 1649509049, - "narHash": "sha256-gLmRO2gPqjLPmFBhgFkl1nbBzJlNV0lmXMzapbw9qac=", + "lastModified": 1657364333, + "narHash": "sha256-PiNZ6Kk/JedMTRDxAmvLkf/O34QRPep7I3ItMEYVllw=", "owner": "nix-community", "repo": "nix-doom-emacs", - "rev": "f3f40f333c3214c9614c23b6abd1ae498af3e5b5", + "rev": "a59295c11efb6377b0c5eb4c8259bb49d94ec1d5", "type": "github" }, "original": { @@ -178,44 +276,44 @@ "doom-emacs_2": { "flake": false, "locked": { - "lastModified": 1645634993, - "narHash": "sha256-QeE6aUJxoaqHM28Cpt2rKC817VQvXGuuFUyLzehaC50=", - "owner": "hlissner", - "repo": "doom-emacs", - "rev": "42e5763782fdc1aabb9f2624d468248d6978abe2", + "lastModified": 1657023376, + "narHash": "sha256-huKtA8twjW3GkfA6NRvCjWMWUEN58ju4sL89rRQxOes=", + "owner": "doomemacs", + "repo": "doomemacs", + "rev": "9ec60d9ab9eb5d9b098e2452395156b622cce624", "type": "github" }, "original": { - "owner": "hlissner", + "owner": "doomemacs", "ref": "master", - "repo": "doom-emacs", + "repo": "doomemacs", "type": "github" } }, "doom-snippets": { "flake": false, "locked": { - "lastModified": 1646222996, - "narHash": "sha256-YhOnoNSpmcKNJg+aS/829zqXStMkKWXWf1pulHEBcpQ=", - "owner": "hlissner", - "repo": "doom-snippets", - "rev": "f61c23ece1ad47c0522059ac45085fd283ce4452", + "lastModified": 1655900328, + "narHash": "sha256-fEYwFxW2sdzNK14DrS92OCGy8KDPZKewrHljnE/RlzQ=", + "owner": "doomemacs", + "repo": "snippets", + "rev": "6b2bd5a77c536ed414794ecf71d37a60ebd4663e", "type": "github" }, "original": { - "owner": "hlissner", - "repo": "doom-snippets", + "owner": "doomemacs", + "repo": "snippets", "type": "github" } }, "emacs-overlay": { "flake": false, "locked": { - "lastModified": 1649586061, - "narHash": "sha256-gFAHrrY0i71WIP16FGo3pgNKTZ5m5L6FtQsOYpne9gk=", + "lastModified": 1657275959, + "narHash": "sha256-pg8FB1DRImBpqXHCp/0Y7bIphpVqGmkWgWOcFDMwdTg=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "16262a84ef07fb0e8cfc592b65d786b086840065", + "rev": "22448c09bae21969ca14d1558a120dafe9853c73", "type": "github" }, "original": { @@ -240,6 +338,22 @@ "type": "github" } }, + "evil-escape": { + "flake": false, + "locked": { + "lastModified": 1588439096, + "narHash": "sha256-aB2Ge5o/93B18tPf4fN1c+O46CNh/nOqwLJbox4c8Gw=", + "owner": "hlissner", + "repo": "evil-escape", + "rev": "819f1ee1cf3f69a1ae920e6004f2c0baeebbe077", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "evil-escape", + "type": "github" + } + }, "evil-markdown": { "flake": false, "locked": { @@ -307,6 +421,7 @@ "filesystem-keys": { "flake": false, "locked": { + "lastModified": 1634322891, "narHash": "sha256-K2wdsA4vcNTaLR9A9qxB+aMaeANL0LXOwBWvUm63lX0=", "path": "/state/secrets/filesystem-keys", "type": "path" @@ -348,7 +463,83 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { + "locked": { + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1644229661, + "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "locked": { + "lastModified": 1642700792, + "narHash": "sha256-XqHrk7hFb+zBvRg6Ghl+AZDq03ov6OshJLiSWOoX5es=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "846b2ae0fc4cc943637d3d1def4454213e203cba", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_5": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", @@ -388,11 +579,11 @@ ] }, "locked": { - "lastModified": 1653253887, - "narHash": "sha256-Z88Ck6nCW+zOfsxtHa+7hB2uPPuHotAkpRZqE2KoyF8=", + "lastModified": 1656710569, + "narHash": "sha256-xplQN3I4sB86TNHC8rS223FXwxGtRSxtsrhXRGYoKwY=", "ref": "master", - "rev": "52b7da1ceccb919787685875a21a1d2356c6cc1f", - "revCount": 93, + "rev": "ea7c227e9eb86cb90b6118be88e714dd9836c59e", + "revCount": 96, "type": "git", "url": "https://git.fudo.org/fudo-nix/entities.git" }, @@ -404,7 +595,6 @@ "fudo-home": { "inputs": { "doom-emacs": "doom-emacs", - "emacs-overlay": "emacs-overlay", "fudo-pkgs": "fudo-pkgs", "home-manager": "home-manager", "niten-doom-config": "niten-doom-config", @@ -413,11 +603,11 @@ ] }, "locked": { - "lastModified": 1654020774, - "narHash": "sha256-iOdg/2Jl3Mh1UiJF8vLvW5KnJ5osGJIukmL/7F6RQ3k=", + "lastModified": 1657421846, + "narHash": "sha256-82y9RNubMYSJPw13IQaj3tTPQuEX2VuMLryxJTDkAyc=", "ref": "master", - "rev": "b9db0696c37275021c3fcbf810cd42522ebc405b", - "revCount": 160, + "rev": "188ac6891bbd18213ffdab122f484da849c2eb3e", + "revCount": 208, "type": "git", "url": "https://git.fudo.org/fudo-nix/home.git" }, @@ -428,11 +618,11 @@ }, "fudo-lib": { "locked": { - "lastModified": 1641848738, - "narHash": "sha256-9+xyFqyUIzIkNo2HyXxp6Lm9/f0EZqRqkRz52AQoW6Q=", + "lastModified": 1654117056, + "narHash": "sha256-Ray3c3Zv41Ax4MvTFY7pagfROUoXzS4x11l0EHFj9DE=", "ref": "master", - "rev": "63b80fb5dc1e6ad69252a233b7c6a20f649884c6", - "revCount": 59, + "rev": "df53c13bb7f15336a2b0f110cef0a57af7089737", + "revCount": 68, "type": "git", "url": "https://git.fudo.org/fudo-nix/lib.git" }, @@ -443,7 +633,8 @@ }, "fudo-lib_2": { "locked": { - "narHash": "sha256-IZsP2NrqUbz0p3KeTnT7U8RjvSkHODmJTePBSGNmlxw=", + "lastModified": 1657510985, + "narHash": "sha256-6QKfcmobaEfgsW6s2nU6piOgFg0iSPJAoXzFvCqwF5I=", "path": "/state/fudo-lib", "type": "path" }, @@ -454,11 +645,11 @@ }, "fudo-pkgs": { "locked": { - "lastModified": 1648662131, - "narHash": "sha256-wOJyR8xFQQhZ7gjK+sj3rJND8ORIHPuINNfQsdjM0BE=", - "ref": "master", - "rev": "c5180cbacd66673a3e8fcd0ce2c4abff119bbe93", - "revCount": 54, + "lastModified": 1655577860, + "narHash": "sha256-6OlBGH8TXCuPBakj/hB+o5turzroOysbb+Z1rJYuM3w=", + "ref": "refs/heads/master", + "rev": "445d96e405308f19d0d1021f11b55fd2d6b35e0f", + "revCount": 55, "type": "git", "url": "https://git.fudo.org/fudo-nix/pkgs.git" }, @@ -469,11 +660,11 @@ }, "fudo-pkgs_2": { "locked": { - "lastModified": 1648662131, - "narHash": "sha256-wOJyR8xFQQhZ7gjK+sj3rJND8ORIHPuINNfQsdjM0BE=", + "lastModified": 1655577860, + "narHash": "sha256-6OlBGH8TXCuPBakj/hB+o5turzroOysbb+Z1rJYuM3w=", "ref": "master", - "rev": "c5180cbacd66673a3e8fcd0ce2c4abff119bbe93", - "revCount": 54, + "rev": "445d96e405308f19d0d1021f11b55fd2d6b35e0f", + "revCount": 55, "type": "git", "url": "https://git.fudo.org/fudo-nix/pkgs.git" }, @@ -497,7 +688,8 @@ "ssh-keypairs": "ssh-keypairs" }, "locked": { - "narHash": "sha256-N3N5RSPFSF/+tA3uqnBkhiiSNzBqsWsUBLXAqG1YS7c=", + "lastModified": 1656718094, + "narHash": "sha256-yDpEBjY1j5AvrnE4qHamorrJRuSApN+tHwjhYYJXjQ0=", "path": "/state/secrets", "type": "path" }, @@ -556,16 +748,16 @@ ] }, "locked": { - "lastModified": 1648834319, - "narHash": "sha256-i5Aj4Aw64D/A0X6XW5LxSS4XBnYj7gMz+kN4dpsbdk8=", + "lastModified": 1656169755, + "narHash": "sha256-Nlnm4jeQWEGjYrE6hxi/7HYHjBSZ/E0RtjCYifnNsWk=", "owner": "nix-community", "repo": "home-manager", - "rev": "0bdbdea2e26c984b096f4f7d10e3c88536a980b0", + "rev": "4a3d01fb53f52ac83194081272795aa4612c2381", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-21.11", + "ref": "release-22.05", "repo": "home-manager", "type": "github" } @@ -573,6 +765,7 @@ "host-keytabs": { "flake": false, "locked": { + "lastModified": 1647537444, "narHash": "sha256-SA058alChYye39gm4TwPpCufR1P+X9QnH/EunJYXd5s=", "path": "/state/secrets/kerberos/host-keytabs", "type": "path" @@ -585,11 +778,11 @@ "niten-doom-config": { "flake": false, "locked": { - "lastModified": 1649611838, - "narHash": "sha256-O8+LwXi52WZHQrZRfjW+QwI99ppBiBpYQcWYNgqY+iU=", - "ref": "master", - "rev": "c45feb7fd8acb0730dfc76ddd993773da5411b82", - "revCount": 38, + "lastModified": 1657421724, + "narHash": "sha256-7cPjq6qHc32mtyZehVjl6mSTT2OIwrNY02JvFzwg150=", + "ref": "refs/heads/master", + "rev": "f5f64049e4d782cd7ad2527165f520f4b0dac0d2", + "revCount": 55, "type": "git", "url": "https://git.fudo.org/niten/doom-emacs.git" }, @@ -601,11 +794,11 @@ "nix-straight": { "flake": false, "locked": { - "lastModified": 1643475817, - "narHash": "sha256-NpExq5nbPbj/ppkBX3SnETEJuOne1MKJxen8vVHsDFg=", + "lastModified": 1656684255, + "narHash": "sha256-ZefQiv4Ipu2VkLjs1oyelTLU7kBVJgkcQd+yBpJU0yo=", "owner": "nix-community", "repo": "nix-straight.el", - "rev": "08d75e5651cb52f8a07e03408ed19e04bee07505", + "rev": "fb8dd5c44cde70abd13380766e40af7a63888942", "type": "github" }, "original": { @@ -629,13 +822,28 @@ "type": "github" } }, - "nixpkgsUnstable": { + "nixpkgs2111": { "locked": { - "lastModified": 1653931853, - "narHash": "sha256-O3wncIouj9x7gBPntzHeK/Hkmm9M1SGlYq7JI7saTAE=", + "lastModified": 1656782578, + "narHash": "sha256-1eMCBEqJplPotTo/SZ/t5HU6Sf2I8qKlZi9MX7jv9fw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f1c167688a6f81f4a51ab542e5f476c8c595e457", + "rev": "573603b7fdb9feb0eb8efc16ee18a015c667ab1b", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-21.11", + "type": "indirect" + } + }, + "nixpkgsUnstable": { + "locked": { + "lastModified": 1657447684, + "narHash": "sha256-FCP9AuU1q6PE3vOeM5SFf58f/UKPBAsoSGDUGamNBbo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5f43d8b088d3771274bcfb69d3c7435b1121ac88", "type": "github" }, "original": { @@ -691,16 +899,46 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1645296114, - "narHash": "sha256-y53N7TyIkXsjMpOG7RhvqJFGDacLs9HlyHeSTBioqYU=", + "lastModified": 1657296039, + "narHash": "sha256-Ghh39+aS+pw5sTP/ZO8VIKE6sBhMadDaQZtf+3yu4Vc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "530a53dcbc9437363471167a5e4762c5fcfa34a1", + "rev": "71d7a4c037dc4f3e98d5c4a81b941933cf5bf675", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-21.05", + "ref": "nixos-22.05", + "type": "indirect" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1655278232, + "narHash": "sha256-H6s7tnHYiDKFCcLADS4sl1sUq0dDJuRQXCieguk/6SA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8b538fcb329a7bc3d153962f17c509ee49166973", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-22.05", + "type": "indirect" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1656265786, + "narHash": "sha256-A9RkoGrxzsmMm0vily18p92Rasb+MbdDMaSnzmywXKw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cd90e773eae83ba7733d2377b6cdf84d45558780", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-22.05", "type": "indirect" } }, @@ -739,11 +977,11 @@ "org": { "flake": false, "locked": { - "lastModified": 1646280299, - "narHash": "sha256-ZNkOfB8o2OHTh2t/ci8uv8aoV3I5IfAgIIOP3azD6eU=", + "lastModified": 1657029612, + "narHash": "sha256-enwqnerhZVpyQbeX0uKdZ4IVmZieq9ZgCbkDWy1HlNQ=", "owner": "emacs-straight", "repo": "org-mode", - "rev": "91681fc03334285dc0879fcb9a27583bd7ab9782", + "rev": "71359820221ec18d27fab28403d4fd3537ca0491", "type": "github" }, "original": { @@ -755,17 +993,17 @@ "org-contrib": { "flake": false, "locked": { - "lastModified": 1639727892, - "narHash": "sha256-+T6Y87aSAx7kMpigm8d1ODDQIyPBM6a+4qGolXjCEXs=", - "ref": "master", - "rev": "5766ff1088191e4df5fecd55007ba4271e609bcc", - "revCount": 2611, - "type": "git", - "url": "https://git.sr.ht/~bzg/org-contrib" + "lastModified": 1652646857, + "narHash": "sha256-IWIShWyVnbwXqGLQaDNvJ0KoepxhIrXWTjPyGPEkQ14=", + "owner": "emacsmirror", + "repo": "org-contrib", + "rev": "c1e0980fd7a57ca2042fd78acfb1dfb5c3bc03fa", + "type": "github" }, "original": { - "type": "git", - "url": "https://git.sr.ht/~bzg/org-contrib" + "owner": "emacsmirror", + "repo": "org-contrib", + "type": "github" } }, "org-yt": { @@ -800,9 +1038,30 @@ "type": "github" } }, + "pricebot": { + "inputs": { + "clj-nix": "clj-nix", + "nixpkgs": "nixpkgs_6", + "utils": "utils_5" + }, + "locked": { + "lastModified": 1655855322, + "narHash": "sha256-LuGiBNRnv6te1rrhoxiAECHXEK5GJLHdkdnqRCZiCdI=", + "ref": "master", + "rev": "72d36139708f3947c050d6659c4a2eac2c0d3b64", + "revCount": 38, + "type": "git", + "url": "https://git.fudo.org/fudo-public/pricebot.git" + }, + "original": { + "type": "git", + "url": "https://git.fudo.org/fudo-public/pricebot.git" + } + }, "realm-master-keys": { "flake": false, "locked": { + "lastModified": 1636586592, "narHash": "sha256-5hDmPweE6lshRKA+AKRgJv7VwWxHsYekwMT32uAUKJU=", "path": "/state/secrets/kerberos/master-keys", "type": "path" @@ -815,11 +1074,11 @@ "revealjs": { "flake": false, "locked": { - "lastModified": 1646820626, - "narHash": "sha256-J3bcoO/42FcPIqCU7ORiV7dcvJDKtEHG8N7/stEQqDg=", + "lastModified": 1653993278, + "narHash": "sha256-X43lsjoLBWmttIKj9Jzut0UP0dZlsue3fYbJ3++ojbU=", "owner": "hakimel", "repo": "reveal.js", - "rev": "37861335a225a3cc9f67e98977aceda3c2a9eca9", + "rev": "039972c730690af7a83a5cb832056a7cc8b565d7", "type": "github" }, "original": { @@ -838,7 +1097,10 @@ "fudo-pkgs": "fudo-pkgs_2", "fudo-secrets": "fudo-secrets", "nixpkgs": "nixpkgs_5", - "nixpkgsUnstable": "nixpkgsUnstable" + "nixpkgs2111": "nixpkgs2111", + "nixpkgsUnstable": "nixpkgsUnstable", + "pricebot": "pricebot", + "wallfly": "wallfly" } }, "rotate-text": { @@ -860,6 +1122,7 @@ "service-keytabs": { "flake": false, "locked": { + "lastModified": 1639361926, "narHash": "sha256-0gpaf5j/Uxy6HUXDLt0T7vg4Z2aic1IHhuNUO5IcOhY=", "path": "/state/secrets/kerberos/service-keytabs", "type": "path" @@ -872,7 +1135,8 @@ "service-passwords": { "flake": false, "locked": { - "narHash": "sha256-vnxG3as7SVq0yIXKsf3qHM58Sv6Dcm7NPg+kLg4QtNs=", + "lastModified": 1656532749, + "narHash": "sha256-J3oy9wGPzRUQDTxTKK2nNKPXdZ8G8xXdZatMzarg4HI=", "path": "/state/secrets/service-passwords", "type": "path" }, @@ -884,7 +1148,8 @@ "service-secrets": { "flake": false, "locked": { - "narHash": "sha256-vXL26U+o23E5tTG4Hb/RZrfra3I8Zw/wdZnT9PKwdks=", + "lastModified": 1655662910, + "narHash": "sha256-2p17wcdrfUerirVBaQ+jjXTrlPAbUDC6hqn+89WFeQs=", "path": "/state/secrets/service-secrets", "type": "path" }, @@ -893,9 +1158,26 @@ "type": "path" } }, + "sln-mode": { + "flake": false, + "locked": { + "lastModified": 1423727528, + "narHash": "sha256-XqkqPyEJuTtFslOz1fpTf/Klbd/zA7IGpzpmum/MGao=", + "owner": "sensorflo", + "repo": "sln-mode", + "rev": "0f91d1b957c7d2a7bab9278ec57b54d57f1dbd9c", + "type": "github" + }, + "original": { + "owner": "sensorflo", + "repo": "sln-mode", + "type": "github" + } + }, "ssh-keypairs": { "flake": false, "locked": { + "lastModified": 1647537635, "narHash": "sha256-pla2J8HmPHBVDp/2m/22lctwd6VvmJ2cik5n68jf3VY=", "path": "/state/secrets/ssh-keypairs", "type": "path" @@ -905,6 +1187,22 @@ "type": "path" } }, + "ts-fold": { + "flake": false, + "locked": { + "lastModified": 1657091443, + "narHash": "sha256-yr/aW7sYoOxajVb2gTgRrwaDwwg2gtHuP3wdrwjiaxo=", + "owner": "jcs-elpa", + "repo": "ts-fold", + "rev": "dcd5b9fe5c2cb72261ff6c714beb8d0198b8522b", + "type": "github" + }, + "original": { + "owner": "jcs-elpa", + "repo": "ts-fold", + "type": "github" + } + }, "utils": { "locked": { "lastModified": 1637014545, @@ -964,6 +1262,72 @@ "repo": "flake-utils", "type": "github" } + }, + "utils_5": { + "locked": { + "lastModified": 1653893745, + "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_6": { + "locked": { + "lastModified": 1656065134, + "narHash": "sha256-oc6E6ByIw3oJaIyc67maaFcnjYOz1mMcOtHxbEf9NwQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "bee6a7250dd1b01844a2de7e02e4df7d8a0a206c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "wallfly": { + "inputs": { + "clj-nix": "clj-nix_2", + "nixpkgs": "nixpkgs_7", + "utils": "utils_6" + }, + "locked": { + "lastModified": 1656718212, + "narHash": "sha256-q4StE5titkXrnvMp9GGPhXWdzZ6CT8X7iwhClu/iRXQ=", + "ref": "master", + "rev": "6c17df68507acebd7a809fc48cda1b2315971650", + "revCount": 11, + "type": "git", + "url": "https://git.fudo.org/fudo-public/wallfly.git" + }, + "original": { + "type": "git", + "url": "https://git.fudo.org/fudo-public/wallfly.git" + } + }, + "ws-butler": { + "flake": false, + "locked": { + "lastModified": 1634511126, + "narHash": "sha256-c0y0ZPtxxICPk+eaNbbQf6t+FRCliNY54CCz9QHQ8ZI=", + "owner": "hlissner", + "repo": "ws-butler", + "rev": "572a10c11b6cb88293de48acbb59a059d36f9ba5", + "type": "github" + }, + "original": { + "owner": "hlissner", + "repo": "ws-butler", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index dd7b9e4..aea673f 100644 --- a/flake.nix +++ b/flake.nix @@ -29,15 +29,18 @@ chuteUnstable.url = "git+https://git.fudo.org/chute/chute.git?ref=master"; + pricebot.url = "git+https://git.fudo.org/fudo-public/pricebot.git"; + nixpkgsUnstable.url = "nixpkgs/nixos-unstable"; - # zigbee2mqtt-converters.url = "path:/net/projects/niten/zigbee2mqtt-converters"; + nixpkgs2111.url = "nixpkgs/nixos-21.11"; + + wallfly.url = "git+https://git.fudo.org/fudo-public/wallfly.git"; }; outputs = { self, nixpkgs, fudo-home, fudo-lib, fudo-entities, fudo-pkgs - , fudo-secrets, chute, chuteUnstable, nixpkgsUnstable, - # zigbee2mqtt-converters, - ... }@inputs: + , fudo-secrets, chute, chuteUnstable, nixpkgsUnstable, nixpkgs2111, pricebot + , wallfly, ... }@inputs: with nixpkgs.lib; let fudo-nixos-hosts = filterAttrs (hostname: hostOpts: hostOpts.nixos-system) @@ -48,10 +51,7 @@ unstable-for = arch: import nixpkgsUnstable { system = arch; - config = { - allowUnfree = true; - permittedInsecurePackages = [ "openssh-with-gssapi-8.4p1" ]; - }; + config.allowUnfree = true; }; pkgs-for = arch: @@ -69,7 +69,13 @@ chute = chute.packages.${arch}.chute; chuteUnstable = chuteUnstable.packages.${arch}.chute; }) - (final: prev: { pkgsUnstable = unstable; }) + (final: prev: { + pkgs2111 = import nixpkgs2111 { + system = arch; + config.allowUnfree = true; + }; + pkgsUnstable = unstable; + }) (final: prev: { nyxt = unstable.nyxt; }) ]; }; @@ -91,8 +97,8 @@ fudo-secrets.nixosModule fudo-lib.nixosModule fudo-entities.nixosModule - - # zigbee2mqtt-converters.nixosModule + pricebot.nixosModule + wallfly.nixosModule ./config (config-dir + "/hardware/${hostname}.nix")