12 Commits

Author SHA1 Message Date
1f1660f5e4 One smaller for less spacing 2025-07-20 20:41:24 -05:00
35fb85ea5a Revert "Temporary fix for waybar stacking on waking from sleep"
This reverts commit b967223d3c.
2025-07-20 20:22:52 -05:00
b967223d3c Temporary fix for waybar stacking on waking from sleep
Sledge hammer fix by restarting the waybar, but it'll do the job until
we find a better fix for #196
2025-07-20 20:14:57 -05:00
af72a45dbd Remove non-existent vibe-code hallucinated options and clean up theme files 2025-07-20 18:07:15 -05:00
f81983ec50 Fix detection of "new migrations" in omarchy-update (#219)
Previously, `omarchy-update` used the timestamp of the most recent git
commit to determine which migrations are "new" and should be executed.

Unfortunately, that strategy can (and did) fail in certain scenarios. If
a migration was generated at time T1 but not merged until time T3, and
meanwhile omarchy's `master` branch was updated to a new release with
commit timestamp T2 (where T1 < T2 < T3), then anyone who runs
`omarchy-update` between T2 and T3 would end up with `last_updated_at`
equal to T2; thus, on their next `omarchy-update` it would fail to
detect the migration with timestamp T1 as a "new" migration that should
be executed.

This commit changes the strategy for detecting "new" migrations to avoid
that problem. Rather than recording the most recent commit's timestamp,
we record its SHA. Then, after pulling the new changes, we can leverage
`git diff --name-only --diff-filter=A $SHA.. migrations/*.sh`
to return precisely the list of migration files that were introduced by
our `git pull`. It doesn't matter if any of those migrations have a
timestamp that was earlier than the timestamp of the commit we started
on - we will always execute *every* migration that didn't exist before
our `git pull`!
2025-07-20 17:55:22 -05:00
dca7e9a8e8 Also don't do these migrations if they were already completed 2025-07-20 17:52:32 -05:00
e2c94acd94 Add min-width to workspace numbers (#252) 2025-07-20 17:45:58 -05:00
5b42501c9f Same style as others with description always 2025-07-20 17:44:08 -05:00
ecc9a46bff Wrap a little better 2025-07-20 17:43:17 -05:00
fafe78d80f add missing installation of zoom (#262) 2025-07-20 17:40:45 -05:00
9b8569e537 Make migrations faster to skip if they've already been run 2025-07-20 17:36:29 -05:00
5b3c324350 Change default launcher from Wofi to Walker (#218)
* Change launcher from wofi -> walker

* Add migration

* More wofi -> walker locations

* Add rose pine theme

* Rename refresh script

* Minor improvements to walker + add uwsm

* Back out running as service

* Make these executable

* Add plugins dir for now to resolve open issue 355 from v0.13.0 release

* Replace pavucontrol with wiremix (#225)

Add to install

* Revert "Replace pavucontrol with wiremix (#225)"

This reverts commit 620b397859.

* Fix reference

* Add libqalculate so calc works out of the box

* Actually add libqalculate

* Re-add media

* Add catppuccin-latte

* Final cleanup

* Remove partially baked theme

* Remove failing migration

* Remove failing migration

* Fix refresh script

* Simplify css setup

* Rearrange walker theme files

* Change theme name

* Remove unnecessary file

* Clear everything

* Only worry about the config file now

* Disable load in animation for walker

* Run walker as service

* Make sure we have fresh package db

* Add keybindings theme

* Remove history

* Explain section

* Assume wofi is gone, only run if walker isn't there

* Move as the latest

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Roeland <roel4d@webding.org>
2025-07-20 16:17:42 -05:00
76 changed files with 767 additions and 344 deletions

View File

@ -35,11 +35,11 @@ main_menu() {
update_menu() {
show_ascii_art
local menu=("Omarchy" "Waybar" "Wofi" "Plymouth" "Desktop apps" "Back")
local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "Desktop apps" "Back")
local commands=(
"omarchy-update"
"omarchy-refresh-waybar"
"omarchy-refresh-wofi"
"omarchy-refresh-walker"
"omarchy-refresh-plymouth"
"omarchy-refresh-applications"
"main_menu"

View File

@ -5,4 +5,3 @@ 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/

View File

@ -1,15 +1,13 @@
#!/bin/bash
# A script to display Hyprland keybindings defined in your configuration
# using wofi for an interactive search menu.
# using walker 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"
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/media.conf"
$HOME/.local/share/omarchy/default/hypr/bindings/media.conf"
# Process the configuration file to extract and format keybindings
# 1. `grep` finds all lines starting with 'bind' (allowing for leading spaces).
@ -53,7 +51,14 @@ grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one
if (action != "") {
# Escape XML entities
gsub(/&/, "\\&amp;", action);
gsub(/</, "\\&lt;", action);
gsub(/>/, "\\&gt;", action);
gsub(/"/, "\\&quot;", action);
gsub(/'"'"'/, "\\&apos;", action);
printf "%-35s → %s\n", key_combo, action;
}
}' |
wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical
walker --dmenu --theme keybindings -p 'Keybindings'

View File

@ -7,8 +7,7 @@ show_power_menu() {
\u200D Relaunch
\u2060󰜉 Restart
\u2063󰐥 Shutdown"
local selection=$(echo -e "$menu_options" | wofi --show dmenu --width 150 --height 195 -O alphabetical --style ~/.config/wofi/select.css)
local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_150)
case "$selection" in
*Lock*) hyprlock ;;

5
bin/omarchy-refresh-walker Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
if [[ "$1" == "-y" ]] || gum confirm "Refresh Walker config? This will replace your current settings with Omarchy defaults."; then
cp -f ~/.local/share/omarchy/config/walker/config.toml ~/.config/walker/ 2>/dev/null
fi

View File

@ -1,8 +0,0 @@
#!/bin/bash
if [[ "$1" == "-y" ]] || gum confirm "Refresh Wofi config? This will replace your current settings with Omarchy defaults."; then
# Overwrite local waybar settings with the latest in Omarchy
cp -f ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/wofi/style.css ~/.config/wofi/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/wofi/select.css ~/.config/wofi/ 2>/dev/null
fi

View File

@ -18,14 +18,8 @@ mapfile -t themes < <(
done | sort
)
# Show Wofi menu (with markup support)
selection=$(printf '%s\n' "${themes[@]}" | wofi \
--show dmenu \
--allow-markup \
--width 200 \
--height 400 \
-O alphabetical \
--style ~/.config/wofi/select.css 2>/dev/null)
# Show Walker menu
selection=$(printf '%s\n' "${themes[@]}" | walker --dmenu --theme dmenu_250 2>/dev/null)
# Remove any Pango markup before converting back to filename
clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')

View File

@ -3,11 +3,11 @@
cd ~/.local/share/omarchy
if [[ $1 == "all" ]]; then
# Run all migrations
last_updated_at=1
# Run all migrations since the root commit
migration_starting_point=$(git log --max-parents=0 --first-parent --format="%H")
else
# Remember the version we're at before upgrading
last_updated_at=$(git log -1 --format=%cd --date=unix)
# Remember the commit we're at before upgrading in order to only run new migrations
migration_starting_point=$(git log -1 --format=%H)
fi
# Get the latest while trying to preserve any modifications
@ -15,14 +15,12 @@ git pull --autostash
git diff --check || git reset --merge
# Run any pending migrations
for file in migrations/*.sh; do
for file in $(git diff --name-only --diff-filter=A $migration_starting_point.. migrations/*.sh); do
filename=$(basename "$file")
migrate_at="${filename%.sh}"
if [ $migrate_at -gt $last_updated_at ]; then
echo -e "\e[32m\nRunning migration ($migrate_at)\e[0m"
source $file
fi
done
# Back to where we came from

View File

@ -1,10 +1,5 @@
source = ~/.config/omarchy/current/theme/hyprlock.conf
general {
disable_loading_bar = true
no_fade_in = false
}
background {
monitor =
color = $color
@ -26,10 +21,8 @@ input-field {
outline_thickness = 4
font_family = CaskaydiaMono Nerd Font
font_size = 32
font_color = $font_color
placeholder_color = $placeholder_color
placeholder_text = Enter Password 󰈷 
check_color = $check_color
fail_text = <i>$PAMFAIL ($ATTEMPTS)</i>

291
config/walker/config.toml Normal file
View File

@ -0,0 +1,291 @@
app_launch_prefix = "uwsm app -- "
terminal_title_flag = ""
locale = ""
close_when_open = true # Toggle on reopen
theme = "omarchy-default"
theme_base = []
theme_location = ["~/.local/share/omarchy/default/walker/themes/"]
monitor = ""
hotreload_theme = false
as_window = false
timeout = 0
disable_click_to_close = false
force_keyboard_focus = true
[keys]
accept_typeahead = ["tab"]
trigger_labels = "lalt"
next = ["down"]
prev = ["up"]
close = ["esc"]
remove_from_history = ["shift backspace"]
resume_query = ["ctrl r"]
toggle_exact_search = ["ctrl m"]
[keys.activation_modifiers]
keep_open = "shift"
alternate = "alt"
[keys.ai]
clear_session = ["ctrl x"]
copy_last_response = ["ctrl c"]
resume_session = ["ctrl r"]
run_last_responstruee = ["ctrl e"]
[events]
on_activate = ""
on_selection = ""
on_exit = ""
on_launch = ""
on_query_change = ""
[list]
dynamic_sub = true
keyboard_scroll_style = "emacs"
max_entries = 50
show_initial_entries = true
single_click = true
visibility_threshold = 20
placeholder = "No Results"
[search]
argument_delimiter = "#"
placeholder = " Search..."
delay = 0
resume_last_query = false
[activation_mode]
labels = "jkl;asdf"
[builtins.hyprland_keybinds]
show_sub_when_single = true
path = "~/.config/hypr/hyprland.conf"
weight = 5
name = "hyprland_keybinds"
placeholder = "Hyprland Keybinds"
switcher_only = true
hidden = true
[builtins.applications]
weight = 5
name = "applications"
placeholder = " Search..."
prioritize_new = true
hide_actions_with_empty_query = true
context_aware = true
refresh = true
show_sub_when_single = false
show_icon_when_single = true
show_generic = true
history = false
icon = ""
hidden = true
[builtins.applications.actions]
enabled = false
hide_category = true
hide_without_query = true
[builtins.bookmarks]
weight = 5
placeholder = "Bookmarks"
name = "bookmarks"
icon = "bookmark"
switcher_only = true
hidden = true
[[builtins.bookmarks.entries]]
label = "Walker"
url = "https://github.com/abenz1267/walker"
keywords = ["walker", "github"]
[[builtins.bookmarks.entries]]
label = "Omarchy - Github"
url = "https://github.com/basecamp/omarchy"
keywords = ["omarchy", "github"]
[[builtins.bookmarks.entries]]
label = "Omarchy Manual"
url = "https://manuals.omamix.org/2/the-omarchy-manual"
keywords = ["omarchy"]
[builtins.xdph_picker]
hidden = true
weight = 5
placeholder = "Screen/Window Picker"
show_sub_when_single = true
name = "xdphpicker"
switcher_only = true
[builtins.ai]
weight = 5
placeholder = "AI"
name = "ai"
icon = "help-browser"
switcher_only = true
show_sub_when_single = true
[[builtins.ai.anthropic.prompts]]
model = "claude-3-7-sonnet-20250219"
temperature = 1
max_tokens = 1_000
label = "General Assistant"
prompt = "You are a helpful general assistant. Keep your answers short and precise."
[builtins.calc]
require_number = true
weight = 5
name = "Calculator"
icon = "accessories-calculator"
placeholder = "Calculator"
min_chars = 3 # Min chars to calculate. 3 allows "3+3"
[builtins.windows]
weight = 5
icon = "view-restore"
name = "windows"
placeholder = "Windows"
show_icon_when_single = true
switcher_only = true
hidden = true
[builtins.clipboard]
always_put_new_on_top = true
exec = "wl-copy"
weight = 5
name = "clipboard"
avoid_line_breaks = true
placeholder = "Clipboard"
image_height = 300
max_entries = 10
switcher_only = true
hidden = true
[builtins.commands]
weight = 5
icon = "utilities-terminal"
switcher_only = true
name = "commands"
placeholder = "Commands"
hidden = true
[builtins.custom_commands]
weight = 5
icon = "utilities-terminal"
name = "custom_commands"
placeholder = "Custom Commands"
hidden = true
[builtins.emojis]
exec = "wl-copy"
weight = 5
name = "Emojis"
placeholder = "Emojis"
switcher_only = true
history = true
typeahead = true
show_unqualified = false
prefix = "."
[builtins.symbols]
after_copy = ""
weight = 5
name = "symbols"
placeholder = "Symbols"
switcher_only = true
history = true
typeahead = true
hidden = true
[builtins.finder]
use_fd = false
fd_flags = "--ignore-vcs --type file --type directory"
cmd_alt = "xdg-open $(dirname ~/%RESULT%)"
weight = 5
icon = "file"
name = "finder"
placeholder = "Finder"
switcher_only = true
ignore_gitignore = true
refresh = true
concurrency = 8
show_icon_when_single = true
preview_images = false
hidden = true
[builtins.runner]
eager_loading = true
weight = 5
icon = "utilities-terminal"
name = "runner"
placeholder = "Runner"
typeahead = true
history = true
generic_entry = false # Generic command runner
shell_config = "" # Path to shell to parse for aliases
refresh = true
use_fd = false
switcher_only = true
hidden = true
[builtins.ssh]
weight = 5
icon = "preferences-system-network"
name = "ssh"
placeholder = "SSH"
switcher_only = true
history = true
refresh = true
hidden = true
[builtins.switcher]
weight = 5
name = "switcher"
placeholder = "Switcher"
prefix = "/"
[builtins.websearch]
keep_selection = true
weight = 5
icon = "applications-internet"
name = "websearch"
placeholder = "Websearch"
switcher_only = true
hidden = true
[[builtins.websearch.entries]]
name = "Google"
url = "https://www.google.com/search?q=%TERM%"
[[builtins.websearch.entries]]
name = "DuckDuckGo"
url = "https://duckduckgo.com/?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Ecosia"
url = "https://www.ecosia.org/search?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Yandex"
url = "https://yandex.com/search/?text=%TERM%"
switcher_only = true
[builtins.dmenu]
hidden = true
weight = 5
name = "dmenu"
placeholder = "Dmenu"
switcher_only = true
show_icon_when_single = true
[builtins.translation]
delay = 1000
weight = 5
name = "translation"
icon = "accessories-dictionary"
placeholder = "Translation"
switcher_only = true
provider = "googlefree"
hidden = true

View File

@ -23,6 +23,7 @@
all: initial;
padding: 0 6px;
margin: 0 1.5px;
min-width: 9px;
}
#tray,

View File

@ -1,15 +0,0 @@
width=600
height=350
location=center
show=drun
prompt=Search...
filter_rate=100
allow_markup=true
no_actions=true
halign=fill
orientation=vertical
content_halign=fill
insensitive=true
allow_images=true
image_size=40
gtk_dark=true

View File

@ -1,11 +0,0 @@
/* Use by power menu, theme selector, and other menus without visible search bar */
@import ".config/wofi/style.css";
#input {
display: none;
opacity: 0;
margin-top: -200px;
}
@import ".config/omarchy/current/theme/wofi.css";

View File

@ -1,74 +0,0 @@
/* Colors are defined by theme file and can be referenced via @base, @text, @selected-text, and @border */
* {
font-family: 'CaskaydiaMono Nerd Font', monospace;
font-size: 18px;
}
window {
margin: 0px;
padding: 20px;
background-color: @base;
opacity: 0.95;
}
#inner-box {
margin: 0;
padding: 0;
border: none;
background-color: @base;
}
#outer-box {
margin: 0;
padding: 20px;
border: none;
background-color: @base;
border: 2px solid @border;
}
#scroll {
margin: 0;
padding: 0;
border: none;
background-color: @base;
}
#input {
margin: 0;
padding: 10px;
border: none;
background-color: @base;
color: @text;
}
#input:focus {
outline: none;
box-shadow: none;
border: none;
}
#text {
margin: 5px;
border: none;
color: @text;
}
#entry {
background-color: @base;
}
#entry:selected {
outline: none;
border: none;
}
#entry:selected #text {
color: @selected-text;
}
#entry image {
-gtk-icon-transform: scale(0.7);
}
@import ".config/omarchy/current/theme/wofi.css";

