While Libadwaita applications running in a GNOME desktop environment look great and nicely consistent, they look utterly out of place and jarring when run in Xfce, Pantheon, KDE, and others. The biggest reason for this is GNOME’s insistence on using client-side decorations, which feel at home inside a GNOME environment, but out of place in environments that otherwise do not use them. On top of that, Libadwaita’s/GNOME’s CSDs can interfere with non-GNOME window managers and their functionality, causing a whole host of problems.
But what if you could turn CSDs off?
GTK-NoCSD is an LD_PRELOAD library to disable CSD in GTK3/4, LibHandy, and LibAdwaita apps.
CSD is client side decoration, there is also server side decoration, SSD, both serving as the titlebar of windows. GTK3 adopted CSD, where this thick headerbar is used with application controls embedded.
This continued into the platform library, LibHandy, then into GTK4 and the platform library of that, LibAdwaita. This looks good on Gnome and makes these applications alike, but looks off everywhere else and can potentially break window managers and remove window manager provided functionality.This library restores the server side decoration, getting back the window manager titlebar, and moves the controls from the CSD to under it, into the window content.
↫ GTK-NoCSD’s Codeberg page
This isn’t the first attempt at such a solution, and certainly won’t be the last, and I’m glad they exist. Do note that if you decide to use this library, any problems or bugs you run into in an application ‘modified’ by it should never be reported to the application’s developer, but to the developer of this library. If you encounter a bug in an application modified by this library, test the application in its unmodified state to ensure it’s actually a bug in the application before reporting it to the application’s developer. Developers who choose to use client-side decorations are not responsible for bugs and issues arising from you removing the CSD.
Keep that in mind.
That being said, whatever pixels appear on your screen is entirely up to you as a user, and you have the right to theme, alter, butcher, or mangle whatever application is running on your computer. If you dislike the way CSDs look and feel on your computer, you can opt to resort to a solution like this one, and that’s entirely fair game. There’s packages for Arch, Fedora, and Gentoo, and of course, you can build it yourself.
As for my personal opinion – well, let’s just say I prefer KDE for many, many reasons, and my disdain for CSDs is certainly one of them. Call me old-fashioned and out-of-touch, but I like the classic distinction between titlebar, menubar, and toolbar.

