# Migration record Files edited outside this repository. Backups of every file listed here, taken immediately before the edits, are in `/data/udt-backup/`. ## Phase 1 (rofi), 2026-09-11 ### Call sites repointed | File | Was | Now | | --- | --- | --- | | `~/bin/blackpearl-sshmenu.sh` | `launchers/type-2/style-1` | `udt/list.rasi` | | `~/bin/github-repos.sh` | `launchers/type-2/style-1` | `udt/list.rasi` | | `~/bin/hypr-windows.sh` | `launchers/type-2/style-1` | `udt/list.rasi` | | `~/bin/blackpearl-emoji.sh` | `darknix/runner.rasi` | `udt/list.rasi` | | `~/bin/rofi-qemu.sh` | `darknix/runner.rasi` | `udt/list.rasi` | | `~/bin/rofipass` | `elegantVagrant/elegantvagrant-dark` | `udt/list.rasi` | | `~/.config/hypr/sections/keybindings.lua` | `launchers/type-2/style-1` | `udt/list.rasi` | | `~/bin/qar-scrotmenu.sh` | `darknix/scrotmenu.rasi` | `udt/menu.rasi` | | `~/bin/blackpearl-notes.sh` | `darknix/notes.rasi` | `udt/menu.rasi` | | `~/.config/rofi/powermenu/type-4/powermenu.sh` | `powermenu/type-4/style-5` | `udt/menu.rasi` | | `~/bin/blackpearl-appsmenu.sh` | `darknix/appmenu.rasi` | `udt/launcher.rasi` | | `~/.config/rofi/launchers/type-1/launcher.sh` | `launchers/type-1/style-5` | `udt/launcher.rasi` | ### Other edits - `~/bin/wallp`: `finalize()` now calls `udt-accent` with `~/.cache/wal/wpaper`, guarded so a failure cannot stop the wallpaper being set. - `~/bin/rofipass`: dropped a `-width 1000` flag. It is not a rofi 2.0.0 option (width moved into the theme), so it was silently doing nothing. The `-theme-str` width override further down the same script is the modern form and was left alone. - `~/.config/rofi/powermenu/type-4/powermenu.sh`: this script uses `$dir` for two different themes, its main menu and its confirmation dialog. Both now point into `udt/`, the menu at `powermenu.rasi` and the dialog at `confirm.rasi`. The script's `yes` and `no` variables also changed. They held Private Use Area codepoints that only the `feather` font carries, so they could not be drawn in the theme's own Nerd Font. They are now the Material circled check and close, U+F05E0 and U+F0159, which Inconsolata Nerd Font Mono contains. ### Not a call site `~/bin/ddgr_search.py` was listed in the original plan but is not a call site. It is a rofi script-mode plugin, invoked *by* rofi rather than invoking it, so its appearance comes from whatever command runs it. No keybinding or waybar button currently does. ### Removed All five superseded theme directories were moved to `/data/udt-backup/old-rofi-themes/`: `darknix/`, `elegantVagrant/`, `launchers/`, `applets/`, `powermenu/`. Two of them held scripts that are bound to keys, so those moved to `~/bin/` first and were repointed at `udt/`: | Was | Now | Bound to | | --- | --- | --- | | `rofi/powermenu/type-4/powermenu.sh` | `~/bin/udt-powermenu.sh` | Mod+x | | `rofi/launchers/type-1/launcher.sh` | `~/bin/udt-launcher.sh` | ALT+F2 | `~/.config/hypr/sections/keybindings.lua` now calls them by name. `applets/` turned out not to be in use after all: its only reference is `~/.config/waybar/modules/mpd.jsonc`, which is not in waybar's include list. `~/.config/rofi/` now holds `udt/` plus `config.rasi`, `images/` and `rofi-symbols/`. The `colors/` directory (the adi1090x palettes) has no remaining references and could go too. ## Phase 2 (Qt), 2026-09-11 `~/.bashrc`, two edits. Backup in `/data/udt-backup/`. The GPG PIN dialog was the one Qt6 app the theme never reached. It is drawn by `pinentry-qt`, which despite the name links Qt6, so the theme should have applied. It did not, because `QT_QPA_PLATFORMTHEME` never reaches it. Hyprland sets that variable with `hl.env`, which only covers processes Hyprland itself spawns. `gpg-agent` is not one: `.bashrc` spawns it, via the `gpg-connect-agent updatestartuptty` call near the end of the file, and it then outlives that shell reparented to init. Every `pinentry` inherits the agent's environment, so the dialog fell back to Qt6's built-in Fusion style. - `export QT_QPA_PLATFORMTHEME=qt6ct` added immediately **above** the `gpg-connect-agent` call. The position matters: the agent captures its environment when it is spawned, so an export below that line is too late. The agent persists for the session, so only the first login shell decides. - `SSH_ASKPASS` repointed from `pinentry-qt5` to `pinentry-qt`. The former is genuinely Qt5 and was themed by nothing. The change takes effect for an agent started after it. To apply it without logging out: `gpgconf --kill gpg-agent`, then any shell command that touches gpg. That drops the cached PIN, so the next signature prompts once. Verify with: tr '\0' '\n' < /proc/$(pgrep -x gpg-agent)/environ | grep QT_QPA ### Deleted `~/.xprofile`, an X11 leftover that nothing under Wayland reads. It started `picom`, `xscreensaver`, `numlockx`, `clipmenud`, `redshift-gtk`, `setxkbmap`, `xrdb` and `lightsOn.sh`, none of which were running, and it also started `dunst`, which is running but is started by `udt-accent` now. Nothing sources the file: no reference in `.bashrc`, `.bash_profile`, `/etc/profile.d/` or the Hyprland config. `CM_LAUNCHER=rofi` went from `.bashrc` at the same time. It configured `clipmenu`, the X11 clipboard manager `.xprofile` started, which Wayland has already superseded: `CTRL + SHIFT + l` runs `cliphist` through rofi, and `wl-paste` watches the clipboard. The `clipmenu` and `clipmenud` packages are still installed and can go. ## Out of scope `ronema` (rofi NetworkManager applet) was excluded: no longer used, pending archival.