I was really excited when I learned that Valve's Steam Deck has a "Desktop Mode". This means that I can easily dock it and use it as it's a fully fledged desktop computer wherever I go.
By default, it's running Arch Linux and KDE Plasma. As I'm not super used to KDE, I decided to try installing Cinnamon desktop instead. The process wasn't as straightforward at time of writing so I'm sharing what I went through, in case it's useful for others.
sudo steamos-readonly disable sudo pacman-key --populate archlinux sudo pacman -Sy archlinux-keyring sudo pacman -Syu sudo pacman -S base-devel linux-api-headers glibc binutils gcc git libarchive
Some Cinnamon packages require Yay. This step is optional, but Yay will probably be useful down the line.
cd /opt sudo git clone https://aur.archlinux.org/yay.git sudo sudo chown -R deck:deck ./yay cd yay makepkg -si
sudo pacman -S cinnamon gnome-terminal
Steam Deck has a series of scripts that allow for switching between "Desktop Mode" and "Gaming Mode". As to not disrupt these flows, I'm just replacing the binary being launched from Plasma to Cinnamon's in
sudo cp /usr/bin/startplasma-steamos-oneshot /usr/bin/startplasma-steamos-oneshot.old sudo sed -i 's#CHAINED_SESSION="/usr/bin/startplasma-x11"#CHAINED_SESSION="/usr/bin/cinnamon-session-cinnamon"#' /usr/bin/startplasma-steamos-oneshot
Steam Deck has a useful "Return to Gaming Mode" shortcut on the desktop that can be used to quickly switch back from Desktop Mode. This is merely a quick way to log off, but Cinnamon uses a different mechanism to achieve it, so we can patch that up too.
cp ~/Desktop/Return.desktop ~/Desktop/Return.desktop.old sed -i -E 's/^Exec=.*/Exec=cinnamon-session-quit --logout --no-prompt/' ~/Desktop/Return.desktop
After installing Cinnamon and verifying it works, I decided to remove most of Plasma to free up some space. Make sure you reboot and verify everything works fine before this step!
pacman -R plasma-browser-integration plasma-desktop plasma-disks plasma-firewall plasma-integration plasma-nm plasma-pa plasma-systemmonitor plasma-thunderbolt plasma-vault plasma-workspace plasma-workspace-wallpapers plasma-wayland-session powerdevil systemsettings plasma-meta kdeplasma-addons kgamma5 khotkeys kinfocenter sddm-kcm dolphin kwrite oxygen milou kwrited kwayland-server kwin kwayland-server kwallet-pam kwayland-integration ksystemstats ksshaskpass kscreenlocker kscreen kmenuedit kmenuedit kde-gtk-config kde-cli-tools kactivitymanagerd kuserfeedback krunner kdesu discover breeze breeze-icons kdecoration