Desktop utility that displays a floating sapphire.png icon with hover-scale animation and shape-aware border/brighten hover effects.
- Frameless transparent always-on-top icon window
- Smooth hover grow/shrink animation with fixed window position
- Hover edge thickening + subtle brighten inside sapphire shape
- Drag-to-move behavior
- Persistent window position across restarts
- JSON configuration with validation and safe defaults
- Command registry hook for click actions
py -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]
py -m app.mainsapphire.config.json is created/loaded from the project root.
{
"ui": {
"icon_path": "sapphire.png",
"base_size": 84,
"hover_scale": 1.08,
"animation_ms": 110,
"opacity": 1.0,
"always_on_top": true,
"hover_fx": {
"border_color": "#789DFF",
"border_strength": 0.6,
"border_thickness_px": 3,
"brighten_strength": 0.22
}
},
"state_file": "sapphire.state.json",
"click_command": "noop"
}hover_fx ranges:
border_strength:0.0to1.0border_thickness_px:1to8brighten_strength:0.0to1.0
Backward compatibility:
- Legacy keys
glow_color,glow_strength, andglow_blur_pxare accepted and mapped to new border settings when new keys are missing. - Legacy
shine_strengthandshine_duration_msare accepted in config files but are no longer used for rendering.
noop: default no-opquit: exits application