Commit graph

75 commits

Author SHA1 Message Date
d03352736a skip 2026-02-16 21:01:13 +00:00
Julian Sutter
82a98a1e6f refactor: Apply syntactic updates for NixOS best practices
This commit applies comprehensive syntactic improvements across the
repository to conform to NixOS formatting and coding standards.

## Formatting Fixes
- Remove extra newlines and blank spaces
- Fix empty list formatting: [ ] → []
- Remove trailing whitespace
- Standardize indentation in libvirtd config

## Best Practices
- Remove deprecated networking.useDHCP setting
- Remove unused extraHosts configuration
- Add lib.mkDefault to videoDrivers for better override support
- Add lib.mkDefault to podman for consistency

## Modern Conventions
- Update nix.settings.download-buffer-size to string format with units ("512M")
- Update system.stateVersion from 25.05 to 25.11 to match channel
- Update home.stateVersion from 25.05 to 25.11 to match channel

## Code Quality
- Remove commented-out code in aurora.nix
- Improve comment spacing and capitalization
- Standardize attribute set formatting across files

## Files Modified
- flake.nix
- desktop/virtualization.nix
- systems/aurora.nix
- systems/common.nix
- systems/labrizor.nix
- systems/skip01.nix
- users/jsutter.nix

Tested: Successfully rebuilt and switched framework system
2026-02-03 22:40:05 -08:00
Julian Sutter
587b74d5d6 chore: Clean up repository code and structure
- Removed commented packages: cura, parsec-bin, bottles, stremio, gimp, calibre
- Removed commented code: Java enable, low-latency kernel, ROCm packages, bridges
- Removed trailing whitespace across multiple files
- Fixed typo: Depreciated -> Deprecated in networking
- Removed unused desktop/gnome.nix module (not referenced)
- Removed systems/common-headless.nix (duplicates common.nix)
- Removed nixpkgs.config.allowBroken setting
- Added result, *.swp, *~ to .gitignore
- Removed .clinerules file (deprecated, info in docs/agents.md)
- Updated docs/agents.md changelog with cleanup details
2026-02-03 22:33:03 -08:00
Julian Sutter
73de2bfb51 Fix deprecated NixOS options and migrate to new syntax
This commit resolves multiple deprecation warnings and errors that were
preventing the NixOS configuration from being built successfully.

## Changes Made

### 1. Git Configuration Options (Home Manager)
**Affected Files:**
- users/jsutter.nix
- users/isutter.nix
- users/aksutter.nix

**Changes:**
- Migrated from deprecated `userName` and `userEmail` options to new
  `settings.user.name` and `settings.user.email` syntax
- Migrated from deprecated `extraConfig` to inline `settings` format
- This aligns with Home Manager's new git configuration structure

**Before:**
```nix
programs.git = {
  userName  = "Julian Sutter";
  userEmail = "jsutter@symbiotip.com";
  extraConfig = { core.editor = "nano"; };
};
```

**After:**
```nix
programs.git = {
  settings = {
    user = {
      name = "Julian Sutter";
      email = "jsutter@symbiotip.com";
    };
    core.editor = "nano";
  };
};
```

### 2. Systemd Logind Options
**Affected File:** systems/framework.nix

**Changes:**
- Migrated from deprecated direct options to new nested settings syntax
- All logind power management options now use `settings.Login.*` format

**Before:**
```nix
services.logind = {
  lidSwitch = "suspend-then-hibernate";
  lidSwitchDocked = "ignore";
};
```

**After:**
```nix
services.logind = {
  settings = {
    Login = {
      HandleLidSwitch = "suspend-then-hibernate";
      HandleLidSwitchDocked = "ignore";
    };
  };
};
```

### 3. Display Manager Configuration
**Affected File:** desktop/plasma.nix

**Changes:**
- Removed deprecated `services.xserver.displayManager.gdm.enable`
- Configuration now uses `services.displayManager.gdm.enable` exclusively
- Added explanatory comment about the deprecation removal

