Windows 10 / 11 Free & open-source Lightweight & silent

Always know which
window is active

FocusFrame draws a bright, customizable border around the focused window. Runs silently in your system tray. No setup needed.

Get FocusFrame on GitHub

MIT License  ·  ~700 lines of Python  ·  Zero telemetry

My App — Active Window

The colored glow shows exactly which window has focus

You've typed into the wrong window. Again.

Multiple monitors. Several VS Code instances. A dozen browser tabs. You press a shortcut — and it fires in the wrong window. You type a command — wrong terminal. You close a document — wrong one.

Multi-monitor chaos

Which screen has focus? With identical apps open across monitors, there's no clear signal.

Wrong terminal

You type rm -rf in the production SSH session instead of the dev one. Windows' subtle title bar change isn't enough.

Screen sharing confusion

Your audience can't tell which window you're working in. They miss context, you lose time explaining.

One glowing border. Total clarity.

FocusFrame adds an unmistakable colored border around the active window. Always visible, never in the way.

Colored border overlay

A vibrant, fully transparent overlay draws precisely on the active window's edges. True per-pixel alpha — no black halo artifacts.

Inward glow effect

Optional soft glow fades inward from the border, creating a halo that's visible but never distracting.

100% click-through

The overlay never intercepts clicks, scrolling, or keyboard input. It's completely invisible to your workflow.

System tray only

No window. No taskbar entry. No Alt+Tab clutter. FocusFrame sits silently in your system tray until you need settings.

Live settings UI

Change color, thickness, glow, opacity, and corner radius with sliders. See changes instantly — no restart needed.

Near-zero CPU usage

The overlay only redraws when the active window changes or moves. No constant rendering loop burning your battery.

Pure Win32. No hacks.

Detect focus changes

A lightweight thread polls GetForegroundWindow() every 50ms. When the focused window or its position changes, the overlay updates.

Render the border

A RGBA image is generated with PIL — solid border rings plus optional glow fading inward. True per-pixel alpha, no chroma-key tricks.

Blit to layered window

UpdateLayeredWindow() pushes the BGRA bitmap to a transparent, always-on-top, click-through Win32 overlay. Zero flicker, zero interference.

Make it yours in seconds

Every visual parameter is adjustable. Use the live settings panel or edit config.json directly.

config.json
{
  "border_color":     "#0078D4",
  "border_thickness": 2,
  "glow_enabled":     true,
  "glow_radius":      8,
  "opacity":          0.9,
  "corner_radius":    0,
  "refresh_rate_ms":  50,
  "autostart":        false
}
border_colorhex string

Any hex color. Default: Windows blue

border_thickness1 – 10 px

How thick the solid border line is.

glow_enabled / glow_radiusbool / 0 – 40 px

Toggle and size of the soft inward glow halo.

opacity0.0 – 1.0

Overall transparency of the border overlay.

corner_radius0 – 30 px

Round the border corners for a softer look.

autostartboolean

Launch FocusFrame at Windows login via the registry.

Infinite possibilities

Default Blue
Red Alert
Green Focus
White Minimal
Amber Warm
Violet Dream
Hot Pink
Cyan Ice
Blue-Violet
Yellow Neon
Sunset
Lime
Default Blue
Red Alert
Green Focus
White Minimal
Amber Warm
Violet Dream
Hot Pink
Cyan Ice
Blue-Violet
Yellow Neon
Sunset
Lime
Mint Ocean
Purple Haze
Crimson
Gold Rush
Sky Blue
Coral
Gradient Fade
Emerald
iOS Blue
Berry Blast
Steel Gray
Soft White
Mint Ocean
Purple Haze
Crimson
Gold Rush
Sky Blue
Coral
Gradient Fade
Emerald
iOS Blue
Berry Blast
Steel Gray
Soft White

Built for power users

Multi-monitor setups

Instantly spot the active window among 2, 3, or 4 screens.

Developers

Multiple VS Code, terminals, browsers — never type in the wrong one.

Streamers & presenters

Your audience always knows which window you're working in.

Remote desktop / KVM

Understand which session is receiving your input at a glance.

Get started in 30 seconds

1
git clone https://github.com/FelixMining/FocusFrame.git
2
pip install -r requirements.txt
3
python src/focusframe.py

Requires Python 3.11+ on Windows 10/11. Can also be packaged as a standalone .exe with PyInstaller.

View on GitHub