Status of this document
The desktop portion of this document is mid-conversion (starting early 2026) from a Kubuntu-based system to a Debian/Sway system. Lots of things aren't working yet, and it's not recommended to follow the guide as-is. In particular, the following things aren't working:
-
TODOs for booting
Figure out what should start on boot, on login, once per boot but not until after login, on tmux start, on new tmux pane start, etc. And how best to implement. Things that have been issues:
start Sway after terminal login.
# if [ -z "$WAYLAND_DISPLAY" ] && [[ "$XDG_VTNR" -eq 1 ]]; then # exec sway # fi #Run mount.sh upon login (if needed), but not upon tmux.
-
Desktop notifications
-
Auto-start of i-t_control_panel daemon
start dropbox
-
Inconsistent environment variables
Once boot stuff is figured out, here are all the environment variables that mostly sorted themselves out in Kubuntu but need more love now
-
exec ~/.config/sway/config.d/xdg-desktop-portalPATH should include ~/bin, ~/.local/bin, ~/.cargo/bin/export PATHexport XDG_DATA_DIRS="/usr/local/share:/usr/share:/var/lib/flatpak/exports/share"export XDG_CONFIG_HOME=/home/s/.config/WAYLAND_DISPLAY= whatever wayland sets it, but make sure it propagatesexport MOZ_ENABLE_WAYLAND=1export XDG_SESSION_TYPE=waylandexport XDG_CURRENT_DESKTOP=swayLet's try setting this in .config/xdg-desktop-portal/portals.conf as per https://whynothugo.nl/journal/2024/04/09/darkman-portal-configuration/
-
-
Style problems in this document
Fix stuff for this document, including
-
BUG: Saving hangs in nmxl mode with undo-tree enabled. Workaround is ctrl-G and then M-X undo-tree-mode but still.
-
We don't have a good way to show alternatives. stepalternatives breaks the formatting.
-
bottom nav is stuck in the middle column on Part index pages.
-
-
Control panel integration
-
Suspend button
-
Previous, Play/Pause, Next
-
Light or Dark
Foot terminal
Emacs
Wallpaper
Firefox
Chromium
-
-
Emacs problems
Try out all the EGLOT features (see docs at gnu.org).
Try out outline mode, including sorting out keybindings already in init.el
Incomplete IDE setup for Python, lisp, bash
Try using projectile to navigate within code in emacs
warning spam on startup
Try using straight? instead of use-package NOPE
-
Other problems
-
Note that libreoffice requires libreoffice-gtk3. Why not libreoffice-gtk4? why not libreoffice-qt6?Figure this out or give up and document it below.
Hibernation doesn't work
Encrypted hibernation doesn't work
Test if autologin is vulnerable during suspend.
Try laptop Tools: https://simondalvai.org/blog/debian-sway-v1/
Audio and video sharing on Zoom/Prevail/etc—untested. (see sway/config.d)
wofi or other launcher, i.e., always-on control box like f2, maybe keyed to pedal
direct, reliable control of chrome font size in Firefox and Chromium
Figure out how to make LAN naming consistent, i.e., should ssh foobar always work, or ssh foobar.local, or ssh foobar.venesia.aufrecht.org? currently it's a little inconsistent machine to machine. Part of that, but not all of it, is how we use ~/.ssh/config to automate cert usage.
-
Replace find with fd-find?
-
Faster GRUB timeout or GRUB debugging or something
sudo cp /etc/default/grub /etc/default/grub.orig (this makes a backup of your /etc/default/grub first)
sudo sed -i 's/^GRUB_TIMEOUT_STYLE=hidden/GRUB_TIMEOUT_STYLE=menu/' /etc/default/grub
sudo sed -i 's/^GRUB_TIMEOUT=0/GRUB_TIMEOUT=5/' /etc/default/grub
sudo sed -i 's/^#GRUB_DISABLE_OS_PROBER=false/GRUB_DISABLE_OS_PROBER=false/' /etc/default/grub
sudo update-grub
-
echo -e "# Enable password feedback\nDefaults pwfeedback" | sudo tee /etc/sudoers.d/pwfeedback
sudo chmod 0440 /etc/sudoers.d/pwfeedback
-
reduce user timeout. why? what was this for?
sudo mkdir -p /etc/systemd/system.conf.d && echo -e "# Reduce timeout (default = 90s)\n\n[Manager]\nDefaultTimeoutStopSec=15s" | sudo tee /etc/systemd/system.conf.d/99-systemtimeout.confsudo mkdir -p /etc/systemd/user.conf.d && echo -e "# Reduce timeout (default = 90s)\n\n[Manager]\nDefaultTimeoutStopSec=15s" | sudo tee /etc/systemd/user.conf.d/99-usertimeout.conf
-