aboutsummaryrefslogtreecommitdiff
path: root/blog/alpine-desktop/index.org
diff options
context:
space:
mode:
Diffstat (limited to 'blog/alpine-desktop/index.org')
-rw-r--r--blog/alpine-desktop/index.org260
1 files changed, 0 insertions, 260 deletions
diff --git a/blog/alpine-desktop/index.org b/blog/alpine-desktop/index.org
deleted file mode 100644
index 2648123..0000000
--- a/blog/alpine-desktop/index.org
+++ /dev/null
@@ -1,260 +0,0 @@
-#+title: Alpine Linux as a Desktop OS
-#+date: 2022-12-23
-#+description: Learn how to set up Alpine Linux with Sway to use as a desktop operating system.
-#+filetags: :linux:
-
-* Isn't Alpine Linux for Servers?
-This is a question I see a lot when people are presented with an example
-of Alpine Linux running as a desktop OS.
-
-While Alpine is small, fast, and minimal, that doesn't stop it from
-functioning at a productive level for desktop users.
-
-This post is documentation of how I installed and modified Alpine Linux
-to become my daily desktop OS.
-
-* Installation
-Note that I cover the installation of Alpine Linux in my other post, so
-I won't repeat it here: [[../alpine-linux/][Alpine Linux: My New
-Server OS]].
-
-Basically, get a bootable USB or whatever you prefer with Alpine on it,
-boot the ISO, and run the setup script.
-
-#+begin_src sh
-setup-alpine
-#+end_src
-
-Once you have gone through all the options and installer finishes
-without errors, reboot.
-
-#+begin_src sh
-reboot
-#+end_src
-
-* Initial Setup
-Once Alpine is installed and the machine has rebooted, login is as root
-initially or =su= to root once you log in as your user. From here, you
-should start by updating and upgrading the system in case the ISO was
-not fully up-to-date.
-
-#+begin_src sh
-# Update and upgrade system
-apk -U update && apk -U upgrade
-
-# Add an editor so we can enable the community repository
-apk add nano
-#+end_src
-
-You need to uncomment the =community= repository for your version of
-Alpine Linux.
-
-For v3.17, the =repositories= file should look like this:
-
-#+begin_src sh
-nano /etc/apk/repositories
-#+end_src
-
-#+begin_src conf
-#/media/sda/apks
-http://mirrors.gigenet.com/alpinelinux/v3.17/main
-http://mirrors.gigenet.com/alpinelinux/v3.17/community
-#http://mirrors.gigenet.com/alpinelinux/edge/main
-#http://mirrors.gigenet.com/alpinelinux/edge/community
-#http://mirrors.gigenet.com/alpinelinux/edge/testing
-#+end_src
-
-#+begin_src sh
-# Add the rest of your packages
-apk add linux-firmware iwd doas git curl wget
-
-# Add yourself to the wheel group so you can use the doas command
-adduser $USER wheel
-#+end_src
-
-* Window Manager (Desktop)
-The [[https://wiki.alpinelinux.org/wiki/Sway][Sway installation guide]]
-has everything you need to get Sway working on Alpine.
-
-However, I'll include a brief list of the commands I ran and their
-purpose for posterity here.
-
-#+begin_src sh
-# Add eudev and set it up
-apk add eudev
-setup-devd udev
-
-# Since I have Radeon graphics, I need the following packages
-apk add mesa-dri-gallium mesa-va-gallium
-
-# Add user to applicable groups
-adduser $USER input
-adduser $USER video
-
-# Add a font package
-apk add ttf-dejavu
-
-# Add the seatd daemon
-apk add seatd
-rc-update add seatd
-rc-service seatd start
-
-# Add user to seat group
-adduser $USER seat
-
-# Add elogind
-apk add elogind polkit-elogind
-rc-update add elogind
-rc-service elogind start
-
-# Finally, add sway and dependencies
-apk add sway sway-doc
-apk add \ # Install optional dependencies:
- xwayland \ # recommended for compatibility reasons
- foot \ # default terminal emulator
- bemenu \ # wayland menu
- swaylock swaylockd \ # lockscreen tool
- swaybg \ # wallpaper daemon
- swayidle # idle management (DPMS) daemon
-#+end_src
-
-Once you have the packages installed and set-up, you need to export the
-=XDG_RUNTIME_DIR= upon login. To do this, edit your =.profile= file.
-
-If you use another shell, such as =zsh=, you need to edit that shell's
-profile (e.g., =~/.zprofile=)!
-
-#+begin_src sh
-nano ~/.profile
-#+end_src
-
-Within the file, paste this:
-
-#+begin_src sh
-if test -z "${XDG_RUNTIME_DIR}"; then
- export XDG_RUNTIME_DIR=/tmp/$(id -u)-runtime-dir
- if ! test -d "${XDG_RUNTIME_DIR}"; then
- mkdir "${XDG_RUNTIME_DIR}"
- chmod 0700 "${XDG_RUNTIME_DIR}"
- fi
-fi
-#+end_src
-
-Once that's complete, you can launch Sway manually.
-
-#+begin_src sh
-dbus-run-session -- sway
-#+end_src
-
-** Personal Touches
-I also added the following packages, per my personal preferences and
-situation.
-
-#+begin_src sh
-doas apk add brightnessctl \ # Brightness controller
- zsh \ # Shell
- firefox \ # Browser
- syncthing \ # File sync service
- wireguard-tools \ # Wireguard VPN
- gomuks \ # CLI Matrix client
- neomutt \ # CLI email client
- thunderbird \ # GUI email client
- gnupg # GPG key manager
-#+end_src
-
-From here, I use my Syncthing storage to pull all the configuration
-files I stored from prior desktops, such as
-[[https://git.sr.ht/~cmc/dotfiles][my dotfiles]].
-
-* Resolving Issues
-** WiFi Issues
-I initially tried to set up my Wi-Fi the standard way with =iwd=, but it
-didn't work.
-
-Here is what I initially tried (I did all of this as =root=):
-
-#+begin_src sh
-apk add iwd
-rc-service iwd start
-iwctl station wlan0 connect <SSID> # This will prompt for the password
-rc-update add iwd boot && rc-update add dbus boot
-#+end_src
-
-Then, I added the Wi-Fi entry to the bottom of the networking interface
-file:
-
-#+begin_src sh
-nano /etc/network/interfaces
-#+end_src
-
-#+begin_src conf
-auto wlan0
-iface wlan0 inet dhcp
-#+end_src
-
-Finally, restart the networking service:
-
-#+begin_src sh
-rc-service networking restart
-#+end_src
-
-My Wi-Fi interface would receive an IP address from the router, but it
-could not ping anything in the network. To solve the Wi-Fi issues, I
-originally upgraded to Alpine's =edge= repositories, which was
-unnecessary.
-
-Really, the solution was to enable the =NameResolvingService=resolvconf=
-in =/etc/iwd/main.conf=.
-
-#+begin_src sh
-doas nano /etc/iwd/main.conf
-#+end_src
-
-#+begin_src conf
-[Network]
-
-NameResolvingService=resolvconf
-#+end_src
-
-Once I finished this process, my Wi-Fi is working flawlessly.
-
-** Sound Issues
-Same as with the Wi-Fi, I had no sound and could not control the
-mute/unmute or volume buttons on my laptop.
-
-To resolve this, I installed
-[[https://wiki.alpinelinux.org/wiki/PipeWire][pipewire]].
-
-#+begin_src sh
-# Add your user to the following groups
-addgroup $USER audio
-addgroup $USER video
-
-# Install pipewire and other useful packages
-apk add pipewire wireplumber pipewire-pulse pipewire-jack pipewire-alsa
-#+end_src
-
-Finally, I needed to add =/usr/libexec/pipewire-launcher= to my
-=.config/sway/config= file so that Pipewire would run every time I
-launched sway.
-
-#+begin_src sh
-nano ~/.config/sway/config
-#+end_src
-
-#+begin_src conf
-# Run pipewire audio server
-exec /usr/libexec/pipewire-launcher
-
-# Example audio button controls
-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5%
-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5%
-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
-bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
-#+end_src
-
-Note that I do not use bluetooth or screen sharing, so I won't cover
-those options in this post.
-
-Other than these issues, I have a working Alpine desktop. No other
-complaints thus far!