MCPcopy Create free account
hub / github.com/Sonic-DE/sonic-win

github.com/Sonic-DE/sonic-win @6.7.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 6.7.2 ↗ · + Follow
9,451 symbols 25,504 edges 834 files 364 documented · 4% updated 9d ago★ 1737 open issues

Browse by type

Functions 7,761 Types & classes 1,690
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

sonic-win

KWin/X11 with ports from KWin/Wayland, bug fixes, and other improvements

sonic-win is an X11 window manager and a compositing manager. Its primary usage is in conjunction with a Desktop Shell (e.g. sonic-desktop). sonic-win is designed to stay out of the way; users should not notice that they use a window manager at all. Nevertheless sonic-win provides a steep learning curve for advanced features, which are available, if they do not conflict with the primary mission. sonic-win does not have a dedicated targeted user group, but follows the targeted user group of the Desktop Shell using sonic-win as it's window manager.

Why stay with X11?

On X11 there is a working implementation for Locally Integrated Menus. Inertial scrolling works too, even under Wine. The scrolling in LibreOffice/Qt is more fluent, and some Chromium functionality, such as drag & drop, is more reliable than on Wayland. Global hotkeys are working for, e.g., push to talk in Telegram and the recording toggle in OBS Studio. Windows get restored at the positions they were closed, especially between different sessions. Applications like games know which screen is the primary one. You can also record your screen in remote desktop applications such as TeamViewer. There are some other minor aspects that just work and lead to an overall pleasant desktop experience.

KWin for X11 was created and for a long time maintained by the KDE developers. Unfortunately, however, the KDE developers decided to abandon X11. In the wake of these events, KWin/X11 has been patched in 2025 by guiodic at guiodic/kwin-x11-improved. The SonicDE project is here to pick up the baton, fix bugs, and make improvements to KWin/X11.

You may want to check out guiodic's Plasma X11 improved guide to get a better Plasma X11 experience. Note: Many instructions here are specific to intel video cards.

There is also a critical comparison of X11 and Wayland by probonopd.

sonic-win is not

  • a standalone window manager (c.f. openbox, i3) and does not provide any functionality belonging to a Desktop Shell.
  • a replacement for window managers designed for use with a specific Desktop Shell (e.g. GNOME Shell)
  • a minimalistic window manager
  • designed for use without compositing or for X11 network transparency, though both are possible.

Contributing to sonic-win

We appreciate your interest in contributing! Please refer to the CONTRIBUTING document for everything you need to get started. To report a bug, please use the sonic-win bug tracker at Issues · Sonic-DE/sonic-win.

Getting in contact

We'd love to hear from you on one of our channels. To get end-user support, please also check your distribution's chat or forum.

 Bluesky   Discord    Mastodon    Matrix    OFTC IRC    Telegram    X (Twitter)

Core symbols most depended-on inside this repo

Shape

Method 7,028
Class 1,504
Function 733
Enum 186

Languages

C++99%
TypeScript1%
C1%
Python1%

Modules by API surface

src/window.cpp316 symbols
src/input.cpp281 symbols
src/x11window.cpp222 symbols
src/utils/xcbutils.h194 symbols
src/effect/effecthandler.cpp151 symbols
src/workspace.cpp108 symbols
src/options.h106 symbols
src/window.h103 symbols
src/useractions.cpp88 symbols
src/core/output.cpp79 symbols
src/tabbox/tabbox.cpp76 symbols
src/effect/effect.cpp76 symbols

For agents

$ claude mcp add sonic-win \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page