diff --git a/configuration.nix b/configuration.nix index fb7ea13..35ff742 100644 --- a/configuration.nix +++ b/configuration.nix @@ -169,9 +169,10 @@ # ═══════════════════════════════════════════════════════════════ # SYSTEM PACKAGES (Base essentials) # ═══════════════════════════════════════════════════════════════ + # NOTE: GUI apps and fast-updating tools are managed via `nix profile` + # Run `update-apps` to update them, `list-apps` to see installed environment.systemPackages = with pkgs; [ # Core utilities - fastfetch micro wget curl @@ -188,22 +189,12 @@ # File management nautilus - # Editors - zed-editor - - # Browser - inputs.zen-browser.packages.${pkgs.system}.default - - # Flake inputs + # Flake inputs (desktop shell) inputs.noctalia.packages.${pkgs.system}.default - inputs.opencode.packages.${pkgs.system}.default # Terminal ghostty - # AI coding - claude-code - # Package managers pnpm ]; diff --git a/flake.nix b/flake.nix index a863a05..d281a5d 100644 --- a/flake.nix +++ b/flake.nix @@ -4,27 +4,24 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + # Desktop shell noctalia = { url = "github:noctalia-dev/noctalia-shell"; inputs.nixpkgs.follows = "nixpkgs"; }; - zen-browser = { - url = "github:youwen5/zen-browser-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - opencode = { - url = "github:anomalyco/opencode"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - + # Application launcher vicinae = { url = "github:vicinaehq/vicinae"; inputs.nixpkgs.follows = "nixpkgs"; }; + # Kernel nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release"; + + # NOTE: GUI apps (zen-browser, opencode) are now managed via `nix profile` + # Install with: nix profile install github:youwen5/zen-browser-flake + # nix profile install github:anomalyco/opencode }; # Binary caches for faster builds diff --git a/modules/apps.nix b/modules/apps.nix index 9d0a002..53d43db 100644 --- a/modules/apps.nix +++ b/modules/apps.nix @@ -8,46 +8,12 @@ }: { + # NOTE: Most GUI apps are managed via `nix profile` for faster updates + # Run `update-apps` to update, `list-apps` to see installed environment.systemPackages = with pkgs; [ # ───────────────────────────────────────────────────────────── - # Media Viewers + # File Management (GNOME integration) # ───────────────────────────────────────────────────────────── - loupe # GNOME image viewer - evince # PDF/document viewer - celluloid # MPV frontend (GTK video player) - mpv # Powerful CLI video player - - # ───────────────────────────────────────────────────────────── - # Music - # ───────────────────────────────────────────────────────────── - amberol # Simple music player for local files - feishin # Navidrome/Jellyfin client - picard # MusicBrainz Picard - music tagger - beets # Music library manager - cava # Audio visualizer - # Feishin available via Flatpak for Navidrome/Jellyfin - - # ───────────────────────────────────────────────────────────── - # Communication - # ───────────────────────────────────────────────────────────── - vesktop # Discord client (Wayland-native, with Vencord) - thunderbird # Email client - signal-desktop # Encrypted messaging - telegram-desktop # Telegram client - - # ───────────────────────────────────────────────────────────── - # Office & Productivity - # ───────────────────────────────────────────────────────────── - libreoffice-fresh # Office suite (latest) - obsidian # Note-taking with Markdown - - # ───────────────────────────────────────────────────────────── - # System Utilities - # ───────────────────────────────────────────────────────────── - btop # Modern system monitor (terminal) - mission-center # GNOME system monitor (GUI, like Windows Task Manager) - - # File management file-roller # Archive manager (GUI) gnome-disk-utility # Disk management @@ -58,30 +24,13 @@ unrar # ───────────────────────────────────────────────────────────── - # Screenshots & Screen Recording + # Security (GNOME Keyring integration) # ───────────────────────────────────────────────────────────── - swappy # Screenshot annotation tool - # grim + slurp already in your base config - - # Screen recording - obs-studio # Full-featured streaming/recording suite - gpu-screen-recorder # Lightweight GPU-accelerated recorder (AMD/NVIDIA/Intel) - kooha # Simple GNOME-style screen recorder - - # ───────────────────────────────────────────────────────────── - # Security & Passwords - # ───────────────────────────────────────────────────────────── - bitwarden-desktop # Password manager seahorse # GNOME Keyring GUI # ───────────────────────────────────────────────────────────── - # Utilities + # System Tools # ───────────────────────────────────────────────────────────── - gnome-calculator # Calculator - gnome-clocks # World clocks, alarms, timers - baobab # Disk usage analyzer - localsend # AirDrop-like file sharing (cross-platform) - meld # Visual diff and merge tool rclone # Cloud storage sync (Google Drive, Dropbox, etc.) ]; diff --git a/modules/dev.nix b/modules/dev.nix index 9c8b188..2e4925f 100644 --- a/modules/dev.nix +++ b/modules/dev.nix @@ -30,12 +30,12 @@ }; # Development packages + # NOTE: GUI tools (dbeaver) and optional TUIs (lazygit, lazydocker) are in `nix profile` environment.systemPackages = with pkgs; [ # ───────────────────────────────────────────────────────────── # Containers # ───────────────────────────────────────────────────────────── docker-compose # Docker Compose v2 - lazydocker # Terminal UI for Docker # ───────────────────────────────────────────────────────────── # Languages & Runtimes @@ -58,7 +58,6 @@ # ───────────────────────────────────────────────────────────── git gh # GitHub CLI - lazygit # Terminal UI for Git delta # Better git diff # ───────────────────────────────────────────────────────────── @@ -68,7 +67,7 @@ nixfmt # Nix formatter # ───────────────────────────────────────────────────────────── - # CLI Utilities + # CLI Utilities (used by shell aliases) # ───────────────────────────────────────────────────────────── jq # JSON processor yq # YAML processor @@ -77,23 +76,13 @@ fzf # Fuzzy finder eza # Modern ls bat # Cat with syntax highlighting - httpie # Better curl - curlie # Curl wrapper with httpie-like syntax - # Additional CLI tools (migrated from Arch) + # Additional CLI tools tealdeer # tldr - simplified man pages duf # Better df (disk usage) sd # Better sed (find & replace) pv # Pipe viewer (progress bar for pipes) parallel # GNU parallel (run commands in parallel) - inxi # System information tool - glances # System monitor (htop alternative) - grc # Generic colorizer for CLI output - - # ───────────────────────────────────────────────────────────── - # Database Tools - # ───────────────────────────────────────────────────────────── - dbeaver-bin # Universal database tool (GUI) ]; # Note: Shell aliases are now managed in shell.nix (Fish shell) diff --git a/modules/gaming.nix b/modules/gaming.nix index f42ac96..08bf64a 100644 --- a/modules/gaming.nix +++ b/modules/gaming.nix @@ -43,20 +43,14 @@ hardware.steam-hardware.enable = true; # Gaming packages + # NOTE: Game launchers (lutris, heroic, protonup-qt) are in `nix profile` environment.systemPackages = with pkgs; [ - # Game launchers - lutris # Multi-platform game launcher - heroic # Epic Games & GOG launcher - - # Proton management - protonup-qt # GUI to manage Proton-GE versions - # Wine for non-Steam games wineWowPackages.stagingFull # Latest Wine with all features winetricks # Wine helper scripts protontricks # Proton helper scripts (like winetricks for Proton) - # Misc gaming utilities + # Gaming utilities (system integration) gamemode # CLI tool to trigger gamemode gamescope # Micro-compositor for games (fixes some issues) ]; diff --git a/modules/shell.nix b/modules/shell.nix index bc340ef..9a7898d 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -76,6 +76,10 @@ search = "nix search nixpkgs"; gc-nix = "sudo nix-collect-garbage -d"; + # User profile (GUI apps, fast-updating tools) + update-apps = "nix profile upgrade '.*'"; + list-apps = "nix profile list"; + # System ports = "ss -tulanp"; myip = "curl -s ifconfig.me";