🦊

Ubuntu Server Desktop

Configs for Ubuntu Server 24.04 Noble and wlroots (sway).

apt config

Avoid cruft and possibly break things.

Disable apt from installing recommended and suggested packages:

$ cat /etc/apt/apt.conf
APT::Install-Recommends "false";
APT::Install-Suggests "false";

nb: disabling Recommends can break packages which make incorrect assumptions in debian/control.

apt install

“DE”

vim \
foot \
tmux \
mutt \
mailutils \
sway \
swaylock \
swayidle \
waybar \
bemenu \
grim \
slurp \
imv \
mako-notifier \
pavucontrol \
alsa-utils \
libreoffice \
python3-pdfminer \
fonts-dejavu \
jmtpfs \
mesa-utils \
xwayland \
brightnessctl \
xdg-desktop-portal \
xdg-desktop-portal-wlr \

audio

pipewire \
pipewire-pulse \
wireplumber \
mpv \
cmus \
mpd \
ncmpcpp \

graphics

ffmpeg \
rawtherapee \
gimp \
shotcut \
inkscape \
libimage-exiftool-perl \

dev

man-db \
git \
tig \
ripgrep \
build-essential \
p7zip-full \
unrar \
dput \
devscripts \
meson \
black \
mypy \
pyflakes3 \
pylint \
python3-pip \
python3-venv \
pkgconf \
ansible \
qemu-kvm \
virt-manager \
qemu-system-modules-spice \
gir1.2-spiceclientgtk-3.0 \

crypto

pass \
gnupg \
pcscd \
scdaemon \
yubikey-manager \
signing-party \

networking

rsync \
netcat-openbsd \
nmap \
network-manager \
dnsmasq \
ufw \
links2

network manager

To use network manager instead of netplan:

$ cat /etc/NetworkManager/conf.d/manage-all.conf 
[keyfile]
unmanaged-devices=none
$ # delete other /etc/netplan/*.yaml
$ sudo cat /etc/netplan/00-nm.yaml
network:
  version: 2
  renderer: NetworkManager
$ sudo netplan generate
$ sudo netplan apply
$ sudo systemctl disable systemd-networkd-wait-online.service 
$ sudo reboot

email

sudo apt install postfix
sudo dpkg-reconfigure postfix

sway

In the main sway config, load additional dotfiles based on hostname:

include "~/.config/sway/config.d/$(cat /etc/hostname)"

Set compose key to caps:

input type:keyboard {
    xkb_options compose:caps
}   

Remove borders and set gaps:

default_border none
default_floating_border pixel
gaps inner 10
gaps outer 0

backlight

Set a value between 0 and 255:

# replace `amdgpu_bl1` with whatever is appropriate to your system

# max brightness
echo 255 | sudo tee /sys/class/backlight/amdgpu_bl1/brightness 

# turn off backlight
echo 0 | sudo tee /sys/class/backlight/amdgpu_bl1/brightness

colorscheme

spacemacs.

base16 all the things.

glyphs

For waybar defaults, download Font Awesome 6, rename file without spaces (e.g. fa-6-solid-900.otf), and copy to /usr/share/fonts/opentype/.

snap

Firefox snap does not work well without gdm and the snap yt-dlp cannot use firefoxes cookies, so I don’t use them.

removal

Some of this only applies to Ubuntu Desktop:

sudo apt remove gdm3 \
  cups cups-* \
  avahi-daemon
sudo apt autoremove
sudo snap remove thunderbird

firefox (amd64 only)

firefox install

The Firefox snap will not use the systems wlr XDG portals. So, xdg-open will not open. gdm could be used as a fallback.

Take caution to avoid the unofficial “Mozilla Team” on Launchpad. It is a community group who are unaffiliated with Mozilla. Their versions lag. Better to trust upstream.

Mozilla’s officially packages their own debs.. Mostly follow that guide. Adjust with:

Set source:

$ cat /etc/apt/sources.list.d/mozilla.sources
Types: deb
URIs: http://packages.mozilla.org/apt
Suites: mozilla
Components: main
Signed-By: /etc/apt/trusted.gpg.d/packages.mozilla.org.asc
$ cat /etc/apt/preferences.d/mozilla 
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000

Package: firefox*
Pin: release o=Ubuntu
Pin-Priority: -1

Make sure to remove before installing:

sudo snap remove firefox
sudo apt install firefox

firefox config

Use profiles and Firefox Containers.

Addons: