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:

  1. 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

  2. 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-portal

      PATH should include ~/bin, ~/.local/bin, ~/.cargo/bin/

      export PATH

      export 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 propagates

      export MOZ_ENABLE_WAYLAND=1

      export XDG_SESSION_TYPE=wayland

      export XDG_CURRENT_DESKTOP=sway Let's try setting this in .config/xdg-desktop-portal/portals.conf as per https://whynothugo.nl/journal/2024/04/09/darkman-portal-configuration/

  3. 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.

  4. Control panel integration

    • Suspend button

    • Previous, Play/Pause, Next

    • Light or Dark

      • Foot terminal

      • Emacs

      • Wallpaper

      • Firefox

      • Chromium

  5. 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

  6. 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.conf sudo 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