Compare changes

Choose any two refs to compare.

+1
common/default.nix
···
man-pages
man-pages-posix
gptfdisk
+
lz4
];
# Localization
+195 -4
flake.lock
···
{
"nodes": {
+
"flake-compat": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1751685974,
+
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
+
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
+
"type": "tarball",
+
"url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1"
+
},
+
"original": {
+
"type": "tarball",
+
"url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz"
+
}
+
},
+
"flake-utils": {
+
"inputs": {
+
"systems": "systems"
+
},
+
"locked": {
+
"lastModified": 1694529238,
+
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
+
"owner": "numtide",
+
"repo": "flake-utils",
+
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
+
"type": "github"
+
},
+
"original": {
+
"owner": "numtide",
+
"repo": "flake-utils",
+
"type": "github"
+
}
+
},
+
"gomod2nix": {
+
"inputs": {
+
"flake-utils": "flake-utils",
+
"nixpkgs": [
+
"tangled",
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1754078208,
+
"narHash": "sha256-YVoIFDCDpYuU3riaDEJ3xiGdPOtsx4sR5eTzHTytPV8=",
+
"owner": "nix-community",
+
"repo": "gomod2nix",
+
"rev": "7f963246a71626c7fc70b431a315c4388a0c95cf",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nix-community",
+
"repo": "gomod2nix",
+
"type": "github"
+
}
+
},
+
"htmx-src": {
+
"flake": false,
+
"locked": {
+
"narHash": "sha256-nm6avZuEBg67SSyyZUhjpXVNstHHgUxrtBHqJgowU08=",
+
"type": "file",
+
"url": "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js"
+
},
+
"original": {
+
"type": "file",
+
"url": "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js"
+
}
+
},
+
"htmx-ws-src": {
+
"flake": false,
+
"locked": {
+
"narHash": "sha256-2fg6KyEJoO24q0fQqbz9RMaYNPQrMwpZh29tkSqdqGY=",
+
"type": "file",
+
"url": "https://cdn.jsdelivr.net/npm/htmx-ext-ws@2.0.2"
+
},
+
"original": {
+
"type": "file",
+
"url": "https://cdn.jsdelivr.net/npm/htmx-ext-ws@2.0.2"
+
}
+
},
+
"ibm-plex-mono-src": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1731402384,
+
"narHash": "sha256-OwUmrPfEehLDz0fl2ChYLK8FQM2p0G1+EMrGsYEq+6g=",
+
"type": "tarball",
+
"url": "https://github.com/IBM/plex/releases/download/@ibm/plex-mono@1.1.0/ibm-plex-mono.zip"
+
},
+
"original": {
+
"type": "tarball",
+
"url": "https://github.com/IBM/plex/releases/download/@ibm/plex-mono@1.1.0/ibm-plex-mono.zip"
+
}
+
},
+
"indigo": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1753693716,
+
"narHash": "sha256-DMIKnCJRODQXEHUxA+7mLzRALmnZhkkbHlFT2rCQYrE=",
+
"owner": "oppiliappan",
+
"repo": "indigo",
+
"rev": "5f170569da9360f57add450a278d73538092d8ca",
+
"type": "github"
+
},
+
"original": {
+
"owner": "oppiliappan",
+
"repo": "indigo",
+
"type": "github"
+
}
+
},
+
"inter-fonts-src": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1731687360,
+
"narHash": "sha256-5vdKKvHAeZi6igrfpbOdhZlDX2/5+UvzlnCQV6DdqoQ=",
+
"type": "tarball",
+
"url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip"
+
},
+
"original": {
+
"type": "tarball",
+
"url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip"
+
}
+
},
+
"lucide-src": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1754044466,
+
"narHash": "sha256-+exBR2OToB1iv7ZQI2S4B0lXA/QRvC9n6U99UxGpJGs=",
+
"type": "tarball",
+
"url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip"
+
},
+
"original": {
+
"type": "tarball",
+
"url": "https://github.com/lucide-icons/lucide/releases/download/0.536.0/lucide-icons-0.536.0.zip"
+
}
+
},
"nixpkgs": {
"locked": {
"lastModified": 315532800,
-
"narHash": "sha256-83yvDLYXJ71qoOuRJ8pN/8MGabwQx/83Q24O/AmdecI=",
-
"rev": "8c441601c43232976179eac52dde704c8bdf81ed",
+
"narHash": "sha256-LzU/KC9vXI1UeKEjbz0bq0OIdv36UJpz88Sfeg991UQ=",
+
"rev": "647e5c14cbd5067f44ac86b74f014962df460840",
"type": "tarball",
-
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre804181.8c441601c432/nixexprs.tar.xz?rev=8c441601c43232976179eac52dde704c8bdf81ed"
+
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre868532.647e5c14cbd5/nixexprs.tar.xz?rev=647e5c14cbd5067f44ac86b74f014962df460840"
},
"original": {
"type": "tarball",
···
},
"root": {
"inputs": {
-
"nixpkgs": "nixpkgs"
+
"nixpkgs": "nixpkgs",
+
"tangled": "tangled"
+
}
+
},
+
"sqlite-lib-src": {
+
"flake": false,
+
"locked": {
+
"lastModified": 1706631843,
+
"narHash": "sha256-bJoMjirsBjm2Qk9KPiy3yV3+8b/POlYe76/FQbciHro=",
+
"type": "tarball",
+
"url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip"
+
},
+
"original": {
+
"type": "tarball",
+
"url": "https://sqlite.org/2024/sqlite-amalgamation-3450100.zip"
+
}
+
},
+
"systems": {
+
"locked": {
+
"lastModified": 1681028828,
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+
"owner": "nix-systems",
+
"repo": "default",
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nix-systems",
+
"repo": "default",
+
"type": "github"
+
}
+
},
+
"tangled": {
+
"inputs": {
+
"flake-compat": "flake-compat",
+
"gomod2nix": "gomod2nix",
+
"htmx-src": "htmx-src",
+
"htmx-ws-src": "htmx-ws-src",
+
"ibm-plex-mono-src": "ibm-plex-mono-src",
+
"indigo": "indigo",
+
"inter-fonts-src": "inter-fonts-src",
+
"lucide-src": "lucide-src",
+
"nixpkgs": [
+
"nixpkgs"
+
],
+
"sqlite-lib-src": "sqlite-lib-src"
+
},
+
"locked": {
+
"lastModified": 1759307677,
+
"narHash": "sha256-J9nr84+CNL//9CvR8ELCkzby57EEgZum19WYslnSEG0=",
+
"ref": "refs/heads/master",
+
"rev": "5df3d5df76ee20ad0ad818c3aa76d92788672873",
+
"revCount": 1470,
+
"type": "git",
+
"url": "https://tangled.sh/@tangled.sh/core"
+
},
+
"original": {
+
"type": "git",
+
"url": "https://tangled.sh/@tangled.sh/core"
}
}
},
+17 -2
flake.nix
···
{
inputs = {
nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
+
tangled = {
+
url = "git+https://tangled.sh/@tangled.sh/core";
+
inputs.nixpkgs.follows = "nixpkgs";
+
};
};
outputs =
{ self, ... }@inputs:
···
}
)
);
+
dumb-manager = import ./lib/dumb-manager.nix;
in
{
nixosConfigurations = {
hetzner = nixpkgs.lib.nixosSystem {
inherit specialArgs;
modules = [
+
inputs.tangled.nixosModules.knot
./common
./hetzner
];
};
+
riptide = nixpkgs.lib.nixosSystem {
+
inherit specialArgs;
+
modules = [
+
./common
+
./riptide
+
];
+
};
};
packages = forAllSystems (pkgs: {
-
# Too lazy to do callPackage...
-
mac-home = (import ./home/mac) pkgs;
+
mac-home = dumb-manager.configuration {
+
inherit pkgs nixpkgs;
+
module = ./home/mac;
+
};
});
formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style);
};
+33 -1
hetzner/default.nix
···
services = {
openssh.enable = true;
openssh.settings.PasswordAuthentication = false;
+
tangled-knot = {
+
enable = true;
+
openFirewall = false;
+
repo.mainBranch = "dev";
+
motd = "Bogos binted? ๐Ÿ‘ฝ";
+
server = {
+
owner = "did:plc:nmpjck4rv6hjscoxnwdltfyj";
+
hostname = "knot.sydney.blue";
+
};
+
};
+
nginx = {
+
enable = true;
+
recommendedGzipSettings = true;
+
recommendedOptimisation = true;
+
recommendedTlsSettings = true;
+
recommendedProxySettings = true;
+
virtualHosts."knot.sydney.blue" = {
+
forceSSL = true;
+
enableACME = true;
+
locations."/" = {
+
proxyPass = "http://127.0.0.1:5555";
+
proxyWebsockets = true;
+
};
+
};
+
virtualHosts."bogos.binted.sydney.blue" = {
+
forceSSL = true;
+
enableACME = true;
+
root = "/var/www/bogosbinted";
+
};
+
};
};
# Base Packages
···
shell = pkgs.zsh;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGRJWbyvyeo8ykLovPOR+EuwqmjOsSrBBckpicVWhULl mac"
+
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEYI8038ZK8GFZmX2j8gwe5OR70+gP2PZFz79TCFvZQH sydney@riptide"
];
};
···
nix.settings.trusted-users = [
"@wheel"
];
-
+
security.acme.acceptTerms = true;
+
security.acme.defaults.email = "me@sydney.blue";
}
+12 -5
home/mac/default.nix
···
-
pkgs:
-
-
pkgs.buildEnv {
-
name = "mac-home";
-
paths = with pkgs; [
+
{ pkgs }:
+
{
+
username = "user";
+
homeDirectory = "/Users/user";
+
packages = with pkgs; [
+
atproto-goat
+
espflash
+
ghidra-bin
+
uv
+
dfu-util
zig
+
tmux
flashrom
tree
bun
···
graphviz
(python3.withPackages (
ppkgs: with ppkgs; [
+
exrex
numpy
pandas
pwntools
+20
lib/dumb-manager.nix
···
+
{
+
configuration =
+
{
+
pkgs,
+
nixpkgs,
+
module,
+
}:
+
let
+
cfg = (import module) { inherit pkgs; };
+
inherit (cfg) homeDirectory;
+
update-links = import ./update-links.nix;
+
packages = (cfg.packages or [ ]) ++ [
+
(update-links { inherit pkgs nixpkgs homeDirectory; })
+
];
+
in
+
pkgs.buildEnv {
+
name = "dumb-manager";
+
paths = packages;
+
};
+
}
+33
lib/update-links.nix
···
+
{
+
nixpkgs,
+
pkgs,
+
homeDirectory,
+
}:
+
let
+
registry = {
+
flakes = [
+
{
+
exact = true;
+
from = {
+
id = "n";
+
type = "indirect";
+
};
+
to = {
+
path = "${nixpkgs}";
+
type = "path";
+
};
+
}
+
];
+
version = 2;
+
};
+
registryFile = pkgs.writeTextFile {
+
name = "registry.json";
+
destination = "/.config/nix/registry.json";
+
text = builtins.toJSON registry;
+
};
+
in
+
pkgs.writeShellScriptBin "update-links" ''
+
#!/usr/bin/env bash
+
mkdir -p ${homeDirectory}/.config/nix
+
ln -sf ${registryFile}/.config/nix/registry.json ${homeDirectory}/.config/nix/registry.json
+
''
+195
riptide/default.nix
···
+
{ config, lib, pkgs, ... }: {
+
imports = [ ./hardware.nix ];
+
+
# Boot
+
boot = {
+
supportedFilesystems = [ "bcachefs" ];
+
loader.efi.canTouchEfiVariables = true;
+
loader.systemd-boot.enable = lib.mkForce false;
+
loader.limine = {
+
enable = true;
+
efiSupport = true;
+
style.wallpapers = [];
+
extraEntries = builtins.readFile ./limine.extra.conf;
+
secureBoot.enable = true;
+
};
+
initrd.systemd.enable = true;
+
kernelPackages = pkgs.linuxPackages_latest;
+
binfmt.emulatedSystems = [ "aarch64-linux" ];
+
initrd.kernelModules = [ "i915" ];
+
};
+
+
# Networking
+
networking = {
+
hostName = "riptide";
+
networkmanager = {
+
enable = true;
+
wifi.backend = "iwd";
+
};
+
firewall = {
+
allowedUDPPorts = [ 51820 ];
+
};
+
wireguard.enable = true;
+
wireguard.interfaces = {
+
wg0 = {
+
ips = [ "192.168.69.3/24" ];
+
privateKeyFile = "/root/wireguard-keys/private";
+
listenPort = 51820;
+
peers = [
+
{
+
publicKey = "gDSnymmeuX4a8az4kUHcoltMMHb8mdJCti/TYV62kwA=";
+
allowedIPs = [ "192.168.69.0/24" ];
+
endpoint = "185.44.83.60:12345";
+
persistentKeepalive = 25;
+
}
+
];
+
};
+
};
+
};
+
hardware.bluetooth.enable = false;
+
hardware.bluetooth.powerOnBoot = false;
+
+
# Services
+
systemd.services.NetworkManager-wait-online.enable = false;
+
services = {
+
openssh.enable = true;
+
openssh.openFirewall = true;
+
openssh.settings.PasswordAuthentication = false;
+
usbmuxd = {
+
enable = true;
+
package = pkgs.usbmuxd2;
+
};
+
fwupd.enable = true;
+
pipewire = {
+
enable = true;
+
alsa.enable = true;
+
alsa.support32Bit = true;
+
pulse.enable = true;
+
jack.enable = true;
+
};
+
+
# Graphical Settings
+
desktopManager.plasma6.enable = true;
+
displayManager.sddm = {
+
enable = true;
+
wayland.enable = true;
+
wayland.compositor = "kwin";
+
};
+
xserver = {
+
xkb.layout = "us";
+
xkb.variant = "dvorak";
+
};
+
gvfs.enable = true;
+
};
+
+
# User Account Setup
+
users.groups.plugdev = { };
+
users.users.sydney = {
+
isNormalUser = true;
+
extraGroups = [
+
"wheel"
+
"wireshark"
+
"plugdev"
+
"adbusers"
+
"libvirtd"
+
];
+
shell = pkgs.zsh;
+
description = "Sydney";
+
packages = with pkgs; [
+
ghidra
+
jujutsu
+
zig_0_15
+
zed-editor
+
fastfetch
+
hyfetch
+
firefox
+
tmux
+
texlive.combined.scheme-small
+
(python3.withPackages (
+
ppkgs: with ppkgs; [
+
pwntools
+
scapy
+
pycryptodome
+
]
+
))
+
thunderbird-latest
+
libreoffice-qt6-fresh
+
fragments
+
vlc
+
lean4
+
ripgrep
+
clang-tools
+
winetricks
+
wineWowPackages.stable
+
darktable
+
zoom-us
+
corefonts
+
vistafonts
+
kicad
+
ghostty
+
hut
+
tor-browser
+
];
+
};
+
+
# System Packages and Fonts
+
environment.systemPackages = with pkgs; [
+
kdePackages.sddm-kcm
+
pciutils
+
usbutils
+
sbctl
+
lutris
+
ifuse
+
libimobiledevice
+
idevicerestore
+
];
+
fonts.packages = with pkgs; [
+
nerd-fonts.fira-code
+
nerd-fonts.blex-mono
+
noto-fonts-cjk-sans
+
noto-fonts-emoji
+
ibm-plex
+
maple-mono.truetype-autohint
+
];
+
+
# Program Settings
+
programs.adb.enable = true;
+
programs.nix-ld.enable = true;
+
programs.dconf.enable = true;
+
programs.wireshark.enable = true;
+
programs.wireshark.package = pkgs.wireshark;
+
+
# Misc
+
security.rtkit.enable = true;
+
hardware.graphics = {
+
enable = true;
+
enable32Bit = true;
+
extraPackages = with pkgs; [
+
intel-compute-runtime
+
intel-media-driver
+
ocl-icd
+
rocmPackages.clr.icd
+
];
+
extraPackages32 = with pkgs.pkgsi686Linux; [
+
intel-media-driver
+
];
+
};
+
+
virtualisation.libvirtd = {
+
enable = true;
+
qemu = {
+
package = pkgs.qemu_kvm;
+
runAsRoot = true;
+
swtpm.enable = true;
+
ovmf = {
+
enable = true;
+
packages = [(pkgs.OVMF.override {
+
secureBoot = true;
+
tpmSupport = true;
+
}).fd];
+
};
+
};
+
};
+
+
system.stateVersion = "24.05";
+
}
+57
riptide/hardware.nix
···
+
# Do not modify this file! It was generated by โ€˜nixos-generate-configโ€™
+
# and may be overwritten by future invocations. Please make changes
+
# to /etc/nixos/configuration.nix instead.
+
{
+
config,
+
lib,
+
pkgs,
+
modulesPath,
+
...
+
}:
+
+
{
+
imports = [
+
(modulesPath + "/installer/scan/not-detected.nix")
+
];
+
+
boot.initrd.availableKernelModules = [
+
"nvme"
+
"xhci_pci"
+
"ahci"
+
"usb_storage"
+
"usbhid"
+
"sd_mod"
+
];
+
boot.initrd.kernelModules = [ ];
+
boot.kernelModules = [ "kvm-amd" ];
+
boot.extraModulePackages = [ ];
+
+
fileSystems."/" = {
+
device = "/dev/disk/by-uuid/0bf95be9-87d1-455a-9e50-af86b4d7e1d7";
+
fsType = "bcachefs";
+
};
+
+
boot.initrd.luks.devices."rootfs".device = "/dev/disk/by-uuid/3d0aeb43-1859-4748-9e94-5eb820e5e4da";
+
+
fileSystems."/boot" = {
+
device = "/dev/disk/by-uuid/32A5-48A0";
+
fsType = "vfat";
+
options = [
+
"fmask=0077"
+
"dmask=0077"
+
];
+
};
+
+
swapDevices = [ ];
+
+
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+
# (the default) this is the recommended approach. When using systemd-networkd it's
+
# still possible to use this option, but it's recommended to use it in conjunction
+
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
+
networking.useDHCP = lib.mkDefault true;
+
# networking.interfaces.enp15s0.useDHCP = lib.mkDefault true;
+
# networking.interfaces.wlp16s0.useDHCP = lib.mkDefault true;
+
+
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+
}
+12
riptide/limine.extra.conf
···
+
/+W*ndoze
+
//Faildows 11
+
protocol: efi
+
path: guid(039ee875-644d-43f9-9040-a2e23b8588e6):/EFI/Microsoft/Boot/bootmgfw.efi
+
/+Frostium
+
//Kernel 0.0.1a
+
protocol: limine
+
path: boot():/frostium/kernel-amd64.elf
+
module_path: boot():/frostium/root-69.elf
+
module_path: boot():/frostium/root-420.elf
+
module_path: boot():/frostium/init-amd64.elf
+