This commit is contained in:
Melvin Ragusa
2026-02-02 22:21:18 +01:00
parent e92435caee
commit 9cadd77c9a
4 changed files with 104 additions and 52 deletions

View File

@@ -42,9 +42,6 @@ nixos/
| `nixpkgs` | NixOS unstable channel | | `nixpkgs` | NixOS unstable channel |
| `nix-cachyos-kernel` | CachyOS optimized kernel | | `nix-cachyos-kernel` | CachyOS optimized kernel |
| `noctalia` | Noctalia shell | | `noctalia` | Noctalia shell |
| `zen-browser` | Zen Browser |
| `ghostty` | Ghostty terminal emulator |
| `opencode` | OpenCode |
| `vicinae` | Vicinae launcher | | `vicinae` | Vicinae launcher |
## 📦 Installation ## 📦 Installation
@@ -106,6 +103,18 @@ nix flake update
nix flake lock --update-input nixpkgs nix flake lock --update-input nixpkgs
``` ```
### Update User Apps
GUI applications and fast-updating tools are managed via `nix profile` for instant updates without system rebuilds:
```bash
# Update all user apps
update-apps
# List installed user apps
list-apps
```
### Garbage Collection ### Garbage Collection
Automatic garbage collection is configured weekly, but you can run it manually: Automatic garbage collection is configured weekly, but you can run it manually:
@@ -150,18 +159,20 @@ The gaming module provides:
Included tools: Included tools:
- **Languages**: Node.js 22, Python 3, Rust (via rustup), Bun - **Languages**: Node.js 22, Python 3, Rust (via rustup), Bun
- **Containers**: Docker with auto-prune, docker-compose, lazydocker - **Containers**: Docker with auto-prune, docker-compose
- **Git**: lazygit, gh (GitHub CLI), delta (better diffs) - **Git**: gh (GitHub CLI), delta (better diffs)
- **CLI**: ripgrep, fd, fzf, eza, bat, jq, yq, and more - **CLI**: ripgrep, fd, fzf, eza, bat, jq, yq, and more
- **Editors**: Zed, VS Code (config), micro - **Editors**: micro (system), Zed (user profile)
*Additional dev tools via user profile: lazygit, lazydocker, dbeaver, httpie*
## 🎵 Audio & Media ## 🎵 Audio & Media
- **Audio Stack**: PipeWire with JACK support - **Audio Stack**: PipeWire with JACK support
- **Bluetooth**: Enabled with experimental features - **Bluetooth**: Enabled with experimental features
- **Music Server**: Navidrome for self-hosted streaming - **Music Server**: Navidrome for self-hosted streaming
- **Music Client**: Feishin
- **Video**: MPV, Celluloid, OBS Studio *Media apps via user profile: Feishin, MPV, Celluloid, OBS Studio, Amberol*
## ⚙️ Key Services ## ⚙️ Key Services
@@ -174,6 +185,66 @@ Included tools:
| Profile-sync-daemon | Browser profile in tmpfs | | Profile-sync-daemon | Browser profile in tmpfs |
| ZRAM | Compressed swap in RAM | | ZRAM | Compressed swap in RAM |
## 📦 Package Management
This configuration follows the NixOS best practice of separating system and user packages:
### System Config (`environment.systemPackages`)
Packages that require system integration:
- Services (Docker, Tailscale, Steam)
- Hardware support (gamemode, gamescope)
- Desktop infrastructure (portals, polkit, Wayland utils)
- Shell and plugins (Fish, shell aliases dependencies)
- Build tools and runtimes (gcc, nodejs, python, rustup)
### User Profile (`nix profile`)
GUI apps and fast-updating tools managed independently.
**Prerequisite:** Enable unfree packages for nix profile:
```bash
mkdir -p ~/.config/nixpkgs
echo '{ allowUnfree = true; }' > ~/.config/nixpkgs/config.nix
```
**Install packages:**
```bash
# Priority tools (AI coding, editors, browser)
nix profile add github:youwen5/zen-browser-flake
nix profile add github:anomalyco/opencode
nix profile add nixpkgs#claude-code
nix profile add nixpkgs#zed-editor
# Communication
nix profile add nixpkgs#vesktop nixpkgs#thunderbird nixpkgs#signal-desktop nixpkgs#telegram-desktop
# Productivity
nix profile add nixpkgs#libreoffice-fresh nixpkgs#obsidian
# Media
nix profile add nixpkgs#loupe nixpkgs#evince nixpkgs#celluloid nixpkgs#mpv
nix profile add nixpkgs#amberol nixpkgs#feishin nixpkgs#picard nixpkgs#beets nixpkgs#cava
nix profile add nixpkgs#obs-studio nixpkgs#gpu-screen-recorder nixpkgs#kooha nixpkgs#swappy
# Utilities
nix profile add nixpkgs#btop nixpkgs#mission-center nixpkgs#bitwarden-desktop
nix profile add nixpkgs#gnome-calculator nixpkgs#gnome-clocks nixpkgs#baobab
nix profile add nixpkgs#localsend nixpkgs#meld nixpkgs#fastfetch
# Dev tools
nix profile add nixpkgs#lazygit nixpkgs#lazydocker nixpkgs#dbeaver-bin
nix profile add nixpkgs#httpie nixpkgs#curlie nixpkgs#glances nixpkgs#inxi
# Gaming
nix profile add nixpkgs#lutris nixpkgs#heroic nixpkgs#protonup-qt
```
**Benefits:**
- Update apps instantly with `update-apps` (no sudo, no rebuild)
- System stays stable while apps get latest versions
- Faster iteration for daily-use tools
## 📝 Notes ## 📝 Notes
- **Kernel**: Uses CachyOS kernel with x86_64-v3 optimizations - **Kernel**: Uses CachyOS kernel with x86_64-v3 optimizations

