Latest Updates

This commit is contained in:
2025-09-05 17:34:50 -04:00
parent bebed804bf
commit 991e3c5bf4
12 changed files with 354 additions and 10 deletions

89
CLAUDE.md Normal file
View File

@@ -0,0 +1,89 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## System Overview
This is a NixOS system configuration repository using Nix flakes with home-manager integration. The configuration manages multiple machines:
- **xps13**: Dell XPS 13 laptop with Hyprland desktop environment
- **Titan**: Server configuration
- **Athena**: Server configuration
## Architecture
The configuration is organized using a modular structure:
- `flake.nix`: Main flake configuration defining system inputs and outputs for all machines
- `modules/`: Shared configuration modules
- `configuration-common.nix`: Common system settings shared across machines
- `configuration-[machine].nix`: Machine-specific system configurations
- `hardware-configuration-[machine].nix`: Hardware-specific configurations
- `home-manager-common.nix`: Common home-manager packages and settings
- `hyprland.nix`: Hyprland window manager configuration
- `waybar.nix`: Waybar status bar configuration
- `home-[machine].nix`: Machine-specific home-manager configurations
- `home/`: User dotfiles and configuration files
- `secrets/`: SOPS encrypted secrets
## Key Technologies
- **NixOS**: Declarative Linux distribution
- **Nix Flakes**: Modern Nix package management with lockfile
- **Home Manager**: Dotfile and user environment management
- **SOPS**: Secret management with encryption
- **Disko**: Declarative disk partitioning
- **Hyprland**: Wayland compositor (xps13 only)
- **Neovim**: Custom neovim configuration from external git repository
## Common Commands
### System Management
```bash
# Build and switch to new configuration (requires sudo)
sudo nixos-rebuild switch --flake .#[machine-name]
# Build without switching (test configuration)
nixos-rebuild build --flake .#[machine-name]
# Test configuration (temporary, reverts on reboot)
sudo nixos-rebuild test --flake .#[machine-name]
# Check flake for errors
nix flake check
# Update flake inputs
nix flake update
# Show available system generations
nixos-rebuild list-generations
```
### Machine-Specific Examples
```bash
# XPS 13 laptop
sudo nixos-rebuild switch --flake .#xps13
# Titan server
sudo nixos-rebuild switch --flake .#Titan
# Athena server
sudo nixos-rebuild switch --flake .#Athena
```
### Development
```bash
# Enter development shell with nix tools
nix develop
# Format nix files
nix fmt
```
## Important Notes
- All machines use the username `th3r00t`
- Neovim configuration is managed externally from `git.th3r00t.net/th3r00t/nvim-config.git`
- SOPS is used for secret management - encrypted files are in `secrets/`
- Hardware configurations are machine-specific and auto-generated
- The flake uses nixos-unstable channel
- Custom overlays are defined in flake.nix for package modifications

8
flake.lock generated
View File

@@ -182,11 +182,11 @@
"neovim-config": { "neovim-config": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1756442459, "lastModified": 1757104099,
"narHash": "sha256-YfZ9KdGGnhG1t+7TKw3kbH6oUhvbchhpUxACasP87f8=", "narHash": "sha256-WEGbE3KUM/DlHdPRd8RCAGkMyUuDGdhuR98TBapSgYg=",
"ref": "master", "ref": "master",
"rev": "ee941c351daa870d4a40b933fe93ffb8459884f7", "rev": "4ae2d233c27e26b9f8470c953021fbf834cad943",
"revCount": 2, "revCount": 8,
"type": "git", "type": "git",
"url": "https://git.th3r00t.net/th3r00t/nvim-config.git" "url": "https://git.th3r00t.net/th3r00t/nvim-config.git"
}, },

View File