View File

@ -3,5 +3,6 @@ exec-once = uwsm app -- mako
exec-once = uwsm app -- waybar
exec-once = uwsm app -- fcitx5
exec-once = uwsm app -- swaybg -i ~/.config/omarchy/current/background -m fill
exec-once = uwsm app -- walker --gapplication-service
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'

View File

@ -1,11 +1,11 @@
# 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, walker
bind = SUPER, K, exec, ~/.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, ~/.local/share/omarchy/bin/omarchy-theme-menu
# Notifications
bind = SUPER, comma, exec, makoctl dismiss
@ -13,7 +13,7 @@ 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, ~/.local/share/omarchy/bin/omarchy-menu-power
# Toggle idling
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle

View File

@ -69,6 +69,9 @@ animations {
animation = workspaces, 0, 0, ease
}
# Application-sepcific animation
layerrule=noanim,walker
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.

View File

@ -27,6 +27,3 @@ 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

View File

@ -0,0 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -0,0 +1,10 @@
[ui.window.box]
width = 150
[ui.window.box.scroll.list]
max_width = 150
min_width = 150
width = 150
[ui.window.box.search]
hide = true

View File

@ -0,0 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -0,0 +1,10 @@
[ui.window.box]
width = 250
[ui.window.box.scroll.list]
max_width = 250
min_width = 250
width = 250
[ui.window.box.search]
hide = true

View File

@ -0,0 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -0,0 +1,48 @@
[ui.window.box]
width = 964
min_width = 964
max_width = 964
height = 664
min_height = 664
max_height = 664
[ui.window.box.search]
hide = false
[ui.window.box.scroll]
v_align = "fill"
h_align = "fill"
min_width = 964
width = 964
max_width = 964
min_height = 664
height = 664
max_height = 664
[ui.window.box.scroll.list]
v_align = "fill"
h_align = "fill"
min_width = 900
width = 900
max_width = 900
min_height = 600
height = 600
max_height = 600
[ui.window.box.scroll.list.item]
h_align = "fill"
min_width = 900
width = 900
max_width = 900
[ui.window.box.scroll.list.item.activation_label]
hide = true
[ui.window.box.scroll.list.placeholder]
v_align = "start"
h_align = "fill"
hide = false
min_width = 900
width = 900
max_width = 900

View File

@ -0,0 +1,166 @@
@import url("file://~/.config/omarchy/current/theme/walker.css");
/* Reset all elements */
#window,
#box,
#search,
#password,
#input,
#prompt,
#clear,
#typeahead,
#list,
child,
scrollbar,
slider,
#item,
#text,
#label,
#sub,
#activationlabel {
all: unset;
}
* {
font-family: 'CaskaydiaMono Nerd Font', monospace;
font-size: 18px;
}
/* Window */
#window {
background: transparent;
color: @text;
}
/* Main box container */
#box {
background: alpha(@base, 0.95);
padding: 20px;
border: 2px solid @border;
border-radius: 0px;
}
/* Search container */
#search {
background: @base;
padding: 10px;
margin-bottom: 0;
}
/* Hide prompt icon */
#prompt {
opacity: 0;
min-width: 0;
margin: 0;
}
/* Hide clear button */
#clear {
opacity: 0;
min-width: 0;
}
/* Input field */
#input {
background: none;
color: @text;
padding: 0;
}
#input placeholder {
opacity: 0.5;
color: @text;
}
/* Hide typeahead */
#typeahead {
opacity: 0;
}
/* List */
#list {
background: transparent;
}
/* List items */
child {
padding: 0px 12px;
background: transparent;
border-radius: 0;
}
child:selected,
child:hover {
background: transparent;
}
/* Item layout */
#item {
padding: 0;
}
/* Icon */
#icon {
margin-right: 10px;
-gtk-icon-transform: scale(0.7);
}
/* Text */
#text {
color: @text;
padding: 14px 0;
}
#label {
font-weight: normal;
}
/* Selected state */
child:selected #text,
child:selected #label,
child:hover #text,
child:hover #label {
color: @selected-text;
}
/* Hide sub text */
#sub {
opacity: 0;
font-size: 0;
min-height: 0;
}
/* Hide activation label */
#activationlabel {
opacity: 0;
min-width: 0;
}
/* Scrollbar styling */
scrollbar {
opacity: 0;
}
/* Hide spinner */
#spinner {
opacity: 0;
}
/* Hide AI elements */
#aiScroll,
#aiList,
.aiItem {
opacity: 0;
min-height: 0;
}
/* Bar entry (switcher) */
#bar {
opacity: 0;
min-height: 0;
}
.barentry {
opacity: 0;
}

View File

@ -0,0 +1,16 @@
[ui.window.box]
width = 664
min_width = 664
max_width = 664
height = 396
min_height = 396
max_height = 396
# List constraints are critical - without these, the window shrinks when empty
[ui.window.box.scroll.list]
height = 300
min_height = 300
max_height = 300
[ui.window.box.scroll.list.item.icon]
pixel_size = 40

View File

@ -2,5 +2,5 @@
yay -S --noconfirm --needed \
hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \
wofi waybar mako swaybg \
walker-bin libqalculate waybar mako swaybg \
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk

View File

@ -6,20 +6,17 @@ if [ -z "$OMARCHY_BARE" ]; then
obsidian-bin libreoffice obs-studio kdenlive \
xournalpp localsend-bin
yay -S --noconfirm --needed pinta ||
echo -e "\e[31mFailed to install Pinta. Continuing without!\e[0m"
yay -S --noconfirm --needed typora ||
echo -e "\e[31mFailed to install Typora. Continuing without!\e[0m"
# Packages known to be flaky or having key signing issues are run one-by-one
for pkg in pinta typora spotify zoom; do
yay -S --noconfirm --needed "$pkg" ||
echo -e "\e[31mFailed to install $pkg. Continuing without!\e[0m"
done
yay -S --noconfirm --needed dropbox libappindicator-gtk3 python-gpgme nautilus-dropbox ||
echo -e "\e[31mFailed to install Dropbox. Continuing without!\e[0m"
yay -S --noconfirm --needed spotify ||
echo -e "\e[31mFailed to install Spotify (likely because of a keyserver problem). Continuing without!\e[0m"
yay -S --noconfirm --needed 1password-beta 1password-cli ||
echo -e "\e[31mFailed to install 1password (likely because of a keyserver problem). Continuing without!\e[0m"
echo -e "\e[31mFailed to install 1password. Continuing without!\e[0m"
fi
# Copy over Omarchy applications

