- Configure Firefox with privacy settings and extensions (Bitwarden, Plasma Integration, MetaMask, Kagi Search, uBlock Origin)
- Set Kagi as default/only search engine
- Add MOZ_USE_XINPUT2=1 for smooth scrolling
- Create context/ directory for concise unit documentation
- Create tests/ directory for test scripts
- Move test-firefox-config.sh to tests/
- Update agents.md with documentation workflow guidelines
- Fix syntax errors in desktop.nix and dev.nix
- Remove incorrect 'applications:' prefix from desktop file names
- All modules now use correct format (e.g., 'steam.desktop' not 'applications:steam.desktop')
- Fixed modules: gaming.nix, office.nix, dev.nix, media.nix, dnm.nix
- Modular Plasma pinning system now works correctly for all desktop modules
- All 14 applications should now appear pinned after Plasma session restart
- Add modular pinning system using NixOS module options
- Each desktop module now defines its own pinned applications:
* plasma.nix: konsole, dolphin, firefox, tigervnc
* gaming.nix: steam, discord
* office.nix: slack, signal, libreoffice-writer, libreoffice-calc
* dev.nix: windsurf
* media.nix: rustdesk
* dnm.nix: tor-browser, kleopatra (moved from crypto.nix)
- Move Plasma config from user-specific to desktop module for consistency
- Rename crypto.nix to dnm.nix and update references
- All users with Plasma desktop get automatic taskbar pinning
- Applications only appear when their desktop modules are active
- Remove Syncthing service and configurations from users/jsutter.nix
- Remove OpenVPN configurations and delete users/openvpn/ folder
- Move Android development (programs.adb.enable) to desktop/dev.nix
- Remove syncthing and adbusers groups from user extraGroups
- Organize documentation: move README-hybrid-packages.md to docs/ folder
- Keep main README.md in root for project overview
Result: Cleaner, more focused user configuration with development
features properly organized in desktop modules and documentation
structured in dedicated docs folder.
- Move GUI applications from users/jsutter.nix to appropriate desktop modules:
* office.nix: slack, signal-desktop
* gaming.nix: discord, stremio
* plasma.nix: arc-theme, pinentry, tigervnc
* dev.nix: putty
* media.nix (new): vlc, deluge
- Create systems/common-headless.nix for server configurations:
* Remove GUI dependencies (Flatpak, XDG portals, fonts, graphics drivers)
* Include only essential CLI tools and server packages
* Disable X server completely
- Simplify skip01 configuration:
* Remove Intel graphics drivers and OpenGL support
* Use headless common configuration
* Keep unified users/jsutter.nix (no split files)
- Update flake.nix to include new media.nix module in desktop systems
Result: Clean separation between desktop and headless configurations
with improved modularity and maintainability.
- Add nixpkgs-unstable input to flake.nix
- Configure specialArgs to pass pkgs-unstable to all system configs
- Update desktop/dev.nix to use windsurf from unstable packages
- Create comprehensive documentation in README-hybrid-packages.md
- Enable selective use of cutting-edge packages while maintaining system stability
Usage: Add pkgs-unstable parameter to any .nix file and use pkgs-unstable.package-name
Example: pkgs-unstable.windsurf for latest Windsurf editor