Home-manager was concatenating its generated settings with our custom
config. Disable home-manager's picom entirely and create our own
systemd service that uses only our config file.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Set settings = {} to prevent home-manager from generating any picom
config settings that would be appended to our custom config file.
This was causing duplicate/conflicting settings.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Increases settling threshold to 1.0 pixel to more aggressively stop
the spring animation when visually settled, preventing sub-pixel
jitter at the tail end.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Give up on @include workarounds - libconfig doesn't support ~.
Write the complete picom config directly with correct () list syntax
for animations, using xdg.configFile with force=true to override
home-manager's generated config.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The config files are symlinks to nix store, so relative paths don't
resolve correctly. Try using ~/.config/picom paths.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
picom doesn't support multiple --config flags. Use a wrapper config
with libconfig @include directive to merge the base config and
animations config.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
XDG_CONFIG_HOME is not set in the systemd environment, causing the
animations config path to resolve incorrectly.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Home-manager generates [] (arrays) but picom needs () (lists) for
the animations setting. Move animations to a separate config file
with correct syntax and override the picom service to load both.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update picom from dccsillag fork to colonelpanic8/picom spring-physics
branch, which adds spring physics animation support to mainline picom.
Spring curve syntax: spring(stiffness, dampening, mass, clamping)
- stiffness: spring constant (higher = faster)
- dampening: resistance (higher = less oscillation)
- mass: inertia (higher = slower)
- clamping: prevent overshoot (false for bounce effects)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- org-agenda-api-host now supports extraDomains option for additional
domain names, each with its own ACME certificate
- Add org-agenda-api.rbsf.railbird.ai as extra domain on railbird-sf
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Switch from manual version overrides to dedicated flakes:
- github:sadjow/codex-cli-nix for codex
- github:sadjow/claude-code-nix for claude-code
Added cachix substituters and keys for pre-built binaries.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- org-window-habit refactored from single file to modular structure
- org-agenda-api test linting fixes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Auth password uses env file format for systemd EnvironmentFile
- SSH key is mounted as a file at /secrets/ssh_key in container
- Fixes multi-line SSH key parsing issue in environment files
- Update codex PR patch hash
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace manual forEachUser pattern with built-in sharedModules for
applying config to all home-manager users. Add automatic garbage
collection of old generations (weekly, older than 7 days) and remove
the now-unnecessary expire-home-manager-generations justfile recipe.
Also update codex PR patch hash (upstream patch was modified).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename imalison:reschedule-past-to-today to org-reschedule-past-to-today
- Keep old name as alias for backwards compatibility
- Register function in org-agenda-api-exposed-functions for API access
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add nixpkgs PR 483705 to bump codex from 0.89.0 to 0.92.0
- Disable overlay version overrides in favor of PR patches
- Replace deprecated pkgs.system with pkgs.stdenv.hostPlatform.system
- Replace deprecated xfce.thunar with thunar
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add NixOS module to host org-agenda-api container on railbird-sf:
- org-agenda-api-host.nix: New module with nginx reverse proxy and ACME
- nginx configured for rbsf.tplinkdns.com with automatic TLS
- Container runs on port 51847 (random high port)
- Supports nix-built container images via imageFile option
Configure railbird-sf to use the new module:
- Build org-agenda-api container from flake
- Pass container to machine config via specialArgs
- Set up agenix secret for container environment
Note: Requires creating secrets file with AUTH_PASSWORD and
GIT_SSH_PRIVATE_KEY environment variables.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove clipit config and helper scripts
- Add greenclip service and rofi integration
- Update xmonad keybinding to use rofi_clipboard.sh
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move skill from global ~/.claude/skills to project-local .claude/skills
so it's version controlled with the dotfiles.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The service was failing because network-online.target is reached before
network is actually online (NetworkManager-wait-online is disabled to
avoid boot hangs). Remove the service from multi-user.target.wants and
let only the timer trigger it, which already has a 30s startup delay.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix poetry pbs-installer version constraint issue with dontCheckRuntimeDeps
- Comment out codex override (using nixpkgs version)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Configure Hyprland to use the hy3 plugin for dynamic tiling similar to
XMonad. Uses official Hyprland and hy3 flakes pinned to v0.53.0 for
proper plugin compatibility (nixpkgs packaging had header issues).
Key changes:
- Add hyprland and hy3 flake inputs with version pinning
- Rewrite hyprland.conf with hy3 layout and XMonad-like keybindings
- Add helper scripts for window management (bring, replace, gather, etc.)
- WASD directional navigation using hy3:movefocus/movewindow
- Tab groups, horizontal/vertical splits via hy3:makegroup
- Scratchpads via Hyprland special workspaces
Also removes org-agenda-api flake integration (moved elsewhere).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>