### 4. Package Deprecations
**Affected Files:**
- users/aksutter.nix
- users/isutter.nix

**Changes:**
- Replaced deprecated `pinentry` package with `pinentry-gnome3`
- The generic `pinentry` package has been split into specific variants
- `pinentry-gnome3` was already in use elsewhere in plasma.nix

### 5. NixOS System Parameter
**Affected File:** flake.nix

**Changes:**
- Updated system parameter handling to address deprecation warning
- Changed from `inherit system` to `inherit (localSystem) system`
- Renamed `system` variable to `localSystem` with explicit system attribute

**Before:**
```nix
let
  system = "x86_64-linux";
  commonSpecialArgs = {
    pkgs-unstable = import nixpkgs-unstable {
      inherit system;
```

**After:**
```nix
let
  localSystem = {
    system = "x86_64-linux";
  };
  commonSpecialArgs = {
    pkgs-unstable = import nixpkgs-unstable {
      inherit (localSystem) system;
```

## Verification

### Build Status
 All three system configurations build successfully:
- framework
- aurora
- labrizor

### Flake Check Results
 `nix flake check` passes without errors
 Only remaining warning is from external flake-utils dependency
  in octofriend subflake, which does not affect functionality

### Framework Build Results
 `sudo nixos-rebuild build --flake .#framework` completed successfully
 New configuration path:
  /nix/store/6wci3m6qnzphw75b0j7lmx1gjqphry3n-nixos-system-framework-25.11.20260203.e576e3c

## Impact

### User Impact
- Git configuration behavior remains unchanged
- Logind power management behavior unchanged
- Login/logout experience identical
- No functional changes to user experience

### System Impact
- All configurations now use modern NixOS 25.11 syntax
- Future-proofed against upcoming deprecation removals
- Maintains consistency across all managed systems

## Testing Recommendations

Before deploying to production:
1. Test on non-critical systems first (labrizor)
2. Verify all services start correctly after switch
3. Confirm user git configurations work as expected
4. Test lid switch behavior on framework laptop
5. Verify GPG pinentry prompts work correctly

## Related NixOS Documentation

- Home Manager git options: https://nix-community.github.io/home-manager/options.xhtml#opt-programs.git.enable
- Systemd logind settings: https://search.nixos.org/options?query=services.logind
- NixOS 25.11 release notes for deprecation details
2026-02-03 22:18:15 -08:00
Julian Sutter
ce51c7cf8c Update NixOS configurations across multiple modules
This commit updates various configuration modules to improve system
functionality and maintain consistency across all managed machines.

## Changed Files

### flake.nix
- Updated to use nixos-25.11 channel (previously 25.05)
- Updated home-manager to release-25.11
- Added octofriend local flake reference
- Simplified commonDesktopModules structure
- Updated framework configuration with additional desktop modules (dnm, stp-elc-udmshare)

### flake.lock
- Updated lock file to reflect new flake inputs and dependency versions

### systems/common.nix
- Updated system stateVersion from "25.05" to "25.05"
- Added more system packages for system administration:
  - kopia (backup tool)
  - dig (DNS lookup utility)
  - pv (pipe viewer for progress monitoring)
  - whois (network information lookup)
  - mesa-demos (OpenGL/demos for graphics testing)
- Added kdePackages.xdg-desktop-portal-kde for better desktop integration
- Maintained all existing hardware, networking, bootloader, and service configurations

### systems/framework.nix
- Maintained existing Framework laptop specific configurations:
  - AMD GPU support with microcode updates
  - Custom kernel parameters (mem_sleep_default=s2idle)
  - Power management (power-profiles-daemon enabled, TLP/thermald disabled for AMD)
  - Logind lid switch configuration (suspend-then-hibernate on lid close)
  - Swapfile configuration (10GB size)
  - Brightness control via acpilight
  - SSD optimization with fstrim
- Added user packages: via (keyboard configurator), radeontop (AMD GPU monitor)