44
flake.lock generated
View File

@@ -156,34 +156,12 @@
"type": "github" "type": "github"
} }
}, },
"opencode": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1770064560,
"narHash": "sha256-j6bLJHRRgLrcv1srTrXOlfYLup407ihD9nDgoG1bU8o=",
"owner": "anomalyco",
"repo": "opencode",
"rev": "824165eb792edfd8600d44aac83e1f6bba2a9e62",
"type": "github"
},
"original": {
"owner": "anomalyco",
"repo": "opencode",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"noctalia": "noctalia", "noctalia": "noctalia",
"opencode": "opencode", "vicinae": "vicinae"
"vicinae": "vicinae",
"zen-browser": "zen-browser"
} }
}, },
"systems": { "systems": {
@@ -221,26 +199,6 @@
"repo": "vicinae", "repo": "vicinae",
"type": "github" "type": "github"
} }
},
"zen-browser": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1769747637,
"narHash": "sha256-fRdj480sqW/a+APO6CmelZsa07BRAdEQLUjBQJuyQbU=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "09e429679b7cc175e71e2d25800bab66493c1c80",
"type": "github"
},
"original": {
"owner": "youwen5",
"repo": "zen-browser-flake",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

22
migration.md Normal file
View File

@@ -0,0 +1,22 @@
## Migration Complete
All config files have been updated. Here's your deployment plan:
### Step 1: Rebuild your system
```bash
sudo nixos-rebuild switch --flake .#nixos
```
### Step 2: Install user packages to your profile
```bash
nix profile install github:youwen5/zen-browser-flake
nix profile install github:anomalyco/opencode
nix profile install nixpkgs#claude-code
nix profile install nixpkgs#zed-editor
nix profile install nixpkgs#fastfetch
nix profile install nixpkgs#loupe nixpkgs#evince nixpkgs#celluloid nixpkgs#mpv
nix profile install nixpkgs#amberol nixpkgs#feishin nixpkgs#picard nixpkgs#beets nixpkgs#cava
nix profile install nixpkgs#vesktop nixpkgs#thunderbird nixpkgs#signal-desktop nixpkgs#telegram-desktop
nix profile install nixpkgs#libreoffice-fresh nixpkgs#obsidian
nix profile install nixpkgs#btop nixpkgs#mission-center nixpkgs#gnome-calculator nixpkgs#gnome-clocks nixpkgs#baobab nixpkgs#localsend nixpkgs#meld nixpkgs#bitwarden-desktop
nix profile install nixpkgs#swappy nixpkgs#obs-studio nixpkgs#gpu-screen-recorder nixpkgs#kooha
nix profile install nixpkgs#lazygit nixpkgs#lazydocker nixpkgs#dbeaver-bin nixpkgs#httpie nixpkgs#curlie nixpkgs#glances nixpkgs#inxi
nix profile install nixpkgs#lutris nixpkgs#heroic nixpkgs#protonup-qt
```

View File

@@ -113,7 +113,8 @@
fishPlugins.done # Notification when long command finishes fishPlugins.done # Notification when long command finishes
fishPlugins.grc # Colorize command output fishPlugins.grc # Colorize command output
# Required by aliases # Required by plugins/aliases
grc # Required by fishPlugins.grc
dust # Better du dust # Better du
]; ];
} }