153 lines
4.7 KiB
Markdown
153 lines
4.7 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
|
|
|
|
### 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 is now configurable via `dot.sh.sourceProfile`:
|
|
```nix
|
|
profileExtra = lib.mkIf cfg.sourceProfile ''
|
|
source $HOME/.profile
|
|
'';
|
|
```
|
|
|
|
**Status**: Disabled by default. Only enabled for work host.
|
|
|
|
**Action**: Verify `~/.profile` exists on hosts where `dot.sh.sourceProfile = true` is set.
|
|
|
|
## 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
|
|
|
|
### Unified Structure Benefits
|
|
|
|
1. **Multi-platform support**: Added support for Darwin (macOS) and NixOS (WSL and native).
|
|
2. **Modular Home Manager**: Reusable modules shared across all platforms.
|
|
3. **Machine-specific configurations**: Separated into `hosts/` for better organization.
|
|
4. **Flexible deployment**: Support for both NixOS modules and standalone Home Manager.
|
|
|
|
### Migration Path
|
|
|
|
This configuration is designed to be the central point for all machines:
|
|
|
|
1. Clone to `~/dev/dot/newnix` (or preferred path).
|
|
2. Identify your host type (NixOS WSL, Darwin, etc.).
|
|
3. Apply the corresponding flake output as described in `README.md`.
|
|
4. Test and verify workflows.
|
|
|
|
## 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)?
|