Compare commits

...

3 commits

Author SHA1 Message Date
82baec0470
tree-wide: init fish completion module 2025-11-02 12:25:01 +08:00
006798d917 hydrogen: init (#20)
Reviewed-on: https://codeberg.org/leana8959/.files/pulls/20
Co-authored-by: Léana 江 <leana.jiang+git@icloud.com>
Co-committed-by: Léana 江 <leana.jiang+git@icloud.com>
2025-11-02 05:12:02 +01:00
a1024668db
sudo-conf: make doas inherit PATH for just 2025-11-02 11:57:03 +08:00
34 changed files with 516 additions and 148 deletions

View file

@ -36,6 +36,23 @@ This repo is managed with Nix + GNU stow
# profit # profit
``` ```
## Installation for Raspberry Pi
Raspberry Pi uses the same configuration as the installer.
The `(modulesPath + "/installer/sd-card/sd-image-aarch64.nix")` allows this.
- Build the image `nixosConfigurations.<name>.config.system.build.sdImage`.
Disable stuff like Lix to build this.
You might want to use raw password once so you don't have agenix decryption
problem while trying to have wpa_supplicant have the right passwords.
- Burn the image to the sd card.
```bash
zstdcat result/sd-image/nixos-image-sd-card-<hash>-aarch64-linux.img.zst |
doas dd of=/dev/sdb status=progress
```
- profit
# Pitfalls # Pitfalls
## `users.mutableUsers` ## `users.mutableUsers`
NEVER set this to true without declaratively setting the passwords. NEVER set this to true without declaratively setting the passwords.

View file

@ -8,6 +8,10 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [./nix/configurations/vanadium.nix]; modules = [./nix/configurations/vanadium.nix];
}; };
hydrogen = {
system = "aarch64-linux";
modules = [./nix/configurations/hydrogen.nix];
};
installer = { installer = {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [./nix/configurations/installer.nix]; modules = [./nix/configurations/installer.nix];

View file

@ -0,0 +1,135 @@
let
sources = import ../../npins;
hostname = "hydrogen";
username = "leana";
in
{
modulesPath,
config,
pkgs,
lib,
...
}: let
inherit (lib.modules) mkAliasOptionModule;
in {
imports = [
# The generator and hardware configuration
(modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
#
# Shorthands
#
(mkAliasOptionModule ["me"] ["users" "users" username])
(mkAliasOptionModule ["hm"] ["home-manager" "users" username])
#
# hostname
#
{_module.args = {inherit hostname;};}
#
# nixpkgs
#
{
nixpkgs = {
overlays = map import [
../overlays/agenix.nix
../overlays/nur.nix
../overlays/nix-tree.nix
../packages/overlay.nix
# use lix everywhere and wrap it with nom
../overlays/lix.nix
../overlays/nix-monitored.nix
];
# Set NIX_PATH and flake registry at the same time
# https://github.com/NixOS/nixpkgs/pull/254405
flake.source = sources.nixpkgs;
};
nix.package = pkgs.nix-monitored;
system.nixos.version = lib.substring 0 8 sources.nixpkgs.revision;
}
./hydrogen/nixos/misc.nix
./hydrogen/nixos/programs.nix
./hydrogen/nixos/connectivity.nix
../nixosModules/common/fish.nix
../nixosModules/common/disable-command-not-found.nix
../nixosModules/common/network.nix
../nixosModules/common/sudo-conf.nix
../nixosModules/common/system-nixconf.nix
# QUIRK:
# Had issue when building the installer as it fails to bootstrap itself
# Might be useful to disable for the first build.
../nixosModules/extra/secure_dns.nix
../nixosModules/extra/leana.nix
#
# Extern modules
#
(sources.agenix + "/modules/age.nix")
(sources.nixos-hardware + "/raspberry-pi/4")
#
# home-manager
#
(sources.home-manager + "/nixos")
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [{home.stateVersion = lib.mkDefault config.system.stateVersion;}];
};
hm.imports = [
#
# hostname
#
{_module.args = {inherit hostname;};}
#
# home modules
#
./hydrogen/home/programs.nix
../homeModules/common/btop
../homeModules/common/fish
../homeModules/common/starship
../homeModules/common/fzf.nix
../homeModules/common/tmux
../homeModules/common/vim
../homeModules/common/direnv.nix
../homeModules/common/git.nix
../homeModules/common/gpg.nix
../homeModules/common/leana.nix
../homeModules/common/locale.nix
../homeModules/common/packages.nix
../homeModules/common/tealdeer.nix
../homeModules/extra/tmux-fish-integration.nix
#
# Extern modules
#
(sources.agenix + "/modules/age-home.nix")
(import sources.wired-notify).homeManagerModules.default
];
}
#
# Secrets
#
{
age.secrets = {
wpa_password.file = "${../secrets/wpa_password.age}";
};
}
];
}

View file

@ -0,0 +1,61 @@
{
pkgs,
lib,
config,
...
}: {
home.sessionVariables = let
fishCfg = config.programs.fish;
in {
"SHELL" = lib.mkIf fishCfg.enable (lib.getExe fishCfg.package);
};
home.packages = [
pkgs.nmap
pkgs.stow
pkgs.zip
pkgs.unzip
pkgs.gnutar
pkgs.p7zip
pkgs.bc
pkgs.dig
pkgs.hutils
pkgs.miniserve
pkgs.agenix
pkgs.nix-which
# pretty tui tools
pkgs.du-dust
pkgs.tokei
pkgs.hyperfine
pkgs.watchexec
pkgs.onefetch
pkgs.just
# nix tools
pkgs.alejandra
pkgs.nurl
pkgs.npins
pkgs.nix-tree
pkgs.nh
];
programs = {
neovim = {
enable = true;
defaultEditor = true;
};
lazygit.enable = true;
fish.enable = true;
starship.enable = true;
tmux.enable = true;
direnv.enable = true;
ripgrep.enable = true;
btop.enable = true;
};
services = {
gpg-agent.enable = true;
};
}

View file

@ -0,0 +1,73 @@
{
config,
lib,
...
}: {
users.users.root.openssh.authorizedKeys.keys = let
ids = import ../../../identities.nix;
in
builtins.concatMap builtins.attrValues (builtins.attrValues ids);
networking = {
networkmanager.enable = lib.mkForce false;
firewall.allowedTCPPorts = [
8080
# For 'localsend'
# https://github.com/localsend/localsend?tab=readme-ov-file#setup
53317
];
# To enable roaming https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
wireless = {
enable = true;
userControlled.enable = true;
secretsFile = config.age.secrets.wpa_password.path;
scanOnLowSignal = false;
networks = let
# wpa_supplicant uses `strchr` to seek to the first `=`, so the only forbidden character is `=`.
escapePwdKey = lib.replaceStrings ["="] ["_"];
fromList = ns: let
go = networkArgs @ {
ssid,
# Custom fields wrapping nixpkgs module options
hasPassword ? false,
scanOnLowSignal ? false,
randomizeMac ? false,
...
}: {
${ssid} = lib.mkMerge [
(builtins.removeAttrs networkArgs ["ssid" "hasPassword" "scanOnLowSignal" "randomizeMac"])
(lib.optionalAttrs hasPassword {
pskRaw = "ext:${escapePwdKey ssid}";
})
(lib.optionalAttrs scanOnLowSignal {
extraConfig = ''
bgscan="simple:30:-70:3600"
'';
})
(lib.optionalAttrs randomizeMac {
extraConfig = ''
mac_addr=1
'';
})
];
};
in
lib.mkMerge (map go ns);
allowList = builtins.filter (x: x.ssid == "~");
in
fromList (
# We only want to use my own network
allowList (
import ../../../connectivity/networks.nix
)
);
};
};
hardware.bluetooth.enable = true;
}

View file

@ -0,0 +1,20 @@
{
system.stateVersion = "25.05";
swapDevices = [
{
device = "/var/swapfile";
size = 1024; # MB
}
];
# Related https://github.com/NixOS/nixpkgs/issues/154163#issuecomment-1350599022
#
# modprobe: FATAL: Module sun4i-drm not found in directory /nix/store/gvvwpdckzcr4iamp1iyrqw3nzb7bg6c4-linux-rpi-6.6.51-stable_20241008-modules/lib/modules/6.6.51
nixpkgs.overlays = [
(final: prev: {
makeModulesClosure = x:
prev.makeModulesClosure (x // {allowMissing = true;});
})
];
}

View file

@ -0,0 +1,19 @@
{pkgs, ...}: {
environment.systemPackages = [
pkgs.man-pages
pkgs.man-pages-posix
];
#
# Programs
#
programs = {
vim.enable = true;
vim.defaultEditor = true;
git.enable = true;
};
# Helps with kitty when ssh from remote
environment.enableAllTerminfo = true;
}

View file

@ -42,9 +42,7 @@ in
rocmSupport = true; rocmSupport = true;
}; };
overlays = overlays = map import [
map import
[
../overlays/agenix.nix ../overlays/agenix.nix
../overlays/disko.nix ../overlays/disko.nix
../overlays/nur.nix ../overlays/nur.nix
@ -65,11 +63,10 @@ in
# removed, but I need it for PLFA! # removed, but I need it for PLFA!
../overlays/pin-emacs28.nix ../overlays/pin-emacs28.nix
]
# use lix everywhere and wrap it with nom # use lix everywhere and wrap it with nom
++ [ ../overlays/lix.nix
(import (sources.lix-module + "/overlay.nix") {inherit (sources) lix;}) ../overlays/nix-monitored.nix
(import ../overlays/nix-monitored.nix)
]; ];
# Set NIX_PATH and flake registry at the same time # Set NIX_PATH and flake registry at the same time
@ -93,7 +90,6 @@ in
./vanadium/nixos/audio.nix ./vanadium/nixos/audio.nix
./vanadium/nixos/connectivity.nix ./vanadium/nixos/connectivity.nix
./vanadium/nixos/secure_dns.nix
./vanadium/nixos/input.nix ./vanadium/nixos/input.nix
./vanadium/nixos/misc.nix ./vanadium/nixos/misc.nix
@ -105,12 +101,14 @@ in
./vanadium/nixos/unfree-predicate.nix ./vanadium/nixos/unfree-predicate.nix
./vanadium/nixos/programs.nix ./vanadium/nixos/programs.nix
../nixosModules/common/fish.nix
../nixosModules/common/disable-command-not-found.nix ../nixosModules/common/disable-command-not-found.nix
../nixosModules/common/network.nix ../nixosModules/common/network.nix
../nixosModules/common/sudo-conf.nix ../nixosModules/common/sudo-conf.nix
../nixosModules/common/system-nixconf.nix ../nixosModules/common/system-nixconf.nix
../nixosModules/common/xscreensaver.nix ../nixosModules/common/xscreensaver.nix
../nixosModules/extra/secure_dns.nix
../nixosModules/extra/zram.nix ../nixosModules/extra/zram.nix
../nixosModules/extra/leana.nix ../nixosModules/extra/leana.nix