View File

@ -1,4 +1,6 @@
echo "Fixing persistent workspaces in waybar config"
sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config
pkill waybar
setsid waybar >/dev/null 2>&1 &
if [[ -f ~/.config/waybar/config ]]; then
sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config
pkill -SIGUSR2 waybar
fi

View File

@ -1,2 +1,5 @@
echo "Installing missing fd terminal tool for finding files"
yay -S --noconfirm --needed fd
if ! command -v fd &>/dev/null; then
yay -S --noconfirm --needed fd
fi

View File

@ -1,2 +1,5 @@
echo "Add LocalSend as new default application"
yay -S --noconfirm --needed localsend-bin
if ! command -v localsend &>/dev/null; then
yay -S --noconfirm --needed localsend-bin
fi

View File

@ -1,2 +1,5 @@
echo "Install ffmpegthumbnailer for video thumbnails in the file manager"
yay -S --noconfirm --needed ffmpegthumbnailer
if ! command -v ffmpegthumbnailer &>/dev/null; then
yay -S --noconfirm --needed ffmpegthumbnailer
fi

View File

@ -1,2 +1,5 @@
echo "Install bash-completion"
yay -S --noconfirm --needed bash-completion
if ! pacman -Q bash-completion &>/dev/null; then
yay -S --noconfirm --needed bash-completion
fi

View File

@ -1,2 +1,5 @@
echo "Adding gnome-keyring to make 1password work with 2FA codes"
yay -S --noconfirm --needed gnome-keyring
if ! command -v gnome-keyring &>/dev/null; then
yay -S --noconfirm --needed gnome-keyring
fi

View File

@ -1,18 +1,19 @@
echo "Update to use UWSM and seamless login"
sudo rm /etc/systemd/system/getty@tty1.service.d/override.conf
sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
if ! command -v uwsm &>/dev/null; then
sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf
sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
if [ -f "$HOME/.bash_profile" ]; then
if [ -f "$HOME/.bash_profile" ]; then
# Remove the specific line
sed -i '/^\[\[ -z \$DISPLAY && \$(tty) == \/dev\/tty1 \]\] && exec Hyprland$/d' "$HOME/.bash_profile"
echo "Cleaned up .bash_profile"
fi
fi
if [ -f "$HOME/.config/environment.d/fcitx.conf" ]; then
if [ -f "$HOME/.config/environment.d/fcitx.conf" ]; then
echo "Removing GTK_IM_MODULE from fcitx config for Wayland..."
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
fi
omarchy-refresh-plymouth -y
source ~/.local/share/omarchy/install/login.sh
fi
omarchy-refresh-plymouth -y
source ~/.local/share/omarchy/install/login.sh

View File

@ -1,7 +1,10 @@
echo "Add override to only require one network interface to be online"
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
sudo tee /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf >/dev/null <<EOF
if [[ ! -f /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf ]]; then
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
sudo tee /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf >/dev/null <<EOF
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
EOF
fi

View File

@ -1,6 +1,9 @@
echo "Setting up GPG configuration with multiple keyservers for better reliability"
sudo mkdir -p /etc/gnupg
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
sudo chmod 644 /etc/gnupg/dirmngr.conf
sudo gpgconf --kill dirmngr || true
sudo gpgconf --launch dirmngr || true
if [[ ! -f /etc/gnupg/dirmngr.conf ]]; then
sudo mkdir -p /etc/gnupg
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
sudo chmod 644 /etc/gnupg/dirmngr.conf
sudo gpgconf --kill dirmngr || true
sudo gpgconf --launch dirmngr || true
fi

View File

@ -1,6 +0,0 @@
echo "Make wofi stylesheet user editable"
if [[ -L "$HOME/.config/wofi/style.css" ]]; then
rm "$HOME/.config/wofi/style.css"
cp ~/.local/share/omarchy/config/wofi/style.css ~/.config/wofi/
cp ~/.local/share/omarchy/config/wofi/search.css ~/.config/wofi/
fi

View File

@ -1,13 +1,5 @@
echo "Add new matte black theme"
BACKGROUNDS_DIR=~/.config/omarchy/backgrounds/
download_background_image() {
local url="$1"
local path="$2"
gum spin --title "Downloading $url as $path..." -- curl -sL -o "$BACKGROUNDS_DIR/$path" "$url"
}
if [[ ! -L "~/.config/omarchy/themes/matte-black" ]]; then
ln -snf ~/.local/share/omarchy/themes/matte-black ~/.config/omarchy/themes/
source ~/.local/share/omarchy/themes/matte-black/backgrounds.sh
fi

View File

@ -1,2 +0,0 @@
echo "Make all wofi stylesheets user editable"
omarchy-refresh-wofi -y

View File

@ -1,2 +0,0 @@
echo "Use latest Omarchy Waybar configuration"
omarchy-refresh-waybar

View File

@ -1,2 +1,5 @@
echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility"
yay -S --noconfirm --needed docker-buildx
if ! docker buildx version &>/dev/null; then
yay -S --noconfirm --needed docker-buildx
fi

View File

@ -1,15 +1,17 @@
echo "Prevent docker from requiring network readiness on boot"
sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF'
if [[ ! -f /etc/systemd/system/docker.service.d/no-block-boot.conf ]]; then
sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF'
[Unit]
DefaultDependencies=no
EOF
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d/
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d/
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
[Unit]
After=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl mask plymouth-quit-wait.service
sudo systemctl daemon-reload
sudo systemctl mask plymouth-quit-wait.service
fi

View File

@ -1,2 +1,5 @@
echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder"
yay -S --noconfirm --needed slurp wl-screenrec
if ! command -v wl-screenrec &>/dev/null || ! command -v slurp &>/dev/null; then
yay -S --noconfirm --needed slurp wl-screenrec
fi

View File

@ -1,4 +1,4 @@
echo "Remove needless fcitx5-configtool package"
if command -v fcitx5-configtool &>/dev/null; then
if yay -Qe fcitx5-configtool &>/dev/null; then
yay -Rns --noconfirm fcitx5-configtool
fi

View File

@ -1,2 +1,5 @@
echo "Install satty for the new screenshot flow"
yay -S --noconfirm --needed satty
if ! command -v satty &>/dev/null; then
yay -S --noconfirm --needed satty
fi

View File

@ -1,2 +1,5 @@
echo "Add missing libappindicator-gtk3 for Dropbox icon tray to work right"
yay -S --noconfirm --needed libappindicator-gtk3
if ! pacman -Q libappindicator-gtk3 &>/dev/null; then
yay -S --noconfirm --needed libappindicator-gtk3
fi

11
migrations/1752981883.sh Normal file
View File

