- Point to my-picom branch (clean merge of spring-physics + animation-fixes PRs)
- Includes: spring physics curve, adaptive settling threshold, position detection fix
- Add suppressions to geometry animation to prevent opacity changes from
interrupting position/scale animations
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Includes:
- Mova bump to e9cfb65
- org-window-habit fix for logbook parser reading next entry's LOGBOOK
- fetchYarnDeps hash update for new mova
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Scale: spring with bounce (clamping=false) for a "pop" effect
- Opacity: spring with clamping=true to prevent going above 1 or below 0
- Close uses clamping=true on scale to avoid bounce when closing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When both size AND position change (common in tiling WMs), picom's
win_position_changed() returns false. Only size_changed is true.
This means the geometry trigger fires but only scale-x/y change,
not offset-x/y.
Added scale-x and scale-y with spring physics to the geometry
animation so windows animate properly when resized.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>