Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Evilchuck666/WinJitsu/llms.txt

Use this file to discover all available pages before exploring further.

WinJitsu uses a two-layer configuration system. The config file provides persistent defaults that are loaded on every invocation. CLI flags act as one-shot overrides that apply only for the current process — when you start the daemon with winjitsu --daemon --steps 10, that steps value is baked into the daemon’s runtime but your config file is left untouched. CLI flags always win when both are present.

Config file location

The config file lives at ~/.config/winjitsu/config.ini. WinJitsu respects the $XDG_CONFIG_HOME environment variable: if it is set, the file is looked for at $XDG_CONFIG_HOME/winjitsu/config.ini instead. If the file does not exist, WinJitsu silently falls back to built-in defaults. The file is not created automatically — use --write-config to generate it. The full default file content, as written by --write-config, looks like this:
# WinJitsu configuration

[animation]
# Steps in the window movement animation.
# Higher = smoother but slower. Default: 25
steps = 25

[display]
# Gap in pixels around the window when using F (fullscreen).
# 0 = true fullscreen, 5 = small gap on all sides. Default: 0
padding = 0

[daemon]
# Delay in milliseconds. Rapid actions within this window are
# collapsed into one — only the last one fires. Default: 250
delay_ms = 250

Config management commands

Writes the current effective settings (defaults merged with any CLI flags you pass at the same time) to the config file path.
# Write defaults
winjitsu --write-config

# Write custom values as new defaults
winjitsu --write-config --steps 15 --padding 4
If a config file already exists at the target path, --write-config prompts before overwriting with two lines:
Config already exists: /home/alice/.config/winjitsu/config.ini
Overwrite? [y/N]
Answer y or yes to proceed; anything else aborts without touching the file.

All configuration options

CLI flagConfig keyDefaultDescription
--steps N[animation] steps25Number of animation frames per window movement. Higher values are smoother but take longer to complete.
--padding PX[display] padding0Gap in pixels on each side of the window when using F (fullscreen). A value of 8 leaves an 8 px gap on all four sides.
--delay-ms MS[daemon] delay_ms250Debounce window in milliseconds. Actions arriving faster than this interval are collapsed — only the last one in each burst executes.

Animation easing

WinJitsu’s move_window function uses smoothstep easing for every animated transition:
t * t * (3.0 - 2.0 * t)
This cubic curve starts slow, accelerates through the middle, and eases back out at the end — giving window movements a natural, organic feel rather than a linear slide. Increasing steps extends the duration of each animation without changing the easing curve itself.

Window clamping

Before the animation runs, move_window clamps the computed target geometry to the physical display bounds:
  • Size: target_width and target_height are each capped at the display’s pixel dimensions, so a window can never be sized larger than the screen.
  • Position: target_x is clamped to [0, display_width − target_width] and target_y to [0, display_height − target_height], ensuring the window always remains fully on-screen regardless of the action that triggered the move.

Examples

# 10 steps — fast, responsive, good for tiling workflows
winjitsu --daemon --steps 10

Build docs developers (and LLMs) love