View file

@ -70,7 +70,7 @@
in in
lib.mkMerge (map go ns); lib.mkMerge (map go ns);
in in
fromList (import ./connectivity/networks.nix); fromList (import ../../../connectivity/networks.nix);
}; };
}; };

View file

@ -1,4 +1,4 @@
{ {config, ...}: {
system.stateVersion = "24.11"; system.stateVersion = "24.11";
boot.loader = { boot.loader = {
@ -13,4 +13,9 @@
# https://community.frame.work/t/stability-issues-random-crashes-reboots-and-boot-freezes/62675/4 # https://community.frame.work/t/stability-issues-random-crashes-reboots-and-boot-freezes/62675/4
"pcie_aspm=off" "pcie_aspm=off"
]; ];
# Cross building
# https://discourse.nixos.org/t/how-do-i-get-my-aarch64-linux-machine-to-build-x86-64-linux-extra-platforms-doesnt-seem-to-work/38106/2?u=leana8959
boot.binfmt.emulatedSystems = ["aarch64-linux"];
nix.settings.extra-platforms = config.boot.binfmt.emulatedSystems;
} }

View file

@ -1,12 +1,22 @@
{ {
lib, lib,
config, config,
pkgs,
... ...
}: { }: {
# git plugins # git plugins
programs.git = { programs.git = {
lfs.enable = true; lfs.enable = true;
patdiff.enable = true; patdiff.enable = lib.mkMerge [
# known to fail on aarch64-linux
(lib.mkIf (pkgs.system == "aarch64-linux") (
# TODO: investigate this
lib.warn "patdiff has been forcibly disabled because it has previously failed to build"
lib.mkForce
false
))
(lib.mkDefault true)
];
}; };
# 懶惰鬼賴皮 # 懶惰鬼賴皮

View file

@ -3,4 +3,8 @@
leana = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPq2o9pbmLRGrOpAP76eYCAscmfakDC7wPm9fmsCCQM leana@vanadium"; leana = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGPq2o9pbmLRGrOpAP76eYCAscmfakDC7wPm9fmsCCQM leana@vanadium";
root = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDc55vENX+13c4s2w7zjTb8T/AnBnTi96yRC5+fy7Z2A root@vanadium"; root = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDc55vENX+13c4s2w7zjTb8T/AnBnTi96yRC5+fy7Z2A root@vanadium";
}; };
hydrogen = {
leana = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXzNdCA0zZ+WmeKZnhQSQtUcxnQhhDl59E3BPQfLj7Q leana@hydrogen";
root = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIMVDmEt/12u9U4QGDZBx/Sx8itzqfQ4zWJvcC3pRZqP root@hydrogen";
};
} }