@ -0,0 +1,11 @@
echo "Replace wofi with walker as the default launcher"
if ! command -v walker &>/dev/null; then
yay -Sy --noconfirm --needed walker-bin libqalculate
yay -Rns --noconfirm wofi
rm -rf ~/.config/wofi
mkdir -p ~/.config/walker
cp -r ~/.local/share/omarchy/config/walker/* ~/.config/walker/
fi

5
migrations/1752983008.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Add missing installation of Zoom"
if ! command -v zoom &>/dev/null; then
yay -S --noconfirm --needed zoom
fi

View File

@ -1,9 +1,6 @@
$color = rgba(239,241,245,1.0) # base
$inner_color = rgba(239,241,245,0.8) # slightly transparent base
$outer_color = rgba(30,102,245,1.0) # blue
$font_color = rgba(76,79,105,1.0) # text
$placeholder_color = rgba(204,208,218,0.6) # overlay0 (muted gray-blue)
$check_color = rgba(4,165,229,1.0) # cyan
$color = rgba(239,241,245,1.0)
$inner_color = rgba(239,241,245,0.8)
$outer_color = rgba(30,102,245,1.0)
$font_color = rgba(76,79,105,1.0)
$check_color = rgba(4,165,229,1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #1e66f5;
@define-color text #4c4f69;
@define-color base #eff1f5;
@define-color border #dce0e8;
@define-color foreground #4c4f69;
@define-color background #eff1f5;

View File

@ -1,4 +0,0 @@
@define-color selected-text #1e66f5; /* blue */
@define-color text #4c4f69; /* text */
@define-color base #eff1f5; /* base */
@define-color border #dce0e8; /* crust */

View File

