u/Fabulous-Pie5093

▲ 3 r/kivy

[Project Release] I built GlowZ-Dock v1.0.0 – A polished Windows Taskbar alternative inspired by AmiDock & RocketDock (with a savage, unignorable gaming alarm!)

Hidiho r/kivy!

First i want to thank all in this and /python community for leaning Python and Kivy!!!

After 2 months of hard work, I finally finished my passion project and just dropped the official v1.0.0 Release on GitHub! No half-baked 0.5.0 beta – this is a fully functional, rock-solid desktop application.

As an old-school Amiga scene coder/musician/graphic artist (from the mid 1990s to the early 2000s, now returned as Suraween), I have zero tolerance for early access or buggy software. Back in the day, when you handed over a floppy disk, it had to work. Period.

That’s the exact mentality I put into GlowZ-Dock:

  • 🎨 Modern 3D Retro Vibe: Fully rendered 3D graphics made in Blender with gorgeous real-time reflections and smooth hoovering animations and more.
  • 🔒 100% Offline & Safe: No firewall issues, no cloud trash, no telemetry. Pure performance built with Python/Kivy and fully customizable.
  • The Ultimate Anti-Gaming Alarm (Killer Feature): Uses native Win32 C-tricks via ctypes to violently minimize full-screen games, steal focus, and slap you in the face with a random, sassy system popup to get you out of the "just one more round" syndrome.
  • 💬 Sassy Personality: Instead of boring sterile windows errors, the dock has a lot of humor and will actively roast you if you try to drag unsupported files or mess with its memory.

Everything is compiled using PyInstaller into independent .exe files for Windows 10/11.

Check it out on GitHub: [https://github.com/Suraween/GlowZ-Dock]

I’d love to hear your feedback! Time to banish the Windows taskbar for good.

In memory of the good old "Rocket Dock" (RIP)

reddit.com
u/Fabulous-Pie5093 — 16 days ago
▲ 3 r/kivy

Improved Windows-only solution using built-in ctypes (No holes in black images, widgets or icons)

Some suggests using pywin32 with a pure black (0,0,0) chroma key. This has a huge downside: if your app uses black text, dark borders, or icons with shadows, Windows will punch holes right through them, making parts of your UI completely invisible.

A much better approach is using Python's built-in ctypes (no external dependencies) and choosing a specific dark gray background color like 0x333333 (RGB 51, 51, 51) to prevent the "hole effect" on standard black assets.

First, configure Kivy before importing the window to ensure it initializes borderless and transparent:

In your "main.py" on the very top:

from kivy.config import Config

# Force borderless transparent initialization before window creation
Config.set('graphics', 'width', '0')
Config.set('graphics', 'height', '0')
Config.set('graphics', 'borderless', '1')
Config.set('graphics', 'resizable', '0')
Config.set('input', 'mouse', 'mouse,multitouch_on_demand')
Config.set('graphics', 'maxfps', '30')
Config.set('graphics', 'multisamples', '2')
Config.set('graphics', 'transparent', '1')

Then, set your specific background color and apply the Win32 Chroma Key via ctypes in your App's initialization or on_start method:

In your App-Class inside your "main.py" or any other Kivy py-script:

import ctypes
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout

class MyTransparentApp(App):
    def build(self):
        # Set background to our specific chroma key color (0.2, 0.2, 0.2 -> RGB 51, 51, 51)
        Window.clearcolor = (0.2, 0.2, 0.2, 1)
        # Give your App a nice title
        self.title = 'Name of the App'
        return BoxLayout() # Your root widget here

    def on_start(self):
        # Find the active Kivy window handle
        hwnd = ctypes.windll.user32.GetActiveWindow()
        
        # Win32 API constants
        GWL_EXSTYLE = -20
        WS_EX_LAYERED = 0x00080000
        LWA_COLORKEY = 0x00000001
        
        # Modify window styles to support layering
        style = ctypes.windll.user32.GetWindowLongW(hwnd, GWL_EXSTYLE)
        ctypes.windll.user32.SetWindowLongW(hwnd, GWL_EXSTYLE, style | WS_EX_LAYERED)
        
        # Define Chroma Key in BGR format: 0x333333 matches our (0.2, 0.2, 0.2) clearcolor
        chroma_key_color = 0x333333
        ctypes.windll.user32.SetLayeredWindowAttributes(hwnd, chroma_key_color, 0, LWA_COLORKEY)

if __name__ == '__main__':
    MyTransparentApp().run()
reddit.com
u/Fabulous-Pie5093 — 18 days ago