FloArc is a lightweight Windows utility that generates a following Acrylic blur overlay for the currently active foreground window and dynamically adjusts window opacity based on its focus state.
- Tracks the position and size of the client area of the current foreground window.
- Sets separate opacity levels for focused and unfocused windows.
- Configurable transition durations for opacity changes between focus states.
- Automatically excludes temporary windows by default (e.g., Desktop, Taskbar, System Tray popups, Menus, Dropdowns, Tooltips).
- Runs quietly in the System Tray with
Open Config Folder,Pause,RestartandCloseoptions.
- Windows 10 / 11
- Python 3
PyYAML
Install dependencies:
pip install -r requirements.txtRun directly:
python main.pyOn first launch, a default config.yaml will be generated automatically if it does not exist in the program directory.
The default template generated on first startup is as follows:
windows_opacity:
focused: 200 # 0 - 255, -1 = disable
unfocused: 220 # 0 - 255, -1 = disable
transition_duration:
focus: 500 # milliseconds, -1 = instant
unfocus: 500 # milliseconds, -1 = instant
# Blur overlay settings
blur:
color: "333333"
opacity: 32 # 0 - 255
alpha: 220 # 0 - 255
animate_duration: 500
# Exclusion rules
exclude:
classes:
- Progman
- WorkerW
- Shell_TrayWnd
- Shell_SecondaryTrayWnd
- NotifyIconOverflowWindow
- "#32768"
- ComboLBox
- tooltips_class32
- Xaml_WindowedPopupClass
- Windows.UI.Core.CoreWindow
- ConsoleWindowClass
titles:
- "Windhawk"
executables:
- "Pixpin.exe"
- "Flow.Launcher.exe"Configuration Details:
windows_opacity.focused: Opacity of the focused window (0-255). Set to-1to disable management.windows_opacity.unfocused: Opacity of unfocused windows (0-255). Set to-1to disable management.windows_opacity.transition_duration.focus: Transition duration when gaining focus (ms). Set to-1or0for instant change.windows_opacity.transition_duration.unfocus: Transition duration when losing focus (ms). Set to-1or0for instant change.blur.color: Color of the blur overlay (Hex RGB string without#).blur.opacity: Intensity of the overlay color (0-255).blur.alpha: Transparency of the overlay window itself (0-255).blur.animate_duration: Fade-in duration of the blur overlay (ms).exclude.classes: Exclude windows by exact class name.exclude.titles: Exclude windows whose titles contain these substrings.exclude.executables: Exclude processes by executable name (wildcards supported, case-insensitive).
Notes:
- If both
focusedandunfocusedare set to-1, FloArc will only display the blur overlay without modifying window opacity. - Default exclusion items are merged at runtime; manual addition of common system windows (Taskbar, Tray, Menus, etc.) is not required.
- Exclusion rules only affect window selection and opacity management; they do not modify the excluded windows themselves.
Common Usage Example:
windows_opacity:
focused: 235
unfocused: 210
transition_duration:
focus: 180
unfocus: 320
blur:
color: "2B2B2B"
opacity: 28
alpha: 215
animate_duration: 350
exclude:
classes:
- Progman
- WorkerW
titles: []
executables:
- "msedge.exe"The application runs in the System Tray upon launch.
- Right-click the tray icon to access
Open Config Folder,Pause,Restart,Close. Open Config Folderopens the directory containingconfig.yamlin File Explorer.Pausetemporarily stops FloArc.Restartrelaunches the app with current parameters and reloadsconfig.yaml.Closestops tracking, restores original opacity for managed windows, and exits the program.
Install PyInstaller:
pip install pyinstallerExecute build:
pyinstaller FloArc.specOutput location:
dist/FloArc.exe
Deployment Notes:
FloArc.specsetsruntime_tmpdir='.', so the PyInstaller_MEIxxxxxxtemp directory follows the current working directory.- The working directory is switched to the executable's location on startup, and
config.yamlis always read from there.
- Under normal exit conditions, PyInstaller attempts to auto-delete the
_MEIxxxxxxtemporary directory. - If the process is forcibly terminated or handles remain open, you may see
Failed to remove temporary directory: .... Manual deletion after the process fully exits is usually safe. - Certain custom-drawn or special layered windows may not handle opacity changes well; add them to the exclusion list if necessary.
- The current logic only processes visible, non-minimized, top-level windows that are not cloaked by the system.