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.)
 
(101 intermediate revisions by 20 users not shown)
Line 1: Line 1:
{{TOC right}}
{{TOC right}}
<!-- COMMENT FOR EDITORS


'''Alpine Linux has no official desktop.''' Older versions used Xfce4, but now, all GUI and graphical interfaces are community contributed. Environments such as LXDE, Mate, etc are available, but are not fully supported due to some dependencies.
Do not add any content about specific desktop environment or window manager in this page. Please add all the content to the respective wiki pages. If wiki page does not exist for the specific window manage, please create and add the content.


== Complete Desktops ==
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 is not a graphics-focused system, however there are several complete desktops packages available for installation:  
'''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]].


# [[XFCE Setup]]
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]].
# [[Alpine Newbies LXDE Desktop Environment]]
# [[Alpine Newbies Openbox Window Manager]]
# [[KDE]]
# [[Gnome Setup]]
==  Community Contributions ==


There are some contributions that will periodically be complete desktops available using the Community Repository Packages, like the [[Alpine Newbies MATE Desktop Environment|MATE Desktop environment]]; others need Wayland, causing some compatibility problems:
{{Tip|For servers, consider using [[Alpine_Configuration_Framework_Design|Alpine Configuration Framework (ACF)]] for security reasons.}}


# [[MATE]]
== Desktop environments ==
# [[Awesome(wm)_Setup|Awesome Window Manager]]


== Upstream and external ones ==
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.
* [[Xfce]]
* [[LXQt]]
* [[KDE|KDE Plasma]]
* [[GNOME]]
* [[MATE]]
* [[Cosmic|COSMIC]]
* {{Pkg|lomiri|arch=}}
* {{Pkg|lumina-desktop*|arch=}}
* {{Pkg|sxmo*}}


All of the original upstream desktops can be installed using the traditional Unix-like method of downloading and compiling them:
== Window managers ==


# [[Dwm]]
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.
# [[Alpine LXQT Desktop Environment]]


== Desktop emulation and gaming ==
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.


Alpine is capable of providing a good platform to play games and enjoy:
{|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
* [[Gaming on Alpine]]
|-
* [[Alpine games packages and options]]
| {{Pkg|2bwm|arch=}} || X11 || Stacking || C/Roff
* [[Alpine emulators packages and options]]
|| [https://www.hack.org/~mc/hacks/mcwm mcwm]
* [[Alpine games from upstreams sources]]
|-
* [[Alpine emulators from upstreams sources]]
| [[AwesomeWM|Awesome]] ||X11  || Tiling || Lua ||
* [[Steam]]
|-
 
| {{Pkg|berry|arch=}} || X11 || Stacking || C ||
== Tutorial series ==
|-
 
| {{Pkg|bspwm|arch=}} || X11 || Tiling || C ||
{| class="wikitable"
|-
|  {{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]] || 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 ||
|-
|-
! Previous required  !! What's next to read
| {{Pkg|windowmaker|arch=}} || X11 || Stacking || C/Shell/M4/Perl/Makefile/Emacs Lisp/other || NeXTSTEP
|-
|-
| [[Alpine newbie apk packages]] || [[Alpine Newbies Openbox Window Manager|Alpine Newbies: Xorg and Openbox]]
| {{Pkg|xfwm4|arch=}} || X11 || Compositing || C/Makefile/Meson/other ||  
|}
|}


== See Also ==
== See also ==
 
* [[Installation#Post-Installation|Post Installation]]
* [[Fonts|Fonts configuration and settings in alpine]]
* [[Wayland]]
* [[Alpine newbie]]
* [[Xorg]]
* [[Alpine newbie install manual]]
* [[Display manager]]
* [[Alpine newbie apk packages]]
* [https://wiki.archlinux.org/title/Desktop_environment Desktop environment - Archwiki]
* [[Alpine newbie developer]]
* [https://wiki.gentoo.org/wiki/Desktop_environment Desktop environment - Gentoo Wiki]
* [[Alpine newbie lammers]]


[[Category:Desktop]]
[[Category:Desktop]]
[[Category:Multimedia]]
[[Category:Desktop Environments]]
[[Category:Newbie]]
[[Category:Window Managers]]
[[Category:Compositor]]

Latest revision as of 04:37, 15 November 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, as lesser use cases now require glibc, several Alpine Linux desktop environments have been benchmarked to be competitive for both speed and memory, and arguably, there is a reduced attack surface through the use of musl and BusyBox.

All window managers and desktop environments that are available in Alpine Linux are listed in 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 reasons.

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.

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. A stacking (a.k.a. floating) or tiling/dynamic layout is 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 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