# sddm-theme-udt An SDDM login theme for the unified-desktop-theme (UDT) family. It draws the current wallpaper on every screen, pins the login panel to one screen, and takes its colours from the UDT palette, including the wallpaper-snapped accent. ## How it is wired `udt-accent`, in the UDT repo, writes the live palette to `~/.local/share/udt/sddm-theme.conf` on every wallpaper change. Root installs `/usr/share/sddm/themes/udt/theme.conf.user` as a symlink to that file, which SDDM merges into the theme config at every greeter start. Wallpaper and accent need no root re-run; only theme code changes do. Set `uiScreen` in the root-owned `theme/theme.conf` to pin the login panel to a named screen; leave it empty for the primary screen. It does not belong in the generated `theme.conf.user`, which is overwritten on every wallpaper change. ## Panel The greeter draws a full-height panel on the left edge, `panelWidth` of the screen wide (0.20 by default), frosted over the wallpaper with square corners. From top to bottom it shows the clock (`timeFormat`) and date (`dateFormat`), the `greeting`, the avatar, one credential slot, the power row, and the session selector at the bottom. If you override `dateFormat`, quote any value containing a comma (for example `dateFormat="dddd, d MMMM"`): SDDM reads the config through QSettings, which treats an unquoted comma as a list, and the date then comes out empty. The credential slot is staged: type the username, confirm, and it slides out to reveal the password; confirm again to log in. Esc or the back chevron returns to the username. Power icons come from the icon theme the appearance drawer selected. `udt-accent` resolves them and writes absolute paths into the generated `theme.conf.user`, and they keep the colours the theme ships; when a theme has no match, the bundled `theme/icons/*.svg` draw, tinted to the palette. ## Install The theme code is copied by root, then SDDM is pointed at it. Both are one-time root edits; run them in a root shell: install -d /usr/share/sddm/themes/udt cp -r /theme/. /usr/share/sddm/themes/udt/ rm -f /usr/share/sddm/themes/udt/components/LoginCard.qml ln -sfn /home/you/.local/share/udt/sddm-theme.conf /usr/share/sddm/themes/udt/theme.conf.user Replace `/home/you` with the login user's home. In a root shell `$HOME` is root's, so the symlink must be the literal path; if it points at `/root`, the greeter finds no live config and silently falls back to the static `theme.conf` palette and the bundled power icons. Select the theme by setting `Current=udt` under `[Theme]` in `/etc/sddm.conf`. That file has the highest precedence in SDDM's config order (`/usr/lib/sddm/sddm.conf.d`, then `/etc/sddm.conf.d`, then `/etc/sddm.conf`, last wins), so a drop-in under `/etc/sddm.conf.d` does not work here: the stock `Current=breeze` in `/etc/sddm.conf` overrides it. The same file carries `[General] InputMethod`. SDDM ships with `InputMethod=qtvirtualkeyboard`, which pops the on-screen keyboard over the greeter, and the theme cannot switch that off. Blank it in `/etc/sddm.conf` to disable the keyboard: InputMethod= ## Test sddm-greeter-qt6 --test-mode --theme "$PWD/theme" ## License GPLv2 only. See `LICENSE`. ## Development Approach This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback. All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions. The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability.