diff --git a/bin/omarchy b/bin/omarchy index adeb703..936aec2 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -24,12 +24,13 @@ main_menu() { update_menu() { show_ascii_art - local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "Desktop apps" "Back") + local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "SwayOSD" "Desktop apps" "Back") local commands=( "omarchy-update" "omarchy-refresh-waybar" "omarchy-refresh-walker" "omarchy-refresh-plymouth" + "omarchy-refresh-swayosd" "omarchy-refresh-applications" "main_menu" ) @@ -119,12 +120,13 @@ setup_menu() { } setup_docker_dbs() { - options=("MySQL" "Redis" "PostgreSQL") + options=("MariaDB" "MySQL" "Redis" "PostgreSQL") choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu if [[ -n "$choices" ]]; then for db in $choices; do case $db in + MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;; MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;; Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;; PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;; diff --git a/bin/omarchy-refresh-swayosd b/bin/omarchy-refresh-swayosd new file mode 100755 index 0000000..aa63918 --- /dev/null +++ b/bin/omarchy-refresh-swayosd @@ -0,0 +1,13 @@ +#!/bin/bash + +cp -f ~/.config/swayosd/config.toml ~/.config/swayosd/config.toml.bak 2>/dev/null +cp -f ~/.local/share/omarchy/config/swayosd/config.toml ~/.config/swayosd/ 3>/dev/null + +if cmp -s ~/.config/swayosd/config.toml.bak ~/.config/swayosd/config.toml; then + rm ~/.config/swayosd//config.toml.bak +else + echo -e "\e[31mExisting .config/swayosd/config.toml replaced with new Omarchy default, but a .bak file was made.\e[0m" +fi + +pkill swayosd-server +setsid uwsm app -- swayosd-server &>/dev/null & diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set index b384264..3766c20 100755 --- a/bin/omarchy-theme-set +++ b/bin/omarchy-theme-set @@ -35,11 +35,11 @@ fi # Trigger alacritty config reload touch "$HOME/.config/alacritty/alacritty.toml" -# Trigger btop config reload -pkill -SIGUSR2 btop - # Restart components to apply new theme +pkill -SIGUSR2 btop pkill -SIGUSR2 waybar +pkill swayosd-server +setsid uwsm app -- swayosd-server &>/dev/null & makoctl reload hyprctl reload diff --git a/config/swayosd/config.toml b/config/swayosd/config.toml new file mode 100644 index 0000000..694ab07 --- /dev/null +++ b/config/swayosd/config.toml @@ -0,0 +1,4 @@ +[server] +show_percentage = true +max_volume = 150 +style = "./style.css" diff --git a/config/swayosd/style.css b/config/swayosd/style.css new file mode 100644 index 0000000..544b6cb --- /dev/null +++ b/config/swayosd/style.css @@ -0,0 +1,28 @@ +@import "../omarchy/current/theme/swayosd.css"; + +window { + border-radius: 0; + opacity: 0.97; + border: 2px solid @border-color; + + background-color: @background-color; +} + +label { + font-family: 'CaskaydiaMono Nerd Font', monospace; + font-size: 11pt; + + color: @label; +} + +image { + color: @image; +} + +progressbar { + border-radius: 0; +} + +progress { + background-color: @progress; +} diff --git a/default/bash/rc b/default/bash/rc index e8ba051..b0b572c 100644 --- a/default/bash/rc +++ b/default/bash/rc @@ -4,4 +4,4 @@ source ~/.local/share/omarchy/default/bash/functions source ~/.local/share/omarchy/default/bash/prompt source ~/.local/share/omarchy/default/bash/init source ~/.local/share/omarchy/default/bash/envs -bind -f ~/.local/share/omarchy/default/bash/inputrc +[[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc diff --git a/default/hypr/bindings/media.conf b/default/hypr/bindings/media.conf index 46430cb..eb86284 100644 --- a/default/hypr/bindings/media.conf +++ b/default/hypr/bindings/media.conf @@ -1,13 +1,16 @@ +# Only display the OSD on the currently focused monitor +$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')" + # Laptop multimedia keys for volume and LCD brightness (with OSD) -bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise -bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower -bindel = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle -bindel = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle -bindel = ,XF86MonBrightnessUp, exec, swayosd-client --brightness raise -bindel = ,XF86MonBrightnessDown, exec, swayosd-client --brightness lower +bindel = ,XF86AudioRaiseVolume, exec, $osdclient --output-volume raise +bindel = ,XF86AudioLowerVolume, exec, $osdclient --output-volume lower +bindel = ,XF86AudioMute, exec, $osdclient --output-volume mute-toggle +bindel = ,XF86AudioMicMute, exec, $osdclient --input-volume mute-toggle +bindel = ,XF86MonBrightnessUp, exec, $osdclient --brightness raise +bindel = ,XF86MonBrightnessDown, exec, $osdclient --brightness lower # Requires playerctl -bindl = , XF86AudioNext, exec, playerctl next -bindl = , XF86AudioPause, exec, playerctl play-pause -bindl = , XF86AudioPlay, exec, playerctl play-pause -bindl = , XF86AudioPrev, exec, playerctl previous +bindl = , XF86AudioNext, exec, $osdclient --playerctl next +bindl = , XF86AudioPause, exec, $osdclient --playerctl play-pause +bindl = , XF86AudioPlay, exec, $osdclient --playerctl play-pause +bindl = , XF86AudioPrev, exec, $osdclient --playerctl previous diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index 7cbb244..bf9049d 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -6,7 +6,7 @@ windowrule = tile, class:^(Chromium)$ # Float and center settings and previews windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$ -windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer)$ +windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty)$ windowrule = size 645 450, class:Omarchy windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$ diff --git a/install/4-config.sh b/install/4-config.sh index 385f333..91157f6 100644 --- a/install/4-config.sh +++ b/install/4-config.sh @@ -3,6 +3,9 @@ # Copy over Omarchy configs cp -R ~/.local/share/omarchy/config/* ~/.config/ +# Use default bashrc from Omarchy +echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc + # Ensure application directory exists for update-desktop-database mkdir -p ~/.local/share/applications @@ -13,8 +16,9 @@ sudo chmod 644 /etc/gnupg/dirmngr.conf sudo gpgconf --kill dirmngr || true sudo gpgconf --launch dirmngr || true -# Use default bashrc from Omarchy -echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc +# Increase lockout limit to 10 and decrease timeout to 2 minutes +sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth" +sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth" # Set common git aliases git config --global alias.co checkout diff --git a/install/nvidia.sh b/install/nvidia.sh index 0f76f50..3385e04 100644 --- a/install/nvidia.sh +++ b/install/nvidia.sh @@ -35,6 +35,9 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf fi + # force package database refresh + sudo pacman -Syy + # Install packages PACKAGES_TO_INSTALL=( "${KERNEL_HEADERS}" diff --git a/install/theme.sh b/install/theme.sh index b370751..12a29ae 100644 --- a/install/theme.sh +++ b/install/theme.sh @@ -15,7 +15,7 @@ for f in ~/.local/share/omarchy/themes/*; do ln -s "$f" ~/.config/omarchy/themes # Set initial theme mkdir -p ~/.config/omarchy/current ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current/theme -ln -snf ~/.config/omarchy/current/theme/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background +ln -snf ~/.config/omarchy/current/theme/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png ~/.config/omarchy/current/background # Set specific app links for current theme ln -snf ~/.config/omarchy/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua diff --git a/migrations/1753224615.sh b/migrations/1753224615.sh new file mode 100755 index 0000000..cd6c797 --- /dev/null +++ b/migrations/1753224615.sh @@ -0,0 +1,9 @@ +echo "Adding SwayOSD theming" + +if [[ ! -d ~/.config/swayosd ]]; then + mkdir -p ~/.config/swayosd + cp -r ~/.local/share/omarchy/config/swayosd/* ~/.config/swayosd/ + + pkill swayosd-server + setsid uwsm app -- swayosd-server &>/dev/null & +fi diff --git a/migrations/1753286633.sh b/migrations/1753286633.sh new file mode 100644 index 0000000..5c7f2cf --- /dev/null +++ b/migrations/1753286633.sh @@ -0,0 +1,6 @@ +echo "Increase lockout limit to 10, decrease timeout to 2 minutes" + +if ! grep -q 'deny=10' /etc/pam.d/system-auth; then + sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth" + sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth" +fi diff --git a/themes/catppuccin-latte/swayosd.css b/themes/catppuccin-latte/swayosd.css new file mode 100644 index 0000000..5b0eaea --- /dev/null +++ b/themes/catppuccin-latte/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #eff1f5; +@define-color border-color #4c4f69; +@define-color label #4c4f69; +@define-color image #4c4f69; +@define-color progress #4c4f69; + diff --git a/themes/catppuccin/swayosd.css b/themes/catppuccin/swayosd.css new file mode 100644 index 0000000..a25d38a --- /dev/null +++ b/themes/catppuccin/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #24273a; +@define-color border-color #c6d0f5; +@define-color label #c6d0f5; +@define-color image #c6d0f5; +@define-color progress #c6d0f5; + diff --git a/themes/everforest/swayosd.css b/themes/everforest/swayosd.css new file mode 100644 index 0000000..f0bff40 --- /dev/null +++ b/themes/everforest/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #2d353b; +@define-color border-color #d3c6aa; +@define-color label #d3c6aa; +@define-color image #d3c6aa; +@define-color progress #d3c6aa; + diff --git a/themes/gruvbox/swayosd.css b/themes/gruvbox/swayosd.css new file mode 100644 index 0000000..614748f --- /dev/null +++ b/themes/gruvbox/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #282828; +@define-color border-color #ebdbb2; +@define-color label #ebdbb2; +@define-color image #ebdbb2; +@define-color progress #ebdbb2; + diff --git a/themes/kanagawa/swayosd.css b/themes/kanagawa/swayosd.css new file mode 100644 index 0000000..1eb5c85 --- /dev/null +++ b/themes/kanagawa/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #1f1f28; +@define-color border-color #dcd7ba; +@define-color label #dcd7ba; +@define-color image #dcd7ba; +@define-color progress #dcd7ba; + diff --git a/themes/matte-black/swayosd.css b/themes/matte-black/swayosd.css new file mode 100644 index 0000000..08c28d7 --- /dev/null +++ b/themes/matte-black/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #121212; +@define-color border-color #EAEAEA; +@define-color label #EAEAEA; +@define-color image #EAEAEA; +@define-color progress #EAEAEA; + diff --git a/themes/nord/swayosd.css b/themes/nord/swayosd.css new file mode 100644 index 0000000..db1b40d --- /dev/null +++ b/themes/nord/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #2E3440; +@define-color border-color #D8DEE9; +@define-color label #D8DEE9; +@define-color image #D8DEE9; +@define-color progress #D8DEE9; + diff --git a/themes/rose-pine/swayosd.css b/themes/rose-pine/swayosd.css new file mode 100644 index 0000000..e58cc08 --- /dev/null +++ b/themes/rose-pine/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #faf4ed; +@define-color border-color #575279; +@define-color label #575279; +@define-color image #575279; +@define-color progress #575279; + diff --git a/themes/tokyo-night/backgrounds/3-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png b/themes/tokyo-night/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png similarity index 100% rename from themes/tokyo-night/backgrounds/3-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png rename to themes/tokyo-night/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png diff --git a/themes/tokyo-night/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg b/themes/tokyo-night/backgrounds/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg similarity index 100% rename from themes/tokyo-night/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg rename to themes/tokyo-night/backgrounds/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg diff --git a/themes/tokyo-night/backgrounds/2--Milad-Fakurian-Abstract-Purple-Blue.jpg b/themes/tokyo-night/backgrounds/3--Milad-Fakurian-Abstract-Purple-Blue.jpg similarity index 100% rename from themes/tokyo-night/backgrounds/2--Milad-Fakurian-Abstract-Purple-Blue.jpg rename to themes/tokyo-night/backgrounds/3--Milad-Fakurian-Abstract-Purple-Blue.jpg diff --git a/themes/tokyo-night/swayosd.css b/themes/tokyo-night/swayosd.css new file mode 100644 index 0000000..14c0dcd --- /dev/null +++ b/themes/tokyo-night/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #1a1b26; +@define-color border-color #33ccff; +@define-color label #33ccff; +@define-color image #33ccff; +@define-color progress #33ccff; +