Title: Installing Alpine as a Desktop
       Author: Solène
       Date: 30 April 2023
       Tags: linux alpine
       Description: In this article, I'll share a bit about my experience for
       installing Alpine linux to get it working as a desktop system. This is
       mostly a cheatsheet with instructions and documentation link.
       
       # Introduction
       
       While I like Alpine because it's lean and minimal, I have always
       struggled to install it for a desktop computer because of the lack of
       "meta" packages that install everything.
       
       However, there now is a nice command that just picks your desktop
       environment of choice and sets everything up for you.
       
       This article is mostly a cheat sheet to help me remember how to install
       Alpine using a desktop environment, NetworkManager, man pages etc... 
       Because Alpine is still a minimalist distribution and you need to
       install everything you think is useful.
       
 (HTM) Alpine Linux official project page
       
       UPDATE 2023-05-03: I've been told that such a guide already existed in
       Alpine wiki 😅.
       
 (HTM) Alpine Wiki about Post installation
       
       # Setup
       
       During the installation process started by `setup`, just type
       `syscrypt` for full disk encryption installation.
       
       ## Installing a desktop environment
       
       The most missing part when using Alpine for me was figuring out which
       packages to install and which services to run to get a working GNOME or
       Plasma.
       
       But now, just run `setup-desktop` and enjoy.
       
       ## Installing man pages
       
       A few packages are required to be able to read man pages.
       
       ```
       # apk add docs less
       ```
       
       If a man page is missing, search for the package name with the `-doc`
       suffix, using `apk search $package | grep doc`.
       
       ## Internationalization
       
       If you want your software in a language other than English, just use
       `apk add lang`, this will install the -lang packages for each installed
       package.
       
       ## NetworkManager
       
       By default, the installer will ask you to set up networking, but if you
       want NetworkManager, you need to install it, enable it and disable the
       other services.
       
       As I prefer to avoid duplication of documentation, please refer to the
       relevant Wiki page.
       
 (HTM) Alpine Wiki about NetworkManager
       
       You may want to add a few more packages:
       
       ```
       apk add networkmanager-tui
       apk add networkmanager-openvpn-lang
       apk add networkmanager-openvpn
       apk add networkmanager-wifi
       ```
       
       ## Bluetooth
       
       Nothing special for Bluetooth, except NetworkManager will make it
       easier to use.  The wiki has setup instructions.
       
 (HTM) Alpine Wiki about Bluetooth
       
       ## Use a recent kernel
       
       By default, Alpine Linux sticks to Long Term Support (LTS) kernels,
       which is fine, but for newer hardware, you may want to run the latest
       kernel available.
       
       Fortunately, the Alpine community repository provides the `linux-edge`
       package for the latest version.
       
       ## Fonts
       
       You may want to install some extra fonts, because by default there is
       only the bare minimum, and your programs will look ugly.
       
 (HTM) Alpine Wiki about Fonts
       
       ## Emojis
       
       Having working emojis is important for me now, and Alpine only provide
       a default emoji font with black-and-white pictures, without the
       complete set.
       
       It's a single package to add in order to get your emojis working.  The
       revelant Wiki page is linked below.
       
 (HTM) Alpine Wiki about Emojis
       
       ## Keep binary packages in cache
       
       If you want to keep all the installed packages in cache (so you could
       keep them for reinstalling, or share on your network), it's super easy.
       
       Run `setup-apkcache` and choose a location (or even pass it as a
       parameter), you're done.  It's very handy for me because when I need to
       use Alpine in a VM, i just hook it to my LAN cache and I don't have to
       download packages again and again.
       
       # Conclusion
       
       Alpine Linux is becoming a serious, viable desktop Linux distribution,
       not just for containers or servers.  It's still very minimalist and
       doesn't hold your hand, so while it's not for everyone, it's becoming
       accessible to enthusiasts and not just hardcore users.
       
       I suppose it's a nice choice for people who enjoy minimalism and don't
       like SystemD.
       
       # Credits
       
       Thanks to raspbeguy for the various hints about Alpine, and for making
       me trying it once again.