Latest Updates
This commit is contained in:
89
CLAUDE.md
Normal file
89
CLAUDE.md
Normal 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
8
flake.lock
generated
@@ -182,11 +182,11 @@
|
||||
"neovim-config": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756442459,
|
||||
"narHash": "sha256-YfZ9KdGGnhG1t+7TKw3kbH6oUhvbchhpUxACasP87f8=",
|
||||
"lastModified": 1757104099,
|
||||
"narHash": "sha256-WEGbE3KUM/DlHdPRd8RCAGkMyUuDGdhuR98TBapSgYg=",
|
||||
"ref": "master",
|
||||
"rev": "ee941c351daa870d4a40b933fe93ffb8459884f7",
|
||||
"revCount": 2,
|
||||
"rev": "4ae2d233c27e26b9f8470c953021fbf834cad943",
|
||||
"revCount": 8,
|
||||
"type": "git",
|
||||
"url": "https://git.th3r00t.net/th3r00t/nvim-config.git"
|
||||
},
|
||||
|
||||
@@ -15,12 +15,7 @@
|
||||
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
neovim-config = {
|
||||
# pick ONE of these URLs:
|
||||
|
||||
# Public over HTTPS:
|
||||
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";
|
||||
|
||||
flake = false;
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
logmein-hamachi
|
||||
openmw
|
||||
virt-viewer
|
||||
kitty
|
||||
];
|
||||
services.udiskie = {
|
||||
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 |
@@ -71,6 +71,17 @@
|
||||
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.networkmanager.enable = true;
|
||||
networking.wireless = {
|
||||
|
||||
@@ -70,6 +70,8 @@
|
||||
gvfs
|
||||
inetutils
|
||||
sqlitebrowser
|
||||
claude-code
|
||||
marksman
|
||||
];
|
||||
|
||||
programs.neovim.plugins = [
|
||||
|
||||
@@ -236,7 +236,7 @@
|
||||
"/etc/nixos/home/Wallpapers/star-wars-movie-shadow-stormtrooper-wallpaper-3440x1440_15.jpg"
|
||||
];
|
||||
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
241
package-lock.json
generated
Normal 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
5
package.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"@anthropic-ai/claude-code": "^1.0.107"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user