View file

@ -0,0 +1,22 @@
#
# This module links fish vendor completions, otherwise tab completion would be broken.
#
{
config,
lib,
...
}: let
fishNixOSEnabled = config.programs.fish.enable;
fishHMEnabled =
if config ? home-manager
then lib.any (userConfig: userConfig.programs.fish.enable) (lib.attrValues config.home-manager.users)
else false;
fishEnabled = fishNixOSEnabled || fishHMEnabled;
in {
environment.pathsToLink = lib.mkIf fishEnabled [
"/share/fish/vendor_conf.d"
"/share/fish/vendor_completions.d"
"/share/fish/vendor_functions.d"
];
}

View file

@ -1,8 +1,18 @@
{pkgs, ...}: { {pkgs, ...}: {
security.doas.enable = true;
security.sudo.enable = false; security.sudo.enable = false;
environment.systemPackages = [ environment.systemPackages = [
pkgs.doas-sudo-shim pkgs.doas-sudo-shim
]; ];
security.doas = {
enable = true;
extraRules = [
{
# invoke just with doas directly as a nixos-rebuild helper
users = [":wheel"];
setEnv = ["PATH"];
cmd = "just";
}
];
};
} }

View file

@ -18,12 +18,6 @@
}; };
users.groups.leana = {}; users.groups.leana = {};
environment.pathsToLink = [
"/share/fish/vendor_conf.d"
"/share/fish/vendor_completions.d"
"/share/fish/vendor_functions.d"
];
# #
# My nix binary cache # My nix binary cache
# #

