Commit graph

412 commits

Author SHA1 Message Date
Julian Sutter
2e6f88a2d9 Add remote NixOS system management instructions to agents.md 2026-02-16 21:05:19 -08:00
Julian Sutter
3e56dc3ef5 Remove unnecessary DNS workaround - local DNS is now working 2026-02-16 17:33:45 -08:00
Julian Sutter
453770fb3a Document manual NetworkManager DNS configuration for ACME 2026-02-16 17:24:34 -08:00
Julian Sutter
194c8cbe26 Fix DNS configuration on warp for ACME certificate validation 2026-02-16 17:09:25 -08:00
Julian Sutter
ebe732b532 Fix: Correct hostname in warp.nix from 'skip01' to 'warp' 2026-02-16 16:26:36 -08:00
Julian Sutter
02d7fe01f0 Fix duplicate skip configuration in flake.nix 2026-02-16 16:25:36 -08:00
Julian Sutter
5e9202494f Merge changes from skip system - separate desktop configuration 2026-02-16 16:22:53 -08:00
Julian Sutter
5b63a6fd87 Add agents.md with testing procedures 2026-02-16 13:34:26 -08:00
Julian Sutter
01d87ae52f Remove Forgejo from skip system configuration 2026-02-16 13:32:28 -08:00
Julian Sutter
57e158aa53 Add skip system configuration (duplicate of warp) 2026-02-16 13:31:41 -08:00
Julian Sutter
fea03b98ca Update server configurations and remove outdated documentation 2026-02-16 13:25:54 -08:00
d03352736a skip 2026-02-16 21:01:13 +00:00
Julian Sutter
8fdbb33939 forgejo good, nginx coming along 2026-02-15 22:46:17 -08:00
Julian Sutter
29eb6493be forgejo? 2026-02-15 16:57:07 -08:00
Julian Sutter
532e01cbf1 feat: Add Immich app flake with docker-compose deployment
- Create Immich module as appflake in appflakes/immich/
- Module provides NixOS module for docker-compose deployment
- Includes 5-container stack:
  * immich_server: Web API and interface
  * immich_microservices: Background jobs and ML processing
  * immich_postgres: PostgreSQL with pgvector
  * immich_redis: Redis cache
  * immich_typesense: Search engine
- Configuration options for:
  * Domain and port customization
  * Data directory location
  * Database and API keys
  * Optional Watchtower auto-updates
- Automatic systemd service integration
- Comprehensive documentation in README.md
- Named module 'immich-docker' to avoid conflicts with Nixpkgs module
2026-02-03 23:35:34 -08:00
Julian Sutter
7263c12bfc fix: Resolve warp configuration issues found during testing
- Add root filesystem configuration (placeholder for actual hardware)
- Disable Flatpak service (not needed for headless server)
- Add rtsx_pci_sdmmc module for NUC SD card reader support
- Configuration now passes dry-build validation
2026-02-03 22:47:19 -08:00
Julian Sutter
78ea16d120 feat: Add warp server configuration for Intel NUC 13th gen
- Add new NixOS configuration for 'warp' server
- Configure for Intel NUC 13th gen CPU platform
- Disable desktop environment (headless server)
- Enable SSH with security hardening (no password auth, no root login)
- Configure Docker and Podman for containerized workloads
- Add performance tuning for network and memory buffers
- Include 8GB swap file configuration
- Enable Intel IOMMU for virtualization support
- Add thermal monitoring and power management
2026-02-03 22:45:25 -08: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
7143d71bf5 docs: Create comprehensive agents.md and deprecate .clinerules
- Added docs/agents.md with complete repository guide
- Includes all project structure, workflows, testing procedures
- Covers package management, security, rollback procedures
- Added maintenance section with changelog for future updates
- Deprecated .clinerules, pointing to agents.md instead
- Created single source of truth for AI agent operations
2026-02-03 22:26:32 -08:00
Julian Sutter
fdb3a384b4 Increase button size in Zed editor
This commit adds UI metrics overrides to make buttons in Zed editor
larger and easier to interact with.

## Changes Made

### File: users/jsutter.nix

Added ui_metrics configuration to Zed editor userSettings:

```nix
ui_metrics = {
  overrides = {
    button = {
      padding = {
        top = 8;
        right = 12;
        bottom = 8;
        left = 12;
      };
      corner_radius = 8;
      font_size = 14;
    };
  };
};
```

## What This Does

- **Increased padding**: Buttons now have 8px top/bottom and 12px left/right padding
  (vs default smaller values)
- **Larger corner radius**: Buttons have rounded corners with 8px radius for
  a softer, more modern appearance
- **Bigger font**: Button text is now 14px instead of the default smaller size

## How to Apply

The changes will take effect when you either:
1. Rebuild the NixOS configuration: `sudo nixos-rebuild switch --flake .#framework`
2. Or restart the Zed editor (if using mutableUserSettings, changes may be
   picked up immediately upon next launch)

## Customization Notes

If you want to adjust the button size even more, you can modify these values:
- Decrease `padding` values for smaller buttons
- Increase `padding` values for larger buttons
- Adjust `font_size` for larger/smaller text on buttons
- Adjust `corner_radius` for more/less rounded corners

The `mutableUserSettings = true` option allows Zed to modify settings.json
directly when you change settings in the UI, while these Nix-managed
settings provide the base configuration.
2026-02-03 22:20:09 -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
2267165e52 updates 2026-01-20 18:30:40 -08:00
Julian Sutter
7e90096b22 updates 2026-01-04 21:52: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
00eb03dcd2 Add octofriend configuration to flake
- Embed octofriend.json5 config directly in flake.nix postInstall
- Set OCTOFRIEND_CONFIG_DIR to point to included config
- Add comprehensive README with setup and configuration instructions
- Keep API keys out of repo for security (users must add keys.json5 locally)
2025-12-18 21:12:48 -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
7fc42d321a initial octofriend flake 2025-12-18 18:32:51 -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
8bec816dc8 agents.md 2025-11-27 12:58:10 -08:00
Julian Sutter
63b66fb98a agents.md 2025-11-27 12:57:50 -08:00
Julian Sutter
26cf1cd241 disable app pinning to taskbar, now kde managed 2025-11-27 11:24:32 -08:00
Julian Sutter
044e79b3c5 framework suspend fixes 2025-11-26 21:01:51 -08:00
Julian Sutter
88c207341f simplify framework.nix in hopes it fixes broken suspend 2025-11-22 20:13:49 -08:00
Julian Sutter
498b2dcce1 Update 2025-11-22 18:57:29 -08:00
Julian Sutter
b6bef24b70 enable labrazor for 3dprinting 2025-11-22 18:29:46 -08:00
e5f125ff1d Update systems/aurora.nix 2025-11-12 17:46:30 +00:00
433aa7e14e Update systems/labrizor.nix 2025-11-12 17:46:17 +00:00
3ac3489b28 Update systems/framework.nix 2025-11-12 17:45:55 +00:00
517a990fb2 Update systems/common.nix 2025-11-12 17:45:36 +00:00
daf452f266 Update README.md 2025-11-12 17:26:39 +00:00
Julian Sutter
16ce0d5589 Update README.md 2025-11-12 09:23:28 -08:00