added podman and shortcut for nixos rebuilds

This commit is contained in:
2026-08-16 11:16:11 -07:00
parent da513216a3
commit 8f61297dcb
8 changed files with 186 additions and 31 deletions

19
flake.lock generated
View File

@@ -148,6 +148,22 @@
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1786862985,
"narHash": "sha256-FBJRXmbGXiSUDvYEbfLYRkckayyZ6SK1UEqhCrIZ2Cs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e5bdc4a41d4c072fe1e3787eaa0320a384741d44",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1767892417,
@@ -184,7 +200,8 @@
"disko": "disko",
"home-manager": "home-manager",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3"
"nixpkgs": "nixpkgs_3",
"nixpkgs-unstable": "nixpkgs-unstable"
}
}
},

View File

@@ -3,6 +3,7 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = {

View File

@@ -107,8 +107,12 @@
setup = "source ./setup_env.sh";
gpuenv = "__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia";
digital = "$HOME/Tools/Digital/Digital.sh";
nixos_test = "sudo nixos_rebuild test --flake $HOME/NixOS-Configs#hades";
nixos_switch = "sudo nixos_rebuild switch --flake $HOME/NixOS-Configs#hades";
nixos_test = "rebuild test";
nixos_switch = "rebuild switch";
"rebuild-switch" = "rebuild switch";
"rebuild-test" = "rebuild test";
"rebuild-boot" = "rebuild boot";
"rebuild-build" = "rebuild build";
};
initContent = lib.mkMerge [
@@ -166,6 +170,42 @@
fi
# Custom helper functions
rebuild () {
local action="''${1:-switch}"
shift 2>/dev/null || true
local config_dir="''${FLAKE_CONFIG:-$HOME/NixOS-Configs}"
local host="hades"
local target="$config_dir#$host"
case "$action" in
switch|test|boot)
echo "==> Running: sudo nixos-rebuild $action --flake $target $*"
sudo nixos-rebuild "$action" --flake "$target" "$@"
;;
build|dry-build|dry-run|dry-activate)
local act="$action"
[[ "$action" == "dry-run" ]] && act="dry-build"
echo "==> Running: nixos-rebuild $act --flake $target $*"
nixos-rebuild "$act" --flake "$target" "$@"
;;
help|-h|--help)
echo "Usage: rebuild [switch|test|boot|build|dry-build] [extra nixos-rebuild options]"
echo ""
echo "Commands:"
echo " switch Build, activate, and make default boot entry (default)"
echo " test Build and activate without creating a boot entry"
echo " boot Build and make default boot entry without activating"
echo " build Build system to ./result without activating or sudo"
echo " dry-build Show what would be built/fetched"
;;
*)
echo "==> Running: sudo nixos-rebuild $action --flake $target $*"
sudo nixos-rebuild "$action" --flake "$target" "$@"
;;
esac
}
perlmutter_pass () {
echo -n 'bw master password: '
read -s MASTER_PASS

View File

@@ -1,10 +1,11 @@
{ ... }:
{
imports = [
./terminal.nix
./browser.nix
./communication.nix
./dev.nix
];
imports = [
./terminal.nix
./browser.nix
./communication.nix
./dev.nix
./virt.nix
];
}

View File

@@ -1,25 +1,48 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
neovim
uv
rustup
ghidra
antigravity-cli
pi-coding-agent
environment.systemPackages = with pkgs; [
# Core Editors & AI Agents
neovim
antigravity-cli
pi-coding-agent
# Clang & LLVM Toolchain
llvmPackages_latest.clang
llvmPackages_latest.lld
llvmPackages_latest.lldb
llvmPackages_latest.llvm
llvmPackages_latest.clang-tools
llvmPackages_latest.libcxx
# Languages & Toolchains
uv
rustup
# Nix Tools
nil
nixfmt
statix
];
# Clang & LLVM Toolchain
llvmPackages_latest.clang
llvmPackages_latest.lld
llvmPackages_latest.lldb
llvmPackages_latest.llvm
llvmPackages_latest.clang-tools
llvmPackages_latest.libcxx
# Debuggers, Tracing & Profiling
gdb
rr
strace
ltrace
lsof
valgrind
heaptrack
linuxPackages.perf
flamegraph
# Decompilers, Disassemblers & Binary Analysis
ghidra
cutter
binwalk
binutils
elfutils
pahole
hexyl
imhex
# Nix Tooling
nil
nixfmt
statix
];
}

View File

@@ -20,7 +20,7 @@
ollama = {
enable = true;
package = pkgs.ollama-cuda;
package = pkgs.unstable.ollama-cuda;
host = "0.0.0.0";
port = 11434;
user = "ollama";
@@ -33,6 +33,6 @@
environment.systemPackages = with pkgs; [
comfy-ui-cuda
ollama-cuda
unstable.ollama-cuda
];
}

64
modules/apps/virt.nix Normal file
View File

@@ -0,0 +1,64 @@
{ pkgs, ... }:
{
virtualisation = {
containers.enable = true;
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
};
};
incus = {
enable = true;
ui.enable = true;
};
spiceUSBRedirection.enable = true;
};
networking.nftables.enable = true;
programs.virt-manager.enable = true;
users.users.anish.extraGroups = [
"libvirtd"
"kvm"
"incus-admin"
];
environment.systemPackages = with pkgs; [
# Container management & inspection
dive
podman-tui
docker-compose
podman-compose
lazydocker
ctop
skopeo
buildah
# Distro isolation & integration
distrobox
boxbuddy
# Virtual machines & tools
qemu_kvm
virt-manager
virt-viewer
spice
spice-gtk
spice-protocol
virtio-win
win-spice
quickemu
quickgui
vagrant
];
}

View File

@@ -1,4 +1,4 @@
{ ... }:
{ inputs, ... }:
{
nix = {
@@ -20,4 +20,13 @@
};
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [
(final: prev: {
unstable = import inputs.nixpkgs-unstable {
inherit (prev) system;
inherit (prev) config;
};
})
];
}