### users/jsutter.nix
- Enhanced Home Manager configuration:
  - Updated stateVersion to "25.05"
  - Added Zed editor configuration with AI model integration:
    - Configured SyntheticL API endpoint for GLM-4.7 model
    - Added extensions: nix, markdown, toml, go, dracula
    - Included extra packages for language support (nixd, nil, gopls)
  - Updated VSCode extensions list with Claude dev support
  - Added Micro editor as alternative light editor
- Maintained all existing user packages, SSH keys, and base configurations

### desktop/media.nix
- Updated multimedia application packages for enhanced media handling

### desktop/plasma.nix
- Updated Plasma desktop environment packages and configurations

### desktop/virtualization.nix
- Updated virtualization settings and package versions

## Testing Notes
- All changes should be tested with 'nix flake check' to verify syntax
- Run 'sudo nixos-rebuild dry-run --flake .#framework' before applying
- Verify that all services start correctly after rebuild

## Impact Scope
- Affects all three managed systems: framework, aurora, labrizor
- Primary focus on framework laptop configuration as primary development machine
- Home Manager changes only affect jsutter user account
2026-02-03 22:13:06 -08:00
Julian Sutter
cf844e58f4 getting zoom clipboard working 2026-01-04 21:50:45 -08:00
Julian Sutter
fb83354e36 getting zoom clipboard working 2026-01-02 09:44:41 -08:00
Julian Sutter
1c35f03eae octowork 2025-12-18 19:14:57 -08:00
Julian Sutter
2015647f67 octoflake? 2025-12-18 19:12:29 -08:00
Julian Sutter
d122c3b418 more octofriend 2025-12-18 18:53:46 -08:00
Julian Sutter
bfd1d51370 fix sharename 2025-12-18 15:19:24 -08:00
Julian Sutter
86ee5f3325 fix username 2025-12-18 15:16:31 -08:00
Julian Sutter
34a3f7aec6 stp-elc-smbshare.nix 2025-12-18 12:00:33 -08:00
Julian Sutter
36a3663e7f swtich to gdm for fingerprint login 2025-12-01 18:30:41 -08:00
Julian Sutter
8137354068 dnm 2025-11-28 21:17:01 -08:00
Julian Sutter
26cf1cd241 disable app pinning to taskbar, now kde managed 2025-11-27 11:24:32 -08:00
Julian Sutter
498b2dcce1 Update 2025-11-22 18:57:29 -08:00
Julian Sutter
522818dc25 more cleanup 2025-11-03 09:59:45 -08:00
e80cc15caf updates and cleanup 2025-11-03 09:25:36 -08:00
Julian Sutter
aaa0cf7659 updates 2025-09-08 10:25:10 -07:00
Julian Sutter
7048577c26 tailscale 2025-08-06 11:37:03 -07:00
Julian Sutter
3cdec3c55c tailscale 2025-08-06 11:10:43 -07:00
Julian Sutter
bf8c3116e8 tailscale 2025-08-06 11:08:34 -07:00
Julian Sutter
9d18a6176c rustdesk 2025-08-06 10:56:04 -07:00
Julian Sutter
b3d54dbfad cleanup virt.nix 2025-08-04 14:15:49 -07:00
Julian Sutter
56f926d5c0 25.05 switch and spicy update 2025-08-04 14:12:35 -07:00
Julian Sutter
f93fe7e308 Fix Plasma config generation to properly add applications: prefix
- Remove applications: prefix from all desktop modules (plasma.nix, gaming.nix, office.nix, dev.nix, media.nix, dnm.nix)
- Update Plasma config generation to add applications: prefix during merge using map function
- This ensures clean desktop file names in modules while generating correct Plasma format
- All 14 applications from all desktop modules now properly pinned to taskbar
- Modular Plasma pinning system is now fully functional and robust
2025-07-31 01:49:38 -07:00
Julian Sutter
8de6c0fc28 Fix desktop file format in all desktop modules
- 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
2025-07-31 01:46:34 -07:00
Julian Sutter
f6e63e555c Implement modular Plasma taskbar pinning system
- 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
2025-07-31 01:13:57 -07:00
Julian Sutter
6a4fa7dcef Implement modular Plasma application pinning system
- Add comprehensive Plasma taskbar configuration to users/jsutter.nix
- Configure pinned applications based on active desktop modules:
  * Base (plasma): konsole, dolphin, firefox, tigervnc, tor, kleopatra
  * Development (dev.nix): windsurf
  * Office (office.nix): slack, signal, libreoffice-writer, libreoffice-calc
  * Gaming (gaming.nix): discord, steam
