Linux users can switch from GNOME to KDE Plasma today and treat the choice like any other distro preference. The reason both desktops exist goes back to a much messier fight in the 1990s, when KDE made the first serious push for a polished free Unix desktop built on Qt, an excellent toolkit whose license made parts of the free-software community deeply uneasy.

The argument got heated enough that developers chose to build an entirely separate desktop rather than accept that dependency. Nearly 30 years later, the licensing issue has long since been resolved, yet the desktop born from that dispute is still one of Linux’s biggest.

KDE had an answer for Linux's desktop mess, with one catch

KDE found its foundation before everyone agreed it was safe

An alpha build of KDE 1.0 in 1997, less than a year after Matthias Ettrich announced the project. Credit: KDE / Wikimedia Commons, GPL

When Matthias Ettrich announced the Kool Desktop Environment on October 14, 1996, Linux already had X11, window managers (what is that?), file managers, editors, and plenty of graphical applications. Cohesion was another story. Ettrich complained that menus, scrollbars, keyboard behavior, and widgets could change from one application to the next. His goal was a desktop for ordinary users, where the pieces actually looked and behaved as though they belonged together.

Qt made that possible. Troll Tech, the Norwegian company behind it, had released Qt 1.0 only weeks earlier. Ettrich was openly enthusiastic about the C++ toolkit because it was portable, easy to program, polished, and available in source form for free-software development. For a project trying to build an entire desktop without reinventing the code behind every button, menu, window, and dialog box, Qt was an awfully tempting foundation.

The catch sat in the license. Early Qt source code was available, and free-software developers could use it without paying, but the Free Edition license didn't allow them to redistribute modified versions of Qt. That kept it from qualifying as free software under the standards used by the GNU project and the Free Software Foundation. KDE's own code could be free, while a crucial layer beneath it remained controlled by a single company on terms the free-software camp couldn't accept.

This can sound like vintage Linux nitpicking until you look at what developers were worried about. If a desktop depended on a toolkit whose modified versions couldn't be freely redistributed, the community didn't have the same guarantee that it could fork the code, repair it, and keep maintaining its own version if the company behind it changed course. For a movement built around those freedoms, that was a pretty large asterisk.

GNOME turned a licensing objection into a second desktop

Apparently the easiest workaround was building another desktop

GNOME 1.0 with GNOME Panel and File Manager. Credit: GNOME / Red Hat / Wikimedia Commons, GPL

On August 15, 1997, Miguel de Icaza announced the GNOME Desktop project. The announcement was unusually direct about KDE. GNOME wanted a desktop similar in ambition to CDE and KDE, but "based entirely on free software," and de Icaza specifically cited Qt's license when explaining why the developers weren't simply contributing to KDE.

GNOME chose GTK instead of Qt. GTK was created for GIMP by Peter Mattis, Spencer Kimball, and Josh MacDonald, providing the new desktop with a toolkit without Qt's licensing baggage. GNOME also had ambitions that went beyond licensing, including easier bindings for languages outside C++, and its founders had design ideas they wanted to pursue differently.

So pinning GNOME's entire existence to a single license would make the history a little too tidy. Federico Mena later described several ingredients coming together at once, including earlier component-system work and the pool of GTK experience around GIMP. Still, the Qt problem was plainly one of the sparks that turned those ideas into a competing desktop project.

The free-software community tried another route at roughly the same time. Harmony aimed to build a free, Qt-compatible toolkit so KDE applications could run without relying on Troll Tech's implementation. Between GNOME and Harmony, developers were attacking the problem from both directions, with one project building another desktop and the other trying to replace the disputed layer underneath KDE.

What fascinates me is how quickly a licensing argument became architecture. Once GNOME had developers, applications, libraries, conventions, and its own momentum, fixing Qt's license was never going to rewind Linux to 1996. The new desktop had already started building for reasons of its own to exist.

Qt blinked, but the second desktop was already alive

Too late, Linux had already learned to live with two desktops

Troll Tech did move. In June 1998, Troll Tech and KDE created the KDE Free Qt Foundation, an arrangement meant to guarantee that the Qt Free Edition would remain available for free-software development. Among its safeguards, the foundation could release Qt under a BSD-style license if Troll Tech stopped providing the free edition or failed to continue its development under conditions spelled out in the agreement.

Qt 2.0 followed in 1999 under the Q Public License, or QPL. This was genuine progress because Qt itself now qualified as free software, but the QPL remained incompatible with the GNU GPL used by much of KDE. That meant distributing GPL-covered KDE software linked against Qt could still create a licensing conflict. The original complaint had been partly addressed, but the mess wasn't completely over.

The clean break came in September 2000, when Trolltech released Qt 2.2 for Unix with the GNU GPL as an additional licensing option. Debian, which had kept KDE out of its main distribution due to licensing issues, began adding KDE packages to its archive almost immediately. Harmony lost much of its original purpose and faded away. Qt later added the Lesser General Public License (LGPL) as a licensing option with Qt 4.5 in 2009, and modern Qt remains available under open-source licenses alongside commercial ones.

By then, GNOME already had its own ecosystem and direction. Over the following decades, GNOME and KDE’s interface guidelines came to reflect increasingly different design instincts. KDE Plasma kept leaning into configurability and a familiar desktop model, while GNOME eventually embraced a much more opinionated workflow through GNOME Shell. Those differences now give both projects plenty of reason to coexist without anyone having to care what Troll Tech's license looked like in 1997.

A licensing footnote became part of Linux's furniture

I like this story because the original controversy is largely obsolete, yet its consequences are still present on Linux desktops today. A toolkit license pushed developers hard enough to create an alternative, and by the time the license changed, that alternative had become an institution.

Linux didn't end up with GNOME and KDE because somebody carefully designed a two-desktop ecosystem. It got there through a fight that resolved itself years ago, yet still left lasting infrastructure behind.