Desktop environments and Window managers: Difference between revisions

From Alpine Linux
m (1. Alpine Linux as a general daily desktop use case in Beginning; 2. Changed Cosmic to upstream style, COSMIC; 3. Amalgamated tiling and dynamic using slash(/) for some distinction (i3, herbstluftwm, ratpoison arguably not dynamic); 4. Style and grammar amendments.)
(1. Converted listing of "pros" for using as a "general" daily desktop into list form; 2. Updated internal links; 3. Style and grammar amendments.)
 
Line 7: Line 7:
-->
-->


'''Alpine Linux''' has no official desktop although setting up a graphical environment is proposed in the [[Installation#Post-Installation|post-installation]] guide.  Alpine Linux desktops may meet the needs for ''general'' daily desktop use, as lesser use cases now require [https://www.gnu.org/software/libc/ glibc], several Alpine Linux desktop environments have been benchmarked to be competitive for both [https://everybytecounts.org/#desktop-environment-comparison speed and memory], and arguably, there is a reduced attack surface through the use of [https://musl.libc.org/ musl] and [[BusyBox]].
'''Alpine Linux''' has no official desktop although setting up a graphical environment is proposed in the [[Installation#Post-Installation|post-installation]] guide.  Alpine Linux desktops may meet the needs for ''general'' daily desktop use:-
* Fewer packages still require [https://www.gnu.org/software/libc/ glibc], as numerous popular applications are now available here on [https://musl.libc.org/ musl]:  {{Pkg|libreoffice*}}, {{Pkg|chromium*}}, [[Firefox]], etc
* Several Alpine Linux desktop environments have been benchmarked to be competitive for both [https://everybytecounts.org/#desktop-environment-comparison speed and memory]
* Arguably, there is a reduced attack surface through the use of a comparatively lightweight '''musl''' and [[BusyBox]] system core


All window managers and desktop environments that are available in Alpine Linux are listed in this page. A quick installation using the [[Alpine_setup_scripts#setup-desktop|setup-desktop]] script is available for several [[Setup-desktop|desktops]].  
All window managers and desktop environments that are available in Alpine Linux are listed on this page. A quick installation using the [[Alpine_setup_scripts#setup-desktop|setup-desktop]] script is available for several [[Setup-desktop|desktops]].  


{{Tip|For servers, consider using [[Alpine_Configuration_Framework_Design|Alpine Configuration Framework (ACF)]] for security reasons.}}
{{Tip|For servers, consider using [[Alpine_Configuration_Framework_Design|Alpine Configuration Framework (ACF)]] for security considerations in that use case.}}


== Desktop environments ==
== Desktop environments ==


A desktop environment (DE) is made of a bundle of programs that share a common graphical user interface (GUI), sometimes described as a graphical shell. A desktop environment typically consists of icons, windows, toolbars, folders, wallpapers desktop widgets and might also provide drag and drop.  
A ''desktop environment'' (DE) is made of a bundle of programs that share a common ''graphical user interface'' (GUI), sometimes described as a ''graphical shell''. A desktop environment typically consists of icons, windows, toolbars, folders, wallpapers and desktop widgets, and might also provide drag-and-drop functionality.  
* [[Xfce]]
* [[Xfce]]
* [[LXQt]]
* [[LXQt]]
Line 21: Line 24:
* [[GNOME]]
* [[GNOME]]
* [[MATE]]
* [[MATE]]
* [[Cosmic|COSMIC]]
* [[COSMIC]]
* {{Pkg|lomiri|arch=}}
* {{Pkg|lomiri|arch=}}
* {{Pkg|lumina-desktop*|arch=}}
* {{Pkg|lumina-desktop*|arch=}}
Line 28: Line 31:
== Window managers ==
== Window managers ==


A window manager is software that controls the placement and appearance of windows within a windowing system in a graphical user interface. In the case of [[Wayland]], these are called compositors because they additionally perform the task of a compositing window manager.
A ''window manager'' is software that controls the placement and appearance of windows within a windowing system in a graphical user interface. In the case of [[Wayland]], these are called ''compositors'' because they additionally perform the task of a ''compositing window manager''.


Almost all components of a desktop need to be added manually by the user. A [[Alpine_Linux:Glossary#S|stacking]] (a.k.a. ''floating'') or [[Alpine_Linux:Glossary#T|tiling]]/''dynamic'' layout is commonly used for window management.
Almost all components of a desktop need to be added manually by the user. Both [[Alpine_Linux:Glossary#S|stacking]] (a.k.a. ''floating'') and [[Alpine_Linux:Glossary#T|tiling]]/''dynamic'' layouts are commonly used for window management.


{|class="wikitable sortable" align="center" style="width:100%; border:1px #0771a6 solid; background:#f9f9f9; text-align:left; border-collapse:collapse;"
{|class="wikitable sortable" align="center" style="width:100%; border:1px #0771a6 solid; background:#f9f9f9; text-align:left; border-collapse:collapse;"
Line 100: Line 103:
| {{Pkg|ratpoison|arch=}}  || X11 || Kiosk || C ||  
| {{Pkg|ratpoison|arch=}}  || X11 || Kiosk || C ||  
|-
|-
| [[River]] || Wayland || Tiling || Zig || [[dwm]], [https://xmonad.org/ xmonad]
| [[River|river-classic/River]] || Wayland || Tiling || Zig || [[dwm]], [https://xmonad.org/ xmonad]
|-
|-
| {{Pkg|spectrwm |arch=}}  || X11 || Tiling || C||  [https://xmonad.org/ xmonad], [[dwm]]
| {{Pkg|spectrwm |arch=}}  || X11 || Tiling || C||  [https://xmonad.org/ xmonad], [[dwm]]

Latest revision as of 18:44, 17 December 2025

Alpine Linux has no official desktop although setting up a graphical environment is proposed in the post-installation guide. Alpine Linux desktops may meet the needs for general daily desktop use:-

  • Fewer packages still require glibc, as numerous popular applications are now available here on musl: libreoffice*, chromium*, Firefox, etc
  • Several Alpine Linux desktop environments have been benchmarked to be competitive for both speed and memory
  • Arguably, there is a reduced attack surface through the use of a comparatively lightweight musl and BusyBox system core

All window managers and desktop environments that are available in Alpine Linux are listed on this page. A quick installation using the setup-desktop script is available for several desktops.

Tip: For servers, consider using Alpine Configuration Framework (ACF) for security considerations in that use case.

Desktop environments

A desktop environment (DE) is made of a bundle of programs that share a common graphical user interface (GUI), sometimes described as a graphical shell. A desktop environment typically consists of icons, windows, toolbars, folders, wallpapers and desktop widgets, and might also provide drag-and-drop functionality.

Window managers

A window manager is software that controls the placement and appearance of windows within a windowing system in a graphical user interface. In the case of Wayland, these are called compositors because they additionally perform the task of a compositing window manager.

Almost all components of a desktop need to be added manually by the user. Both stacking (a.k.a. floating) and tiling/dynamic layouts are commonly used for window management.

WM Name Protocol Style Toolkit Inspiration
2bwm X11 Stacking C/Roff mcwm
Awesome X11 Tiling Lua
berry X11 Stacking C
bspwm X11 Tiling C
cage Wayland Kiosk C/wlroots ratpoison
cagebreak Wayland Tiling C/wlroots ratpoison, cage
compiz X11 Compositing C++/C/Python
cwm X11 Stacking C
dk X11 Tiling C dwm, bspwm, xmonad
dwl Wayland Tiling C/wlroots dwm
dwm X11 Tiling C
Fluxbox X11 Stacking C++ blackbox
flwm X11 Stacking C++/FLTK wm2
gamescope X11/Wayland Compositing C++/C/Lua
goomwwm X11 Stacking C/Roff
herbstluftwm X11 Tiling C++
Hyprland Wayland Tiling C++
i3 X11 Tiling C
icewm X11 Stacking C++/C/M4
jwm X11 Stacking C
kwin X11/Wayland Compositing C++
LabWC Wayland Stacking C/wlroots Openbox
marco X11 Stacking C metacity
metacity X11 Compositing C
mutter X11/Wayland Compositing C
mwm X11 Stacking C
niri Wayland Tiling Rust/GLSL/other PaperWM
Openbox X11 Stacking C
pekwm X11 Stacking C++/CMake/Perl/C aewm++
Qtile X11/Wayland Tiling Python
ratpoison X11 Kiosk C
river-classic/River Wayland Tiling Zig dwm, xmonad
spectrwm X11 Tiling C xmonad, dwm
Sway Wayland Tiling C/wlroots i3
sxmo-dwm X11 Tiling C dwm
twm X11 Tiling C
wayfire Wayland Stacking C++/wlroots compiz
Weston Wayland Stacking C
windowmaker X11 Stacking C/Shell/M4/Perl/Makefile/Emacs Lisp/other NeXTSTEP
xfwm4 X11 Compositing C/Makefile/Meson/other

See also