Skip to content

Repository files navigation

Bezelfree Kit Overlay Linux

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

Python PyQt6 Platform DE License


Why

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.


Features

🔆 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

Installation

🅰 Arch / CachyOS / Manjaro (AUR)

# stable
yay -S linux-overlay-sight

# bleeding edge (latest commit on main)
yay -S linux-overlay-sight-git

🅱 AppImage (any distribution)

wget 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-*.AppImage

🅲 From source (development)

git clone https://github.com/DevBasi/Linux-Overlay-Sight-LOS.git
cd Linux-Overlay-Sight-LOS
./setup.sh
./run.sh

Requirements

  • 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.


Usage

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 --version

A crosshair icon appears in the system tray. The crosshair is immediately visible on screen.

Tray controls

Action Result
Double-click Toggle crosshair on / off
Right click → Settings… Open settings panel
Right click → Quit Close the application

Settings

settings
  • 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.


FAQ

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.


Project structure

.
├── 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

License

MIT — do whatever you want.

About

An overlay to use with your bezel free kit to boost brightness behind the lenses.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages