aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-11 09:35:53 +0200
committerDanilo M. <danix@danix.xyz>2026-09-11 09:35:53 +0200
commit90e3eded1c781c160dcc1dfc4a32b3cf68157d22 (patch)
treed6d9f261e7dc76f126f0f81a513ecf09863057ae
parent953f37ea6c0736a6b977ad4d94073b41fa6483c3 (diff)
downloadunified-desktop-theme-90e3eded1c781c160dcc1dfc4a32b3cf68157d22.tar.gz
unified-desktop-theme-90e3eded1c781c160dcc1dfc4a32b3cf68157d22.zip
feat: anchor the launcher top-center and add a wallpaper banner
Matches the launcher position already in use (north-anchored, 600px, single column) rather than the centered grid, and restores the wallpaper banner behind the input area from the old darknix theme. The wallpaper path cannot be committed: rofi does not expand a tilde inside a url(), and an absolute path would bake in a home directory. So launcher.rasi carries a placeholder and the installer generates the real file. The entry sits on a solid plate so it stays legible over a bright wallpaper. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
-rwxr-xr-xinstall.sh9
-rw-r--r--rofi/udt/launcher.rasi47
2 files changed, 42 insertions, 14 deletions
diff --git a/install.sh b/install.sh
index 02d5ab9..9821371 100755
--- a/install.sh
+++ b/install.sh
@@ -11,10 +11,17 @@ mkdir -p "$target" "$HOME/bin" "$HOME/.cache/wal"
# Theme files are symlinked individually; accent.rasi is NOT, it points at the
# generated file in the wal cache instead.
-for f in palette.rasi common.rasi launcher.rasi menu.rasi list.rasi; do
+for f in palette.rasi common.rasi menu.rasi list.rasi; do
ln -sfn "$repo/rofi/udt/$f" "$target/$f"
done
+# launcher.rasi is generated rather than symlinked: it references the wallpaper
+# by absolute path, which cannot live in a committed file. Regenerating it is
+# why re-running this script after moving the repo is safe.
+rm -f "$target/launcher.rasi"
+sed "s|@WPAPER@|$HOME/.cache/wal/wpaper|" \
+ "$repo/rofi/udt/launcher.rasi" > "$target/launcher.rasi"
+
# Seed the generated accent if it does not exist yet, so themes parse on a
# fresh install before any wallpaper has been set.
if [ ! -f "$HOME/.cache/wal/udt-accent.rasi" ]; then
diff --git a/rofi/udt/launcher.rasi b/rofi/udt/launcher.rasi
index 3b57696..282889c 100644
--- a/rofi/udt/launcher.rasi
+++ b/rofi/udt/launcher.rasi
@@ -1,5 +1,6 @@
/*
- * udt launcher layout: a searchable icon grid for launching applications.
+ * udt launcher layout: a searchable application list, anchored top-center.
+ * The input area carries the current horizontal wallpaper as its background.
* Copyright (C) 2026 Danilo M. <danix@danix.xyz>
* Licensed under the GNU General Public License v2 only.
*/
@@ -7,26 +8,46 @@
@import "common.rasi"
window {
- width: 880px;
- anchor: center;
- location: center;
+ width: 600px;
+ anchor: north;
+ location: north;
+ padding: 0;
}
mainbox {
children: [ inputbar, listview ];
+ spacing: 0;
}
-listview {
- columns: 3;
- lines: 6;
- fixed-height: false;
+/* The wallpaper banner. `width` scales the image to the element's width and
+ * keeps its aspect ratio, so the banner height follows the padding below.
+ *
+ * The path is a placeholder: rofi does not expand `~` inside a url(), and a
+ * real absolute path would bake a home directory into a committed file. The
+ * installer rewrites this line with the concrete path to ~/.cache/wal/wpaper,
+ * which is a symlink that wallp keeps pointed at the current horizontal
+ * wallpaper. */
+inputbar {
+ background-image: url("@WPAPER@", width);
+ background-color: @mantle;
+ border-radius: 0;
+ padding: 4em 2em;
}
-element {
- padding: 10px;
- spacing: 12px;
+/* The entry sits on a translucent plate so it stays legible over any
+ * wallpaper, rather than depending on the image behind it being dark. */
+entry {
+ background-color: @base;
+ border: 1px;
+ border-color: @accent;
+ border-radius: 6px;
+ padding: 10px 12px;
+ text-color: @text;
}
-element-icon {
- size: 2.2em;
+listview {
+ columns: 1;
+ lines: 8;
+ padding: 12px;
+ fixed-height: false;
}