From 9cadd77c9ac1009b8618ccb33ffb231296a09255 Mon Sep 17 00:00:00 2001 From: Melvin Ragusa Date: Mon, 2 Feb 2026 22:21:18 +0100 Subject: [PATCH] update --- README.md | 87 ++++++++++++++++++++++++++++++++++++++++++----- flake.lock | 44 +----------------------- migration.md | 22 ++++++++++++ modules/shell.nix | 3 +- 4 files changed, 104 insertions(+), 52 deletions(-) create mode 100644 migration.md diff --git a/README.md b/README.md index fedc986..bf58838 100644 --- a/README.md +++ b/README.md @@ -42,9 +42,6 @@ nixos/ | `nixpkgs` | NixOS unstable channel | | `nix-cachyos-kernel` | CachyOS optimized kernel | | `noctalia` | Noctalia shell | -| `zen-browser` | Zen Browser | -| `ghostty` | Ghostty terminal emulator | -| `opencode` | OpenCode | | `vicinae` | Vicinae launcher | ## 📦 Installation @@ -106,6 +103,18 @@ nix flake update 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 Automatic garbage collection is configured weekly, but you can run it manually: @@ -150,18 +159,20 @@ The gaming module provides: Included tools: - **Languages**: Node.js 22, Python 3, Rust (via rustup), Bun -- **Containers**: Docker with auto-prune, docker-compose, lazydocker -- **Git**: lazygit, gh (GitHub CLI), delta (better diffs) +- **Containers**: Docker with auto-prune, docker-compose +- **Git**: gh (GitHub CLI), delta (better diffs) - **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 Stack**: PipeWire with JACK support - **Bluetooth**: Enabled with experimental features - **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 @@ -174,6 +185,66 @@ Included tools: | Profile-sync-daemon | Browser profile in tmpfs | | 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 - **Kernel**: Uses CachyOS kernel with x86_64-v3 optimizations diff --git a/flake.lock b/flake.lock index bfd9725..e256958 100644 --- a/flake.lock +++ b/flake.lock @@ -156,34 +156,12 @@ "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": { "inputs": { "nix-cachyos-kernel": "nix-cachyos-kernel", "nixpkgs": "nixpkgs_2", "noctalia": "noctalia", - "opencode": "opencode", - "vicinae": "vicinae", - "zen-browser": "zen-browser" + "vicinae": "vicinae" } }, "systems": { @@ -221,26 +199,6 @@ "repo": "vicinae", "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", diff --git a/migration.md b/migration.md new file mode 100644 index 0000000..a52b4c3 --- /dev/null +++ b/migration.md @@ -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 +``` diff --git a/modules/shell.nix b/modules/shell.nix index 9a7898d..1d8028c 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -113,7 +113,8 @@ fishPlugins.done # Notification when long command finishes fishPlugins.grc # Colorize command output - # Required by aliases + # Required by plugins/aliases + grc # Required by fishPlugins.grc dust # Better du ]; }