8.7 KiB
Missing Packages Implementation Plan
Goal: Restore missing packages from old configuration to new profile-based structure
Context: The home profile restructuring (Task 1-5) moved files but left many packages unaccounted for. This plan categorizes and assigns each package to the appropriate location.
Package Categorization
Base Layer (home/base/) — Always Available
These are CLI tools that work on any system (server or desktop):
| Package | Source | Module | Option |
|---|---|---|---|
jq |
old cli | home/base/cli-tools/default.nix |
home.packages |
ripgrep |
old cli | home/base/cli-tools/default.nix |
home.packages |
fd |
old cli | home/base/cli-tools/default.nix |
home.packages |
coreutils |
old cli | home/base/cli-tools/default.nix |
home.packages |
htop |
old cli | home/base/cli-tools/default.nix |
home.packages |
httpie |
old cli | home/base/cli-tools/default.nix |
home.packages |
just |
old cli | home/base/cli-tools/default.nix |
home.packages |
lazygit |
old cli | home/base/cli-tools/default.nix |
home.packages |
lf |
old cli | home/base/cli-tools/default.nix |
home/packages |
tldr |
old cli | home/base/cli-tools/default.nix |
home.packages |
trash-cli |
old cli | home/base/cli-tools/default.nix |
home.packages |
unzip |
old cli | home/base/cli-tools/default.nix |
home.packages |
zip |
old cli | home/base/cli-tools/default.nix |
home.packages |
yazi |
old cli | home/base/cli-tools/default.nix |
home.packages |
gcc |
old cli | home/base/cli-tools/default.nix |
home.packages |
go |
old cli | home/base/cli-tools/default.nix |
home.packages |
sqlite |
old cli | home/base/cli-tools/default.nix |
home.packages |
sqlite-vec |
old cli | home/base/cli-tools/default.nix |
home.packages |
nix-index |
old cli | home/base/cli-tools/default.nix |
home.packages |
nix-update |
old cli | home/base/cli-tools/default.nix |
home.packages |
progress |
old cli | home/base/cli-tools/default.nix |
home.packages |
devenv |
old cli | home/base/cli-tools/default.nix |
home.packages |
libnotify |
old cli | home/base/cli-tools/default.nix |
home.packages |
basecamp |
old cli | home/base/cli-tools/default.nix |
home.packages |
comma |
old cli | home/base/cli-tools/default.nix |
home.packages |
fabric-ai |
old cli | home/base/cli-tools/default.nix |
home.packages |
llm |
old cli | home/base/cli-tools/default.nix |
home.packages |
hyprpaper-random |
old cli | home/base/cli-tools/default.nix |
home.packages |
Note: hyprpaper-random is in base despite being Hyprland-specific. Alternative: move to desktop/wm/ if it causes issues on non-Hyprland systems.
Base Programs (CLI Integration)
These are programs with shell integration, placed in home/base/cli-tools/:
| Program | Source | Module | Option |
|---|---|---|---|
carapace |
old cli | home/base/cli-tools/default.nix |
programs.carapace |
zoxide |
old cli | home/base/cli-tools/default.nix |
programs.zoxide |
bat |
old cli | home/base/cli-tools/default.nix |
programs.bat |
direnv |
old cli | home/base/cli-tools/default.nix |
programs.direnv |
eza |
old cli | home/base/cli-tools/default.nix |
programs.eza |
lf |
old cli | home/base/cli-tools/default.nix |
programs.lf |
zellij-ps |
old cli | home/base/cli-tools/default.nix |
cli.zellij-ps |
Coding Layer (home/coding/) — Developer Tools
| Package | Source | Module | Option |
|---|---|---|---|
bruno |
old desktop/coding | home/coding/packages.nix |
home.packages |
insomnia |
old desktop/coding | home/coding/packages.nix |
home.packages |
vim |
- | home/coding/packages.nix |
home.packages |
New module: home/coding/packages.nix (or inline into coding/default.nix)
Desktop Layer (home/desktop/) — Desktop-Specific
| Package | Source | Module | Option |
|---|---|---|---|
vibetyper |
old desktop | home/desktop/apps/default.nix |
home.packages |
pomodoro-timer |
old cli | home/desktop/apps/default.nix |
home.packages |
launch-timer |
- | home/desktop/apps/default.nix |
home.packages |
Note: launch-timer needs investigation - is it a custom script or nixpkgs package?
Gaming Profile (home/profiles/gaming/) — Gaming Only
| Package | Source | Module | Option |
|---|---|---|---|
rocmPackages.rocm-smi |
old cli | home/profiles/gaming/default.nix |
home.packages |
rocmPackages.rocminfo |
old cli | home/profiles/gaming/default.nix |
home.packages |
rocmPackages.rocm-runtime |
old cli | home/profiles/gaming/default.nix |
home.packages |
vulkan-tools |
old cli | home/profiles/gaming/default.nix |
home.packages |
Rationale: ROCm is for AMD GPUs used in gaming (e.g., ROG Ally, gaming laptops with AMD dGPUs). This keeps server configs clean.
Media Profile (home/profiles/media/) — Media Creation
| Package | Source | Module | Option |
|---|---|---|---|
plexamp |
old desktop/media | home/profiles/media/default.nix |
home.packages |
webcord |
old desktop/media | home/profiles/media/default.nix |
home.packages |
unimatrix |
old cli | home/profiles/media/default.nix |
home.packages |
mpv (config) |
old desktop/media | home/profiles/media/default.nix |
programs.mpv |
Note: unimatrix is a terminal screensaver - fits well with media profile.
NOT Needed (Explicitly Removed)
These packages should NOT be added:
| Package | Reason |
|---|---|
wireguard-tools |
No longer needed |
wttrbar |
No longer needed |
nushellPlugins.skim |
No longer needed |
Tasks
Task 1: Update home/base/cli-tools/default.nix
Add missing packages to the CLI tools aggregator:
home.packages = with pkgs; [
# Core utilities
jq ripgrep fd coreutils htop
# Dev tools
just lazylib lf tldr devenv
gcc go sqlite sqlite-vec
nix-index nix-update progress
# AI tools
comma fabric-ai llm
# Misc
libnotify basecamp hyprpaper-random
trash-cli unzip zip yazi
];
Also add programs: carapace, zoxide, bat, direnv, eza, lf, zellij-ps
Task 2: Create home/coding/packages.nix
New module for coding-specific packages:
{ lib, pkgs, ... }:
{
options.coding.packages = {
enable = mkEnableOption "additional coding packages";
};
config = mkIf config.coding.packages.enable {
home.packages = with pkgs; [
bruno
insomnia
];
};
}
Task 3: Update home/profiles/gaming/default.nix
Add GPU monitoring tools:
home.packages = with pkgs; [
# Gaming utilities
gamescope gamemode goverlay mangohud protonplus
# AMD GPU monitoring (ROCm)
rocmPackages.rocm-smi
rocmPackages.rocminfo
rocmPackages.rocm-runtime
vulkan-tools
];
Task 4: Update home/profiles/media/default.nix
Add missing media packages:
home.packages = with pkgs; [
# Already present: ffmpeg_6-full, gimp, handbrake, etc.
# Add missing:
plexamp
webcord
unimatrix
];
programs.mpv = {
enable = true;
bindings = {
WHEEL_UP = "seek 10";
WHEEL_DOWN = "seek -10";
};
config = {
profile = "gpu-hq";
ytdl-format = "bestvideo+bestaudio";
};
};
Task 5: Update Desktop Apps
Add desktop-specific packages to home/desktop/apps/default.nix:
home.packages = with pkgs; [
# Already present
# Add missing:
pomodoro-timer
# launch-timer - needs investigation
];
Task 6: Update Host Configs
Ensure all desktop hosts import the new modules:
home/m3tam3re/m3-ares.nix- Should havecoding.packages.enable = truehome/m3tam3re/m3-kratos.nix- Should havecoding.packages.enable = true
Implementation Order
- Task 1 - Base CLI tools (largest impact, affects all hosts)
- Task 2 - Coding packages (small, new module)
- Task 3 - Gaming profile (ROCm)
- Task 4 - Media profile (plexamp, webcord, unimatrix, mpv)
- Task 5 - Desktop apps (vibetyper already present, add pomodoro-timer)
- Task 6 - Host config updates (if needed)
Verification
nix flake check
# Should pass with no new errors
Summary
| Layer | New Files | Modified Files |
|---|---|---|
| base/cli-tools | - | default.nix |
| coding | packages.nix |
default.nix |
| profiles/gaming | - | default.nix |
| profiles/media | - | default.nix |
| desktop/apps | - | default.nix |
Total packages to restore: ~30 Programs to restore: 7 Packages excluded: 3 (wireguard, wttrbar, nushellPlugins.skim)