View file

@ -1,9 +1,5 @@
# https://nixos.wiki/wiki/Encrypted_DNS # https://nixos.wiki/wiki/Encrypted_DNS
{ {pkgs, ...}: {
lib,
pkgs,
...
}: {
networking = { networking = {
nameservers = ["127.0.0.1" "::1"]; nameservers = ["127.0.0.1" "::1"];
dhcpcd.extraConfig = "nohook resolv.conf"; dhcpcd.extraConfig = "nohook resolv.conf";

3
nix/overlays/lix.nix Normal file
View file

@ -0,0 +1,3 @@
final: _: {
nix = final.lixPackageSets.stable.lix;
}

View file

@ -1,11 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ WbwyERolRsVLr0HxjKOzEPdaxegb+l+BESYvmMhtzXc -> ssh-ed25519 0LL3PQ pZvOUiznF408OPkjuasLZmbQZLS5RuRJwVucLpTe2xQ
2CDufbW6viuui2Oqmgo/Fd23tQxJJMnFEgmaz0hYn+E OgLqiLgT/4Df13l2l2CdsYnMUZSmfh3xZWb3k0ALjdY
-> ssh-ed25519 yg55bA qyqMmtbigot7wP0FuWNQ4mDd6GtSqECCTjf9E5r57HQ -> ssh-ed25519 0dJ6Mg SzGIUfJrv6L09LhVbzMvvaSpP4Cwr6hFFNbcCH6RO3E
VVYdcCpjGC0TeCoM0r1Ei/kCrYtCN55Kitr5KhyuNXU jsFof9xMH73XPH/PWv//j9Fc0MPTSwwwIyNzdXd8FxM
-> 9"tCN!-grease y p32_~6 -> ssh-ed25519 7owkuQ xtSm22EfAFkscUZ3r69V+S3guCJJu0KjXtWcE+Tv1S4
Eer9vu1p9YYXVrYVnRgnlb3htCmnM7sGcbSE9dwLMchbMYnxUNLZ2U9YQscGe4+G 13QkwIuZFMz1zIrWRZUfOzPVmc2eK56ruBgUD8lK+aE
9d1XaRMAKxPmALzNqap3WSbcEZLTmw -> ssh-ed25519 yg55bA 9ie4rBiJfwrUg/952DPXOY6sHFeTf8Os3bwJ8ZBphFg
--- OfKe6yO+TKKai6mRvprUxhgq5smJqtYMLh1wT26YtlQ PAuEQKfravJxYejS10EgB7aR+pwadl+zVtG57UGj6rA
ÊUmtì -> p-grease TV+^qU1F ^'dkwO+: UF.{ e#KV!IV
sCLµÁw<Gùñø¤z´Br²Ç¨Ó<><C393>ˆûÂIFÒûÌÿH}N>úƒÙÇ‚•ë³^— §î ¹EÐO…C_†F /ASx0x3SOZzaktns0hYlSYnTzOkfn3SPaiPNbYGuSnzTSzcPEjUBTGAuk7/u7g95
o8M5T14bFx1Mqyk
--- XGK2yNNL5UzmgLZiQvOK0jB13HiioVOHGzAwzVte7no
­Ø)£7«ÚdýÀYÝФ?G<>gàYÚñÄ´lr4³Œ˜E0]DpáuáDÀ3tî<74> Eµ&°¢šéÔ”xíì!©À}ƒë—I ot]KßÚQdð

View file

