Skip to content

Migrate from wofi to fuzzel #202

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions bin/omarchy
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ main_menu() {

update_menu() {
show_ascii_art
local menu=("Omarchy" "Waybar" "Wofi" "Plymouth" "Desktop apps" "Back")
local menu=("Omarchy" "Waybar" "Fuzzel" "Plymouth" "Desktop apps" "Back")
local commands=(
"omarchy-update"
"omarchy-refresh-waybar"
"omarchy-refresh-wofi"
"omarchy-refresh-fuzzel"
"omarchy-refresh-plymouth"
"omarchy-refresh-applications"
"main_menu"
Expand Down
2 changes: 1 addition & 1 deletion bin/omarchy-dev-config-link
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ ln -nsf ~/.local/share/omarchy/config/hypr/hyprland.conf ~/.config/hypr/
ln -nsf ~/.local/share/omarchy/config/hypr/hypridle.conf ~/.config/hypr/
ln -nsf ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/
ln -nsf ~/.local/share/omarchy/config/waybar/config.jsonc ~/.config/waybar/
ln -nsf ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/
ln -nsf ~/.local/share/omarchy/config/fuzzel/fuzzel.ini ~/.config/fuzzel/
4 changes: 2 additions & 2 deletions bin/omarchy-menu-keybindings
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

# A script to display Hyprland keybindings defined in your configuration
# using wofi for an interactive search menu.
# using fuzzel for an interactive search menu.

USER_HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf"
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf $HOME/.local/share/omarchy/default/hypr/bindings/tiling.conf $HOME/.local/share/omarchy/default/hypr/bindings/utilities.conf $HOME/.local/share/omarchy/default/hypr/bindings.conf $HOME/.local/share/omarchy/default/hypr/media.conf"
Expand Down Expand Up @@ -56,4 +56,4 @@ grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
printf "%-35s → %s\n", key_combo, action;
}
}' |
wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical
fuzzel --dmenu --prompt 'Hyprland Keybindings ' --config ~/.config/fuzzel/keybindings.ini
12 changes: 6 additions & 6 deletions bin/omarchy-menu-power
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@

# Function to show power menu. The first characters are invisible sort keys.
show_power_menu() {
local menu_options="\u200B Lock
\u200C󰤄 Suspend
\u200D Relaunch
\u2060󰜉 Restart
\u2063󰐥 Shutdown"
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 150 --height 195 -O alphabetical --style ~/.config/wofi/select.css)
local menu_options="\u200B 󰌾 Lock
\u200C 󰤄 Suspend
\u200D 󰑓 Relaunch
\u2060 󰜉 Restart
\u2063 󰐥 Shutdown"
local selection=$(echo -e "$menu_options" | fuzzel --dmenu --config ~/.config/fuzzel/power.ini)

case "$selection" in
*Lock*) hyprlock ;;
Expand Down
11 changes: 11 additions & 0 deletions bin/omarchy-refresh-fuzzel
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

if [[ "$1" == "-y" ]] || gum confirm "Refresh Fuzzel config? This will replace your current settings with Omarchy defaults."; then
# Overwrite local fuzzel settings with the latest in Omarchy
mkdir -p ~/.config/fuzzel
cp -f ~/.local/share/omarchy/config/fuzzel/base.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/fuzzel.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/power.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/theme.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/keybindings.ini ~/.config/fuzzel/ 2>/dev/null
fi
8 changes: 0 additions & 8 deletions bin/omarchy-refresh-wofi

This file was deleted.

20 changes: 8 additions & 12 deletions bin/omarchy-theme-menu
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,20 @@ mapfile -t themes < <(
display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')

if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then
echo "<i>$display_name</i>"
echo "$display_name"
else
echo "$display_name"
echo " $display_name"
fi
done | sort
)

# Show Wofi menu (with markup support)
selection=$(printf '%s\n' "${themes[@]}" | wofi \
--show dmenu \
--allow-markup \
--width 150 \
--height 400 \
-O alphabetical \
--style ~/.config/wofi/select.css 2>/dev/null)
# Show Fuzzel menu
selection=$(printf '%s\n' "${themes[@]}" | fuzzel \
--dmenu \
--config ~/.config/fuzzel/theme.ini 2>/dev/null)

# Remove any Pango markup before converting back to filename
clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')
# Remove the indicator and extra spaces before converting back to filename
clean_selection=$(echo "$selection" | sed -E 's/^[●] +//; s/^ +//')

# Convert to lowercase and dash-separated: "Tokyo Night" -> "tokyo-night"
selected_theme=$(echo "$clean_selection" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
Expand Down
22 changes: 22 additions & 0 deletions config/fuzzel/base.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Base configuration shared by all fuzzel menus
# This file is included by other fuzzel configs
[main]
# Include theme colors first (can be overridden by subsequent settings)
include=~/.config/omarchy/current/theme/fuzzel.ini

# Common font for all menus (can be overridden)
font=CaskaydiaMono Nerd Font:size=18

# Common settings
layer=overlay
exit-on-keyboard-focus-loss=no
launch-prefix=uwsm app --

# Default border settings
[border]
width=2
radius=0

# Default dmenu settings
[dmenu]
exit-immediately-if-empty=yes
10 changes: 10 additions & 0 deletions config/fuzzel/fuzzel.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[main]
# Include base configuration
include=~/.config/fuzzel/base.ini

# App launcher specific settings
lines=15
width=55
horizontal-pad=30
vertical-pad=16
line-height=100px
11 changes: 11 additions & 0 deletions config/fuzzel/keybindings.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[main]
# Include base configuration
include=~/.config/fuzzel/base.ini

# Keybindings specific settings - smaller font for more content
font=CaskaydiaMono Nerd Font:size=14
lines=30
width=100
horizontal-pad=20
vertical-pad=10
line-height=80px
10 changes: 10 additions & 0 deletions config/fuzzel/power.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[main]
# Include base configuration
include=~/.config/fuzzel/base.ini

# Power menu specific settings
lines=5
width=20
horizontal-pad=20
vertical-pad=16
line-height=100px
10 changes: 10 additions & 0 deletions config/fuzzel/theme.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[main]
# Include base configuration
include=~/.config/fuzzel/base.ini

# Theme switcher specific settings
lines=7
width=25
horizontal-pad=30
vertical-pad=20
line-height=100px
15 changes: 0 additions & 15 deletions config/wofi/config

This file was deleted.

11 changes: 0 additions & 11 deletions config/wofi/select.css

This file was deleted.

74 changes: 0 additions & 74 deletions config/wofi/style.css

This file was deleted.

8 changes: 4 additions & 4 deletions default/hypr/bindings/utilities.conf
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Launching
bind = SUPER, space, exec, pkill wofi || wofi --show drun -O alphabetical
bind = SUPER, K, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-menu-keybindings
bind = SUPER, space, exec, pkill fuzzel || fuzzel
bind = SUPER, K, exec, pkill fuzzel || ~/.local/share/omarchy/bin/omarchy-menu-keybindings

# Aesthetics
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next
bind = SUPER SHIFT CTRL, SPACE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-theme-menu
bind = SUPER SHIFT CTRL, SPACE, exec, pkill fuzzel || ~/.local/share/omarchy/bin/omarchy-theme-menu

# Notifications
bind = SUPER, comma, exec, makoctl dismiss
bind = SUPER SHIFT, comma, exec, makoctl dismiss --all
bind = SUPER CTRL, comma, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"

# Power menu controls lock, suspend, relaunch, restart, shutdown
bind = SUPER, ESCAPE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-menu-power
bind = SUPER, ESCAPE, exec, pkill fuzzel || ~/.local/share/omarchy/bin/omarchy-menu-power

# Toggle idling
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
Expand Down
4 changes: 2 additions & 2 deletions default/hypr/windows.conf
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ windowrule = opacity 1 1, class:^(com.libretro.RetroArch|steam)$
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

# Proper background blur for wofi
layerrule = blur,wofi
# Proper background blur for fuzzel
layerrule = blur,fuzzel
2 changes: 1 addition & 1 deletion install/hyprlandia.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

yay -S --noconfirm --needed \
hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \
wofi waybar mako swaybg \
fuzzel waybar mako swaybg \
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk
36 changes: 36 additions & 0 deletions migrations/20250716203656_migrate_wofi_to_fuzzel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/bin/bash

echo "Migrating from wofi to fuzzel..."

# Install fuzzel and remove wofi
if command -v yay >/dev/null 2>&1; then
echo "Installing fuzzel..."
yay -S --noconfirm fuzzel
echo "Removing wofi..."
yay -R --noconfirm wofi 2>/dev/null || true
elif command -v pacman >/dev/null 2>&1; then
echo "Installing fuzzel..."
sudo pacman -S --noconfirm fuzzel
echo "Removing wofi..."
sudo pacman -R --noconfirm wofi 2>/dev/null || true
else
echo "Warning: Could not find package manager. Please manually install fuzzel and remove wofi."
fi

# Create fuzzel config directory
mkdir -p ~/.config/fuzzel

# Copy fuzzel configs
echo "Setting up fuzzel configuration..."
cp -f ~/.local/share/omarchy/config/fuzzel/base.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/fuzzel.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/power.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/theme.ini ~/.config/fuzzel/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/fuzzel/keybindings.ini ~/.config/fuzzel/ 2>/dev/null

# Remove old wofi configs
echo "Cleaning up wofi configuration..."
rm -rf ~/.config/wofi 2>/dev/null || true

echo "Migration to fuzzel completed successfully!"
echo "Note: If you have any custom wofi configurations, you'll need to recreate them for fuzzel."
13 changes: 13 additions & 0 deletions test-fuzzel-power-menu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

# Test script for styled power menu

# Menu options with invisible sort keys
menu_options="\u200B 󰌾 Lock
\u200C 󰤄 Suspend
\u200D 󰑓 Relaunch
\u2060 󰜉 Restart
\u2063 󰐥 Shutdown"

# Display with fuzzel using select.ini config (no prompt)
echo -e "$menu_options" | fuzzel --dmenu --prompt="" --config ~/.config/fuzzel/select.ini
8 changes: 8 additions & 0 deletions themes/catppuccin/fuzzel.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[colors]
background=24273af2
text=c6d0f5ff
match=c6d0f5ff
selection=24273a14
selection-text=8caaeeff
selection-match=8caaeeff
border=c6d0f5ff
4 changes: 0 additions & 4 deletions themes/catppuccin/wofi.css

This file was deleted.

8 changes: 8 additions & 0 deletions themes/everforest/fuzzel.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[colors]
background=2d353bf2
text=d3c6aaff
match=d3c6aaff
selection=2d353b14
selection-text=dbbc7fff
selection-match=dbbc7fff
border=d3c6aaff
Loading