Desktop environments and Window managers: Difference between revisions
Prabuanand (talk | contribs) (cleaned up links in see also section) |
(1. Added budgie* to list of desktop environments; 2. Added subsection →Mobile/tablet UI: ; moved sxmo* there from Desktop Environments listing) |
||
| (30 intermediate revisions by 5 users not shown) | |||
| Line 6: | Line 6: | ||
This page lists only the window managers and desktop environments for which packages are available in Alpine Linux. Do not add unsupported software here. | This page lists only the window managers and desktop environments for which packages are available in Alpine Linux. Do not add unsupported software here. | ||
--> | --> | ||
'''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 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 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. | |||
* {{Pkg|budgie*}} | |||
* [[COSMIC]] | |||
* [[GNOME]] | |||
* [[KDE|KDE Plasma]] | |||
* {{Pkg|lomiri*|arch=}} | |||
* [[Lumina]] | |||
* [[LXQt]] | * [[LXQt]] | ||
* [[MATE]] | * [[MATE]] | ||
* [[Xfce]] | |||
== | === Mobile/tablet UI === | ||
Certain desktop environments have been ported for use as ''mobile user interfaces'' (UI) while other mobile/tablet UIs may have been developed using other existing unix toolkits. ''Convergent desktop environments'' are designed with a view to be consistent regardless of the platform used (pc, mobile, tablet, etc) such as the aforementioned '''lomiri''' environment. | |||
== | * {{Pkg|phosh*}} - Wayland shell for GNOME on [https://phosh.mobi/ mobile devices]. | ||
( | * {{Pkg|plasma-mobile*}} - [https://plasma-mobile.org/ Mobile UI using a KDE Plasma foundation]. | ||
* {{Pkg|sxmo*}} - [https://sxmo.org/ Minimalist mobile Linux environment.] | |||
** [ | |||
** [ | |||
== | == 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 [[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;" | |||
! WM Name !! Protocol!! Style !! Toolkit!!class="unsortable"|Inspiration | |||
|- | |||
| {{Pkg|2bwm|arch=}} || X11 || Stacking || C/Roff | |||
|| [https://www.hack.org/~mc/hacks/mcwm mcwm] | |||
|- | |||
| [[AwesomeWM|Awesome]] ||X11 || Tiling || Lua || | |||
|- | |||
| {{Pkg|berry|arch=}} || X11 || Stacking || C || | |||
|- | |||
| {{Pkg|bspwm|arch=}} || X11 || Tiling || C || | |||
|- | |||
| {{Pkg|cage |arch=}} || Wayland || Kiosk || C/wlroots || {{Pkg|ratpoison|arch=}} | |||
|- | |||
| {{Pkg|cagebreak|arch=}} || Wayland || Tiling ||C/wlroots || {{Pkg|ratpoison|arch=}}, {{Pkg|cage|arch=}} | |||
|- | |||
| {{Pkg|compiz|arch=}} || X11 || Compositing || C++/C/Python || | |||
|- | |||
| {{Pkg|cwm|arch=}} || X11 || Stacking || C || | |||
|- | |||
| {{Pkg|dk|arch=}} || X11 || Tiling || C || {{Pkg|dwm|arch=}}, {{Pkg|bspwm|arch=}}, [https://xmonad.org/ xmonad] | |||
|- | |||
| {{Pkg|dwl|arch=}} || Wayland || Tiling || C/wlroots||[[dwm]] | |||
|- | |||
| [[dwm]] || X11 || Tiling || C || | |||
|- | |||
| [[Fluxbox]] || X11 || Stacking || C++ || [https://sourceforge.net/projects/blackboxwm/ blackbox] | |||
|- | |||
| {{Pkg|flwm|arch=}} || X11 || Stacking || C++/FLTK || [https://all-day-breakfast.com/wm2/ wm2] | |||
|- | |||
| {{Pkg|gamescope|arch=}} || X11/Wayland || Compositing || C++/C/Lua || | |||
|- | |||
| {{Pkg|goomwwm||- | |||
| {{Pkg|icewm|arch=}} || X11 || Stacking || C++/C/M4 || | |||
arch=}} || X11 || Stacking || C/Roff || | |||
|- | |||
| {{Pkg|herbstluftwm|arch=}} || X11 || Tiling || C++ || | |||
|- | |||
| [[Hyprland]] || Wayland || Tiling || C++ || | |||
|- | |||
| [[I3wm|i3]] || X11 || Tiling || C || | |||
|- | |||
| {{Pkg|icewm|arch=}} || X11 || Stacking || C++/C/M4 || | |||
|- | |||
| {{Pkg|jwm|arch=}} || X11 || Stacking || C || | |||
|- | |||
| {{Pkg|kwin|arch=}} || X11/Wayland || Compositing || C++ || | |||
|- | |||
| [[LabWC]] || Wayland || Stacking || C/wlroots||[[Openbox]] | |||
|- | |||
| {{Pkg|marco|arch=}} || X11 || Stacking || C || {{Pkg|metacity|arch=}} | |||
|- | |||
| {{Pkg|metacity|arch=kwin}} || X11 || Compositing || C || | |||
|- | |||
| {{Pkg|mutter|arch=}} || X11/Wayland || Compositing || C || | |||
|- | |||
| {{Pkg|mwm|arch=}} || X11 || Stacking || C || | |||
|- | |||
| {{Pkg|niri|arch=}} || Wayland || Tiling || Rust/GLSL/other || [https://github.com/paperwm/PaperWM PaperWM] | |||
|- | |||
| [[Openbox]] || X11 || Stacking || C || | |||
|- | |||
| {{Pkg|pekwm|arch=}} || X11 || Stacking || C++/CMake/Perl/C || [http://sapphire.sourceforge.net/ aewm++] | |||
|- | |||
| [[Qtile]] || X11/Wayland || Tiling || Python || | |||
|- | |||
| {{Pkg|ratpoison|arch=}} || X11 || Kiosk || C || | |||
|- | |||
| [[River|river-classic/River]] || Wayland || Tiling || Zig || [[dwm]], [https://xmonad.org/ xmonad] | |||
|- | |||
| {{Pkg|spectrwm |arch=}} || X11 || Tiling || C|| [https://xmonad.org/ xmonad], [[dwm]] | |||
|- | |||
| [[Sway]] || Wayland || Tiling || C/wlroots || [[I3wm|i3]] | |||
|- | |||
| {{Pkg|sxmo-dwm|arch=}} || X11 || Tiling || C || {{Pkg|dwm|arch=}} | |||
|- | |||
| [[twm]] || X11 || Tiling || C || | |||
|- | |||
| {{Pkg|wayfire|arch=}} || Wayland || Stacking || C++/wlroots || {{Pkg|compiz|arch=}} | |||
|- | |||
| [[Weston]] || Wayland || Stacking || C || | |||
|- | |||
| {{Pkg|windowmaker|arch=}} || X11 || Stacking || C/Shell/M4/Perl/Makefile/Emacs Lisp/other || NeXTSTEP | |||
|- | |||
| {{Pkg|xfwm4|arch=}} || X11 || Compositing || C/Makefile/Meson/other || | |||
|} | |||
== See also == | == See also == | ||
Latest revision as of 02:34, 14 January 2026
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.
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.
Mobile/tablet UI
Certain desktop environments have been ported for use as mobile user interfaces (UI) while other mobile/tablet UIs may have been developed using other existing unix toolkits. Convergent desktop environments are designed with a view to be consistent regardless of the platform used (pc, mobile, tablet, etc) such as the aforementioned lomiri environment.
- phosh* - Wayland shell for GNOME on mobile devices.
- plasma-mobile* - Mobile UI using a KDE Plasma foundation.
- sxmo* - Minimalist mobile Linux environment.
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 |