Bezelfree-Kit-Overlay-Linux — Brightness boost overlay for use with Bezel Free Kits · KDE Plasma · XWayland
Draws a crosshair on top of any game — including fullscreen mode via Wine/Proton
I got a Bezel Free Kit from Etsy, and one issue I had with it was the brightness dropoff the further the lens is from the screen on the side. This darkness is made worse from the dark bezel still being somewhat visible as a shadow through the lens.
I used Copilot to assist me with an idea of displaying a gradient overlay behind the lenses. With Copilot, I found this existing project, https://github.com/DevBasi/Linux-Overlay-Sight-LOS, and modified it to display a simple rectangular tranlucent gradient, in gray to boost the brightness of that portion of the display slightly to compensate for the Dark spot behind the lens.
This seems to be an inexpensive way to address the issue. I updated the Settings Ui so that you can dial in your overlays.
Eventually I would like to expand the functionality of the overlay to Support the ROG bezel free kit, as the configuration of the lenses is a little different to what I have so far. I would also like to have some sort of warping filter, to allow for better alignment of the seams of the 2 images. I will likely use pipewire to accomplish this. Hopefully it won't be too computationally expensive. I run Huenicorn to drive my ambient lights, and it takes a noticable chunk of FPS away from Assetto Corsa when sharing the full triples.
I am a full time web developer with experience with .net and javascript frameworks on Windows. So this is my first foray into development on Linux, as well as my first fork.
Works above fullscreen games via Wine / Proton on XWayland — where most other solutions break.
| 🔆 Opacity | Maximum opacity of Gradient 0–255 |
| 📐 **Width | Width of filter on side screen 0-400px |
| 🖱️ System tray | quick toggle via double click |
| 💾 Auto-save | settings written to ~/.config/los.json |
| 👻 Click-through | mouse clicks pass through, game controls as normal |
| 🖥️ Multi-monitor safe | game pointer no longer escapes to a second monitor |
# stable
yay -S linux-overlay-sight
# bleeding edge (latest commit on main)
yay -S linux-overlay-sight-gitwget https://github.com/DevBasi/Linux-Overlay-Sight-LOS/releases/latest/download/linux-overlay-sight-1.0.2-x86_64.AppImage
chmod +x linux-overlay-sight-*.AppImage
./linux-overlay-sight-*.AppImagegit clone https://github.com/DevBasi/Linux-Overlay-Sight-LOS.git
cd Linux-Overlay-Sight-LOS
./setup.sh
./run.sh- Linux with KDE Plasma (Wayland + XWayland recommended) or any X11 DE
- Python 3.9+
- PyQt6 ≥ 6.4
- Game running through Wine / Proton (XWayland window)
GNOME / Hyprland / sway may work, but it's tested on KDE Plasma 6.
After install, the command linux-overlay-sight (or the short alias los) is on PATH, and a launcher appears in the application menu.
linux-overlay-sight # GUI
linux-overlay-sight --help
linux-overlay-sight --versionA crosshair icon appears in the system tray. The crosshair is immediately visible on screen.
| Action | Result |
|---|---|
| Double-click | Toggle crosshair on / off |
| Right click → Settings… | Open settings panel |
| Right click → Quit | Close the application |
- Style — dot / cross / dot+cross / circle
- Size — dot radius or line length
- Thickness — line width (for crosses and circle)
- Gap — center offset (for crosses)
- Color / Outline — clickable swatch → color picker
- Opacity — from semi-transparent to fully opaque
All changes apply instantly and save automatically to ~/.config/los.json.
Will I get banned?
Technically — unlikely.
The game's anti-cheat runs inside Wine as a Windows process. It only sees the Wine environment: DLLs, game memory, Windows API. Our overlay is a Linux process with an X11 window. From the anti-cheat's perspective it doesn't exist: no DLL injection, no render hook, no memory reading.
That said, always check the specific game's ToS.
Cursor escapes to a second monitor
Fixed in 1.0.0: the overlay is now a small (400×400) centered window that no longer breaks the game's pointer grab. If you still see the issue, please file a bug with kwin_wayland --version.
Doesn't work on pure Wayland without XWayland
Native Wayland without XWayland is unsupported — there's no equivalent of WindowTransparentForInput + X11BypassWindowManagerHint. Make sure XWayland is active (default on KDE Plasma).
Where are settings stored?
~/.config/los.json
Edit manually or delete to reset to defaults. The path follows $XDG_CONFIG_HOME and can be overridden via --config PATH.
.
├── aim_overlay.py # entire app (~450 lines, single file)
├── pyproject.toml # package definition (hatchling)
├── setup.sh / run.sh # dev scripts (venv)
├── assets/
│ ├── linux-overlay-sight.svg # vector icon
│ └── linux-overlay-sight-*.png # raster icons 16…512 px
├── packaging/
│ ├── linux-overlay-sight.desktop # menu launcher
│ ├── aur/PKGBUILD # stable AUR
│ ├── aur-git/PKGBUILD # AUR -git
│ └── appimage/build.sh # AppImage build script
└── .github/workflows/ # CI + release automation
MIT — do whatever you want.