@ -1,11 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ JknIZGtwwI5E7eDTM+T5BpOoSmw2IRG49Mm3WwRC9Tw -> ssh-ed25519 0LL3PQ 7sq+E69e1+k7Ofs+qrBzfX3ZrHWNl4L7W3tw44WEmFo
Z1wjHJNZvQNIUwgoF0+r0JEVFfg4a+X/QA2g+IbfZ+E EjIviQjW6FD5x9yDoWwdrs1WlTxbnMhMJqqwQApz3DM
-> ssh-ed25519 yg55bA 6O5KVqgZDGEVXurVbiVU/jYq6wz4YymiI/2RzvOgdD4 -> ssh-ed25519 0dJ6Mg Mbwr0B2vgrfG/AP6kWo/74krh8q0J9ROM0sRZDuPf3E
w3DVArFB8xsjYXmctyV0mqXE5EqAXJ8sBW5C02YztuY QW7FLw9SYZDl4ROdXRo1UgxNrkPg8/50wfskI3EycS4
-> \.-grease !v -> ssh-ed25519 7owkuQ 0jALH8GNUFc4+MVE79olkEINRmlqq8HVCoj/MO514l4
A25MQQ41zOq6KNAIgBSpCWnPZ53XrWnEL58GWVtn8pVlavGACpAV/CcstsUa6yM2 k7i1YfC6YW0l0IN6rO9bpqCT+j3FBDg7p1yW1YAuSB0
jmYYTv2AU+BYuZ/JTqGb0vM35e3vODlzGu8MsrQ -> ssh-ed25519 yg55bA UDTNYKv1s+zKRZGbbZshXegb1qS+wfneqJjm7ZV9lmI
--- qm7/iVxbQgrBnoNrGpPzBaHbBeDlQud3HsP2U/epY9g a8NLjIzKIFNf96ayOZJcJujuwA1inEsAmzfLaQyLHsw
÷|YP…€JÖe@&Ů~UśÖ‰Hrł9,˙÷‡˝4~¬Ńářđ<C599>tćAc«¶Ň°u[­JLŮ2Ş0¨_<5F>¤Mb^KPH˛†… -> $ww-grease /*
{<7B>(ŮEŞź[|]ýtÄ&RíF„“YŰ$ĆŮĐ ÁůTŔŤ¨¸Ęáäv6×K\=ąÉ¨µ° UtyDg6e07OmivhdTTl/Mz+mg/SmDC/cYqI0QDRmvd9hYhgTHG87mcevhyoLXQywp
aH1G2/deE+4+d2PEiXLOJIMM8A
--- b58ZKMa5/o53ttgY/NRQ1zcRTI5i/zWv2+BNwaAxAV8
OrÙ»ÅÁp÷ÀÙM¬GÚ©é[Eú§_ߢÒ Vã¶u¬×lj©CpbÕîÛé+[~µ <0A>àêò¯%@þ’Àš J­D oÙp'þÑ*ϮИí„èõVÞð&<26>~Ö·e¨·ÁˆiƒŒã#¿«TL˜@ ®¾mclì(<ó„¼bq² ®

Binary file not shown.

View file

@ -1,10 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ g+/zzLQiHuiuauXP4VvPXWFxmxX9NftrSl88fNcwwC4 -> ssh-ed25519 0LL3PQ 6Ue4UZAASHIQDJm8F+qrw7cdlvw+jDlrhIfTOb2mlj8
O5kQ1yL3MdlxkRknXStZ+QzMCuIDFK31v8w4YvGXGE4 F768h+HzBohopJJ584wcHXdKUz3CLW/ATO4nyAW1aw4
-> ssh-ed25519 yg55bA GN2EuwUUtBN1p8u8m0Ghn0HEP4yNuYz4whRv55kmnCc -> ssh-ed25519 0dJ6Mg LYCAlM525ANfQAvAaYPvUpLic7FrSKXkZCDF4PIsWxU
Ck1buWhftdknrJEGak/pJ+mGEPdICNqnzDEazhAQAeQ 5CrVrQdhARNiCup5fgmQH05sb2k0z/yzDElim66194o
-> %.'9AY-grease -> ssh-ed25519 7owkuQ MNGb3zFfaJ+oTY0Vtc43uS4Gb0d+vmeEq7kZeV5t02Q
UyOK7WEX6LgO1Z0AmtClsynfIj1OGcuIlJjIwMwiK+CHGoVjOIIRkbHiarTQw12V RM8dX2yW9r4QLTsBQY2uSB4fzBQSK1sxjhG/f1qNCcI
kL7BR6EZRAsEpmoDYVNZrTspogQ4kDKi2KsQRoNuemiTEg -> ssh-ed25519 yg55bA ZVbIzTEmenGD1F8KkwTPGLit7znypUiFIOW6OWhO8wo
--- W1SmO6s+WRW5fxwneQ0MEv5GzbFc4IX0pNaVGHSWTTA Ai2Y2QdfZ3pZGaPWoY7HfMEstOzMDp8+BTHS7zpOwlU
Ýב<11>s°©Ëº#\¿´p€-»òPKh+4Ws¸=¦0PC5ÙÐŽZ2nãðˆ¸y,Ü]gˆê³Sdà9†qŽˆ<C5BD>oˆêÅéµå?(9UÐ<55>ŸDJO¬Ÿr¤(õb´Î&hBQ½Ë¼\ÌvÅöŽpô]emYKú‡ÿ¼ÇÍÅžð`ÏSü`1ž× ßÝ@ þþ(Õú/ïeY<65>ÈP0 -> ,%y9?-grease r(S=ghd1
FPKkbTLe5kxzDs3dEVKa8MJ7o8t4OJ4/gO0nwP55OJlV51nRPxpsd9WWdhVv0h69
7jZNBCF9CgB72huPFZR/50TvctOILmGmTfnIv0mpsIFjYl4QHrr6qPzuHQ
--- VJ27uwCEZSWYS99nH1OIiYNKg9Rqn1qTQnMCAVTbv6E
69í]hĪÑ&>Z ï$“ ŒnV¿Ú ÐíûCR3ìÿÊénT¡¢2`¾lÊ;V;yž[ݱ´–‰Y|Þ7šü\하9=Y±©õ­N[ûJ‡1·i”'ìaÿaÁ£3 Ù72ª¼äáN×KZlDÍ£˜ Ü*ð ¯<>?LÙ@Vè`ÿ,†vÊžD<>×

Binary file not shown.

View file

@ -1,9 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ q458BCC+1ChqixcO2bMdBMktANq3d3nwzvs8hb9ityM -> ssh-ed25519 0LL3PQ kAkdTH8kPHnYR5GncurnYL6atChq9B2ugqJYK0xUAHs
FjbGE5gA0lvPg0Ybp3WyqrfzmF9b7LsMp24vv/5hRHo doCoG+lJAlbygvWg31BycpMf4K6dWihcJ4Vb3308ypA
-> ssh-ed25519 yg55bA lNCW4DBdwsFxGhw75WAUOTRkbY7ljMilARPNdI4sFTk -> ssh-ed25519 0dJ6Mg aWeQi7cyFZwEgcJb4GkROumwptaRTPrCBQCCpMdKQXA
zULx2aX+PHxOEPyYfGEJEugaYHUwgBFminlXybrrTSo ORlGsAxLgWIeRhDwv58FFIZP3vUqTipOl3Q2bdq1nEs
-> .C(--grease Mk?! JvhX04'M -> ssh-ed25519 7owkuQ aUTN8z+aD4ltDJ/7oBRhZZlsyp6blSGoeJdDDzwTsiI
s8AZa58 00/DiiSDI3N2c1l4apPYKwQwWX/7FaxzupPnTPSzgDw
--- Ja48d/9lY/dhamU1RxGqpweLwGI6Y/rr9npilNd9cp4 -> ssh-ed25519 yg55bA QN8RxfPk+yAL/veq7aLX7Z9LMBaMPiq7edju0xSbOjU
e£®°ºJ#ý‰²t¢Íqîž™€ÀÇl DÇv‡ÎޤÑâa=uüñ†Ô¢Ÿ³€8k€±&Ñî÷4Jž4Gã +Q+IADzBZB5H5PwFD3jVZOsPJdwbsiN0t6vs5tqF5HQ
-> 1-grease "[wrG8^D YH)pk=`h
OFsK01MRbG/Ds1s+xEDF5D37ijhhCuRCWAXHL+kXlJ3lXulkMpAA/QBUj2/Y9RIY
veiOf8/qizBR
--- rpmIeN8PqT0PRmiykzweztzDkzVNp1mCetqj1WJNerM
hÓÁ¡ójýrÿë@oÃÙ¾ÿ$ëå'“’@þø„#î×þÊš 3¬Gë.U'0½ÃÀ+|ûÏ­Ënâþ‰ a§ô<C2A7>Ü/

View file

@ -1,10 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ /LOUFKCJMDbwGmRbKmtA5YibEwXaC+bn3qzr2G5PNjU -> ssh-ed25519 0LL3PQ xLhj3/Y4owHlZ9wSvSUO6J5QRDbAwbaMO2MNAIW/S34
8sFd/TH7CotBpgE9IcBUjpl1HQDoVWcBnKMs+65yWFM T86CtE8vACVDH34OnmUVokUY4NctvHcaVunoCvGUxEo
-> ssh-ed25519 yg55bA zfExS48sAVvVfmhoNjrqu7b6YBPF8Nj+Uz7LyAswexk -> ssh-ed25519 0dJ6Mg 0sZCeLLGHhQ/ZppSTuyeZBOKdypMBNaJrI84Sdya6C0
0m8ezLoCMw71c+HlEDgNA/V1IZeMsWu5MV+fvQEKsRA 3koAeP0eIaSj/TQEGHYJ0GSUx9T35WQiALzLj8cykM8
-> .5;c~,-grease M^}>kjw ;yYsB Z 1}Z@jDzv -> ssh-ed25519 7owkuQ fOjqhSibMqCebX44ODbi5B6T1KGBVjgAl78XcQbGnUs
2ZhEqtWhM/7boxsNVSQHc+eDs41VyWaj3JoyYPBdQf1Gm9OVToKAfM03EuTYKvGk LqRR+NxqMGi0gW3DLubo0k00mkW5onuhKWw4Oaq4o2g
IgoyvRNeEsXRJA3gnApmlQC/gGsaR/bMs+/sDuZzsNpMo7cFjPcfQZ+TM3A -> ssh-ed25519 yg55bA xl59uoVVAsDwAik1iN+aMxAvmX2yBW6Tgngt6nrAy38
--- ACmisGCqSllpxxoCa1FKK79Jmf1TjNCcQe+ouccHttA NnAGx9qDQScgbA8eMd6JmOWV14Kp3enpuzMeTpVLSQM
mm5f}r._%) ïž7G<37>~}„Ö{®÷ ö­{oÈuÅbëNð3¿@>VÈ4¸À:?Îç,Ì -> *-grease 8-(+ vYaB m6U
8gdvu5Df7a7QJC+s3/x4OMEp3nGRQo+v6GKMo957cTIofYQrX1zPIscugjB+Ua/R
mqSUmYM
--- IYRDnT9/tIxleM47lmOA5wp3e5TrJGqn/faxfMTq7po
Q&¢]ø¥cӵް Ò·árJ¿Õ« ü±Ï˜šÄzaBd $Y[•'<27>àßsœ8ûpZ¶ô®

View file

@ -1,10 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ 4qJGfzwkiTLxMp29ap8xS4Yrr4v5+WuEgR2l6kk1u3g -> ssh-ed25519 0LL3PQ KHSf9ndwbU+gp/EjEqb6BizoDld2P0IUE+NyNq41qRU
/ez+z5soKOZJYd1ETWcZ9WwGQkcI4hdOhS63oshjBWM nnjQ6RxRj/oVI4lrmGx3YA9xru2wIkV6tyYnF/Qj4gA
-> ssh-ed25519 yg55bA is0cfph0fc3Yd4btpE4+HqN9YWWlkkQ9hj0LDtkCPwQ -> ssh-ed25519 0dJ6Mg FoLEamzgj2WZxiEGjWEacLtP+YvwPK4S961Mz4QVo0Q
K3zdjEN3dlTaticQtVi774mQOM1KUg+dk0JvjQxctnk LRV7YndQRyZxFWgxjZ8+KhnHY3NmQjtBx9D9SkEfdBk
-> zou8qv-grease $$C.n1_ # -> ssh-ed25519 7owkuQ +ERZ/SyjyHNDMUcZftWjPPg/+Y4vNNhY9qcXYJTocEo
N5iTy0ERftclPNDFgpa4ClqGCIvTDIKj03Iyzy+az2l3bs8MXUS/4hqh+uDCW3GG WvRkkgWh+t1O2574vvIRYkDav6XJaZe1H8+bMk6Rt2U
t4gL59TG -> ssh-ed25519 yg55bA T1koZe8t1aK3Z8t102m9Q3sTFo68ml8hjbm5oTDxqXg
--- U3g4gGvkEQKWkM6gMEA3AFK9y5y4i7jnoNWb7xgDqeo OuVwNZFJokgz3ZubnQJbhdmgfYnpKSyt+2f0pfJ0zMM
ェ(凩Aノ2t80<38>敎_モs#ル5ヒ€ォ棆|サAム&徘瓠F#シpマ<19> -> 1I-grease SAO!z + 1
dor0+AdeMZtvH6XIh/8UOwtKIeqTckMwS64fXpQC15sQN4s01iZ0E2fmfxlOd7sF
CEjwIjD/c76eWsm4HXnFKPMn
--- PtcipNj2Ol00OQXMJnvGfBPLxAkxB5/JrqUNXWKRqEE
p°§•3•êו‹Ê!3`S^'¨”– ð<>ÔToÐ[F<46>åÁþ"<22>±ùW¬QñÐFè5™H$þ

View file

@ -1,10 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ rAj9h0wtf1gsdtlvGDmaxdHjRreUyfRpZBNnI01edhY -> ssh-ed25519 0LL3PQ EaH3FSFURTrKNRQgBzRJHwScLs+0++zx8L5xtiv2Thg
jCTGmhWgEy3BPdWQdv7goL0Vd2obIdRFn1HHApQdIpI zb9BAe2Mh3Dnq7xQTsV3FKSLfti6qk1fMuVU3jnkvSE
-> ssh-ed25519 yg55bA 9oZRoMwVSR5W7gFufctfhQcrunzGABm0eY5Zrd30CHw -> ssh-ed25519 0dJ6Mg wOmgGAMbqQD3agi6iH7ncke5yIuWwI3JK2+Z4Z6LAGQ
10sx6yDe/qhGSo7yfJi33bqrilLE5BBMjLuw46xZ/xo aPyfZ96NlrP7/XIMpKJkgvONfzdgjrm18CFGpE8rWjo
-> 6<-grease # $q0gf& d+*Zn G7~` -> ssh-ed25519 7owkuQ Siq/BgJuW1G34eBHL5rUTaR/D1R8AKxo3oWNfKkjNjg
4wM1yc2zThJt4kjBR5Evb0sKVQTk+2/UxCyRclcj+c5WoFnZAUkweu5J9NKKZZY1 8/qCD7Z8Pnnpz2fwzcZuRKi/NqU4sOUdEn97JT5sy7U
eQDsxMy2VTCwKH21kt6GMThqd8uFLWlNIG8Rd+p1UQ -> ssh-ed25519 yg55bA JHUJBdwb6/vcw3g2JCZVSs/dm96PE7dhOW1gEi5Nokc
--- 4ITweNL+AK2o11O1NyophxQQsMYL4Lu6iBedFz9c7TE NiT7i0XArZPVz4UqN4IR+Dc47tjU1jVe8SFUbM17fBo
à™ÖúéBQe~©£n bÊ™kÇ86¯éqò<71>}ÁgÛ<>íÍ+ÅcÜÐ;Ð]É£K½‡ -> %-grease R
5njLYJJMaDrRkP6qA1AUGy375lHVqP2WzUlhYX8HLtBL95VysXoW+PTzIEc+PQNs
UMxNTezEFXnww4E06+rPE5JN/VN+lOtb1uaEFdc
--- TKX4YuCK4DPsLEB0A1XSywqEt2gysGHbYtL59hudEkQ
|žão³¬K<C2AC>ÆÁÛwîà5õ¶±¦tâUô|ø˜G«Ìg(áéf½‰\@‡9Àâ0_¨jÖ

Binary file not shown.

View file

@ -1,10 +1,14 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 7owkuQ 19/isGgYZjRCPON85JEAYTaM766DiIvvFaaoijZivxU -> ssh-ed25519 0LL3PQ bOMlgebRdu00Y6AMCMzfMDHz20hmxFZKXZXTV0GxrXI
OE/HYTXVW4JMx7naMAORiYfQXyfrJEuegco97PBlfs4 h8g+yA6VbtKmSpJQd7jRXbI3XZ4t9onF9HAAFZqGfjo
-> ssh-ed25519 yg55bA qsSTyN6LX3FPcfS9Mo0zZFxlv8bN+tSm3kfr7JInzE8 -> ssh-ed25519 0dJ6Mg re3MAlJT/+Cv3JuX32+DDsCpX2fyjmbf6lHWEPo2cS4
OUNksovVTZjecBLo2G2EksGl/f1qMfCv2IKcgWWc7hA eoGwzNSWZsz7MraRl+WszHPtV/Js5miEpyPW80qE2Rk
-> 8~-grease ^ -> ssh-ed25519 7owkuQ jVPzIG/BaqhF0pDsQGyTszSYk9uqxgT+gkI3isFfXjw
TtU/CcXzUV6vxDjnnSs4UHT0skFZdOOGAPZ54XYS9VI5qD5zYPdxlt4Xs293QALL KNYecxPhASdkrX9HksZvd3PklumBxhT56cwuAvrjrCI
+EYnfX/02ga1Xik2diAn2/pefStizBztyrqZ6n4ZSFwbYlg66WmG7y+mW+M -> ssh-ed25519 yg55bA RQqNeR7/CnTikL1PmjuB8wbrbB/ePXDL5Vc68nwglms
--- skqsOtKqWNBNuPKITV3vEQp27npkPn8DmVvT98XFnTw XSdnfZRny11PwqNz2RQXZTJkebgpcIlLPH41anP+bE0
sÑ2[Ê><3E>è™ ¶“JÙHO»Ž[ô{©ò=ŽÊ†ˆœ{ `sjw:Œ ¤4)Ä;µvRp ®ËËF¹{9TX£î< -> Fwm.uTZQ-grease 0 l*:+ KkJHBhG
+GHIrzesQEN5gofR9foQBAispJYm7Q+ZpcaGA5c
--- BeBZdmPhZssR+92iYgQ/62hlCIiY6SUQaggAZkXTw8I
˜.hvà"ñëÕŸiÖÇ
|«p<C2AB>Ú×úû<C3BA>ÖÝw¯4´näÿÿiÒØŸ°ÎW­B<C2AD>ï?l‡üêøê`[2Ò(ú¢á¨¿_i´÷Õü'

Binary file not shown.

Binary file not shown.

View file

@ -135,40 +135,6 @@
"url": "https://codeberg.org/api/v1/repos/amjoseph/infuse.nix/archive/v2.4.tar.gz", "url": "https://codeberg.org/api/v1/repos/amjoseph/infuse.nix/archive/v2.4.tar.gz",
"hash": "1s3d1v27jxsw5050qi0bq6agpf5gpw6jmcyigzpdgwfm9d6w6wz1" "hash": "1s3d1v27jxsw5050qi0bq6agpf5gpw6jmcyigzpdgwfm9d6w6wz1"
}, },
"lix": {
"type": "GitRelease",
"repository": {
"type": "Forgejo",
"server": "https://git.lix.systems/",
"owner": "lix-project",
"repo": "lix"
},
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
"submodules": false,
"version": "2.93.3",
"revision": "017e93ae637ce6dfc958001e5cdc2a3e0182be6f",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/2.93.3.tar.gz",
"hash": "152xjnlr733z34ndyxnhdaw7d4f3zcj5w028mlmwy378wvhk9b1s"
},
"lix-module": {
"type": "GitRelease",
"repository": {
"type": "Forgejo",
"server": "https://git.lix.systems/",
"owner": "lix-project",
"repo": "nixos-module"
},
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
"submodules": false,
"version": "2.93.1",
"revision": "c3c78a32273e89d28367d8605a4c880f0b6607e3",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/2.93.1.tar.gz",
"hash": "1m1lk9mjmcjfi30h1yckjrbdy9yf4msav2dnk8lpn0hrj4mkkw0i"
},
"nil": { "nil": {
"type": "Git", "type": "Git",
"repository": { "repository": {