Files
dot/TODO.md
2026-02-06 20:51:39 +01:00

174 lines
5.1 KiB
Markdown

# TODO - NixOS Configuration
This file tracks remaining tasks and known issues for the NixOS configuration.
## High Priority
### Hardware Configuration
- [ ] Replace `hardware-configuration.nix` with actual generated configuration
- Run `sudo nixos-generate-config --show-hardware-config > hardware-configuration.nix`
- Verify file systems are correctly configured
- Verify boot partition is correct
- Adjust CPU microcode (Intel vs AMD)
### System Settings
- [ ] Set correct hostname in `configuration.nix`
- [ ] Verify timezone setting (currently: Europe/Berlin)
- [ ] Verify locale settings (currently: en_US.UTF-8 / de_DE.UTF-8)
- [ ] Choose boot loader (systemd-boot vs GRUB)
## Medium Priority
### Custom Packages
The following packages need to be integrated or replaced:
- [ ] **claude-code**
- Check if available in nixpkgs
- If custom: create derivation in `packages/claude-code.nix`
- Or use alternative package manager (npm, pip, cargo)
- [ ] **opencode**
- Check if available in nixpkgs
- If custom: create derivation in `packages/opencode.nix`
- Or use alternative package manager
- [ ] **gemini-cli**
- Check if available in nixpkgs
- If custom: create derivation in `packages/gemini-cli.nix`
- Or use alternative package manager
### Tmux Configuration
- [ ] Update note popup keybindings (C-n, C-p) with correct NixOS paths
- Current: Commented out (had WSL hard-coded paths)
- Action: Decide on note location and update paths
- Example: `~/Documents/notes/Work/quick_notes.md`
- [ ] Verify `~/bin/tmuxp_selector.sh` script exists
- Used by `C-s` keybinding
- May need to be created or path adjusted
## Low Priority
### Shell Configuration
- [ ] Consider adding additional shell aliases
- [ ] Review if any macOS-specific tools need Linux alternatives
- [ ] Consider adding dircolors configuration
### Documentation
- [ ] Add screenshots of tmux setup
- [ ] Document custom Neovim configuration (lua files)
- [ ] Create troubleshooting guide for common issues
### Optimizations
- [ ] Consider using `programs.zsh.shellInit` vs `initContent`
- [ ] Review if `nix-ld` is actually needed (check use cases)
- [ ] Consider splitting large modules into smaller files
## Features Not Yet Ported
These were not in the original Home Manager config but might be useful on NixOS:
- [ ] Desktop environment / Window manager
- [ ] Display manager (GDM, SDDM, LightDM)
- [ ] Sound configuration (PipeWire/PulseAudio)
- [ ] Printing support
- [ ] Bluetooth support
- [ ] Docker / Podman
- [ ] Virtualization (QEMU/KVM)
## Known Issues
### Nvim Configuration Files
The nvim configuration references lua files from the parent directory:
```nix
initLua = builtins.concatStringsSep "\n" [
(lib.strings.fileContents ../../../nvim/base.lua)
(lib.strings.fileContents ../../../nvim/keymaps.lua)
(lib.strings.fileContents ../../../nvim/plugins.lua)
(lib.strings.fileContents ../../../nvim/filetype.lua)
];
```
**Status**: Should work if nvim/ directory exists at `/home/pan/dev/config/dot/nvim/`
**Action**: Verify these files exist or adjust paths
### Profile Loading
The shell configuration includes:
```nix
profileExtra = ''
source $HOME/.profile
'';
```
**Status**: Will fail silently if `~/.profile` doesn't exist
**Action**: Either create `~/.profile` or remove this line if not needed
## Testing Checklist
Before considering this configuration complete:
- [ ] System boots successfully
- [ ] User can login as `pan`
- [ ] Zsh loads with Prezto
- [ ] Tmux starts without errors
- [ ] Neovim opens and plugins load
- [ ] LSP servers work in Neovim
- [ ] Git commands work with correct identity
- [ ] Lazygit opens and works
- [ ] Jujutsu commands work
- [ ] Taskwarrior shows tasks
- [ ] Direnv loads `.envrc` files
- [ ] fzf keybindings work (Ctrl+R)
- [ ] zoxide navigation works
- [ ] All shell aliases work
## Future Enhancements
- [ ] Add backup/restore scripts
- [ ] Create CI/CD for testing configuration
- [ ] Add secrets management (agenix or sops-nix)
- [ ] Consider using flake-parts for better organization
- [ ] Add system monitoring tools
- [ ] Configure automatic updates
- [ ] Add custom shell functions
- [ ] Integrate with cloud sync for dotfiles
## Notes
### Differences from Ubuntu Setup
1. **No macOS support**: All Darwin-specific code removed
2. **No WSL support**: WSL-specific paths and checks removed
3. **System-level user**: User defined in NixOS config, not standalone
4. **Integrated Home Manager**: HM runs as NixOS module, not standalone
### Migration Path
If migrating from existing Ubuntu setup:
1. Backup current configuration
2. Install NixOS (keep Ubuntu if dual-boot)
3. Apply this configuration
4. Test all workflows
5. Import personal data (tasks, notes, etc.)
6. Verify custom packages availability
## Questions to Resolve
- [ ] What are the custom packages used for?
- [ ] Are there any private/work-specific configurations to add?
- [ ] Should we add any of the "Features Not Yet Ported"?
- [ ] Is GPU acceleration needed (NVIDIA, AMD)?
- [ ] Are there any cron jobs or systemd timers to configure?
- [ ] Should we enable fish or keep only zsh?
- [ ] Do we need any container tools (Docker, Podman)?