diff --git a/bin/omarchy-fingerprint-setup b/bin/omarchy-fingerprint-setup index 25e587c..fb98dfa 100755 --- a/bin/omarchy-fingerprint-setup +++ b/bin/omarchy-fingerprint-setup @@ -3,7 +3,7 @@ yay -S --noconfirm --needed fprint 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 +sudo fprintd-enroll `whoami` echo -e "\e[32m\nNow let's verify that it's working correctly.\e[0m\n" diff --git a/bin/omarchy-power-menu b/bin/omarchy-power-menu new file mode 100755 index 0000000..83157ba --- /dev/null +++ b/bin/omarchy-power-menu @@ -0,0 +1,26 @@ +#!/bin/bash + +# Power menu for Omarchy +# Provides power off, restart, and sleep options + +# Function to show power menu +show_power_menu() { + local menu_options="\u200B Lock +\u200C󰤄 Sleep +\u200D Relaunch +\u2060󰜉 Restart +󰐥\u2063 Shutdown" # These first characters are invisible sort keys + + local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 200 --height 250 -O alphabetical) + + case "$selection" in + *Lock*) hyprlock ;; + *Sleep*) systemctl suspend ;; + *Relaunch*) hyprctl dispatch exit ;; + *Restart*) systemctl reboot ;; + *Shutdown*) systemctl poweroff ;; + esac +} + +# Main execution +show_power_menu diff --git a/bin/omarchy-refresh-waybar b/bin/omarchy-refresh-waybar new file mode 100755 index 0000000..4193870 --- /dev/null +++ b/bin/omarchy-refresh-waybar @@ -0,0 +1,9 @@ +#!/bin/bash + +# Overwrite local waybar settings with the latest in Omarchy +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 +pkill waybar &>/dev/null +setsid waybar &>/dev/null & diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index 42259de..80e5431 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -27,7 +27,6 @@ source = ~/.config/omarchy/current/theme/hyprland.conf # Extra env variables env = GDK_SCALE,2 # Change to 1 if on a 1x display - # Extra bindings bind = SUPER, A, exec, $webapp="https://chatgpt.com" bind = SUPER SHIFT, A, exec, $webapp="https://grok.com" @@ -39,8 +38,31 @@ bind = SUPER ALT, G, exec, $webapp="https://messages.google.com/web/conversation bind = SUPER, X, exec, $webapp="https://x.com/" bind = SUPER SHIFT, X, exec, $webapp="https://x.com/compose/post" -# Use multiple keyboard layouts and switch between them with Alt + Space -# input { -# kb_layout = us,dk -# kb_options = compose:caps,grp:alt_space_toggle -# } +# Control your input devices +# See https://wiki.hypr.land/Configuring/Variables/#input +input { + # Use multiple keyboard layouts and switch between them with Alt + Space + # kb_layout = us,dk + # kb_options = compose:caps,grp:alt_space_toggle + + # Change speed of keyboard repeat + repeat_rate = 40 + repeat_delay = 600 + + # Increase sensitity for mouse/trackpack (default: 0) + # sensitivity = 0.35 + + touchpad { + # Use natural (inverse) scrolling + # natural_scroll = true + + # Use two-finger clicks for right-click instead of lower-right corner + # clickfinger_behavior = true + + # Control the speed of your scrolling + scroll_factor = 0.4 + } +} + +# Scroll faster in the terminal +windowrule = scrolltouchpad 1.5, class:Alacritty diff --git a/config/waybar/config b/config/waybar/config index f0911c1..8338713 100644 --- a/config/waybar/config +++ b/config/waybar/config @@ -10,13 +10,12 @@ "clock" ], "modules-right": [ - "custom/dropbox", "bluetooth", "network", "pulseaudio", "cpu", - "power-profiles-daemon", - "battery" + "battery", + "custom/power-menu" ], "hyprland/workspaces": { "on-click": "activate", @@ -103,23 +102,9 @@ "on-click-right": "pamixer -t", "ignored-sinks": ["Easy Effects Sink"] }, - "power-profiles-daemon": { - "format": "{icon}", - "tooltip-format": "Power profile: {profile}", - "tooltip": true, - "format-icons": { - "power-saver": "󰡳", - "balanced": "󰊚", - "performance": "󰡴" - } - }, - "custom/dropbox": { - "format": "", - "on-click": "nautilus ~/Dropbox", - "exec": "dropbox-cli status", - "return-type": "text", - "interval": 5, - "tooltip": true, - "tooltip-format": "{}" + "custom/power-menu": { + "format": "󰐥", + "on-click": "~/.local/share/omarchy/bin/omarchy-power-menu", + "tooltip": false } } diff --git a/config/waybar/style.css b/config/waybar/style.css index 1cdbf6d..672536a 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -18,12 +18,12 @@ #custom-dropbox, #cpu, -#power-profiles-daemon, #battery, #network, #bluetooth, #pulseaudio, -#clock { +#clock, +#custom-power-menu { min-width: 12px; margin-right: 13px; } diff --git a/default/bash/shell b/default/bash/shell index 823129e..424ead2 100644 --- a/default/bash/shell +++ b/default/bash/shell @@ -5,7 +5,9 @@ HISTSIZE=32768 HISTFILESIZE="${HISTSIZE}" # Autocompletion -# source /usr/share/bash-completion/bash_completion +if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_completion ]]; then + source /usr/share/bash-completion/bash_completion +fi # Set complete path export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omarchy/bin:$PATH" diff --git a/default/hypr/bindings.conf b/default/hypr/bindings.conf index bd96759..b2f50d5 100644 --- a/default/hypr/bindings.conf +++ b/default/hypr/bindings.conf @@ -16,6 +16,11 @@ 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, K, exec, ~/.local/share/omarchy/bin/omarchy-show-keybindings +# 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" + bind = SUPER, W, killactive, # End active session diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index 99ba971..a0716b5 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -28,3 +28,7 @@ layerrule = blur,wofi windowrule = float, class:(clipse) windowrule = size 622 652, class:(clipse) windowrule = stayfocused, class:(clipse) + +# Float and cneter file pickers +windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?) +windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?) diff --git a/install.sh b/install.sh index bd4465b..381b778 100644 --- a/install.sh +++ b/install.sh @@ -5,7 +5,10 @@ set -e trap 'echo "Omarchy installation failed! You can retry by running: source ~/.local/share/omarchy/install.sh"' ERR # Install everything -for f in ~/.local/share/omarchy/install/*.sh; do source "$f"; done +for f in ~/.local/share/omarchy/install/*.sh; do + echo -e "\nRunning installer: $f" + source "$f" +done # Ensure locate is up to date now that everything has been installed sudo updatedb diff --git a/install/3-terminal.sh b/install/3-terminal.sh index 79afcda..cb600b5 100644 --- a/install/3-terminal.sh +++ b/install/3-terminal.sh @@ -3,4 +3,4 @@ yay -S --noconfirm --needed \ fd eza fzf ripgrep zoxide bat \ wl-clipboard fastfetch btop \ man tldr less whois plocate \ - alacritty + alacritty bash-completion diff --git a/install/desktop.sh b/install/desktop.sh index 581d603..a122ad5 100644 --- a/install/desktop.sh +++ b/install/desktop.sh @@ -2,7 +2,7 @@ yay -S --noconfirm --needed \ brightnessctl playerctl pamixer pavucontrol wireplumber \ fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool \ wl-clip-persist clipse-bin \ - nautilus sushi gnome-calculator \ + nautilus sushi ffmpegthumbnailer gnome-calculator \ 1password-beta 1password-cli \ chromium mpv \ evince imv \ diff --git a/migrations/1751679069.sh b/migrations/1751679069.sh new file mode 100644 index 0000000..e42dc62 --- /dev/null +++ b/migrations/1751679069.sh @@ -0,0 +1,2 @@ +echo "Install ffmpegthumbnailer for video thumbnails in the file manager" +yay -S --noconfirm --needed ffmpegthumbnailer diff --git a/migrations/1751821819.sh b/migrations/1751821819.sh new file mode 100644 index 0000000..0978dc0 --- /dev/null +++ b/migrations/1751821819.sh @@ -0,0 +1,2 @@ +echo "Install bash-completion" +yay -S --noconfirm --needed bash-completion diff --git a/themes/catppuccin/mako.ini b/themes/catppuccin/mako.ini index 6693ddb..0ba300c 100644 --- a/themes/catppuccin/mako.ini +++ b/themes/catppuccin/mako.ini @@ -12,3 +12,9 @@ max-icon-size=32 [app-name=Spotify] invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/everforest/mako.ini b/themes/everforest/mako.ini index ee68224..6e84cf5 100644 --- a/themes/everforest/mako.ini +++ b/themes/everforest/mako.ini @@ -12,3 +12,9 @@ max-icon-size=32 [app-name=Spotify] invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/gruvbox/mako.ini b/themes/gruvbox/mako.ini index f5856b0..fe4a298 100644 --- a/themes/gruvbox/mako.ini +++ b/themes/gruvbox/mako.ini @@ -12,3 +12,9 @@ max-icon-size=32 [app-name=Spotify] invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/kanagawa/mako.ini b/themes/kanagawa/mako.ini index 6692aed..f6b365b 100644 --- a/themes/kanagawa/mako.ini +++ b/themes/kanagawa/mako.ini @@ -12,3 +12,9 @@ max-icon-size=32 [app-name=Spotify] invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/nord/mako.ini b/themes/nord/mako.ini index 8324ac3..c5786d1 100644 --- a/themes/nord/mako.ini +++ b/themes/nord/mako.ini @@ -12,3 +12,9 @@ max-icon-size=32 [app-name=Spotify] invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/tokyo-night/mako.ini b/themes/tokyo-night/mako.ini index 5037071..2a57423 100644 --- a/themes/tokyo-night/mako.ini +++ b/themes/tokyo-night/mako.ini @@ -12,3 +12,9 @@ max-icon-size=32 [app-name=Spotify] invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false