@@ -15,12 +15,7 @@
sops-nix.inputs.nixpkgs.follows = "nixpkgs"; sops-nix.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
neovim-config = { neovim-config = {
# pick ONE of these URLs:
# Public over HTTPS:
url = "git+https://git.th3r00t.net/th3r00t/nvim-config.git?ref=master"; url = "git+https://git.th3r00t.net/th3r00t/nvim-config.git?ref=master";
# OR private over SSH (recommended if the repo is private):
# url = "git+ssh://git@git.th3r00t.net/th3r00t/nvim-config.git?ref=main"; # url = "git+ssh://git@git.th3r00t.net/th3r00t/nvim-config.git?ref=main";
flake = false; flake = false;

View File

@@ -100,6 +100,7 @@
logmein-hamachi logmein-hamachi
openmw openmw
virt-viewer virt-viewer
kitty
]; ];
services.udiskie = { services.udiskie = {
enable = false; enable = false;

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 882 KiB

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 2.9 MiB

View File

@@ -71,6 +71,17 @@
fi fi
''; '';
}; };
# TODO: Fix this to work on nixos, fails finding python env
# systemd.services.pytui-note-ui = {
# description = "Launch Pytui note server";
# wantedBy = [ "multi-user.target" ];
# requires = [ "network-online.target" ];
# after = [ "network-online.target" ];
# serviceConfig.Type = "oneshot";
# script = ''
# ./home/th3r00t/.local/usr/bin/pytui -w --port 3000
# '';
# };
networking.hostName = "xps13"; # Define your hostname. networking.hostName = "xps13"; # Define your hostname.
# networking.networkmanager.enable = true; # networking.networkmanager.enable = true;
networking.wireless = { networking.wireless = {

View File

@@ -70,6 +70,8 @@
gvfs gvfs
inetutils inetutils
sqlitebrowser sqlitebrowser
claude-code
marksman
]; ];
programs.neovim.plugins = [ programs.neovim.plugins = [

View File

@@ -236,7 +236,7 @@
"/etc/nixos/home/Wallpapers/star-wars-movie-shadow-stormtrooper-wallpaper-3440x1440_15.jpg" "/etc/nixos/home/Wallpapers/star-wars-movie-shadow-stormtrooper-wallpaper-3440x1440_15.jpg"
]; ];
wallpaper = [ wallpaper = [
",/etc/nixos/home/Wallpapers/avatar_starship_bridge.png" ",/etc/nixos/home/Wallpapers/starwars-minimal-battle-wallpaper.jpg"
]; ];
}; };
}; };

241
package-lock.json generated Normal file
View File

@@ -0,0 +1,241 @@
{
"name": "nixos",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"@anthropic-ai/claude-code": "^1.0.107"
}
},
"node_modules/@anthropic-ai/claude-code": {
"version": "1.0.107",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.107.tgz",
"integrity": "sha512-YYbOLIZF6aIwUeLa9Yg2gsHggBC5IWJwsA3B0wpl1z412yIgjp2CjWJ2GGLMTxCrrL5WgUe4SDmNxiAYEPP0yQ==",
"license": "SEE LICENSE IN README.md",
"bin": {
"claude": "cli.js"
},
"engines": {
"node": ">=18.0.0"
},
"optionalDependencies": {
"@img/sharp-darwin-arm64": "^0.33.5",
"@img/sharp-darwin-x64": "^0.33.5",
"@img/sharp-linux-arm": "^0.33.5",
"@img/sharp-linux-arm64": "^0.33.5",
"@img/sharp-linux-x64": "^0.33.5",
"@img/sharp-win32-x64": "^0.33.5"
}
},
"node_modules/@img/sharp-darwin-arm64": {
"version": "0.33.5",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
"integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
"cpu": [
"arm64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-darwin-arm64": "1.0.4"
}
},
"node_modules/@img/sharp-darwin-x64": {
"version": "0.33.5",
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
"integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
"cpu": [
"x64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-darwin-x64": "1.0.4"
}
},
"node_modules/@img/sharp-libvips-darwin-arm64": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
"integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
"cpu": [
"arm64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"darwin"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-darwin-x64": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
"integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
"cpu": [
"x64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"darwin"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-arm": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
"integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
"cpu": [
"arm"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-arm64": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
"integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
"cpu": [
"arm64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-libvips-linux-x64": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
"integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
"cpu": [
"x64"
],
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
"linux"
],
"funding": {
"url": "https://opencollective.com/libvips"
}
},
"node_modules/@img/sharp-linux-arm": {
"version": "0.33.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
"integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
"cpu": [
"arm"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-arm": "1.0.5"
}
},
"node_modules/@img/sharp-linux-arm64": {
"version": "0.33.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
"integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
"cpu": [
"arm64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-arm64": "1.0.4"
}
},
"node_modules/@img/sharp-linux-x64": {
"version": "0.33.5",
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
"integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
"cpu": [
"x64"
],
"license": "Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
},
"optionalDependencies": {
"@img/sharp-libvips-linux-x64": "1.0.4"
}
},
"node_modules/@img/sharp-win32-x64": {
"version": "0.33.5",
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
"integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
"cpu": [
"x64"
],
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
},
"funding": {
"url": "https://opencollective.com/libvips"
}
}
}
}

5
package.json Normal file
View File

@@ -0,0 +1,5 @@
{
"dependencies": {
"@anthropic-ai/claude-code": "^1.0.107"
}
}