feat: add coding packages module (bruno, insomnia)
This commit is contained in:
259
docs/plans/2026-04-27-missing-packages.md
Normal file
259
docs/plans/2026-04-27-missing-packages.md
Normal file
@@ -0,0 +1,259 @@
|
||||
# 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:
|
||||
|
||||
```nix
|
||||
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:
|
||||
|
||||
```nix
|
||||
{ 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:
|
||||
|
||||
```nix
|
||||
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:
|
||||
|
||||
```nix
|
||||
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`:
|
||||
|
||||
```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 have `coding.packages.enable = true`
|
||||
- `home/m3tam3re/m3-kratos.nix` - Should have `coding.packages.enable = true`
|
||||
|
||||
---
|
||||
|
||||
## Implementation Order
|
||||
|
||||
1. **Task 1** - Base CLI tools (largest impact, affects all hosts)
|
||||
2. **Task 2** - Coding packages (small, new module)
|
||||
3. **Task 3** - Gaming profile (ROCm)
|
||||
4. **Task 4** - Media profile (plexamp, webcord, unimatrix, mpv)
|
||||
5. **Task 5** - Desktop apps (vibetyper already present, add pomodoro-timer)
|
||||
6. **Task 6** - Host config updates (if needed)
|
||||
|
||||
---
|
||||
|
||||
## Verification
|
||||
|
||||
```bash
|
||||
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)
|
||||
Reference in New Issue
Block a user