@ -1,12 +1,5 @@
# ────────────────────────────────────────────────────────────
# Hyprlock — Catppuccin theme
# ────────────────────────────────────────────────────────────
$color = rgba(24,24,36,1.0) # #181824 solid color
$inner_color = rgba(24,24,36,0.8) # #181824 with opacity
$outer_color = rgba(205,214,244,1.0) # #cdd6f4
$color = rgba(24,24,36,1.0)
$inner_color = rgba(24,24,36,0.8)
$outer_color = rgba(205,214,244,1.0)
$font_color = rgba(205,214,244,1.0)
$placeholder_color = rgba(205,214,244,0.6)
$check_color = rgba(68, 157, 171, 1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #8caaee;
@define-color text #c6d0f5;
@define-color base #24273a;
@define-color border #c6d0f5;
@define-color foreground #c6d0f5;
@define-color background #24273a;

View File

@ -1,4 +0,0 @@
@define-color selected-text #8caaee;
@define-color text #c6d0f5;
@define-color base #24273a;
@define-color border #c6d0f5;

View File

@ -1,13 +1,5 @@
# ────────────────────────────────────────────────────────────
# Hyprlock — Everforest theme
# ────────────────────────────────────────────────────────────
$color = rgba(45,53,59,1.0) # #2d353b solid color
$inner_color = rgba(45,53,59,0.8) # #2d353b with opacity
$outer_color = rgba(211,198,170,1.0) # #d3c6aa
$color = rgba(45,53,59,1.0)
$inner_color = rgba(45,53,59,0.8)
$outer_color = rgba(211,198,170,1.0)
$font_color = rgba(211,198,170,1.0)
$placeholder_color = rgba(211,198,170,0.6)
$check_color = rgba(131, 192, 146, 1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #dbbc7f;
@define-color text #d3c6aa;
@define-color base #2d353b;
@define-color border #d3c6aa;
@define-color foreground #d3c6aa;
@define-color background #2d353b;

View File

@ -1,4 +0,0 @@
@define-color selected-text #dbbc7f;
@define-color text #d3c6aa;
@define-color base #2d353b;
@define-color border #d3c6aa;

View File

@ -1,13 +1,5 @@
# ────────────────────────────────────────────────────────────
# Hyprlock — Gruvbox theme
# ────────────────────────────────────────────────────────────
$color = rgba(40,40,40,1.0) # #282828 solid color
$inner_color = rgba(40,40,40,0.8) # #282828 with opacity
$outer_color = rgba(212,190,152,1.0) # #d4be98
$color = rgba(40,40,40,1.0)
$inner_color = rgba(40,40,40,0.8)
$outer_color = rgba(212,190,152,1.0)
$font_color = rgba(212,190,152,1.0)
$placeholder_color = rgba(212,190,152,0.6)
$check_color = rgba(214, 153, 92, 1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #fabd2f;
@define-color text #ebdbb2;
@define-color base #282828;
@define-color border #ebdbb2;
@define-color foreground #ebdbb2;
@define-color background #282828;

View File

@ -1,4 +0,0 @@
@define-color selected-text #fabd2f;
@define-color text #ebdbb2;
@define-color base #282828;
@define-color border #ebdbb2;

View File

@ -1,13 +1,5 @@
# ────────────────────────────────────────────────────────────
# Hyprlock — Kanagawa theme
# ────────────────────────────────────────────────────────────
$color = rgba(31,31,40,1.0) # #1f1f28 solid color
$inner_color = rgba(31,31,40,0.8) # #1f1f28 with opacity
$outer_color = rgba(220,215,186,1.0) # #dcd7ba
$color = rgba(31,31,40,1.0)
$inner_color = rgba(31,31,40,0.8)
$outer_color = rgba(220,215,186,1.0)
$font_color = rgba(220,215,186,1.0)
$placeholder_color = rgba(220,215,186,0.6)
$check_color = rgba(126, 156, 216, 1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #dca561;
@define-color text #dcd7ba;
@define-color base #1f1f28;
@define-color border #dcd7ba;
@define-color foreground #dcd7ba;
@define-color background #1f1f28;

View File

@ -1,4 +0,0 @@
@define-color selected-text #dca561;
@define-color text #dcd7ba;
@define-color base #1f1f28;
@define-color border #dcd7ba;

View File

@ -1,9 +1,5 @@
$color = rgba(12,12,12,1.0) # #333333 matte black
$inner_color = rgba(138,138,141,0.3) # #8a8a8d with opacity
$outer_color = rgba(234,234,234,0.5) # #EAEAEA
$font_color = rgba(234,234,234,1.0) # #EAEAEA
$placeholder_color = rgba(234,234,234,0.6) # #EAEAEA with opacity
$check_color = rgba(245,158,11,1.0) # #f59e0b amber accent
$color = rgba(12,12,12,1.0)
$inner_color = rgba(138,138,141,0.3)
$outer_color = rgba(234,234,234,0.5)
$font_color = rgba(234,234,234,1.0)
$check_color = rgba(245,158,11,1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #B91C1C;
@define-color text #EAEAEA;
@define-color base #121212;
@define-color border #EAEAEA88;
@define-color foreground #EAEAEA;
@define-color background #121212;

View File

@ -1,8 +0,0 @@
@define-color selected-text #B91C1C;
@define-color text #EAEAEA;
@define-color base #121212;
@define-color selected-text #B91C1C;
@define-color text #EAEAEA;
@define-color base #121212;
@define-color border #EAEAEA;

View File

@ -1,13 +1,5 @@
# ────────────────────────────────────────────────────────────
# Hyprlock — Nord theme
# ────────────────────────────────────────────────────────────
$color = rgba(46,52,64,1.0) # #2e3440 solid color
$inner_color = rgba(46,52,64,0.8) # #2e3440 with opacity
$outer_color = rgba(216,222,233,1.0) # #d8dee9
$color = rgba(46,52,64,1.0)
$inner_color = rgba(46,52,64,0.8)
$outer_color = rgba(216,222,233,1.0)
$font_color = rgba(216,222,233,1.0)
$placeholder_color = rgba(216,222,233,0.6)
$check_color = rgba(136, 192, 208, 1.0)

6
themes/nord/walker.css Normal file
View File

@ -0,0 +1,6 @@
@define-color selected-text #88C0D0;
@define-color text #D8DEE9;
@define-color base #2E3440;
@define-color border #D8DEE9;
@define-color foreground #D8DEE9;
@define-color background #2E3440;

View File

@ -1,4 +0,0 @@
@define-color selected-text #88C0D0;
@define-color text #D8DEE9;
@define-color base #2E3440;
@define-color border #D8DEE9;

View File

@ -1,9 +1,5 @@
$color = rgba(250, 244, 237,1.0)
$inner_color = rgba(250, 244, 237,0.8)
$outer_color = rgba(57,52,79,1.0)
$font_color = rgba(57,52,79,1.0)
$placeholder_color = rgba(216,222,233,0.6)
$check_color = rgba(136, 192, 208, 1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #88C0D0;
@define-color text #575279;
@define-color base #faf4ed;
@define-color border #575279;
@define-color foreground #575279;
@define-color background #faf4ed;

View File

@ -1,4 +0,0 @@
@define-color selected-text #88C0D0;
@define-color text #575279;
@define-color base #faf4ed;
@define-color border #575279;

View File

@ -1,13 +1,5 @@
# ────────────────────────────────────────────────────────────
# Hyprlock — Tokyo Night theme
# ────────────────────────────────────────────────────────────
$color = rgba(26,27,38,1.0) # #1a1b26 solid color
$inner_color = rgba(26,27,38,0.8) # #1a1b26 with opacity
$outer_color = rgba(205,214,244,1.0) # #cdd6f4
$color = rgba(26,27,38,1.0)
$inner_color = rgba(26,27,38,0.8)
$outer_color = rgba(205,214,244,1.0)
$font_color = rgba(205,214,244,1.0)
$placeholder_color = rgba(205,214,244,0.6)
$check_color = rgba(68, 157, 171, 1.0)

View File

@ -0,0 +1,6 @@
@define-color selected-text #7dcfff;
@define-color text #cfc9c2;
@define-color base #1a1b26;
@define-color border #33ccff;
@define-color foreground #cfc9c2;
@define-color background #1a1b26;

View File

@ -1,4 +0,0 @@
@define-color selected-text #7dcfff;
@define-color text #cfc9c2;
@define-color base #1a1b26;
@define-color border #33ccff;