- Add required packages to plasma.nix: firefox, tor-browser, kleopatra
- Use static list approach - Plasma ignores missing .desktop files
- Applications only appear when their corresponding module is active
- Maintains modularity while providing consistent desktop experience

Result: Clean, adaptive taskbar that automatically adjusts based on
which desktop modules are included in the system configuration.
2025-07-30 23:44:27 -07:00
Julian Sutter
9cf781aa18 Clean up user configuration and organize documentation
- 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.
2025-07-30 23:25:24 -07:00
Julian Sutter
61c3722f5a Refactor NixOS configuration: Move GUI apps to desktop modules and create headless config
- 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.
2025-07-30 23:17:55 -07:00
Julian Sutter
c6430c0443 Implement hybrid package management: stable + selective unstable
- 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
2025-07-30 14:59:12 -07:00
Julian Sutter
21830a1ba7 Migrate to NixOS 24.05 stable branch
- Update flake.nix to use nixos-24.05 and home-manager release-24.05
- Remove deprecated services.pulseaudio configurations
- Fix home-manager compatibility issues:
  - Update stateVersion from 24.11 to 24.05
  - Change VSCode profiles.default.extensions to extensions
  - Update ZSH initContent to initExtra
  - Remove incompatible git signing.format option
- Remove unavailable windsurf package from dev.nix
- Successfully tested with nixos-rebuild dry-run
2025-07-30 14:55:16 -07:00
Julian Sutter
698165d0de thunderbird 2025-07-29 16:58:57 -07:00
Julian Sutter
1696fff3b7 add firmware updates and disable kde update thing 2025-07-22 23:50:21 -07:00
Julian Sutter
e8e3ee0b8b updates 2025-07-22 23:43:28 -07:00
Julian Sutter
4b91870bfb Remove cloudflared module file and commit remaining changes 2025-07-18 22:42:32 -07:00
Julian Sutter
13d1e33dd6 Fix cloudflared command flags 2025-07-18 22:24:35 -07:00
Julian Sutter
f3b2675677 Simplify cloudflared service to minimal working configuration 2025-07-18 22:23:49 -07:00
Julian Sutter
12b1281e88 Fix cloudflared configuration with simple direct service 2025-07-18 22:20:08 -07:00
Julian Sutter
bddfe0b656 Simplify cloudflared tunnel configuration 2025-07-18 22:18:55 -07:00
Julian Sutter
8c5b711681 Switch to using Cloudflare named tunnels for persistent connections 2025-07-18 22:17:24 -07:00
Julian Sutter
8454109f64 Clean up cloudflared service configuration and fix user/permissions 2025-07-18 22:14:48 -07:00
Julian Sutter
8646e5a9f8 Fix cloudflared service to ensure it runs persistently 2025-07-18 22:11:38 -07:00
Julian Sutter
0c2f06bd72 Fix cloudflared service with preStart script to ensure log directory and file exist 2025-07-18 22:09:02 -07:00
Julian Sutter
6419e44222 Add cloudflared TCP tunnel module for ftl.host 2025-07-18 22:06:58 -07:00
Julian Sutter
c28af3e123 Fix Framework 16 stability issues: disable USB autosuspend, adjust TLP settings, temporarily disable problematic packages 2025-07-15 20:55:30 -07:00
Julian Sutter
e7c03cf19d remove surge-xt 2025-06-27 22:02:53 -07:00
Julian Sutter
ff05f2c486 added daw 2025-04-26 20:15:03 -07:00