95 Commits

Author SHA1 Message Date
faa279c587 Merge pull request #89 from basecamp/dev
Omarchy v1.3.0
2025-07-09 22:43:25 -04:00
6410f079b6 Merge pull request #108 from anoldguy/more-kernel-cmdline-detection
Adds two more kernel cmdline detections
2025-07-09 22:22:13 -04:00
87f0b599c6 Adds two more kernel cmdline detections
Adds support for UKI images, which read kernel cmdline options out of
either:

* /etc/cmdline.d/*.conf
* /etc/kernel/cmdline
2025-07-09 22:16:05 -04:00
c9a5de6581 Quiet by default 2025-07-09 19:01:19 -07:00
11b71a593b Need to have the install inside the check of course 2025-07-09 19:00:52 -07:00
b25a60395a All protections are already in there 2025-07-09 19:00:20 -07:00
d7b94996c3 Add border to wofi to better delineate from background 2025-07-09 18:52:04 -07:00
b7a3b4b020 Add a way to refresh plymouth setup 2025-07-09 18:39:13 -07:00
ae57e86dac Merge pull request #110 from ryanrhughes/add-boot-screen
Update boot screen graphics & progress bar
2025-07-09 21:35:48 -04:00
8fb9b51d03 Update system packages when updating omarchy 2025-07-09 18:33:06 -07:00
c5ada676ae Skip configuration if plymouth was already installed
This helps us skip the installer if something else on initial all failed
and we need to run things again.
2025-07-09 18:28:48 -07:00
352b0cfae6 Update assets and reduce progress target to 70% 2025-07-09 21:25:15 -04:00
4df84da6e1 Better grouping 2025-07-09 18:24:21 -07:00
9d05326e6f Remove excess CR 2025-07-09 18:23:35 -07:00
b4fc02d3ed Fix indention 2025-07-09 18:21:31 -07:00
601a0e2ac8 Already included as a dependency of fprintd 2025-07-09 18:21:01 -07:00
5d2aa7773e No longer used 2025-07-09 18:19:48 -07:00
64e8a25719 Fix showing user keybindings
Close #106
2025-07-09 18:04:12 -07:00
c314721007 Rely on omarchy-refresh-waybar having its own confirm 2025-07-09 18:01:56 -07:00
3d4198d691 Merge pull request #101 from npenza/add-gum-confirm-to-omarchy-refresh-waybar
Add gum confirm to omarchy-refresh-waybar
2025-07-09 21:00:53 -04:00
96769b4d6a Fix package name for lsusb 2025-07-09 17:53:04 -07:00
041abe8c2e Merge pull request #109 from basecamp/switch-to-polkit-gnome
Switch to polkit-gnome
2025-07-09 20:48:38 -04:00
4f77e71d2c Red means no! 2025-07-09 17:47:54 -07:00
c567dbffaa Only allow fingerprint setup if a sensor is detected 2025-07-09 20:46:43 -04:00
6434fddb59 Explain migration 2025-07-09 20:45:18 -04:00
089f73c518 Remove commented out exec 2025-07-09 17:41:06 -07:00
929aafc17c Guard against running it twice 2025-07-09 20:31:50 -04:00
5684aa80d8 Make sure to run polkit-gnome after migrating to it 2025-07-09 20:30:16 -04:00
d2598464d6 Switch to polkit-gnome to make fingerprint authentication work better
hyprpolkit was not designed well for fingerprint authentication. It
doesn't allow you to easily deal with both fingerprints and passwords in
the same configuration.
2025-07-09 20:26:43 -04:00
5f46b7560e Revert the attempt to fix dark mode for hyprpolkitagent 2025-07-09 19:37:51 -04:00
0d0f1ed692 Restart agent after setting up 2025-07-09 19:31:26 -04:00
5d6fe16e47 Not needed 2025-07-09 19:29:33 -04:00
5e50f00278 Turn on fingerprint authentication for sudo + system prompts 2025-07-09 16:26:24 -07:00
31875282ec Then not do 2025-07-09 19:14:10 -04:00
a873a2cf96 Clean up migrations a bit 2025-07-09 19:13:37 -04:00
e7766926d9 Make it easier to read 2025-07-09 19:12:26 -04:00
08038e272c Only if needed 2025-07-09 19:12:19 -04:00
fef5f38dc9 Only if needed 2025-07-09 19:12:15 -04:00
bc652eb3f7 Then not do 2025-07-09 19:08:44 -04:00
315f3ffe88 Only run Docker config setting if it hasn't been created already 2025-07-09 19:06:58 -04:00
5c1d8cc2b3 Only run if not already configured 2025-07-09 19:05:37 -04:00
bdfab2c305 Only run if missing 2025-07-09 19:05:27 -04:00
00be503e79 Only run migration if impala isn't there 2025-07-09 19:02:17 -04:00
77e2e5f61e Refactor omarchy-refresh-waybar to use conditional confirmation 2025-07-10 06:59:06 +10:00
73a10a6d4e Move plymouth install to the end 2025-07-09 13:33:00 -07:00
4295541c6a Merge pull request #104 from ryanrhughes/add-boot-screen
Add graphical boot screen
2025-07-09 16:09:43 -04:00
9b418abed2 Drop clipse since it would keep clear-text passwords from 1passwords in the buffer
And there's no exclusion option!
2025-07-09 11:50:32 -07:00
2a84c5873b Add hotkey to prevent idling on SUPER + CTRL + I 2025-07-09 11:22:43 -07:00
aa5c955f67 Add migratgion for gnome-keyring 2025-07-09 10:33:49 -07:00
18dadd62f0 Add gnome-keyring to enable 2FA for 1password 2025-07-09 10:33:01 -07:00
b0d94f3e34 Fix path interpolation 2025-07-09 10:31:08 -07:00
a15979dc79 Improve helper 2025-07-09 10:29:49 -07:00
1df37bd3d7 Setup hyprpolkitagent separately with dark mode applied 2025-07-09 10:29:39 -07:00
841596c5a3 Migration for permanently fixing F-keys on Apple-mode keyboards 2025-07-09 10:15:00 -07:00
b707d1974a Add helper to create a new migration 2025-07-09 10:14:48 -07:00
aaedb7d62e Permanently fix F keys on apple mode keyboards 2025-07-09 10:11:28 -07:00
099f094f8e Use larger settings overlay 2025-07-09 10:08:48 -07:00
dd21b5ca5a Fix wofi for showing keybindings after moving css 2025-07-09 10:04:20 -07:00
5f4962188a Fix indention 2025-07-09 09:53:07 -07:00
6513db1bdd Add gum confirm to omarchy-refresh-waybar 2025-07-09 19:07:28 +10:00
c9c05038a0 Cleanup 2025-07-09 00:58:36 -04:00
ce29c0f498 Adjust progress bar and prevent flash 2025-07-09 00:43:49 -04:00
033a2d9f02 Example for fractional scaling 2025-07-08 16:23:44 -04:00
f00436c892 Move GDK_SCALE into monitors.conf since it has to be changed together with the monitor= setting 2025-07-08 16:21:31 -04:00
9692a7985c Remove power menu from icons and just rely on hotkey 2025-07-08 10:49:54 -04:00
d9da252dd3 Rearrange and simplify boot screen 2025-07-07 23:20:50 -04:00
06507963f2 Remove spinner 2025-07-07 21:02:00 -04:00
924a9861c6 Add grub, fix mkinitcpio match, and set theme 2025-07-07 20:33:54 -04:00
6057140ff3 Remove excess themes and move tokyo-night 2025-07-07 19:08:07 -04:00
4e6901734c Remove theme switching 2025-07-07 19:05:07 -04:00
a2fa2cf632 Add plymouth installer and migration 2025-07-07 19:01:28 -04:00
86bcac5d28 Add touch to signal rebuild 2025-07-07 19:01:28 -04:00
820b80f287 Add shutdown sync script 2025-07-07 19:01:28 -04:00
f7afe3f555 Add script to generate new plymouth themes 2025-07-07 19:01:28 -04:00
1fed6096cc Add plymouth themes 2025-07-07 19:01:28 -04:00
f52077a5a1 Give a hint as to how you overwrite Omarchy default bindings 2025-07-07 12:03:44 -07:00
d254969b39 Give a hint about the config format 2025-07-07 11:58:34 -07:00
434b17e27a Add a hint to changing 1x resolution 2025-07-07 11:44:22 -07:00
201d303c2c Better structuring of the wofi css
Reusing look for select menu and reducing theme duplication
2025-07-07 11:37:50 -07:00
6c1c829f86 Fix sorting code on power menu 2025-07-07 11:19:29 -07:00
24f8c31b64 The power menu will rule it all 2025-07-07 11:09:19 -07:00
207f811e47 Be more precise than sleep 2025-07-07 11:09:10 -07:00
cea316425f Tweak presentation, drop the hotkey references 2025-07-07 11:04:40 -07:00
9879726003 Merge pull request #85 from npenza/waybar-power-menu-improvements
Waybar Power Menu - Remove Search and Add Shortcuts
2025-07-07 11:01:52 -07:00
fe6481235d Merge branch 'dev' into waybar-power-menu-improvements 2025-07-07 11:01:24 -07:00
8939d636fb Offer to refresh waybar to use Impala 2025-07-07 10:56:37 -07:00
a64b32e2ee Use power menu on Super+Esc 2025-07-07 10:50:45 -07:00
0073678f1f Use Impala for wifi and float it 2025-07-07 10:50:45 -07:00
67a959f9b9 Merge pull request #84 from da-maltsev/add-ui-iwd
Add impala as iwd TUI on waybar
2025-07-07 10:50:08 -07:00
c63b87b416 Fix yay-bin being checked out to $HOME instead of /tmp and not getting cleaned up
Co-author: @bbondier
Closes #86
2025-07-07 10:28:44 -07:00
3515525d99 Add impala as iwd TUI 2025-07-07 16:37:13 +05:00
c459e03d39 Change power menu css path 2025-07-07 21:25:14 +10:00
51e97fcc76 Kill wofi when using the shortcut and power menu is showing 2025-07-07 21:18:45 +10:00
c032a6aa37 Adding shortcuts to power options 2025-07-07 21:07:13 +10:00
ef5a02a84c Hide the search bar in power menu 2025-07-07 20:44:01 +10:00
49 changed files with 692 additions and 516 deletions

6
bin/omarchy-dev-add-migration Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh"
touch $migration_file
nvim $migration_file
echo -e "Run with:\nsource $migration_file"

View File

@ -1,14 +1,36 @@
#!/bin/bash #!/bin/bash
yay -S --noconfirm --needed fprint yay -S --noconfirm --needed fprintd usbutils
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\nKeep moving the finger around on sensor until the process completes.\n\e[0m" if ! lsusb | grep -iq fingerprint; then
sudo fprintd-enroll `whoami` echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
echo -e "\e[32m\nNow let's verify that it's working correctly.\e[0m\n"
if fprintd-verify; then
echo -e "\e[32m\nPerfect! Now you can use your fingerprint on the lock screen (Super + Escape).\e[0m"
else else
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m" # Add fingerprint authentication as an option for sudo
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
fi
# Add fingerprint authentication as an option for hyprpolkitagent
if [ ! -f /etc/pam.d/polkit-1 ] || ! grep -q pam_fprintd.so /etc/pam.d/polkit-1; then
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth required pam_unix.so
auth optional pam_fprintd.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
# Enroll the first finger
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\nKeep moving the finger around on sensor until the process completes.\n\e[0m"
sudo fprintd-enroll $USER
echo -e "\e[32m\nNow let's verify that it's working correctly.\e[0m\n"
if fprintd-verify; then
echo -e "\e[32m\nPerfect! Now you can use your fingerprint on the lock screen (Super + Escape).\e[0m"
else
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
fi
fi fi

View File

@ -3,19 +3,18 @@
# Power menu for Omarchy # Power menu for Omarchy
# Provides power off, restart, and sleep options # Provides power off, restart, and sleep options
# Function to show power menu # Function to show power menu. The first characters are invisible sort keys.
show_power_menu() { show_power_menu() {
local menu_options="\u200B Lock local menu_options="\u200B Lock
\u200C󰤄 Sleep \u200C󰤄 Suspend
\u200D Relaunch \u200D Relaunch
\u2060󰜉 Restart \u2060󰜉 Restart
󰐥\u2063 Shutdown" # These first characters are invisible sort keys \u2063󰐥 Shutdown"
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 150 --height 195 -O alphabetical --style ~/.local/share/omarchy/default/wofi/select.css)
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 200 --height 250 -O alphabetical)
case "$selection" in case "$selection" in
*Lock*) hyprlock ;; *Lock*) hyprlock ;;
*Sleep*) systemctl suspend ;; *Suspend*) systemctl suspend ;;
*Relaunch*) hyprctl dispatch exit ;; *Relaunch*) hyprctl dispatch exit ;;
*Restart*) systemctl reboot ;; *Restart*) systemctl reboot ;;
*Shutdown*) systemctl poweroff ;; *Shutdown*) systemctl poweroff ;;

6
bin/omarchy-refresh-plymouth Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
if gum confirm "Refresh Plymouth theme? This will replace your current startup screen with Omarchy defaults."; then
sudo cp ~/.local/share/omarchy/default/plymouth/* /usr/share/plymouth/themes/omarchy/
sudo plymouth-set-default-theme -R omarchy
fi

View File

@ -1,9 +1,11 @@
#!/bin/bash #!/bin/bash
# Overwrite local waybar settings with the latest in Omarchy if gum confirm "Refresh Waybar config? This will replace your current Waybar settings with Omarchy defaults."; then
cp -f ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/ 2>/dev/null # Overwrite local waybar settings with the latest in Omarchy
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null cp -f ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
# Restart waybar # Restart waybar
pkill waybar &>/dev/null pkill waybar &>/dev/null
setsid waybar &>/dev/null & setsid waybar &>/dev/null &
fi

View File

@ -16,7 +16,7 @@ OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf"
# - It joins the command that the key executes. # - It joins the command that the key executes.
# - It prints everything in a nicely aligned format. # - It prints everything in a nicely aligned format.
# 4. The final `sed` cleans up any leftover commas from the end of lines. # 4. The final `sed` cleans up any leftover commas from the end of lines.
grep -h '^[[:space:]]*bind' "$HYPRLAND_CONF" "$OMARCHY_BINDINGS_CONF" | grep -h '^[[:space:]]*bind' "$USER_HYPRLAND_CONF" "$OMARCHY_BINDINGS_CONF" |
awk -F, ' awk -F, '
{ {
# Strip trailing comments # Strip trailing comments
@ -48,4 +48,4 @@ grep -h '^[[:space:]]*bind' "$HYPRLAND_CONF" "$OMARCHY_BINDINGS_CONF" |
printf "%-35s → %s\n", key_combo, action; printf "%-35s → %s\n", key_combo, action;
} }
}' | }' |
flock --nonblock /tmp/.wofi.lock -c "wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical" flock --nonblock /tmp/.wofi.lock -c "wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical --style=\"$HOME/.local/share/omarchy/default/wofi/search.css\""

9
bin/omarchy-toggle-idle Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/env bash
if pgrep -x hypridle > /dev/null; then
pkill -x hypridle
notify-send "Stop locking computer when idle"
else
setsid hypridle &> /dev/null &
notify-send "Now locking computer when idle"
fi

View File

@ -19,10 +19,13 @@ for file in migrations/*.sh; do
migrate_at="${filename%.sh}" migrate_at="${filename%.sh}"
if [ $migrate_at -gt $last_updated_at ]; then if [ $migrate_at -gt $last_updated_at ]; then
echo "Running migration ($migrate_at)" echo -e "\e[32m\nRunning migration ($migrate_at)\e[0m"
source $file source $file
fi fi
done done
# Back to where we came from # Back to where we came from
cd - >/dev/null cd - >/dev/null
echo -e "\e[32m\nUpdating system packages\e[0m"
yay -Syu

View File

@ -25,9 +25,9 @@ source = ~/.config/omarchy/current/theme/hyprland.conf
# exec-once = dropbox-cli start # exec-once = dropbox-cli start
# Extra env variables # Extra env variables
env = GDK_SCALE,2 # Change to 1 if on a 1x display # env = MY_GLOBAL_ENV,setting
# Extra bindings # Extra bindings (overwrite existing binding with: unbind = SUPER, O)
bind = SUPER, A, exec, $webapp="https://chatgpt.com" bind = SUPER, A, exec, $webapp="https://chatgpt.com"
bind = SUPER SHIFT, A, exec, $webapp="https://grok.com" bind = SUPER SHIFT, A, exec, $webapp="https://grok.com"
bind = SUPER, C, exec, $webapp="https://app.hey.com/calendar/weeks/" bind = SUPER, C, exec, $webapp="https://app.hey.com/calendar/weeks/"

View File

@ -1,8 +1,16 @@
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
# Change to 1 if on a 1x display (then change last "auto" to 1 in monitor=)
# Change to 1.75 for fractional scaling
env = GDK_SCALE,2
# Use single default monitor (see all monitors with: hyprctl monitors) # Use single default monitor (see all monitors with: hyprctl monitors)
# Format: monitor = [port], resolution, position, scale
monitor=,preferred,auto,auto monitor=,preferred,auto,auto
# Exmaple for fractional scaling that works well with GDK_SCALE,1.75
# monitor=,preferred,auto,1.666667
# Example for Framework 13 w/ 6K XDR Apple display # Example for Framework 13 w/ 6K XDR Apple display
# monitor = DP-5, 6016x3384@60.00, auto, 2 # monitor = DP-5, 6016x3384@60.00, auto, 2
# monitor = eDP-1, 2880x1920@120.00, auto, 2 # monitor = eDP-1, 2880x1920@120.00, auto, 2

View File

@ -14,8 +14,7 @@
"network", "network",
"pulseaudio", "pulseaudio",
"cpu", "cpu",
"battery", "battery"
"custom/power-menu"
], ],
"hyprland/workspaces": { "hyprland/workspaces": {
"on-click": "activate", "on-click": "activate",
@ -62,21 +61,21 @@
"tooltip-format-disconnected": "Disconnected", "tooltip-format-disconnected": "Disconnected",
"interval": 3, "interval": 3,
"nospacing": 1, "nospacing": 1,
"on-click": "alacritty -e iwctl" "on-click": "alacritty --class=Impala -e impala"
}, },
"battery": { "battery": {
"format": "{capacity}% {icon}", "format": "{capacity}% {icon}",
"format-discharging": "{icon}", "format-discharging": "{icon}",
"format-charging": "{icon}", "format-charging": "{icon}",
"format-plugged": "", "format-plugged": "",
"format-icons": { "format-icons": {
"charging": [ "charging": [
"󰢜", "󰂆", "󰂇", "󰂈", "󰢝", "󰂉", "󰢞", "󰂊", "󰂋", "󰂅" "󰢜", "󰂆", "󰂇", "󰂈", "󰢝", "󰂉", "󰢞", "󰂊", "󰂋", "󰂅"
], ],
"default": [ "default": [
"󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹" "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"
] ]
}, },
"format-full": "Charged ", "format-full": "Charged ",
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%", "tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%", "tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
@ -101,10 +100,5 @@
"tooltip-format": "Playing at {volume}%", "tooltip-format": "Playing at {volume}%",
"on-click-right": "pamixer -t", "on-click-right": "pamixer -t",
"ignored-sinks": ["Easy Effects Sink"] "ignored-sinks": ["Easy Effects Sink"]
},
"custom/power-menu": {
"format": "󰐥",
"on-click": "~/.local/share/omarchy/bin/omarchy-power-menu",
"tooltip": false
} }
} }

View File

@ -0,0 +1,65 @@
@define-color selected-text #7dcfff;
@define-color text #cfc9c2;
@define-color base #1a1b26;
* {
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;
}
#scroll {
margin: 0;
padding: 0;
border: none;
background-color: @base;
}
#input {
display: none;
opacity: 0;
margin-top: -200px;
}
#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);
}

View File

@ -71,6 +71,3 @@ refresh-xcompose() {
pkill fcitx5 pkill fcitx5
setsid fcitx5 &>/dev/null & setsid fcitx5 &>/dev/null &
} }
# Ensure that external keyboards that use an fn key has the F keys as the default
alias fix_fkeys='echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode'

View File

@ -1,4 +1,4 @@
exec-once = hypridle & mako & waybar & fcitx5 exec-once = hypridle & mako & waybar & fcitx5
exec-once = swaybg -i ~/.config/omarchy/current/background -m fill exec-once = swaybg -i ~/.config/omarchy/current/background -m fill
exec-once = systemctl --user start hyprpolkitagent exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = wl-clip-persist --clipboard regular & clipse -listen exec-once = wl-clip-persist --clipboard regular

View File

@ -10,7 +10,8 @@ bind = SUPER, G, exec, $messenger
bind = SUPER, O, exec, obsidian -disable-gpu bind = SUPER, O, exec, obsidian -disable-gpu
bind = SUPER, slash, exec, $passwordManager bind = SUPER, slash, exec, $passwordManager
bind = SUPER, space, exec, pkill wofi || wofi --show drun --sort-order=alphabetical bind = SUPER, space, exec, pkill wofi || wofi --show drun --sort-order=alphabetical --style="$HOME/.local/share/omarchy/default/wofi/search.css"
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next
bind = SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-next bind = SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-next
@ -23,12 +24,11 @@ bind = SUPER CTRL, comma, exec, makoctl mode -t do-not-disturb && makoctl mode |
bind = SUPER, W, killactive, bind = SUPER, W, killactive,
# End active session # Power menu controls lock, suspend, relaunch, restart, shutdown
bind = SUPER, ESCAPE, exec, hyprlock bind = SUPER, ESCAPE, exec, ~/.local/share/omarchy/bin/omarchy-power-menu
bind = SUPER SHIFT, ESCAPE, exec, systemctl suspend
bind = SUPER ALT, ESCAPE, exit, # Toggle idling
bind = SUPER CTRL, ESCAPE, exec, reboot bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
bind = SUPER SHIFT CTRL, ESCAPE, exec, systemctl poweroff
# Control tiling # Control tiling
bind = SUPER, J, togglesplit, # dwindle bind = SUPER, J, togglesplit, # dwindle
@ -111,6 +111,3 @@ bind = CTRL, PRINT, exec, hyprshot -m output
# Color picker # Color picker
bind = SUPER, PRINT, exec, hyprpicker -a bind = SUPER, PRINT, exec, hyprpicker -a
# Clipse
bind = CTRL SUPER, V, exec, $terminal --class clipse -e clipse

View File

@ -4,8 +4,9 @@ windowrule = suppressevent maximize, class:.*
# Force chromium into a tile to deal with --app bug # Force chromium into a tile to deal with --app bug
windowrule = tile, class:^(Chromium)$ windowrule = tile, class:^(Chromium)$
# Float sound and bluetooth settings # Float sound, bluetooth, and wifi settings
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py)$ windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala)$
windowrule = size 800 600, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala)$
# Float Steam, fullscreen RetroArch # Float Steam, fullscreen RetroArch
windowrule = float, class:^(steam)$ windowrule = float, class:^(steam)$
@ -24,11 +25,6 @@ windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned
# Proper background blur for wofi # Proper background blur for wofi
layerrule = blur,wofi layerrule = blur,wofi
# Float in the middle for clipse clipboard manager
windowrule = float, class:(clipse)
windowrule = size 622 652, class:(clipse)
windowrule = stayfocused, class:(clipse)
# Float and cneter file pickers # Float and cneter file pickers
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?) windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?)
windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?) windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?)

BIN
default/plymouth/bullet.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

BIN
default/plymouth/entry.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

BIN
default/plymouth/lock.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
default/plymouth/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,9 @@
[Plymouth Theme]
Name=Omarchy
Description=Omarchy splash screen.
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/omarchy
ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script
ConsoleLogBackgroundColor=0x1a1b26

View File

@ -0,0 +1,238 @@
# Omarchy Plymouth Theme Script
Window.SetBackgroundTopColor(0.101, 0.105, 0.149);
Window.SetBackgroundBottomColor(0.101, 0.105, 0.149);
logo.image = Image("logo.png");
logo.sprite = Sprite(logo.image);
logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2);
logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2);
logo.sprite.SetOpacity (1);
# Use these to adjust the progress bar timing
global.fake_progress_limit = 0.7; # Target percentage for fake progress (0.0 to 1.0)
global.fake_progress_duration = 15.0; # Duration in seconds to reach limit
# Progress bar animation variables
global.fake_progress = 0.0;
global.real_progress = 0.0;
global.fake_progress_active = 0; # 0 / 1 boolean
global.animation_frame = 0;
global.fake_progress_start_time = 0; # Track when fake progress started
global.password_shown = 0; # Track if password dialog has been shown
fun refresh_callback ()
{
global.animation_frame++;
# Animate fake progress to limit over time with easing
if (global.fake_progress_active == 1)
{
# Calculate elapsed time since start
elapsed_time = global.animation_frame / 50.0; # Convert frames to seconds (50 FPS)
# Calculate linear progress ratio (0 to 1) based on time
time_ratio = elapsed_time / global.fake_progress_duration;
if (time_ratio > 1.0)
time_ratio = 1.0;
# Apply easing curve: ease-out quadratic
# Formula: 1 - (1 - x)^2
eased_ratio = 1 - ((1 - time_ratio) * (1 - time_ratio));
# Calculate fake progress based on eased ratio
global.fake_progress = eased_ratio * global.fake_progress_limit;
# Update progress bar with fake progress
update_progress_bar(global.fake_progress);
}
}
Plymouth.SetRefreshFunction (refresh_callback);
#----------------------------------------- Helper Functions --------------------------------
fun update_progress_bar(progress)
{
width = Math.Int(progress_bar.original_image.GetWidth() * progress);
if (width < 1) width = 1; # Ensure minimum width of 1 pixel
progress_bar.image = progress_bar.original_image.Scale(width, progress_bar.original_image.GetHeight());
progress_bar.sprite.SetImage(progress_bar.image);
}
fun show_progress_bar()
{
progress_box.sprite.SetOpacity(1);
progress_bar.sprite.SetOpacity(1);
}
fun hide_progress_bar()
{
progress_box.sprite.SetOpacity(0);
progress_bar.sprite.SetOpacity(0);
}
fun show_password_dialog()
{
lock.sprite.SetOpacity(1);
entry.sprite.SetOpacity(1);
}
fun hide_password_dialog()
{
lock.sprite.SetOpacity(0);
entry.sprite.SetOpacity(0);
for (index = 0; bullet.sprites[index]; index++)
bullet.sprites[index].SetOpacity(0);
}
fun start_fake_progress()
{
global.fake_progress = 0.0;
global.real_progress = 0.0;
global.fake_progress_active = 1;
global.animation_frame = 0;
update_progress_bar(0.0);
}
fun stop_fake_progress()
{
global.fake_progress_active = 0;
}
#----------------------------------------- Dialogue --------------------------------
lock.image = Image("lock.png");
entry.image = Image("entry.png");
bullet.image = Image("bullet.png");
entry.sprite = Sprite(entry.image);
entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2;
entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40;
entry.sprite.SetPosition(entry.x, entry.y, 10001);
entry.sprite.SetOpacity(0);
# Scale lock to be slightly shorter than entry field height
# Original lock is 84x96, entry height determines scale
lock_height = entry.image.GetHeight() * 0.8;
lock_scale = lock_height / 96;
lock_width = 84 * lock_scale;
scaled_lock = lock.image.Scale(lock_width, lock_height);
lock.sprite = Sprite(scaled_lock);
lock.x = entry.x - lock_width - 15;
lock.y = entry.y + entry.image.GetHeight()/2 - lock_height/2;
lock.sprite.SetPosition(lock.x, lock.y, 10001);
lock.sprite.SetOpacity(0);
# Bullet array
bullet.sprites = [];
fun display_normal_callback ()
{
hide_password_dialog();
# Get current mode
mode = Plymouth.GetMode();
# Only show progress bar for boot and resume modes
if ((mode == "boot" || mode == "resume") && global.password_shown == 1)
{
show_progress_bar();
start_fake_progress();
}
}
fun display_password_callback (prompt, bullets)
{
global.password_shown = 1; # Mark that password dialog has been shown
stop_fake_progress();
hide_progress_bar();
show_password_dialog();
# Clear all bullets first
for (index = 0; bullet.sprites[index]; index++)
bullet.sprites[index].SetOpacity(0);
# Create and show bullets for current password
for (index = 0; index < bullets; index++)
{
if (!bullet.sprites[index])
{
# Scale bullet image to 7x7 pixels
scaled_bullet = bullet.image.Scale(7, 7);
bullet.sprites[index] = Sprite(scaled_bullet);
bullet.x = entry.x + 20 + index * (7 + 5);
bullet.y = entry.y + entry.image.GetHeight() / 2 - 3.5;
bullet.sprites[index].SetPosition(bullet.x, bullet.y, 10002);
}
bullet.sprites[index].SetOpacity(1);
}
}
Plymouth.SetDisplayNormalFunction(display_normal_callback);
Plymouth.SetDisplayPasswordFunction(display_password_callback);
#----------------------------------------- Progress Bar --------------------------------
progress_box.image = Image("progress_box.png");
progress_box.sprite = Sprite(progress_box.image);
progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2;
progress_box.y = entry.y + entry.image.GetHeight() / 2 - progress_box.image.GetHeight() / 2;
progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0);
progress_box.sprite.SetOpacity(0);
progress_bar.original_image = Image("progress_bar.png");
progress_bar.sprite = Sprite();
progress_bar.image = progress_bar.original_image.Scale(1, progress_bar.original_image.GetHeight());
progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2;
progress_bar.y = progress_box.y + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2;
progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1);
progress_bar.sprite.SetOpacity(0);
fun progress_callback (duration, progress)
{
global.real_progress = progress;
# If real progress is above limit, stop fake progress and use real progress
if (progress > global.fake_progress_limit)
{
stop_fake_progress();
update_progress_bar(progress);
}
}
Plymouth.SetBootProgressFunction(progress_callback);
#----------------------------------------- Quit --------------------------------
fun quit_callback ()
{
logo.sprite.SetOpacity (1);
}
Plymouth.SetQuitFunction(quit_callback);
#----------------------------------------- Message --------------------------------
message_sprite = Sprite();
message_sprite.SetPosition(10, 10, 10000);
fun display_message_callback (text)
{
my_image = Image.Text(text, 1, 1, 1);
message_sprite.SetImage(my_image);
}
fun hide_message_callback (text)
{
message_sprite.SetOpacity(0);
}
Plymouth.SetDisplayMessageFunction (display_message_callback);
Plymouth.SetHideMessageFunction (hide_message_callback);

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

72
default/wofi/search.css Normal file
View File

@ -0,0 +1,72 @@
@import ".config/omarchy/current/theme/wofi.css";
* {
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);
}

8
default/wofi/select.css Normal file
View File

@ -0,0 +1,8 @@
@import ".config/omarchy/current/theme/wofi.css";
@import ".local/share/omarchy/default/wofi/search.css";
#input {
display: none;
opacity: 0;
margin-top: -200px;
}

View File

@ -1,9 +1,11 @@
sudo pacman -S --needed --noconfirm base-devel sudo pacman -S --needed --noconfirm base-devel
if ! command -v yay &>/dev/null; then if ! command -v yay &>/dev/null; then
cd /tmp
git clone https://aur.archlinux.org/yay-bin.git git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin cd yay-bin
makepkg -si --noconfirm makepkg -si --noconfirm
cd ~ cd -
rm -rf yay-bin rm -rf yay-bin
cd ~
fi fi

View File

@ -1,6 +1,6 @@
yay -S --noconfirm --needed \ yay -S --noconfirm --needed \
wget curl unzip inetutils \ wget curl unzip inetutils impala \
fd eza fzf ripgrep zoxide bat \ fd eza fzf ripgrep zoxide bat \
wl-clipboard fastfetch btop \ wl-clipboard fastfetch btop \
man tldr less whois plocate \ man tldr less whois plocate bash-completion \
alacritty bash-completion alacritty

View File

@ -1,9 +1,9 @@
yay -S --noconfirm --needed \ yay -S --noconfirm --needed \
brightnessctl playerctl pamixer pavucontrol wireplumber \ brightnessctl playerctl pamixer pavucontrol wireplumber \
fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool \ fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool \
wl-clip-persist clipse-bin \ wl-clip-persist \
nautilus sushi ffmpegthumbnailer gnome-calculator \ nautilus sushi ffmpegthumbnailer gnome-calculator \
1password-beta 1password-cli \ 1password-beta 1password-cli gnome-keyring \
chromium mpv \ chromium mpv \
evince imv \ evince imv \
localsend-bin localsend-bin

4
install/fix-fkeys.sh Normal file
View File

@ -0,0 +1,4 @@
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
sudo mkinitcpio -P
fi

View File

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

121
install/plymouth.sh Executable file
View File

@ -0,0 +1,121 @@
#!/usr/bin/env bash
if ! command -v plymouth &>/dev/null; then
yay -S --noconfirm --needed plymouth
# Skip if plymouth already exists for some reason
# Backup original mkinitcpio.conf just in case
backup_timestamp=$(date +"%Y%m%d%H%M%S")
sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}"
# Add plymouth to HOOKS array after 'base udev' or 'base systemd'
if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then
sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf
elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then
sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf
else
echo "Couldn't add the Plymouth hook"
fi
# Regenerate initramfs
sudo mkinitcpio -P
# Add kernel parameters for Plymouth (systemd-boot only)
if [ -d "/boot/loader/entries" ]; then
echo "Detected systemd-boot"
for entry in /boot/loader/entries/*.conf; do
if [ -f "$entry" ]; then
# Skip fallback entries
if [[ "$(basename "$entry")" == *"fallback"* ]]; then
echo "Skipped: $(basename "$entry") (fallback entry)"
continue
fi
# Skip if splash it already present for some reason
if ! grep -q "splash" "$entry"; then
sudo sed -i '/^options/ s/$/ splash quiet/' "$entry"
else
echo "Skipped: $(basename "$entry") (splash already present)"
fi
fi
done
elif [ -f "/etc/default/grub" ]; then
echo "Detected grub"
# Backup GRUB config before modifying
backup_timestamp=$(date +"%Y%m%d%H%M%S")
sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}"
# Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT
if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then
# Get current GRUB_CMDLINE_LINUX_DEFAULT value
current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2)
# Add splash and quiet if not present
new_cmdline="$current_cmdline"
if [[ ! "$current_cmdline" =~ splash ]]; then
new_cmdline="$new_cmdline splash"
fi
if [[ ! "$current_cmdline" =~ quiet ]]; then
new_cmdline="$new_cmdline quiet"
fi
# Trim any leading/trailing spaces
new_cmdline=$(echo "$new_cmdline" | xargs)
sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub
# Regenerate grub config
sudo grub-mkconfig -o /boot/grub/grub.cfg
else
echo "GRUB already configured with splash kernel parameters"
fi
elif [ -d "/etc/cmdline.d" ]; then
echo "Detected a UKI setup"
# Relying on mkinitcpio to assemble a UKI
# https://wiki.archlinux.org/title/Unified_kernel_image
if ! grep -q splash /etc/cmdline.d/*.conf; then
# Need splash, create the omarchy file
echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf
fi
if ! grep -q quiet /etc/cmdline.d/*.conf; then
# Need quiet, create or append the omarchy file
echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf
fi
elif [ -f "/etc/kernel/cmdline" ]; then
# Alternate UKI kernel cmdline location
echo "Detected a UKI setup"
# Backup kernel cmdline config before modifying
backup_timestamp=$(date +"%Y%m%d%H%M%S")
sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}"
current_cmdline=$(cat /etc/kernel/cmdline)
# Add splash and quiet if not present
new_cmdline="$current_cmdline"
if [[ ! "$current_cmdline" =~ splash ]]; then
new_cmdline="$new_cmdline splash"
fi
if [[ ! "$current_cmdline" =~ quiet ]]; then
new_cmdline="$new_cmdline quiet"
fi
# Trim any leading/trailing spaces
new_cmdline=$(echo "$new_cmdline" | xargs)
# Write new file
echo $new_cmdline | sudo tee /etc/kernel/cmdline
else
echo ""
echo "Neither systemd-boot nor GRUB detected. Please manually add these kernel parameters:"
echo " - splash (to see the graphical splash screen)"
echo " - quiet (for silent boot)"
echo ""
fi
# Copy and set the Plymouth theme
sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/
sudo plymouth-set-default-theme -R omarchy
fi

View File

@ -1,8 +1,8 @@
# Turn on bluetooth service so blueberry works out the box # Turn on bluetooth service so blueberry works out the box
echo "Let's turn on Bluetooth service so the controls work"
if systemctl is-enabled --quiet bluetooth.service && systemctl is-active --quiet bluetooth.service; then if systemctl is-enabled --quiet bluetooth.service && systemctl is-active --quiet bluetooth.service; then
# Bluetooth is already enabled, nothing to change # Bluetooth is already enabled, nothing to change
: :
else else
echo "Let's turn on Bluetooth service so the controls work"
sudo systemctl enable --now bluetooth.service sudo systemctl enable --now bluetooth.service
fi fi

View File

@ -1,5 +1,5 @@
echo "Add missing installation of bat (used by the ff alias)"
if ! command -v bat &>/dev/null; then if ! command -v bat &>/dev/null; then
# Add missing installation of bat # Add missing installation of bat
echo "Add missing installation of bat (used by the ff alias)"
yay -S --noconfirm --needed bat yay -S --noconfirm --needed bat
fi fi

View File

@ -1,3 +1,2 @@
echo "Installing missing fd terminal tool for finding files" echo "Installing missing fd terminal tool for finding files"
yay -S --noconfirm --needed fd yay -S --noconfirm --needed fd
echo "You must start a new terminal for fd to work"

View File

@ -1,19 +1,21 @@
echo "Switching from vlc to mpv for the default video player" echo "Switching from vlc to mpv for the default video player"
yay -Rns --noconfirm vlc if ! command -v mpv &>/dev/null; then
rm ~/.local/share/applications/vlc.desktop yay -Rns --noconfirm vlc
yay -S --noconfirm mpv rm ~/.local/share/applications/vlc.desktop
xdg-mime default mpv.desktop video/mp4 yay -S --noconfirm mpv
xdg-mime default mpv.desktop video/x-msvideo xdg-mime default mpv.desktop video/mp4
xdg-mime default mpv.desktop video/x-matroska xdg-mime default mpv.desktop video/x-msvideo
xdg-mime default mpv.desktop video/x-flv xdg-mime default mpv.desktop video/x-matroska
xdg-mime default mpv.desktop video/x-ms-wmv xdg-mime default mpv.desktop video/x-flv
xdg-mime default mpv.desktop video/mpeg xdg-mime default mpv.desktop video/x-ms-wmv
xdg-mime default mpv.desktop video/ogg xdg-mime default mpv.desktop video/mpeg
xdg-mime default mpv.desktop video/webm xdg-mime default mpv.desktop video/ogg
xdg-mime default mpv.desktop video/quicktime xdg-mime default mpv.desktop video/webm
xdg-mime default mpv.desktop video/3gpp xdg-mime default mpv.desktop video/quicktime
xdg-mime default mpv.desktop video/3gpp2 xdg-mime default mpv.desktop video/3gpp
xdg-mime default mpv.desktop video/x-ms-asf xdg-mime default mpv.desktop video/3gpp2
xdg-mime default mpv.desktop video/x-ogm+ogg xdg-mime default mpv.desktop video/x-ms-asf
xdg-mime default mpv.desktop video/x-theora+ogg xdg-mime default mpv.desktop video/x-ogm+ogg
xdg-mime default mpv.desktop application/ogg xdg-mime default mpv.desktop video/x-theora+ogg
xdg-mime default mpv.desktop application/ogg
fi

View File

@ -1,3 +1,5 @@
echo "Add missing docker config" echo "Ensure Docker config is set"
sudo mkdir -p /etc/docker if [[ ! -f /etc/docker/daemon.json ]]; then
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json sudo mkdir -p /etc/docker
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json
fi

6
migrations/1751887718.sh Normal file
View File

@ -0,0 +1,6 @@
echo "Install Impala as new wifi selection TUI"
if ! command -v impala &>/dev/null; then
yay -S --noconfirm --needed impala
echo "You need to update the Waybar config to use Impala Wi-Fi selector in top bar."
omarchy-refresh-waybar
fi

2
migrations/1752081088.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)"
source ~/.local/share/omarchy/install/fix-fkeys.sh

9
migrations/1752081300.sh Normal file
View File

@ -0,0 +1,9 @@
echo "Switching system authentication prompt to dark mode"
if [[ ! -f ~/.config/systemd/user/hyprpolkitagent.service.d/override.conf ]]; then
source ~/.local/share/omarchy/install/hyprpolkitagent.sh
# Reload user systemd and restart service
systemctl --user daemon-reexec
systemctl --user daemon-reload
systemctl --user restart hyprpolkitagent
fi

2
migrations/1752082381.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Adding gnome-keyring to make 1password work with 2FA codes"
yay -S --noconfirm --needed gnome-keyring

2
migrations/1752091783.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Install Plymouth splash screen"
source "$HOME/.local/share/omarchy/install/plymouth.sh"

8
migrations/1752104271.sh Normal file
View File

@ -0,0 +1,8 @@
echo "Switching to polkit-gnome for better fingerprint authentication compatibility"
if ! command -v /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &>/dev/null; then
yay -S --noconfirm --needed polkit-gnome
systemctl --user stop hyprpolkitagent
systemctl --user disable hyprpolkitagent
yay -Rns --noconfirm hyprpolkitagent
setsid /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
fi

View File

@ -1,73 +1,4 @@
@define-color selected-text #8caaee; @define-color selected-text #8caaee;
@define-color text #c6d0f5; @define-color text #c6d0f5;
@define-color base #24273a; @define-color base #24273a;
@define-color border #c6d0f5;
* {
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;
}
#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);
}

View File

@ -1,73 +1,4 @@
@define-color selected-text #dbbc7f; @define-color selected-text #dbbc7f;
@define-color text #d3c6aa; @define-color text #d3c6aa;
@define-color base #2d353b; @define-color base #2d353b;
@define-color border #d3c6aa;
* {
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;
}
#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);
}

View File

@ -1,73 +1,4 @@
@define-color selected-text #fabd2f; @define-color selected-text #fabd2f;
@define-color text #ebdbb2; @define-color text #ebdbb2;
@define-color base #282828; @define-color base #282828;
@define-color border #ebdbb2;
* {
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;
}
#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);
}

View File

@ -1,73 +1,4 @@
@define-color selected-text #dca561; @define-color selected-text #dca561;
@define-color text #dcd7ba; @define-color text #dcd7ba;
@define-color base #1f1f28; @define-color base #1f1f28;
@define-color border #dcd7ba;
* {
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;
}
#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);
}

View File

@ -1,73 +1,4 @@
@define-color selected-text #88C0D0; @define-color selected-text #88C0D0;
@define-color text #D8DEE9; @define-color text #D8DEE9;
@define-color base #2E3440; @define-color base #2E3440;
@define-color border #D8DEE9;
* {
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;
}
#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);
}

View File

@ -1,73 +1,4 @@
@define-color selected-text #7dcfff; @define-color selected-text #7dcfff;
@define-color text #cfc9c2; @define-color text #cfc9c2;
@define-color base #1a1b26; @define-color base #1a1b26;
@define-color border #33ccff;
* {
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;
}
#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);
}