diff options
-rw-r--r-- | README.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 000000000000..0c2d02589d6b --- /dev/null +++ b/README.md @@ -0,0 +1,46 @@ +kwin-aurorae-optional-titlebar +--- + +A hacked version of the KWin theme engine Aurorae that allows skipping title bars for a user-defined set of applications. + +__This is NOT intended as a permanent solution. This hack would NOT work with every case (otherwise the problem should be much simpler). I sincerely suggest related KDE and GTK developers to really look into the problem of CSD GTK windows and the mess of custom CSD sh*t and get them sorted out. Users have been suffering for years.__ + +Installation +--- + +Just build the package with `makepkg` and install it plus reboot. Only ArchLinux is supported by me for now. + +Usage +--- + +First, you need to use the KWin script or Window Rules or even `gtk-nocsd` to ensure decoration (title bar and borders) on all GTK windows (or a subset of your choice). + +Create a file `~/.aurorae_notitle` with content like + +``` +window_class_1 +window_class_2 +...... +``` + +where the window classes of windows that you think should not have a title bar (but should have a shadow!) are filled in line-by-line. + +This file takes effect immediately. Just re-open the corresponding application window and voila! You should finally have a GTK CSD window that has shadows but with only one title bar from GTK itself. + +Of course you will need a proper theme for uniform look of GTK and your desktop itself. + +Background +--- + +As everyone knows, KDE and GTK client-side decorated applications do not work well together. KDE cannot communicate with GTK to add proper shadows around the GTK client-side decorated windows. This problem has been around for years and no one has really even committed even a little bit of effort to resolve it because it would require + +1) either KDE to support GTK's custom protocol +2) or GTK to support KDE's custom protocol + +none of which seem likely at all by far. No one would like to support others' custom home-grown tech and nobody has come up with a ultimate solution yet. + +I do not feel like commenting on any of their development process, but I personally can't bear even a second about the problem. Avoiding GTK is impractical - at least Firefox and Chromium both uses GTK and will switch to CSD some time. A lot of well-designed Electron apps are also GTK-based. + +There is a solution to enforce server-side decoration in `KWin`, which can at least get those apps usable, but now you are faced with the double-notch problem which is even more annoying. Fortunately, with the default decoration, `Breeze`, there is an option to disable the title bar for specific windows, which yields very good-looking results, almost indistinguishable with real GTK CSD windows on GNOME. But also unfortunately, this __only__ works with `Breeze`. + +A lot of KDE decoation themes use the included theme engine, `Aurorae`, which provides simple SVG-based styling for `KWin`. This engine, by default, does not support `Breeze`-like per-window title-bar-hiding settings. So I decided to screw it and put some dirty hack together to get things at least usable for now.
\ No newline at end of file |