Replace Rofi with Walker as application launcher

Walker (GTK4 + Elephant backend) replaces rofi-lbonn-wayland-git as the
central launcher and menu framework.

Native Walker providers replace 5 custom rofi scripts:
- App launcher (desktopapplications provider)
- Clipboard (clipboard provider, replaces cliphist frontend)
- Bluetooth (bluetooth provider, replaces bluetoothctl script)
- Volume/audio (wireplumber provider)
- Sink switcher (wireplumber provider)

3 scripts ported to Walker dmenu mode:
- moonarch-vpn (nmcli)
- moonarch-cpugov (auto-cpufreq)
- moonarch-sink-switcher (pactl)

Settings menu (moonarch-setmen) removed — apps are findable via Walker
app search directly.

Walker theme (gtk-inherit) inherits all colors from the active GTK4
theme instead of hardcoding Catppuccin values.

Walker and Elephant run as systemd user services for instant startup.

Also standardizes GTK theme to Colloid-Grey-Dark-Catppuccin across all
config files (was inconsistent between gsettings and file configs).

Old rofi configs preserved in legacy/rofi/ for reference.
This commit is contained in:
2026-03-30 12:06:25 +02:00
parent ee5940dec1
commit 4d9cbe7ce2
45 changed files with 1387 additions and 102 deletions
+39
View File
@@ -0,0 +1,39 @@
/**
* ABOUTME: Shared base theme for simple list applets (clipboard, vpn, cpugov, volume, bluetooth).
* ABOUTME: Provides no-icon dmenu layout — individual themes override window size and listview lines.
**/
configuration {
modi: "drun";
show-icons: false;
drun-display-format: "{name}";
}
@import "../config.rasi"
@import "../colors.rasi"
mainbox {
children: [ "message", "listview", "inputbar" ];
}
inputbar {
enabled: true;
children: [ "textbox-prompt-colon", "entry", "mode-switcher" ];
}
listview {
enabled: true;
columns: 1;
lines: 8;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
}
element-icon {
size: 0px;
}
+10
View File
@@ -0,0 +1,10 @@
/**
* ABOUTME: Rofi theme for Bluetooth device manager applet.
* ABOUTME: Hides inputbar since bluetooth script manages its own prompts via -p flag.
**/
@import "applet.rasi"
inputbar {
enabled: false;
}
+14
View File
@@ -0,0 +1,14 @@
/**
* ABOUTME: Rofi theme for clipboard history applet.
* ABOUTME: Wider window and more lines for browsing clipboard entries.
**/
@import "applet.rasi"
window {
width: 600px;
}
listview {
lines: 10;
}
+11
View File
@@ -0,0 +1,11 @@
/**
* ABOUTME: Rofi theme for CPU governor switcher applet.
* ABOUTME: Compact window for performance/powersave/reset modes.
**/
@import "applet.rasi"
window {
width: 300px;
height: 300px;
}
+16
View File
@@ -0,0 +1,16 @@
@import "../config.rasi"
@import "../colors.rasi"
element {
children: ["element-icon", "element-text"];
}
element-icon {
size: 32px;
}
element-text {
vertical-align: 0.5;
horizontal-align: 0.0;
}
+85
View File
@@ -0,0 +1,85 @@
/**
* @author Moonarch
* @description Rofi session menu — horizontal icon layout
**/
@import "../config.rasi"
@import "../colors.rasi"
window {
width: 674px;
location: center;
anchor: center;
border-radius: var(border-radius);
border: var(frame-border);
border-color: var(borders);
background-color: @theme-bg-color-shade-1;
}
mainbox {
enabled: true;
spacing: 15px;
padding: 30px;
background-color: transparent;
children: [ "message", "listview" ];
}
message {
enabled: true;
padding: 0;
background-color: transparent;
}
textbox {
background-color: transparent;
text-color: var(theme-text-color);
horizontal-align: 0.5;
font: "UbuntuSans Nerd Font 11";
markup: true;
}
listview {
enabled: true;
columns: 6;
lines: 1;
cycle: true;
dynamic: false;
scrollbar: false;
layout: vertical;
fixed-height: true;
fixed-columns: true;
spacing: 10px;
background-color: transparent;
}
element {
enabled: true;
padding: 15px;
border-radius: var(border-radius);
background-color: transparent;
text-color: var(theme-text-color);
cursor: pointer;
orientation: vertical;
children: [ "element-icon" ];
}
element selected.normal {
background-color: var(theme-selected-fg-color);
text-color: var(theme-selected-bg-color);
}
element-icon {
background-color: transparent;
size: 64px;
cursor: inherit;
horizontal-align: 0.5;
}
element-text {
background-color: transparent;
text-color: inherit;
cursor: inherit;
horizontal-align: 0.5;
vertical-align: 0.5;
font: "UbuntuSans Nerd Font 9";
}
+26
View File
@@ -0,0 +1,26 @@
@import "../config.rasi"
@import "../colors.rasi"
listview {
columns: 4;
lines: 4;
}
inputbar {
children: [ "textbox-prompt-colon", "entry"];
}
element {
orientation:vertical;
children: ["element-icon", "element-text"];
}
element-icon {
size: 32px;
}
element-text {
vertical-align: 0.5;
horizontal-align: 0.5;
font: "UbuntuSans Nerd Font 9";
}
+6
View File
@@ -0,0 +1,6 @@
/**
* ABOUTME: Rofi theme for volume control applet.
* ABOUTME: Uses default applet layout — window width is set dynamically by the script.
**/
@import "applet.rasi"
+11
View File
@@ -0,0 +1,11 @@
/**
* ABOUTME: Rofi theme for VPN connection manager applet.
* ABOUTME: Compact window for short VPN connection list.
**/
@import "applet.rasi"
window {
width: 300px;
height: 300px;
}