Unfortunately, you still have the terribly bad hamburger menu.
Adwaita introduces some major regressions.
The main issue is forcing “mobile-first” patterns like hamburger menus onto a desktop environment. It’s not just a preference thing—the Nielsen Norman Group actually confirms that hidden navigation hurts discoverability and slows down task completion. It creates an interaction tax where you have to click just to see what tools are available.
This falls apart completely with complex software. Adwaita just doesn’t scale for professional apps. Even GNOME’s own Builder IDE feels awkward because it tries to cram complex functionality into a single header bar, hiding critical features behind icons or shortcuts.
It’s also a massive waste of screen real estate. We have a permanent Top Bar that sits mostly empty. If GNOME had used that for a Global Menu (like macOS), we’d have better usability and more vertical space for content. Instead, we get a fractured experience where system apps look like mobile ports while pro apps (like Blender or VS Code) use completely different layouts because they literally can’t function within Adwaita’s constraints.
There’s a good breakdown of why this design philosophy is problematic here: https://woltman.com/gnome-bad/#mcetoc_1j0nnl9fhjc
whats,
I’m also put off by “mobile first”. Sometimes interfaces are built to be reactive, but often desktop users end up living with a lot of compromises in favor of mobile. Cost pressures are somewhat responsible because it’s typically easier & less expensive to develop a mobile application/website and make that work (poorly) on desktop than to develop two separate interfaces targeting different form factors.
I gotta say, looking at the screen shots, I prefer the traditional window interfaces output by GTK-NoCSD over the GNOME replacements.
Modern software publishers keep trying to reinvent things to be less consistent, getting rid of conventional menus/etc. It’s not just fringe software, big name including mozlla firefox/google chrome are guilty of this too. And microsoft has botched up nearly all the best practices they helped perfect decades earlier. Non-standard UI elements has turned something as basic as moving an excel window into a struggle trying to find a hit box. This is bad design and software has been regressing on accessibility. I just find it strange that when windows started becoming worse, gnome took it as a cue to follow suit. And killing themes is just user-hostile. Ugh.
Anyway, these are reasons I prefer KDE and XFCE as well.
What boils my blood is littering the title bar with controls. Sometimes I want to move my browser window or activate it (bring it from background to foreground) and I close a tab by accident, UGH.
The UI/UX world is full of reinventing the wheel BS. Imagine if your screwdriver would change shape every few months? Computers are tools. Improve the performance, add functionality, this is all fine and dandy. But changing how you interact with the tool should only happen when it brings clear benefits to compensate for the learning curve. And some things are just worse, beyond being a matter of taste.
Shiunbird,
It’s hidden, but in firefox, one of the first things I do is go into about:config and disable the “drawintitlebar” option, and you can also hit alt-v and toggle the old menu, which I prefer to hamburger menu. I takes up screen real estate, but my monitor isn’t lacking pixels and it makes window hit boxes much more usable.
I haven’t figured out how to make chrome be more traditional.
IIRC, the “old menu” isn’t so much “the old menu” as “the menu bar definition they still need to maintain for macOS” and it was just the path of least resistance to leverage the pre-existing toolkit functionality to set hidden as default on non-macOS platforms.
ssokolow (Hey, OSNews, U2F/WebAuthn is broken on Firefox!),
At least the option is there and it works reasonably well, which is more than I can say for chrome. My biggest issue with FF at the moment is that it appears to exhibit a double buffering bug where it gets out of sync and draws to the wrong buffer, albeit rarely. It happens for me when I leave it on 24×7. I am able to fix the issue by moving tabs to a new window. I don’t know what causes double buffering to get out of sync, I thought it was a hardware/driver issue, but I ruled that out and considering that only FF and thunderbird have ever exhibited this bug and mozilla’s code is common between them, I’m fairly confident that it’s an unusual mozilla bug.
I guess another FF complaint I have, though admittedly not mozilla’s fault at all, is that some websites only support chrome these days. Recently redpocket.com (a cellular MVNO) broke logins for FF forcing chrome. This sucks and it’s becoming reminiscent of the IE monopoly when we were forced to use IE. It’s terrible when users aren’t free to choose their own browser. Going by your handle, I guess you experience similar frustration..
Yeah. It used to work, but then they either switched or upgraded their WordPress 2FA plugin and now, instead of blinking my U2F token, Firefox pops up a dialog asking me to pick a handler for one of those Chrome extension-internal URLs.
Hmm, I haven’t tried using 2F tokens for myself. I do have troubling logging in though – I keep getting “login verification required” prompts almost every time. It seems a new wordpress extension was installed to control logins, I suspect they were trying to weed out the spammers. What concerns me about it is that I am forced to click on an external email link that goes to *.sendibt2.com
Is this happening for anyone else?
There’s no good rational for an extension to force users to login via a 3rd party website, it’s probably a tracker..
This site actually alleges sendibt2.com of credential theft and because the sendibt2.com URL is encrypted I can’t really disprove it.
https://gridinsoft.com/online-virus-scanner/url/sendibt2-com
Alfman, Ugh. I’ve been getting those too.
Well… I suppose it’s a good thing that, at worst, OSNews’s reputation would be mud but the phishers would get no additional information if I thought they were trying to demand more than the site-specific e-mail and site-specific password I already gave them. (I give a different e-mail alias for each site so I can revoke them if I start to receive spam).
I stopped logging into YouTube for nearly a decade when they tried to force people to create a Google+ profile to comment.
I also imagine any credential theft of OSNews itself would be of limited value, given that I use more inconvenient TOTP-based 2FA on OSNews now as a fallback for U2F being broken and, from a credential theft point of view, both are forms of one-time passwords.
Very nice. Unfortunately on KDE Linux it seems that the only way to install it is to compile it yourself.
Even Redhat seems to be realising, finally, how crap gnome is in general.
I know one should not rubbish open-source projects, but gnome has been holding back Linux for far too long. The sooner they go, the sooner linux can thrive. And let’s hope nobody else falls for implementing CSD crap. Or hamburger menus.
Lets not forget that it’s mostly gnome devs, for instance, constantly blocking and bickering over wayland protocols.
Imagine how far we would be if they hadn’t held back development of wayland with their idiocies.
it feels like gnome is for “modern users” in the same way that horrific remakes, reboots and sequels are now made for a “modern audience”.
Since when does “modern” mean “shit”? Or are younger generations really that braindead that they like this stuff?
Vranitzky,
While I haven’t liked the UI direction they’ve gone in since gnome shell, I think that’s harsh. I wouldn’t want them to “go” over my UI preferences….as long as freedom of choice is genuinely respected. To this end though the wayland rollout was problematic with non-gnome users kind of being treated as second class citizens for such a long time. We need leaders that ingrain pragmatism, cooperation, and collaboration into our standards and culture for the benefit of all projects and everyone who uses them. To me this is the core strength of Linux, especially in contrast to mainstream commercial platforms that keep taking things away and forcing unwanted change. However IMHO the absence of these traits, including in the gnome and wayland ranks, has done damage and is holding back FOSS from reaching it’s full potential as an owner empowering platform.
Assuming it’s the same codebase and not just a tweak on the same name to acknowledge GTK4 and the same implementation strategy, it was originally written by PCMan of PCManFM fame for use in LXDE, and, last I checked, was installed by default in Lubuntu.
https://github.com/PCMan/gtk3-nocsd
Can we just fork GTK3 and call it MTK – MATE Toolkit it’s your friend. Then we fix the few menu bugs on Wayland and get on with our lives. The whole mobile/Desktop stupidity has wasted enough time/Linux development. Mobile can get in the bin. I own a Librem5 it’s pretty clear linux on mobiles is a failed platform. Google/Apple won the war for mobile phones.