LXQt
LXQt is a free and open-source lightweight desktop environment for Linux and other Unix-like operating systems, built using the Qt application framework to provide a modular, resource-efficient interface that emphasizes speed and simplicity without compromising essential functionality.[1] It features a classic desktop layout with customizable panels, a powerful file manager called PCManFM-Qt, and support for multiple window managers, including seven Wayland compositors for improved modern display protocol compatibility.[1] Originating from the 2013 merger of the LXDE-Qt project—a Qt port of the LXDE desktop—and the independent Razor-qt initiative, LXQt was first announced as an alpha release in April 2014, marking the beginning of its development as a unified Qt-based successor to the GTK-oriented LXDE.[2] Key early milestones included the adoption of Qt5 for full support by June 2014 and the release of version 0.9.0, which required Qt5; subsequent updates transitioned to Qt6 with version 2.0.0, incorporating KDE Frameworks (KF5 and later KF6) to streamline its component libraries.[2] The project remains actively maintained, with the latest stable release, LXQt 2.3.0, issued on November 5, 2025, introducing enhancements such as new panel backends for Wayland compositors like Labwc, Niri, and Wayfire, along with LZ4 compression support in the LXQt-archiver tool.[3] LXQt's core components include applications like QTerminal for terminal emulation, Qps for process monitoring, Screengrab for screenshots, and LXQt-runner for application launching, all designed to integrate seamlessly while allowing users to mix and match elements from other environments.[1] It is distributed across major Linux distributions such as Fedora, Debian, and Arch Linux, often as a spin or official package, and is particularly valued for its low resource usage—making it ideal for energy-efficient systems and older hardware—while supporting advanced features like theming and plugin extensibility.[1]Overview
Design Philosophy
LXQt's design philosophy centers on delivering a lightweight desktop environment that prioritizes minimal resource consumption, making it suitable for older hardware and low-power devices. The emphasis stems from a commitment to avoiding system slowdowns or hangs, ensuring the environment remains unobtrusive while providing a classic desktop experience.[1] A core principle is modularity, which enables independent development and replacement of components, allowing users to select only necessary elements for their setup. This architecture promotes flexibility and reduces bloat by avoiding monolithic structures, aligning with the goal of efficiency and user choice in configuration.[4] LXQt's dedication to the Qt toolkit further supports this by leveraging its cross-platform capabilities and adherence to modern user interface standards, facilitating consistent performance across diverse systems without introducing unnecessary dependencies.[2] The philosophy also reflects a user-centric focus on simplicity, speed, and customizability, eschewing feature creep in favor of stability. This motivation arose from challenges in migrating LXDE from GTK+2 to GTK+3, where developers identified Qt as a more viable path for maintaining lightweight performance and long-term reliability. By prioritizing these tenets, LXQt ensures an environment that is fast and adaptable without compromising on essential functionality.[1]Key Features
LXQt offers extensive panel customization options, allowing users to configure multiple panels with adjustable sizes, positions, and appearances through a context menu accessed by right-clicking the panel.[5] It supports a variety of plugins, including task managers for window switching, system trays for notifications and application icons, and widgets for quick access to system information like clock, battery status, and network connectivity.[5] These plugins enable flexible layouts tailored to user preferences, such as vertical or horizontal orientations and transparency effects.[6] The desktop environment integrates PCManFM-Qt as its primary file manager, a Qt-based explorer designed for efficient file operations with support for tabbed browsing and thumbnail previews of images and other media files.[7] This tool handles basic tasks like copying, moving, and renaming files while providing multiple view modes, including icon, compact, and detailed list views, to enhance usability on resource-constrained systems.[8] Thumbnails are generated dynamically for supported file types, improving navigation without compromising performance.[9] Session management in LXQt is handled by lxqt-session, which oversees desktop startup, module loading, and user workspace initialization, including options for logout, shutdown, reboot, and suspend actions.[10] It supports multi-monitor configurations by ensuring proper window placement and panel behavior across displays, with configurable settings for window managers and autostart applications.[11] Users can customize session behaviors through lxqt-config-session, selecting components like the preferred compositor or desktop effects.[12] Theming in LXQt leverages Qt's styling capabilities to support customizable icons, cursors, and color schemes, with official themes available for download and installation.[13] These themes apply consistently across components, allowing selection of icon sets like Breeze or Oxygen and cursor themes via the appearance settings panel.[14] Qt styles enable further personalization, such as dark or light modes, ensuring a cohesive visual experience without requiring external tools. Wayland protocol compatibility was introduced in LXQt version 2.1, enabling support for compositing with multiple Wayland sessions including Labwc, KWin, Wayfire, Hyprland, Sway, River, and Niri.[15] The lxqt-wayland-session component facilitates this integration, providing two Wayland back-ends for the panel to handle display management and input seamlessly.[16] This allows users to run LXQt on Wayland for improved security and modern hardware acceleration while maintaining backward compatibility with X11.[17] Power management tools in LXQt, provided by lxqt-powermanagement, monitor battery levels, laptop lid status, user idleness, and power button events to optimize energy usage.[18] It triggers configurable actions such as screen locking after inactivity, dimming displays, or system suspension on low battery, with options for critical thresholds that prompt shutdowns.[19] These features integrate with modular components like policykit for secure handling of privilege-escalating operations.[20]Development
Origins and Merger
LXDE originated in 2006 when Taiwanese developer Hong Jen Yee, known by the username PCMan, began developing PCManFM, a lightweight file manager, as the foundation for a new desktop environment using the GTK toolkit.[21] This effort evolved into LXDE, designed explicitly as a resource-efficient alternative to more demanding desktop environments such as GNOME and KDE, prioritizing speed and minimal memory usage for older hardware and low-end systems.[21] Parallel to LXDE's growth, the Razor-qt project launched in 2011 as a lightweight, modular desktop environment built on the Qt framework.[22] Aimed at delivering KDE-inspired functionality—such as a customizable panel, compositor, and session manager—without the associated resource overhead or complexity, Razor-qt emphasized simplicity, extensibility through plugins, and broad hardware compatibility.[23] By early 2013, LXDE maintainer Hong Jen Yee grew dissatisfied with GTK3's radical API changes, which broke backward compatibility, increased memory consumption, and introduced performance regressions compared to GTK2. In response, Yee initiated a port of LXDE components to Qt, starting with PCManFM in February 2013 to leverage Qt's stability, licensing flexibility under LGPL, and comparable lightness to modern GTK. This LXDE-Qt effort released its first preview on July 3, 2013, showcasing a full suite adaptation including the file manager, panel, and other core elements. The convergence of these paths culminated in a merger announcement on July 21, 2013, between the LXDE-Qt and Razor-qt development teams, uniting their expertise to create a unified Qt-based lightweight desktop. This collaboration pooled Razor-qt's established Qt desktop infrastructure with LXDE-Qt's proven lightweight components, avoiding redundant development and accelerating progress toward a cohesive environment.[24] During the initial integration phase, the combined project operated under the temporary name LXDE-Qt to reflect its roots in the LXDE port, but it soon adopted the official branding of LXQt to signify the fresh, merged identity and broader scope beyond LXDE's original GTK heritage.[2] This rebranding underscored the project's evolution into a distinct, Qt-centric desktop while honoring contributions from both predecessor teams.[1]Evolution and Milestones
LXQt's development began with its first official release, version 0.7.0, on May 7, 2014, which established its core modular structure as a lightweight Qt-based desktop environment resulting from the merger of the LXDE-Qt and Razor-qt projects.[25] In October 2014, version 0.8.0 achieved full compatibility with Qt 5 while maintaining Qt 4 support, significantly enhancing stability and paving the way for modern Qt features in subsequent updates.[26] The project adopted KDE Frameworks 5 for select utilities with the release of version 0.9.0 in February 2015, requiring Qt 5 and integrating modular KDE components to improve functionality without increasing resource demands.[27] By May 2018, with version 0.13.0, LXQt formally split from the LXDE project, moving to an independent GitHub organization to focus exclusively on its Qt-based evolution.[28] A major advancement occurred in April 2024 with version 2.0.0, which transitioned fully to Qt 6—requiring a minimum of Qt 6.6—while dropping Qt 5 support and adopting KDE Frameworks 6 to align with contemporary toolkit standards and enable future enhancements.[29] In November 2024, version 2.1.0 introduced experimental Wayland support, including compatibility with seven Wayland compositors such as Labwc, KWin, Sway, Wayfire, Hyprland, River, and Niri, along with dedicated Wayland back-ends in the LXQt Panel to facilitate gradual adoption of the display protocol.[15] Development continued with version 2.2.0 in April 2025, enhancing Wayland multi-screen support using screen names, adding power profile integration in LXQt Power Management, and adapting to Qt 6.9 changes for improved compatibility and performance.[30] The latest milestone as of November 2025 is version 2.3.0, released on November 5, 2025, which further advanced Wayland integration with new panel backends for compositors like Labwc, Niri, and Wayfire, enabled the Desktop Switcher plugin under Wayland, and added LZ4 compression support to the LXQt-archiver tool.[3]Architecture and Components
Core Framework
LXQt's core framework is fundamentally constructed using the Qt libraries, which are developed in C++ and serve as the foundation for creating graphical user interface (GUI) elements, managing event handling, and ensuring cross-platform portability across various operating systems.[31] This reliance on Qt enables LXQt to deliver a lightweight yet feature-rich desktop environment while maintaining compatibility with diverse hardware and software ecosystems.[32] A key component of the framework is the integration of libfm-qt, the Qt port of the libfm library, which provides backend support for file management operations in Qt-based applications such as PCManFM-Qt.[33] Libfm-qt handles tasks like directory traversal, file metadata retrieval, and thumbnail generation, allowing LXQt applications to perform these functions efficiently without duplicating code.[34] For display management, LXQt defaults to the X11 display server protocol to render windows and manage input, ensuring broad compatibility with existing Linux graphics stacks.[31] Optional support for Wayland is available through compositors like KWin, Labwc, Niri, and Wayfire, enabling modern session types while preserving the framework's lightweight profile.[3] The architecture emphasizes modularity, incorporating a plugin system and the liblxqt library to deliver shared utilities across components, such as notification handling via lxqt-notificationd and centralized settings management.[32] Liblxqt acts as the central hub, abstracting common operations like translation support and D-Bus integration to promote code reuse and extensibility.[32] Advanced features, including PolicyKit integration for privilege escalation, rely on optional dependencies from KDE Frameworks 5 or 6, specifically through polkit-qt6 for authentication dialogs in tools like lxqt-admin.[35] This selective use of KDE components enhances security without mandating full KDE installation.[35] Configuration within the framework is handled via Qt's QSettings class, which stores data in lightweight INI files, typically in the user's ~/.config/lxqt/ directory for environment-wide settings and application-specific overrides.[36][37] This approach ensures simple, human-readable persistence of user preferences, such as theme selections and panel layouts, while minimizing overhead.Essential Applications
LXQt bundles several essential applications to provide core desktop functionality, ensuring a lightweight and efficient user experience. These tools are developed as part of the LXQt project and integrate seamlessly with the Qt framework, offering basic yet robust features for everyday tasks without unnecessary bloat.[1] The lxqt-panel serves as the customizable taskbar for the LXQt desktop environment, featuring a modular plugin system that allows users to add elements such as a main menu, clock, and system monitor. Plugins can be configured individually through right-click menus or the panel settings dialog, supporting layouts like horizontal or vertical orientations and multiple profiles for different setups. This enables quick access to applications, system status, and notifications, with support for applets displaying real-time information like battery levels, network speed, and CPU usage via the custom command widget, which as of LXQt 2.3.0 (November 2025) supports structured output and real-time updates.[5][38][3] PCManFM-Qt functions as the default single-pane file manager with tabbed browsing, providing efficient navigation with features including bookmarking for frequent directories, integrated search across local and remote filesystems, and support for handling archives through external tools like Ark or File Roller. It offers multiple view modes—icon, compact, thumbnail, and detailed list—for flexible file browsing, along with desktop icon management and thumbnail generation for images and videos. As of LXQt 2.3.0, it includes a "Safely Remove" option in the side pane and the ability to disable desktop file tooltips. This application leverages libfm-qt for backend operations, ensuring compatibility with GLib-based file operations while maintaining a lightweight footprint.[7][8][39][3] lxqt-session manages the overall desktop session, handling startup processes by launching core components like the panel and file manager in the specified order, as well as compositing via integration with window managers such as Openbox or KWin. It processes power-related events, including suspend, hibernate, and shutdown, configurable through the LXQt Session Settings GUI, which also allows selection of the window manager and enabling/disabling of compositing for performance tuning. As of LXQt 2.3.0, it categorizes auto-start applications. This component ensures smooth session lifecycle management, including logout and lock screen handling.[10][40][3] lxqt-config provides a centralized configuration interface through its modular tools, such as lxqt-config-appearance for theme and icon selection, lxqt-config-notifications for alert behaviors, and lxqt-config-input for keyboard and mouse settings including layouts and shortcuts. Accessible via a unified dialog or individual binaries, it simplifies system tweaks without requiring manual editing of configuration files, supporting options like monitor arrangement and power management profiles. These tools are designed to be extensible, with updates ensuring compatibility across LXQt versions.[41][42] QTerminal acts as the lightweight terminal emulator, supporting multi-tabbed sessions for running multiple shells simultaneously and transparency effects for aesthetic integration with the desktop. It includes features like customizable profiles for colors, fonts, and encodings, along with drop-down mode for quick command access, making it suitable for both novice and advanced users in a resource-constrained environment. As of LXQt 2.3.0, it supports emoji flags and adds a "Toggle Bookmarks" option to the context menu. Based on QTermWidget, it prioritizes speed and minimal dependencies.[43][3] LXImage-Qt offers a simple image viewer with capabilities for zooming to fit or actual size, running slideshows from directories, and basic editing operations such as rotating, flipping, and resizing images. It includes a thumbnail sidebar for easy navigation through multiple files and supports drag-and-drop for quick opening, while integrating with the system trash for deletions. This tool handles common formats like JPEG, PNG, and SVG efficiently, focusing on speed for lightweight systems.[44] Qps is a process monitoring tool that provides a visual interface for viewing and managing running processes, similar to top or htop, with features for sorting, killing processes, and displaying resource usage in a graphical format.[1] Screengrab serves as the screenshot utility, allowing captures of the full screen, windows, or selected regions, with options for delayed captures, annotations, and saving to clipboard or files. As of LXQt 2.3.0, it supports Wayland compositors using the wlr screencopy protocol.[1][3] LXQt-runner, also known as lxqt-runner, functions as a quick application launcher, enabling users to search and execute programs, open files, or run commands via a searchable menu accessed through a keyboard shortcut.[1]Deployment and Adoption
Integration in Distributions
LXQt has been the default desktop environment in Lubuntu, an official Ubuntu flavor, starting with the 18.10 release in 2018, with the first long-term support (LTS) version being Ubuntu 20.04 LTS in 2020, where it fully replaced the previous LXDE environment. Debian includes LXQt as an official live image spin since Debian 10 (Buster) in 2019, allowing users to boot and install the distribution directly with the LXQt desktop pre-configured.[45] In Arch Linux, LXQt is available through the official repositories as a package group, enabling straightforward installation via the pacman command, such aspacman -S lxqt.[46][47]
Fedora offers an official LXQt Spin since Fedora 26 in 2017, providing a complete, lightweight desktop alternative to the Workstation edition and maintained as a community-driven option for users seeking Qt-based environments.[48]
LXQt is also incorporated into various lightweight distributions tailored for low-spec hardware, where it can be installed to provide a fuller desktop experience on resource-constrained systems. It is available in openSUSE Tumbleweed with experimental Wayland support as of January 2025.[49]