diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index ae5d17d4..9619e450 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -1,5 +1,5 @@ name: Bug -description: Report a problem +description: Report a validated bug -- NOT FOR SUPPORT REQUESTS labels: [bug] body: - type: markdown @@ -19,5 +19,6 @@ body: id: steps attributes: label: What's wrong? + description: Describe the issue, include steps to recreate it if possible, and attach the output of `omarchy-debug` if possible validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 3ba13e0c..2e9a3140 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1 +1,8 @@ blank_issues_enabled: false +contact_links: + - name: Suggestion + url: https://github.com/basecamp/omarchy/discussions/categories/suggestions + about: Suggest a new feature, change to existing feature, or other ideas in Discussions. + - name: Support + url: https://omarchy.org/discord + about: Need help? Join our Discord community for support with any issues. GitHub issues should be used for verified bugs only. diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml deleted file mode 100644 index 33edaeab..00000000 --- a/.github/ISSUE_TEMPLATE/documentation.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Documentation -description: New pages or changes to existing -labels: [documentation] -body: - - type: markdown - attributes: - value: | - Remember: Omarchy is an open source gift, not a product you bought from a vendor - - - type: textarea - id: steps - attributes: - label: What correction or addition do we need? - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml deleted file mode 100644 index b640c39f..00000000 --- a/.github/ISSUE_TEMPLATE/enhancement.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Enhancement -description: Feature or change -labels: [enhancement] -body: - - type: markdown - attributes: - value: | - Remember: Omarchy is an open source gift, not a product you bought from a vendor - - - type: textarea - id: steps - attributes: - label: What do you need? - validations: - required: true diff --git a/applications/icons/Fizzy.png b/applications/icons/Fizzy.png new file mode 100644 index 00000000..c68957e4 Binary files /dev/null and b/applications/icons/Fizzy.png differ diff --git a/applications/icons/Google Maps.png b/applications/icons/Google Maps.png new file mode 100644 index 00000000..f4fc834d Binary files /dev/null and b/applications/icons/Google Maps.png differ diff --git a/applications/nvim.desktop b/applications/nvim.desktop deleted file mode 100644 index 23fab41f..00000000 --- a/applications/nvim.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Name=Neovim -GenericName=Text Editor -Comment=Edit text files -Exec=omarchy-launch-editor %F -Terminal=false -Type=Application -Keywords=Text;editor; -Icon=nvim -Categories=Utility;TextEditor; -StartupNotify=false -MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; diff --git a/autostart/walker.desktop b/autostart/walker.desktop new file mode 100644 index 00000000..fa7bdfe2 --- /dev/null +++ b/autostart/walker.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=Walker +Comment=Walker Service +Exec=walker --gapplication-service +StartupNotify=false +Terminal=false +Type=Application diff --git a/bin/omarchy-battery-monitor b/bin/omarchy-battery-monitor index fd16afb1..84c42974 100755 --- a/bin/omarchy-battery-monitor +++ b/bin/omarchy-battery-monitor @@ -4,33 +4,20 @@ BATTERY_THRESHOLD=10 NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified" - -get_battery_percentage() { - upower -i "$(upower -e | grep 'BAT')" \ - | awk -F: '/percentage/ { - gsub(/[%[:space:]]/, "", $2); - val=$2; - printf("%d\n", (val+0.5)) - exit - }' -} - -get_battery_state() { - upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}' -} +BATTERY_LEVEL=$(omarchy-battery-remaining) +BATTERY_STATE=$(upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}') send_notification() { notify-send -u critical "󱐋 Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000 } -BATTERY_LEVEL=$(get_battery_percentage) -BATTERY_STATE=$(get_battery_state) - -if [[ "$BATTERY_STATE" == "discharging" && "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]]; then - if [[ ! -f "$NOTIFICATION_FLAG" ]]; then - send_notification "$BATTERY_LEVEL" - touch "$NOTIFICATION_FLAG" +if [[ -n "$BATTERY_LEVEL" && "$BATTERY_LEVEL" =~ ^[0-9]+$ ]]; then + if [[ $BATTERY_STATE == "discharging" && $BATTERY_LEVEL -le $BATTERY_THRESHOLD ]]; then + if [[ ! -f $NOTIFICATION_FLAG ]]; then + send_notification $BATTERY_LEVEL + touch $NOTIFICATION_FLAG + fi + else + rm -f $NOTIFICATION_FLAG fi -else - rm -f "$NOTIFICATION_FLAG" fi diff --git a/bin/omarchy-battery-remaining b/bin/omarchy-battery-remaining new file mode 100755 index 00000000..855b4c6b --- /dev/null +++ b/bin/omarchy-battery-remaining @@ -0,0 +1,11 @@ +#!/bin/bash + +# Returns the battery percentage remaining as an integer. + +upower -i $(upower -e | grep BAT) \ +| awk -F: '/percentage/ { + gsub(/[%[:space:]]/, "", $2); + val=$2; + printf("%d\n", (val+0.5)) + exit + }' diff --git a/bin/omarchy-branch-set b/bin/omarchy-branch-set new file mode 100755 index 00000000..a6af4fa3 --- /dev/null +++ b/bin/omarchy-branch-set @@ -0,0 +1,14 @@ +#!/bin/bash + +if (($# == 0)); then + echo "Usage: omarchy-branch-set [master|dev]" + exit 1 +else + branch="$1" +fi + +case "$branch" in + "master") git -C $OMARCHY_PATH switch master ;; + "dev") git -C $OMARCHY_PATH switch dev ;; + *) echo "Unknown branch: $branch"; exit 1; ;; +esac diff --git a/bin/omarchy-channel-set b/bin/omarchy-channel-set new file mode 100755 index 00000000..c0b98a5f --- /dev/null +++ b/bin/omarchy-channel-set @@ -0,0 +1,17 @@ +#!/bin/bash + +if (($# == 0)); then + echo "Usage: omarchy-channel-set [stable|edge|dev]" + exit 1 +else + channel="$1" +fi + +case "$channel" in +"stable") omarchy-branch-set "master" && omarchy-refresh-pacman "stable" ;; +"edge") omarchy-branch-set "master" && omarchy-refresh-pacman "edge" ;; +"dev") omarchy-branch-set "dev" && omarchy-refresh-pacman "edge" ;; +*) echo "Unknown channel: $channel"; exit 1; ;; +esac + +omarchy-update -y diff --git a/bin/omarchy-cmd-first-run b/bin/omarchy-cmd-first-run index 1031185f..b400a584 100755 --- a/bin/omarchy-cmd-first-run +++ b/bin/omarchy-cmd-first-run @@ -12,8 +12,9 @@ if [[ -f "$FIRST_RUN_MODE" ]]; then bash "$OMARCHY_PATH/install/first-run/firewall.sh" bash "$OMARCHY_PATH/install/first-run/dns-resolver.sh" bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh" + bash "$OMARCHY_PATH/install/first-run/elephant.sh" sudo rm -f /etc/sudoers.d/first-run - bash "$OMARCHY_PATH/install/first-run/wifi.sh" bash "$OMARCHY_PATH/install/first-run/welcome.sh" + bash "$OMARCHY_PATH/install/first-run/wifi.sh" fi diff --git a/bin/omarchy-cmd-reboot b/bin/omarchy-cmd-reboot new file mode 100755 index 00000000..c1f6472d --- /dev/null +++ b/bin/omarchy-cmd-reboot @@ -0,0 +1,6 @@ +#!/bin/bash + +omarchy-state clear re*-required +omarchy-hyprland-window-close-all +sleep 1 # Allow apps like Chrome to shutdown correctly +systemctl reboot --no-wall diff --git a/bin/omarchy-cmd-screenrecord b/bin/omarchy-cmd-screenrecord index 0ea1e513..ec243ddb 100755 --- a/bin/omarchy-cmd-screenrecord +++ b/bin/omarchy-cmd-screenrecord @@ -8,15 +8,17 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then exit 1 fi -SCOPE="" -AUDIO="false" +DESKTOP_AUDIO="false" +MICROPHONE_AUDIO="false" WEBCAM="false" +STOP_RECORDING="false" for arg in "$@"; do case "$arg" in - --with-audio) AUDIO="true" ;; + --with-desktop-audio) DESKTOP_AUDIO="true" ;; + --with-microphone-audio) MICROPHONE_AUDIO="true" ;; --with-webcam) WEBCAM="true" ;; - output|region) SCOPE="$arg" ;; + --stop-recording) STOP_RECORDING="true" esac done @@ -57,27 +59,35 @@ start_webcam_overlay() { start_screenrecording() { local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" + local audio_devices="" local audio_args="" - # Merge audio tracks into one - separate tracks only play one at a time in most players - [[ "$AUDIO" == "true" ]] && audio_args="-a default_output|default_input" + [[ "$DESKTOP_AUDIO" == "true" ]] && audio_devices+="default_output" - gpu-screen-recorder -w "$@" -f 60 -c mp4 -o "$filename" $audio_args & + if [[ "$MICROPHONE_AUDIO" == "true" ]]; then + # Merge audio tracks into one - separate tracks only play one at a time in most players + [[ -n "$audio_devices" ]] && audio_devices+="|" + audio_devices+="default_input" + fi + + [[ -n "$audio_devices" ]] && audio_args+="-a $audio_devices" + + gpu-screen-recorder -w portal -f 60 -fallback-cpu-encoding yes -o "$filename" $audio_args -ac aac & toggle_screenrecording_indicator } stop_screenrecording() { - pkill -SIGINT -f "gpu-screen-recorder" # SIGINT required to save video properly + pkill -SIGINT -f "^gpu-screen-recorder" # SIGINT required to save video properly # Wait a maximum of 5 seconds to finish before hard killing local count=0 - while pgrep -f "gpu-screen-recorder" >/dev/null && [ $count -lt 50 ]; do + while pgrep -f "^gpu-screen-recorder" >/dev/null && [ $count -lt 50 ]; do sleep 0.1 count=$((count + 1)) done - if pgrep -f "gpu-screen-recorder" >/dev/null; then - pkill -9 -f "gpu-screen-recorder" + if pgrep -f "^gpu-screen-recorder" >/dev/null; then + pkill -9 -f "^gpu-screen-recorder" cleanup_webcam notify-send "Screen recording error" "Recording process had to be force-killed. Video may be corrupted." -u critical -t 5000 else @@ -92,51 +102,19 @@ toggle_screenrecording_indicator() { } screenrecording_active() { - pgrep -f "gpu-screen-recorder" >/dev/null || pgrep -x slurp >/dev/null || pgrep -f "WebcamOverlay" >/dev/null + pgrep -f "^gpu-screen-recorder" >/dev/null || pgrep -f "WebcamOverlay" >/dev/null } if screenrecording_active; then - if pgrep -x slurp >/dev/null; then - pkill -x slurp 2>/dev/null - elif pgrep -f "WebcamOverlay" >/dev/null && ! pgrep -f "gpu-screen-recorder" >/dev/null; then + if pgrep -f "WebcamOverlay" >/dev/null && ! pgrep -f "^gpu-screen-recorder" >/dev/null; then cleanup_webcam else stop_screenrecording fi -elif [[ "$SCOPE" == "output" ]]; then +elif [[ "$STOP_RECORDING" == "false" ]]; then [[ "$WEBCAM" == "true" ]] && start_webcam_overlay - if ! output=$(slurp -o -f "%o"); then - [[ "$WEBCAM" == "true" ]] && cleanup_webcam - exit 1 - fi - - if [[ -z "$output" ]]; then - notify-send "Error" "Could not detect monitor" -u critical - [[ "$WEBCAM" == "true" ]] && cleanup_webcam - exit 1 - fi - - start_screenrecording "$output" + start_screenrecording || cleanup_webcam else - [[ "$WEBCAM" == "true" ]] && start_webcam_overlay - - scale=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .scale') - - if ! region=$(slurp -f "%wx%h+%x+%y"); then - [[ "$WEBCAM" == "true" ]] && cleanup_webcam - exit 1 - fi - - if [[ "$region" =~ ^([0-9]+)x([0-9]+)\+([0-9]+)\+([0-9]+)$ ]]; then - w=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[1]} * $scale}") - h=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[2]} * $scale}") - x=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[3]} * $scale}") - y=$(awk "BEGIN {printf \"%.0f\", ${BASH_REMATCH[4]} * $scale}") - scaled_region="${w}x${h}+${x}+${y}" - else - scaled_region="$region" - fi - - start_screenrecording region -region "$scaled_region" + exit 1 fi diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver index a53a27ff..77a07462 100755 --- a/bin/omarchy-cmd-screensaver +++ b/bin/omarchy-cmd-screensaver @@ -1,28 +1,33 @@ #!/bin/bash screensaver_in_focus() { - hyprctl activewindow -j | jq -e '.class == "Screensaver"' >/dev/null 2>&1 + hyprctl activewindow -j | jq -e '.class == "org.omarchy.screensaver"' >/dev/null 2>&1 } exit_screensaver() { hyprctl keyword cursor:invisible false pkill -x tte 2>/dev/null - pkill -f "alacritty --class Screensaver" 2>/dev/null + pkill -f org.omarchy.screensaver 2>/dev/null exit 0 } +# Exit the screensaver on signals and input from keyboard and mouse trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT +printf '\033]11;rgb:00/00/00\007' # Set background color to black + hyprctl keyword cursor:invisible true &>/dev/null -while true; do - effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1) - tte -i ~/.config/omarchy/branding/screensaver.txt \ - --frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \ - "$effect" & +tty=$(tty 2>/dev/null) - while pgrep -x tte >/dev/null; do - if read -n 1 -t 3 || ! screensaver_in_focus; then +while true; do + tte -i ~/.config/omarchy/branding/screensaver.txt \ + --frame-rate 120 --canvas-width 0 --canvas-height 0 --reuse-canvas --anchor-canvas c --anchor-text c\ + --random-effect --exclude-effects dev_worm \ + --no-eol --no-restore-cursor & + + while pgrep -t "${tty#/dev/}" -x tte >/dev/null; do + if read -n1 -t 1 || ! screensaver_in_focus; then exit_screensaver fi done diff --git a/bin/omarchy-cmd-shutdown b/bin/omarchy-cmd-shutdown new file mode 100755 index 00000000..cd5748ed --- /dev/null +++ b/bin/omarchy-cmd-shutdown @@ -0,0 +1,6 @@ +#!/bin/bash + +omarchy-state clear re*-required +omarchy-hyprland-window-close-all +sleep 1 # Allow apps like Chrome to shutdown correctly +systemctl poweroff --no-wall diff --git a/bin/omarchy-cmd-terminal-cwd b/bin/omarchy-cmd-terminal-cwd index 062c35fa..b651148d 100755 --- a/bin/omarchy-cmd-terminal-cwd +++ b/bin/omarchy-cmd-terminal-cwd @@ -6,8 +6,10 @@ shell_pid=$(pgrep -P "$terminal_pid" | tail -n1) if [[ -n $shell_pid ]]; then cwd=$(readlink -f "/proc/$shell_pid/cwd" 2>/dev/null) + shell=$(readlink -f "/proc/$shell_pid/exe" 2>/dev/null) - if [[ -d $cwd ]]; then + # Check if $shell is a valid shell and $cwd is a directory. + if grep -qs "$shell" /etc/shells && [[ -d $cwd ]]; then echo "$cwd" else echo "$HOME" diff --git a/bin/omarchy-debug b/bin/omarchy-debug new file mode 100755 index 00000000..c86ff9e2 --- /dev/null +++ b/bin/omarchy-debug @@ -0,0 +1,93 @@ +#!/bin/bash + +NO_SUDO=false +PRINT_ONLY=false + +while [[ $# -gt 0 ]]; do + case "$1" in + --no-sudo) + NO_SUDO=true + shift + ;; + --print) + PRINT_ONLY=true + shift + ;; + *) + echo "Unknown option: $1" + echo "Usage: omarchy-debug [--no-sudo] [--print]" + exit 1 + ;; + esac +done + +LOG_FILE="/tmp/omarchy-debug.log" + +if [ "$NO_SUDO" = true ]; then + DMESG_OUTPUT="(skipped - --no-sudo flag used)" +else + DMESG_OUTPUT="$(sudo dmesg)" +fi + +cat > "$LOG_FILE" </dev/null || echo "unknown") + +========================================= +SYSTEM INFORMATION +========================================= +$(inxi -Farz) + +========================================= +DMESG +========================================= +$DMESG_OUTPUT + +========================================= +JOURNALCTL (CURRENT BOOT, ERRORS ONLY) +========================================= +$(journalctl -b -p 4..1) + +========================================= +INSTALLED PACKAGES +========================================= +$({ expac -S '%n %v (%r)' $(pacman -Qqe) 2>/dev/null; comm -13 <(pacman -Sql | sort) <(pacman -Qqe | sort) | xargs -r expac -Q '%n %v (AUR)'; } | sort) +EOF + +if [ "$PRINT_ONLY" = true ]; then + cat "$LOG_FILE" + exit 0 +fi + +OPTIONS=("View log" "Save in current directory") +if ping -c 1 8.8.8.8 >/dev/null 2>&1; then + OPTIONS=("Upload log" "${OPTIONS[@]}") +fi + +ACTION=$(gum choose "${OPTIONS[@]}") + +case "$ACTION" in + "Upload log") + echo "Uploading debug log to 0x0.st..." + URL=$(curl -sF "file=@$LOG_FILE" -Fexpires=24 https://0x0.st) + if [ $? -eq 0 ] && [ -n "$URL" ]; then + echo "✓ Log uploaded successfully!" + echo "Share this URL:" + echo "" + echo " $URL" + echo "" + echo "This link will expire in 24 hours." + else + echo "Error: Failed to upload log file" + exit 1 + fi + ;; + "View log") + less "$LOG_FILE" + ;; + "Save in current directory") + cp "$LOG_FILE" "./omarchy-debug.log" + echo "✓ Log saved to $(pwd)/omarchy-debug.log" + ;; +esac diff --git a/bin/omarchy-dev-add-migration b/bin/omarchy-dev-add-migration index 21eea4f7..788d6500 100755 --- a/bin/omarchy-dev-add-migration +++ b/bin/omarchy-dev-add-migration @@ -3,4 +3,9 @@ cd ~/.local/share/omarchy migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh" touch $migration_file -nvim $migration_file + +if [[ "$1" != "--no-edit" ]]; then + nvim $migration_file +fi + +echo $migration_file diff --git a/bin/omarchy-font-set b/bin/omarchy-font-set index 6cc312d0..d8f19742 100755 --- a/bin/omarchy-font-set +++ b/bin/omarchy-font-set @@ -18,6 +18,7 @@ if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then pkill -SIGUSR2 ghostty fi + sed -i "s/font_family = .*/font_family = $font_name/g" ~/.config/hypr/hyprlock.conf sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/waybar/style.css sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/swayosd/style.css xmlstarlet ed -L \ @@ -27,7 +28,10 @@ if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then omarchy-restart-waybar omarchy-restart-swayosd - omarchy-restart-walker + + if pgrep -x ghostty; then + notify-send " You must restart Ghostty to see font change" + fi omarchy-hook font-set "$font_name" else diff --git a/bin/omarchy-hook b/bin/omarchy-hook index caa83988..30b7b1f6 100755 --- a/bin/omarchy-hook +++ b/bin/omarchy-hook @@ -1,5 +1,7 @@ #!/bin/bash +set -e + if [[ $# -lt 1 ]]; then echo "Usage: omarchy-hook [name] [args...]" exit 1 diff --git a/bin/omarchy-cmd-close-all-windows b/bin/omarchy-hyprland-window-close-all similarity index 100% rename from bin/omarchy-cmd-close-all-windows rename to bin/omarchy-hyprland-window-close-all diff --git a/bin/omarchy-hyprland-window-pop b/bin/omarchy-hyprland-window-pop new file mode 100755 index 00000000..d1e8ef3c --- /dev/null +++ b/bin/omarchy-hyprland-window-pop @@ -0,0 +1,46 @@ +#!/bin/bash + +# Toggle to pop-out a tile to stay fixed on a display basis. + +# Usage: +# omarchy-hyprland-window-pop [width height [x y]] +# +# Arguments: +# width Optional. Width of the floating window. Default: 1300 +# height Optional. Height of the floating window. Default: 900 +# x Optional. X position of the window. Must provide both X and Y to take effect. +# y Optional. Y position of the window. Must provide both X and Y to take effect. +# +# Behavior: +# - If the window is already pinned, it will be unpinned and removed from the pop layer. +# - If the window is not pinned, it will be floated, resized, moved/centered, pinned, brought to top, and popped. + +width=${1:-1300} +height=${2:-900} +x=${3:-} +y=${4:-} + +active=$(hyprctl activewindow -j) +pinned=$(echo "$active" | jq ".pinned") +addr=$(echo "$active" | jq -r ".address") + +if [[ $pinned == "true" ]]; then + hyprctl -q --batch \ + "dispatch pin address:$addr;" \ + "dispatch togglefloating address:$addr;" \ + "dispatch tagwindow -pop address:$addr;" +elif [[ -n $addr ]]; then + hyprctl dispatch togglefloating address:$addr + hyprctl dispatch resizeactive exact $width $height address:$addr + + if [[ -n $x && -n $y ]]; then + hyprctl dispatch moveactive $x $y address:$addr + else + hyprctl dispatch centerwindow address:$addr + fi + + hyprctl -q --batch \ + "dispatch pin address:$addr;" \ + "dispatch alterzorder top address:$addr;" \ + "dispatch tagwindow +pop address:$addr;" +fi diff --git a/bin/omarchy-hyprland-workspace-toggle-gaps b/bin/omarchy-hyprland-workspace-toggle-gaps new file mode 100755 index 00000000..f7882305 --- /dev/null +++ b/bin/omarchy-hyprland-workspace-toggle-gaps @@ -0,0 +1,10 @@ +#!/bin/bash + +workspace_id=$(hyprctl activeworkspace -j | jq -r .id) +gaps=$(hyprctl workspacerules -j | jq -r ".[] | select(.workspaceString==\"$workspace_id\") | .gapsOut[0] // 0") + +if [[ $gaps == "0" ]]; then + hyprctl keyword "workspace $workspace_id, gapsout:10, gapsin:5, bordersize:2" +else \ + hyprctl keyword "workspace $workspace_id, gapsout:0, gapsin:0, bordersize:0" +fi diff --git a/bin/omarchy-install-dev-env b/bin/omarchy-install-dev-env index a1329a91..ee0e33e9 100755 --- a/bin/omarchy-install-dev-env +++ b/bin/omarchy-install-dev-env @@ -41,7 +41,7 @@ install_php() { install_node() { echo -e "Installing Node.js...\n" - mise use --global node@lts + mise use --global node } case "$1" in @@ -50,6 +50,7 @@ ruby) omarchy-pkg-add libyaml mise use --global ruby@latest mise settings add idiomatic_version_file_enable_tools ruby + echo "gem: --no-document" > ~/.gemrc mise x ruby -- gem install rails --no-document echo -e "\nYou can now run: rails new myproject" ;; diff --git a/bin/omarchy-install-docker-dbs b/bin/omarchy-install-docker-dbs index 658a2b08..8a00cefe 100755 --- a/bin/omarchy-install-docker-dbs +++ b/bin/omarchy-install-docker-dbs @@ -12,7 +12,7 @@ if [[ -n "$choices" ]]; then for db in $choices; do case $db in 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 ;; - PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres17 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:17 ;; + PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres18 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:18 ;; 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 ;; Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;; MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;; diff --git a/bin/omarchy-install-dropbox b/bin/omarchy-install-dropbox index b4c59298..7473e9e8 100755 --- a/bin/omarchy-install-dropbox +++ b/bin/omarchy-install-dropbox @@ -5,4 +5,4 @@ omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-d echo "Starting Dropbox..." uwsm-app -- dropbox-cli start &>/dev/null & -echo "See Dropbox icon behind  hover tray in top right and right-click for setup." +echo "See Dropbox icon behind  hover tray in top right and right-click for setup." diff --git a/bin/omarchy-install-steam b/bin/omarchy-install-steam index 75333700..a5764bb4 100755 --- a/bin/omarchy-install-steam +++ b/bin/omarchy-install-steam @@ -1,5 +1,7 @@ #!/bin/bash +set -e + echo "Now pick dependencies matching your graphics card" -sudo pacman -Syu --noconfirm steam +sudo pacman -S steam setsid gtk-launch steam >/dev/null 2>&1 & diff --git a/bin/omarchy-install-terminal b/bin/omarchy-install-terminal index 804ccb7a..e962f3f3 100755 --- a/bin/omarchy-install-terminal +++ b/bin/omarchy-install-terminal @@ -7,15 +7,53 @@ fi package="$1" +# Map package name to desktop entry ID +case "$package" in +alacritty) desktop_id="Alacritty.desktop" ;; +ghostty) desktop_id="com.mitchellh.ghostty.desktop" ;; +kitty) desktop_id="kitty.desktop" ;; +*) + echo "Unknown terminal: $package" + exit 1 + ;; +esac + # Install package if omarchy-pkg-add $package; then - # Set as default terminal - echo "Setting $package as new default terminal..." - sed -i "/export TERMINAL=/ c\export TERMINAL=$package" ~/.config/uwsm/default + # Copy custom desktop entry for alacritty with X-TerminalArg* keys + if [[ $package == "alacritty" ]]; then + mkdir -p ~/.local/share/applications + cat > ~/.local/share/applications/Alacritty.desktop << EOF +[Desktop Entry] +Type=Application +TryExec=alacritty +Exec=alacritty +Icon=Alacritty +Terminal=false +Categories=System;TerminalEmulator; +Name=Alacritty +GenericName=Terminal +Comment=A fast, cross-platform, OpenGL terminal emulator +StartupNotify=true +StartupWMClass=Alacritty +Actions=New; +X-TerminalArgExec=-e +X-TerminalArgAppId=--class= +X-TerminalArgTitle=--title= +X-TerminalArgDir=--working-directory= - # Restart is needed for new default to take effect - echo - gum confirm "Restart to use new terminal?" && systemctl reboot --no-wall +[Desktop Action New] +Name=New Terminal +Exec=alacritty +EOF + fi + + # Update xdg-terminals.list to prioritize the proper terminal + cat > ~/.config/xdg-terminals.list << EOF +# Terminal emulator preference order for xdg-terminal-exec +# The first found and valid terminal will be used +$desktop_id +EOF else echo "Failed to install $package" fi diff --git a/bin/omarchy-install-vscode b/bin/omarchy-install-vscode index 644a8eb7..4c5b036a 100755 --- a/bin/omarchy-install-vscode +++ b/bin/omarchy-install-vscode @@ -3,7 +3,7 @@ echo "Installing VSCode..." omarchy-pkg-add visual-studio-code-bin -mkdir -p ~/.vscode +mkdir -p ~/.vscode ~/.config/Code/User cat > ~/.vscode/argv.json << 'EOF' // This configuration file allows you to pass permanent command line arguments to VS Code. @@ -21,4 +21,7 @@ EOF # Ensure VSC's own auto-update feature is turned off printf '{\n "update.mode": "none"\n}\n' > ~/.config/Code/User/settings.json +# Apply Omarchy theme to VSCode +omarchy-theme-set-vscode + setsid gtk-launch code diff --git a/bin/omarchy-install-xbox-controllers b/bin/omarchy-install-xbox-controllers new file mode 100755 index 00000000..b50067b0 --- /dev/null +++ b/bin/omarchy-install-xbox-controllers @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +# Install xpadneo to ensure controllers work out of the box +sudo pacman -S --noconfirm --needed linux-headers +yay -S --noconfirm xpadneo-dkms + +# Prevent xpad/xpadneo driver conflict +echo blacklist xpad | sudo tee /etc/modprobe.d/blacklist-xpad.conf >/dev/null +echo hid_xpadneo | sudo tee /etc/modules-load.d/xpadneo.conf >/dev/null + +# Give user access to game controllers +sudo usermod -a -G input $USER + +# Modules need to be loaded +gum confirm "Install requires reboot. Ready?" && sudo reboot now diff --git a/bin/omarchy-launch-about b/bin/omarchy-launch-about index 797e340f..135f4d79 100755 --- a/bin/omarchy-launch-about +++ b/bin/omarchy-launch-about @@ -1,3 +1,3 @@ #!/bin/bash -exec setsid uwsm-app -- alacritty --class=Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s' +exec omarchy-launch-or-focus-tui "bash -c 'fastfetch; read -n 1 -s'" diff --git a/bin/omarchy-launch-audio b/bin/omarchy-launch-audio new file mode 100755 index 00000000..d666dcb8 --- /dev/null +++ b/bin/omarchy-launch-audio @@ -0,0 +1,3 @@ +#!/bin/bash + +omarchy-launch-or-focus-tui wiremix diff --git a/bin/omarchy-launch-bluetooth b/bin/omarchy-launch-bluetooth new file mode 100755 index 00000000..8eb823b7 --- /dev/null +++ b/bin/omarchy-launch-bluetooth @@ -0,0 +1,4 @@ +#!/bin/bash + +rfkill unblock bluetooth +exec omarchy-launch-or-focus-tui bluetui diff --git a/bin/omarchy-launch-browser b/bin/omarchy-launch-browser index d6ae00cb..a262f671 100755 --- a/bin/omarchy-launch-browser +++ b/bin/omarchy-launch-browser @@ -3,8 +3,10 @@ default_browser=$(xdg-settings get default-web-browser) browser_exec=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$default_browser 2>/dev/null | head -1) -if [[ $browser_exec =~ (firefox|zen|librewolf) ]]; then +if [[ $browser_exec =~ (firefox|zen|librewolf|mullvad) ]]; then private_flag="--private-window" +elif [[ $browser_exec =~ edge ]]; then + private_flag="--inprivate" else private_flag="--incognito" fi diff --git a/bin/omarchy-launch-editor b/bin/omarchy-launch-editor index dbe84cfd..95a9c3b9 100755 --- a/bin/omarchy-launch-editor +++ b/bin/omarchy-launch-editor @@ -1,8 +1,10 @@ #!/bin/bash -case "${EDITOR:-nvim}" in -nvim | vim | nano | micro | hx | helix) - exec setsid uwsm-app -- "$TERMINAL" -e "$EDITOR" "$@" +omarchy-cmd-present "$EDITOR" || EDITOR=nvim + +case "$EDITOR" in +nvim | vim | nano | micro | hx | helix | fresh) + exec omarchy-launch-tui "$EDITOR" "$@" ;; *) exec setsid uwsm-app -- "$EDITOR" "$@" diff --git a/bin/omarchy-launch-floating-terminal-with-presentation b/bin/omarchy-launch-floating-terminal-with-presentation index b6121705..a549ae47 100755 --- a/bin/omarchy-launch-floating-terminal-with-presentation +++ b/bin/omarchy-launch-floating-terminal-with-presentation @@ -1,4 +1,4 @@ #!/bin/bash cmd="$*" -exec setsid uwsm-app -- alacritty -o font.size=9 --class=Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done" \ No newline at end of file +exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.omarchy.terminal --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; if [ \$? -ne 130 ]; then omarchy-show-done; fi" diff --git a/bin/omarchy-launch-opencode b/bin/omarchy-launch-opencode new file mode 100755 index 00000000..3df0c014 --- /dev/null +++ b/bin/omarchy-launch-opencode @@ -0,0 +1,3 @@ +#!/bin/bash + +exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.omarchy.opencode -e bash -c 'cd ~/Work; opencode' diff --git a/bin/omarchy-launch-or-focus b/bin/omarchy-launch-or-focus index 270b0251..ce932fb7 100755 --- a/bin/omarchy-launch-or-focus +++ b/bin/omarchy-launch-or-focus @@ -12,5 +12,5 @@ WINDOW_ADDRESS=$(hyprctl clients -j | jq -r --arg p "$WINDOW_PATTERN" '.[]|selec if [[ -n $WINDOW_ADDRESS ]]; then hyprctl dispatch focuswindow "address:$WINDOW_ADDRESS" else - eval exec $LAUNCH_COMMAND + eval exec setsid $LAUNCH_COMMAND fi diff --git a/bin/omarchy-launch-or-focus-tui b/bin/omarchy-launch-or-focus-tui new file mode 100755 index 00000000..cbb3bf19 --- /dev/null +++ b/bin/omarchy-launch-or-focus-tui @@ -0,0 +1,6 @@ +#!/bin/bash + +APP_ID="org.omarchy.$(basename "$1")" +LAUNCH_COMMAND="omarchy-launch-tui $@" + +exec omarchy-launch-or-focus "$APP_ID" "$LAUNCH_COMMAND" diff --git a/bin/omarchy-launch-screensaver b/bin/omarchy-launch-screensaver index f81b4cde..44b38f0e 100755 --- a/bin/omarchy-launch-screensaver +++ b/bin/omarchy-launch-screensaver @@ -6,23 +6,47 @@ if ! command -v tte &>/dev/null; then fi # Exit early if screensave is already running -pgrep -f "alacritty --class Screensaver" && exit 0 +pgrep -f org.omarchy.screensaver && exit 0 # Allow screensaver to be turned off but also force started if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ]]; then exit 1 fi +# Silently quit Walker on overlay +walker -q + focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name') +terminal=$(xdg-terminal-exec --print-id) for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do hyprctl dispatch focusmonitor $m - # FIXME: Find a way to make this generic where we it can work for kitty + ghostty - hyprctl dispatch exec -- \ - alacritty --class Screensaver \ - --config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \ - -e omarchy-cmd-screensaver + case $terminal in + *Alacritty*) + hyprctl dispatch exec -- \ + alacritty --class=org.omarchy.screensaver \ + --config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \ + -e omarchy-cmd-screensaver + ;; + *ghostty*) + hyprctl dispatch exec -- \ + ghostty --class=org.omarchy.screensaver \ + --config-file=~/.local/share/omarchy/default/ghostty/screensaver \ + --font-size=18 \ + -e omarchy-cmd-screensaver + ;; + *kitty*) + hyprctl dispatch exec -- \ + kitty --class=org.omarchy.screensaver \ + --override font_size=18 \ + --override window_padding_width=0 \ + -e omarchy-cmd-screensaver + ;; + *) + notify-send "✋ Screensaver only runs in Alacritty, Ghostty, or Kitty" + ;; + esac done hyprctl dispatch focusmonitor $focused diff --git a/bin/omarchy-launch-tui b/bin/omarchy-launch-tui new file mode 100755 index 00000000..67440b2b --- /dev/null +++ b/bin/omarchy-launch-tui @@ -0,0 +1,3 @@ +#!/bin/bash + +exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.omarchy.$(basename $1) -e "$1" "${@:2}" diff --git a/bin/omarchy-launch-webapp b/bin/omarchy-launch-webapp index 1de31278..09a6fc30 100755 --- a/bin/omarchy-launch-webapp +++ b/bin/omarchy-launch-webapp @@ -3,7 +3,7 @@ browser=$(xdg-settings get default-web-browser) case $browser in -google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium-browser*) ;; +google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium*) ;; *) browser="chromium.desktop" ;; esac diff --git a/bin/omarchy-launch-wifi b/bin/omarchy-launch-wifi index c9a9b18b..d942f680 100755 --- a/bin/omarchy-launch-wifi +++ b/bin/omarchy-launch-wifi @@ -1,3 +1,4 @@ #!/bin/bash -exec setsid uwsm-app -- "$TERMINAL" --class=Impala -e impala "$@" +rfkill unblock wifi +omarchy-launch-or-focus-tui impala diff --git a/bin/omarchy-lock-screen b/bin/omarchy-lock-screen index d3f6276d..b16c56a2 100755 --- a/bin/omarchy-lock-screen +++ b/bin/omarchy-lock-screen @@ -3,10 +3,13 @@ # Lock the screen pidof hyprlock || hyprlock & +# Set keyboard layout to default (first layout) +hyprctl switchxkblayout all 0 > /dev/null 2>&1 + # Ensure 1password is locked if pgrep -x "1password" >/dev/null; then 1password --lock & fi # Avoid running screensaver when locked -pkill -f "alacritty --class Screensaver" +pkill -f org.omarchy.screensaver diff --git a/bin/omarchy-menu b/bin/omarchy-menu index e9c4a692..d50c61e4 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -33,11 +33,11 @@ menu() { fi fi - echo -e "$options" | omarchy-launch-walker --dmenu --width 295 --minheight 1 --maxheight 600 -p "$prompt…" "${args[@]}" 2>/dev/null + echo -e "$options" | omarchy-launch-walker --dmenu --width 295 --minheight 1 --maxheight 630 -p "$prompt…" "${args[@]}" 2>/dev/null } terminal() { - alacritty --class=Omarchy -e "$@" + xdg-terminal-exec --app-id=org.omarchy.terminal "$@" } present_terminal() { @@ -112,19 +112,19 @@ show_screenshot_menu() { } show_screenrecord_menu() { - case $(menu "Screenrecord" " Region\n Region + Audio\n Display\n Display + Audio\n Display + Webcam") in - *"Region + Audio"*) omarchy-cmd-screenrecord region --with-audio ;; - *Region*) omarchy-cmd-screenrecord ;; - *"Display + Audio"*) omarchy-cmd-screenrecord output --with-audio ;; - *"Display + Webcam"*) omarchy-cmd-screenrecord output --with-audio --with-webcam ;; - *Display*) omarchy-cmd-screenrecord output ;; + omarchy-cmd-screenrecord --stop-recording && exit 0 + + case $(menu "Screenrecord" " With desktop audio\n With desktop + microphone audio\n With desktop + microphone audio + webcam") in + *"With desktop audio") omarchy-cmd-screenrecord --with-desktop-audio ;; + *"With desktop + microphone audio") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;; + *"With desktop + microphone audio + webcam") omarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam ;; *) back_to show_capture_menu ;; esac } show_share_menu() { case $(menu "Share" " Clipboard\n File \n Folder") in - *Clipboard*) terminal bash -c "omarchy-cmd-share clipboard" ;; + *Clipboard*) omarchy-cmd-share clipboard ;; *File*) terminal bash -c "omarchy-cmd-share file" ;; *Folder*) terminal bash -c "omarchy-cmd-share folder" ;; *) back_to show_trigger_menu ;; @@ -154,12 +154,7 @@ show_style_menu() { } show_theme_menu() { - theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)") - if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then - back_to show_style_menu - else - omarchy-theme-set "$theme" - fi + omarchy-launch-walker -m menus:omarchythemes --width 800 --minheight 400 } show_font_menu() { @@ -178,15 +173,9 @@ show_setup_menu() { options="$options\n Defaults\n󰱔 DNS\n Security\n Config" case $(menu "Setup" "$options") in - *Audio*) $TERMINAL --class=Wiremix -e wiremix ;; - *Wifi*) - rfkill unblock wifi - omarchy-launch-wifi - ;; - *Bluetooth*) - rfkill unblock bluetooth - blueberry - ;; + *Audio*) omarchy-launch-audio ;; + *Wifi*) omarchy-launch-wifi ;; + *Bluetooth*) omarchy-launch-bluetooth ;; *Power*) show_setup_power_menu ;; *Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;; *Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;; @@ -263,8 +252,8 @@ show_install_editor_menu() { case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in *VSCode*) present_terminal omarchy-install-vscode ;; *Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;; - *Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;; - *Sublime*) aur_install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;; + *Zed*) present_terminal "echo 'Installing Zed...'; sudo pacman -S zed && setsid gtk-launch dev.zed.Zed" ;; + *Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;; *Helix*) install "Helix" "helix" ;; *Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;; *) show_install_menu ;; @@ -287,24 +276,26 @@ show_install_ai_menu() { echo ollama ) - case $(menu "Install" "󱚤 Claude Code\n󱚤 Cursor CLI [AUR]\n󱚤 Gemini [AUR]\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in + case $(menu "Install" " Dictation [AUR]\n󱚤 Claude Code\n󱚤 Copilot CLI [AUR]\n󱚤 Cursor CLI\n󱚤 Gemini\n󱚤 OpenAI Codex\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush") in + *Dictation*) present_terminal "echo 'Installing Hyprwhspr from AUR...'; yay -S --noconfirm hyprwhspr && hyprwhspr setup" ;; *Claude*) install "Claude Code" "claude-code" ;; - *Cursor*) aur_install "Cursor CLI" "cursor-cli" ;; - *OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;; - *Gemini*) aur_install "Gemini" "gemini-cli" ;; + *Copilot*) aur_install "Copilot CLI" "github-copilot-cli" ;; + *Cursor*) install "Cursor CLI" "cursor-cli" ;; + *Gemini*) install "Gemini" "gemini-cli" ;; + *OpenAI*) install "OpenAI Codex" "openai-codex" ;; *Studio*) install "LM Studio" "lmstudio" ;; *Ollama*) install "Ollama" $ollama_pkg ;; *Crush*) install "Crush" "crush-bin" ;; - *opencode*) install "opencode" "opencode" ;; *) show_install_menu ;; esac } show_install_gaming_menu() { - case $(menu "Install" " Steam\n RetroArch [AUR]\n󰍳 Minecraft") in + case $(menu "Install" " Steam\n RetroArch [AUR]\n󰍳 Minecraft\n󰖺 Xbox Controller [AUR]") in *Steam*) present_terminal omarchy-install-steam ;; *RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;; - *Minecraft*) aur_install_and_launch "Minecraft [AUR]" "minecraft-launcher" "minecraft-launcher" ;; + *Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;; + *Xbox*) present_terminal omarchy-install-xbox-controllers ;; *) show_install_menu ;; esac } @@ -312,18 +303,19 @@ show_install_gaming_menu() { show_install_style_menu() { case $(menu "Install" "󰸌 Theme\n Background\n Font") in *Theme*) present_terminal omarchy-theme-install ;; - *Background*) nautilus ~/.config/omarchy/current/theme/backgrounds ;; + *Background*) omarchy-theme-bg-install ;; *Font*) show_install_font_menu ;; *) show_install_menu ;; esac } show_install_font_menu() { - case $(menu "Install" " Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono" "--width 350") in + case $(menu "Install" " Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono\n Iosevka" "--width 350") in *Meslo*) install_font "Meslo LG Mono" "ttf-meslo-nerd" "MesloLGL Nerd Font" ;; *Fira*) install_font "Fira Code" "ttf-firacode-nerd" "FiraCode Nerd Font" ;; *Victor*) install_font "Victor Code" "ttf-victor-mono-nerd" "VictorMono Nerd Font" ;; *Bistream*) install_font "Bistream Vera Code" "ttf-bitstream-vera-mono-nerd" "BitstromWera Nerd Font" ;; + *Iosevka*) install_font "Iosevka" "ttf-iosevka-nerd" "Iosevka Nerd Font Mono" ;; *) show_install_menu ;; esac } @@ -374,10 +366,11 @@ show_install_elixir_menu() { } show_remove_menu() { - case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰸌 Theme\n󰍲 Windows\n󰈷 Fingerprint\n Fido2") in + case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰵮 Development\n󰸌 Theme\n󰍲 Windows\n󰈷 Fingerprint\n Fido2") in *Package*) terminal omarchy-pkg-remove ;; *Web*) present_terminal omarchy-webapp-remove ;; *TUI*) present_terminal omarchy-tui-remove ;; + *Development*) show_remove_development_menu ;; *Theme*) present_terminal omarchy-theme-remove ;; *Windows*) present_terminal "omarchy-windows-vm remove" ;; *Fingerprint*) present_terminal "omarchy-setup-fingerprint --remove" ;; @@ -386,25 +379,71 @@ show_remove_menu() { esac } +show_remove_development_menu() { + case $(menu "Remove" "󰫏 Ruby on Rails\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure") in + *Rails*) present_terminal "omarchy-remove-dev-env ruby" ;; + *JavaScript*) show_remove_javascript_menu ;; + *Go*) present_terminal "omarchy-remove-dev-env go" ;; + *PHP*) show_remove_php_menu ;; + *Python*) present_terminal "omarchy-remove-dev-env python" ;; + *Elixir*) show_remove_elixir_menu ;; + *Zig*) present_terminal "omarchy-remove-dev-env zig" ;; + *Rust*) present_terminal "omarchy-remove-dev-env rust" ;; + *Java*) present_terminal "omarchy-remove-dev-env java" ;; + *NET*) present_terminal "omarchy-remove-dev-env dotnet" ;; + *OCaml*) present_terminal "omarchy-remove-dev-env ocaml" ;; + *Clojure*) present_terminal "omarchy-remove-dev-env clojure" ;; + *) show_remove_menu ;; + esac +} + +show_remove_javascript_menu() { + case $(menu "Remove" " Node.js\n Bun\n Deno") in + *Node*) present_terminal "omarchy-remove-dev-env node" ;; + *Bun*) present_terminal "omarchy-remove-dev-env bun" ;; + *Deno*) present_terminal "omarchy-remove-dev-env deno" ;; + *) show_remove_development_menu ;; + esac +} + +show_remove_php_menu() { + case $(menu "Remove" " PHP\n Laravel\n Symfony") in + *PHP*) present_terminal "omarchy-remove-dev-env php" ;; + *Laravel*) present_terminal "omarchy-remove-dev-env laravel" ;; + *Symfony*) present_terminal "omarchy-remove-dev-env symfony" ;; + *) show_remove_development_menu ;; + esac +} + +show_remove_elixir_menu() { + case $(menu "Remove" " Elixir\n Phoenix") in + *Elixir*) present_terminal "omarchy-remove-dev-env elixir" ;; + *Phoenix*) present_terminal "omarchy-remove-dev-env phoenix" ;; + *) show_remove_development_menu ;; + esac +} + show_update_menu() { - case $(menu "Update" " Omarchy\n Branch\n Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone") in + case $(menu "Update" " Omarchy\n󰔫 Channel\n Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone\n Time") in *Omarchy*) present_terminal omarchy-update ;; - *Branch*) show_update_branch_menu ;; + *Channel*) show_update_channel_menu ;; *Config*) show_update_config_menu ;; *Themes*) present_terminal omarchy-theme-update ;; *Process*) show_update_process_menu ;; *Hardware*) show_update_hardware_menu ;; *Firmware*) present_terminal omarchy-update-firmware ;; *Timezone*) present_terminal omarchy-tz-select ;; + *Time*) present_terminal omarchy-update-time ;; *Password*) show_update_password_menu ;; *) show_main_menu ;; esac } -show_update_branch_menu() { - case $(menu "Branch" "master\ndev" "" "$(omarchy-version-branch)") in - *master*) present_terminal "omarchy-update-branch master" ;; - *dev*) present_terminal "omarchy-update-branch dev" ;; +show_update_channel_menu() { + case $(menu "Update channel" "🟢 Stable\n🟡 Edge\n🔴 Dev") in + *Stable*) present_terminal "omarchy-channel-set stable" ;; + *Edge*) present_terminal "omarchy-channel-set edge" ;; + *Dev*) present_terminal "omarchy-channel-set dev" ;; *) show_update_menu ;; esac } @@ -451,12 +490,11 @@ show_update_password_menu() { } show_system_menu() { - case $(menu "System" " Lock\n󱄄 Screensaver\n󰤄 Suspend\n󰜉 Restart\n󰐥 Shutdown") in + case $(menu "System" " Lock\n󱄄 Screensaver\n󰜉 Restart\n󰐥 Shutdown") in *Lock*) omarchy-lock-screen ;; *Screensaver*) omarchy-launch-screensaver force ;; - *Suspend*) systemctl suspend ;; - *Restart*) omarchy-state clear re*-required && systemctl reboot --no-wall ;; - *Shutdown*) omarchy-state clear re*-required && systemctl poweroff --no-wall ;; + *Restart*) omarchy-cmd-reboot ;; + *Shutdown*) omarchy-cmd-shutdown ;; *) back_to show_main_menu ;; esac } @@ -485,6 +523,10 @@ go_to_menu() { esac } +# Allow user extensions and overrides +USER_EXTENSIONS="$HOME/.config/omarchy/extensions/menu.sh" +[[ -f $USER_EXTENSIONS ]] && source "$USER_EXTENSIONS" + if [[ -n "$1" ]]; then BACK_TO_EXIT=true go_to_menu "$1" diff --git a/bin/omarchy-menu-keybindings b/bin/omarchy-menu-keybindings index 4547a6dc..1c40d828 100755 --- a/bin/omarchy-menu-keybindings +++ b/bin/omarchy-menu-keybindings @@ -49,6 +49,17 @@ parse_keycodes() { code="${BASH_REMATCH[1]}" symbol=$(lookup_keycode_cached "$code" "$XKB_KEYMAP_CACHE") echo "${line/code:${code}/$symbol}" + elif [[ "$line" =~ mouse:([0-9]+) ]]; then + code="${BASH_REMATCH[1]}" + + case "$code" in + 272) symbol="LEFT MOUSE BUTTON" ;; + 273) symbol="RIGHT MOUSE BUTTON" ;; + 274) symbol="MIDDLE MOUSE BUTTON" ;; + *) symbol="mouse:${code}" ;; + esac + + echo "${line/mouse:${code}/$symbol}" else echo "$line" fi @@ -101,6 +112,11 @@ dynamic_bindings() { -e 's/^77,/SUPER SHIFT CTRL ALT,/' } +# Hardcoded bindings, like the copy-url extension and such +static_bindings() { + echo "SHIFT ALT,L,Copy URL from Web App,extension,copy-url" +} + # Parse and format keybindings # # `awk` does the heavy lifting: @@ -147,13 +163,75 @@ parse_bindings() { }' } -monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height') -menu_height=$((monitor_height * 40 / 100)) +prioritize_entries() { + awk ' + { + line = $0 + prio = 50 + if (match(line, /Terminal/)) prio = 0 + if (match(line, /Browser/) && !match(line, /Browser[[:space:]]*\(/)) prio = 1 + if (match(line, /File manager/)) prio = 2 + if (match(line, /Launch apps/)) prio = 3 + if (match(line, /Omarchy menu/)) prio = 4 + if (match(line, /System menu/)) prio = 5 + if (match(line, /Theme menu/)) prio = 6 + if (match(line, /Full screen/)) prio = 7 + if (match(line, /Close window/)) prio = 8 + if (match(line, /Toggle window floating/)) prio = 9 + if (match(line, /Toggle window split/)) prio = 10 + if (match(line, /Universal/)) prio = 11 + if (match(line, /Clipboard/)) prio = 12 + if (match(line, /Emoji picker/)) prio = 13 + if (match(line, /Color picker/)) prio = 14 + if (match(line, /Screenshot/)) prio = 15 + if (match(line, /Screenrecording/)) prio = 16 + if (match(line, /(Switch|Next|Former|Previous).*workspace/)) prio = 17 + if (match(line, /Move window to workspace/)) prio = 18 + if (match(line, /Swap window/)) prio = 19 + if (match(line, /Move window focus/)) prio = 20 + if (match(line, /Move window$/)) prio = 21 + if (match(line, /Resize window/)) prio = 22 + if (match(line, /Expand window/)) prio = 23 + if (match(line, /Shrink window/)) prio = 24 + if (match(line, /scratchpad/)) prio = 25 + if (match(line, /notification/)) prio = 26 + if (match(line, /Toggle window transparency/)) prio = 27 + if (match(line, /Toggle workspace gaps/)) prio = 28 + if (match(line, /Toggle nightlight/)) prio = 29 + if (match(line, /group/)) prio = 94 + if (match(line, /Scroll active workspace/)) prio = 95 + if (match(line, /Cycle to/)) prio = 96 + if (match(line, /Reveal active/)) prio = 97 + if (match(line, /Apple Display/)) prio = 98 + if (match(line, /XF86/)) prio = 99 -build_keymap_cache + # print "priorityline" + printf "%d\t%s\n", prio, line + }' | + sort -k1,1n -k2,2 | + cut -f2- +} + +output_keybindings() { + build_keymap_cache + + { + dynamic_bindings + static_bindings + } | + sort -u | + parse_keycodes | + parse_bindings | + prioritize_entries +} + +if [[ "$1" == "--print" || "$1" == "-p" ]]; then + output_keybindings +else + monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height') + menu_height=$((monitor_height * 40 / 100)) + + output_keybindings | + walker --dmenu -p 'Keybindings' --width 800 --height "$menu_height" +fi -dynamic_bindings | - sort -u | - parse_keycodes | - parse_bindings | - walker --dmenu -p 'Keybindings' --width 800 --height "$menu_height" diff --git a/bin/omarchy-pkg-ignored b/bin/omarchy-pkg-ignored deleted file mode 100755 index 765fe69c..00000000 --- a/bin/omarchy-pkg-ignored +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -IGNORED_PACKAGES_FILE="$OMARCHY_PATH/install/packages.ignored" - -if [[ -f $IGNORED_PACKAGES_FILE ]]; then - tr '\r\n' ',' <"$IGNORED_PACKAGES_FILE" | sed 's/,$//' -fi diff --git a/bin/omarchy-pkg-pinned b/bin/omarchy-pkg-pinned deleted file mode 100755 index 503d5c76..00000000 --- a/bin/omarchy-pkg-pinned +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -PINNED_PACKAGES_FILE="$OMARCHY_PATH/install/packages.pinned" - -if [[ -f $PINNED_PACKAGES_FILE ]]; then - tr '\r\n' ',' <"$PINNED_PACKAGES_FILE" | sed 's/,$//' -fi diff --git a/bin/omarchy-refresh-applications b/bin/omarchy-refresh-applications index c0f2bb00..bf666f5d 100755 --- a/bin/omarchy-refresh-applications +++ b/bin/omarchy-refresh-applications @@ -10,4 +10,8 @@ mkdir -p ~/.local/share/applications cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/ cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/ +# Refresh the webapps +bash $OMARCHY_PATH/install/packaging/icons.sh +bash $OMARCHY_PATH/install/packaging/webapps.sh + update-desktop-database ~/.local/share/applications diff --git a/bin/omarchy-refresh-chromium b/bin/omarchy-refresh-chromium new file mode 100755 index 00000000..bb119216 --- /dev/null +++ b/bin/omarchy-refresh-chromium @@ -0,0 +1,19 @@ +#!/bin/bash + +CONFIG_FILE="$HOME/.config/chromium-flags.conf" +INSTALL_GOOGLE_ACCOUNTS=false + +# Check if google accounts were installed +if [[ -f "$CONFIG_FILE" ]] && \ + grep -q -- "--oauth2-client-id" "$CONFIG_FILE" && \ + grep -q -- "--oauth2-client-secret" "$CONFIG_FILE"; then + INSTALL_GOOGLE_ACCOUNTS=true +fi + +# Refresh the Chromium configuration +omarchy-refresh-config chromium-flags.conf + +# Re-install Google accounts if previously configured +if [[ "$INSTALL_GOOGLE_ACCOUNTS" == true ]]; then + omarchy-install-chromium-google-account +fi diff --git a/bin/omarchy-refresh-hyprland b/bin/omarchy-refresh-hyprland index 7c0a278b..1f1ab0cc 100755 --- a/bin/omarchy-refresh-hyprland +++ b/bin/omarchy-refresh-hyprland @@ -2,6 +2,6 @@ omarchy-refresh-config hypr/autostart.conf omarchy-refresh-config hypr/bindings.conf -omarchy-refresh-config hypr/envs.conf omarchy-refresh-config hypr/input.conf +omarchy-refresh-config hypr/looknfeel.conf omarchy-refresh-config hypr/hyprland.conf diff --git a/bin/omarchy-refresh-limine b/bin/omarchy-refresh-limine new file mode 100755 index 00000000..33adb097 --- /dev/null +++ b/bin/omarchy-refresh-limine @@ -0,0 +1,34 @@ +#!/bin/bash + +if [[ -f /boot/EFI/Linux/omarchy_linux.efi ]] && [[ -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi ]]; then + echo "Cleanup extra UKI" + sudo rm -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi +fi +echo "Resetting limine config" + +sudo mv /boot/limine.conf /boot/limine.conf.bak + +sudo tee /boot/limine.conf </dev/null +### Read more at config document: https://github.com/limine-bootloader/limine/blob/trunk/CONFIG.md +#timeout: 3 +default_entry: 2 +interface_branding: Omarchy Bootloader +interface_branding_color: 2 +hash_mismatch_panic: no + +term_background: 1a1b26 +backdrop: 1a1b26 + +# Terminal colors (Tokyo Night palette) +term_palette: 15161e;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;a9b1d6 +term_palette_bright: 414868;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;c0caf5 + +# Text colors +term_foreground: c0caf5 +term_foreground_bright: c0caf5 +term_background_bright: 24283b + +EOF + +sudo limine-update +sudo limine-snapper-sync diff --git a/bin/omarchy-refresh-pacman b/bin/omarchy-refresh-pacman new file mode 100755 index 00000000..d9ab3d2a --- /dev/null +++ b/bin/omarchy-refresh-pacman @@ -0,0 +1,22 @@ +#!/bin/bash + +# Take backup of existing files +sudo cp -f /etc/pacman.conf /etc/pacman.conf.bak +sudo cp -f /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak + +sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf + +if [[ $1 == "edge" ]]; then + sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist + sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/edge/$arch|' /etc/pacman.conf + echo "Setting channel to edge" +else + sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist + sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/stable/$arch|' /etc/pacman.conf + echo "Setting channel to stable" +fi + +echo + +# Reset all package DBs and then update +sudo pacman -Syyu --noconfirm diff --git a/bin/omarchy-refresh-pacman-mirrorlist b/bin/omarchy-refresh-pacman-mirrorlist deleted file mode 100755 index d0294909..00000000 --- a/bin/omarchy-refresh-pacman-mirrorlist +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist diff --git a/bin/omarchy-refresh-walker b/bin/omarchy-refresh-walker index 04112a4d..09a47495 100755 --- a/bin/omarchy-refresh-walker +++ b/bin/omarchy-refresh-walker @@ -1,5 +1,10 @@ #!/bin/bash +# Ensure walker is set to autostart +mkdir -p ~/.config/autostart/ +cp $OMARCHY_PATH/autostart/walker.desktop ~/.config/autostart/ +systemctl --user daemon-reload + omarchy-refresh-config walker/config.toml omarchy-refresh-config elephant/calc.toml omarchy-refresh-config elephant/desktopapplications.toml diff --git a/bin/omarchy-reinstall b/bin/omarchy-reinstall new file mode 100755 index 00000000..52c826ca --- /dev/null +++ b/bin/omarchy-reinstall @@ -0,0 +1,33 @@ +#!/bin/bash + +set -e + +if [ "$EUID" -eq 0 ]; then + echo "Error: This script should not be run as root" + exit 1 +fi + +echo -e "This will reinstall all the default Omarchy packages and reset all default configs.\nWarning: All changes to configs will be lost.\n" + +if gum confirm "Are you sure you want to reinstall and lose all config changes?"; then + echo "Resetting Omarchy repository" + git clone "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null + rm -rf $OMARCHY_PATH + mv ~/.local/share/omarchy-new $OMARCHY_PATH + + echo "Reinstalling missing Omarchy packages" + mapfile -t packages < <(grep -v '^#' "$OMARCHY_PATH/install/omarchy-base.packages" | grep -v '^$') + sudo pacman -Syu --noconfirm --needed "${packages[@]}" + + echo "Resetting all Omarchy configs" + cp -R ~/.local/share/omarchy/config/* ~/.config/ + cp ~/.local/share/omarchy/default/bashrc ~/.bashrc + echo '[[ -f ~/.bashrc ]] && . ~/.bashrc' | tee ~/.bash_profile >/dev/null + + $(bash $OMARCHY_PATH/install/config/theme.sh) + $(bash $OMARCHY_PATH/install/config/git.sh) + + omarchy-refresh-limine + omarchy-refresh-plymouth + omarchy-nvim-setup +fi diff --git a/bin/omarchy-remove-dev-env b/bin/omarchy-remove-dev-env new file mode 100755 index 00000000..d2320149 --- /dev/null +++ b/bin/omarchy-remove-dev-env @@ -0,0 +1,102 @@ +#!/bin/bash + +if [[ -z "$1" ]]; then + echo "Usage: omarchy-remove-dev-env " >&2 + exit 1 +fi + +remove_php() { + sudo pacman -Rns --noconfirm php composer php-sqlite xdebug 2>/dev/null || true +} + +case "$1" in +ruby) + echo -e "Removing Ruby...\n" + mise uninstall ruby --all + mise rm -g ruby + rm -f ~/.gemrc + ;; +node) + echo -e "Removing Node.js...\n" + mise uninstall node --all + mise rm -g node + ;; +bun) + echo -e "Removing Bun...\n" + mise uninstall bun --all + mise rm -g bun + ;; +deno) + echo -e "Removing Deno...\n" + mise uninstall deno --all + mise rm -g deno + ;; +go) + echo -e "Removing Go...\n" + mise uninstall go --all + mise rm -g go + ;; +php) + echo -e "Removing PHP...\n" + remove_php + ;; +laravel) + echo -e "Removing Laravel...\n" + composer global remove laravel/installer 2>/dev/null || true + ;; +symfony) + echo -e "Removing Symfony CLI...\n" + sudo pacman -Rns --noconfirm symfony-cli 2>/dev/null || true + ;; +python) + echo -e "Removing Python...\n" + mise uninstall python --all + mise rm -g python + rm -rf ~/.local/bin/uv ~/.local/bin/uvx ~/.cargo/bin/uv 2>/dev/null || true + ;; +elixir|phoenix) + echo -e "Removing Elixir/Erlang...\n" + mise uninstall elixir --all + mise uninstall erlang --all + mise rm -g elixir + mise rm -g erlang + ;; +zig) + echo -e "Removing Zig...\n" + mise uninstall zig --all + mise uninstall zls --all + mise rm -g zig + mise rm -g zls + ;; +rust) + echo -e "Removing Rust...\n" + rustup self uninstall -y 2>/dev/null || true + ;; +java) + echo -e "Removing Java...\n" + mise uninstall java --all + mise rm -g java + ;; +dotnet) + echo -e "Removing .NET...\n" + mise uninstall dotnet --all + mise rm -g dotnet + ;; +ocaml) + echo -e "Removing OCaml...\n" + opam switch remove default -y 2>/dev/null || true + rm -rf ~/.opam 2>/dev/null || true + sudo rm -f /usr/local/bin/opam 2>/dev/null || true + ;; +clojure) + echo -e "Removing Clojure...\n" + mise uninstall clojure --all + mise rm -g clojure + ;; +*) + echo "Unknown environment: $1" + exit 1 + ;; +esac + +echo -e "\nDone!" diff --git a/bin/omarchy-theme-set-terminal b/bin/omarchy-restart-terminal similarity index 50% rename from bin/omarchy-theme-set-terminal rename to bin/omarchy-restart-terminal index 9e2f7ad0..6de616ed 100755 --- a/bin/omarchy-theme-set-terminal +++ b/bin/omarchy-restart-terminal @@ -4,5 +4,10 @@ if [[ -f ~/.config/alacritty/alacritty.toml ]]; then touch ~/.config/alacritty/alacritty.toml fi -killall -SIGUSR1 kitty -killall -SIGUSR2 ghostty +if pgrep -x kitty; then + killall -SIGUSR1 kitty +fi + +if pgrep -x ghostty; then + killall -SIGUSR2 ghostty +fi diff --git a/bin/omarchy-restart-walker b/bin/omarchy-restart-walker index 4abcb88e..2efb9d53 100755 --- a/bin/omarchy-restart-walker +++ b/bin/omarchy-restart-walker @@ -1,21 +1,22 @@ #!/bin/bash -pkill elephant -pkill walker +restart_services() { + if systemctl --user is-enabled elephant.service &>/dev/null; then + systemctl --user restart elephant.service + fi + + if systemctl --user is-enabled app-walker@autostart.service &>/dev/null; then + systemctl --user restart app-walker@autostart.service + else + echo -e "\e[31mUnable to restart Walker -- RESTART MANUALLY\e[0m" + fi +} -# Detect if we're running as root (from pacman hook) if [[ $EUID -eq 0 ]]; then - # Get the owner of this script to determine which user to run as SCRIPT_OWNER=$(stat -c '%U' "$0") USER_UID=$(id -u "$SCRIPT_OWNER") - - # Restart services as the script owner systemd-run --uid="$SCRIPT_OWNER" --setenv=XDG_RUNTIME_DIR="/run/user/$USER_UID" \ - bash -c " - setsid uwsm-app -- elephant & - setsid uwsm-app -- walker --gapplication-service & - " + bash -c "$(declare -f restart_services); restart_services" else - setsid uwsm-app -- elephant & - setsid uwsm-app -- walker --gapplication-service & + restart_services fi diff --git a/bin/omarchy-setup-fingerprint b/bin/omarchy-setup-fingerprint index 93b70e6d..5319fdae 100755 --- a/bin/omarchy-setup-fingerprint +++ b/bin/omarchy-setup-fingerprint @@ -51,6 +51,16 @@ EOF fi } +add_hyprlock_fingerprint_icon() { + print_info "Adding fingerprint icon to hyprlock placeholder text..." + sed -i 's/placeholder_text = .*/placeholder_text = Enter Password 󰈷 <\/span>/' ~/.config/hypr/hyprlock.conf +} + +remove_hyprlock_fingerprint_icon() { + print_info "Removing fingerprint icon from hyprlock placeholder text..." + sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf +} + remove_pam_config() { # Remove from sudo if grep -q pam_fprintd.so /etc/pam.d/sudo; then @@ -71,6 +81,9 @@ if [[ "--remove" == "$1" ]]; then # Remove PAM configuration remove_pam_config + # Remove fingerprint icon from hyprlock placeholder text + remove_hyprlock_fingerprint_icon + # Uninstall packages print_info "Removing fingerprint packages..." sudo pacman -Rns --noconfirm fprintd @@ -90,6 +103,9 @@ else # Configure PAM setup_pam_config + # Add fingerprint icon to hyprlock placeholder text + add_hyprlock_fingerprint_icon + # Enroll first fingerprint print_success "\nLet's setup your right index finger as the first fingerprint." print_info "Keep moving the finger around on sensor until the process completes.\n" diff --git a/bin/omarchy-snapshot b/bin/omarchy-snapshot index 7174081b..ee79512a 100755 --- a/bin/omarchy-snapshot +++ b/bin/omarchy-snapshot @@ -1,5 +1,7 @@ #!/bin/bash +set -e + COMMAND="$1" OMARCHY_PATH=${OMARCHY_PATH:-$HOME/.local/share/omarchy} @@ -17,7 +19,7 @@ create) DESC="$(omarchy-version)" echo -e "\e[32mCreate system snapshot\e[0m" - + # Get existing snapper config names from CSV output mapfile -t CONFIGS < <(sudo snapper --csvout list-configs | awk -F, 'NR>1 {print $1}') diff --git a/bin/omarchy-theme-bg-install b/bin/omarchy-theme-bg-install new file mode 100755 index 00000000..2ba2cb8b --- /dev/null +++ b/bin/omarchy-theme-bg-install @@ -0,0 +1,7 @@ +#!/bin/bash + +CURRENT_THEME_NAME=$(cat "$HOME/.config/omarchy/current/theme.name") +THEME_USER_BACKGROUNDS="$HOME/.config/omarchy/backgrounds/$CURRENT_THEME_NAME" + +mkdir -p "$THEME_USER_BACKGROUNDS" +nautilus "$THEME_USER_BACKGROUNDS" diff --git a/bin/omarchy-theme-bg-next b/bin/omarchy-theme-bg-next index 52c1355e..e073db5c 100755 --- a/bin/omarchy-theme-bg-next +++ b/bin/omarchy-theme-bg-next @@ -2,10 +2,12 @@ # Cycles through the background images available -BACKGROUNDS_DIR="$HOME/.config/omarchy/current/theme/backgrounds/" +THEME_NAME=$(cat "$HOME/.config/omarchy/current/theme.name" 2>/dev/null) +THEME_BACKGROUNDS_PATH="$HOME/.config/omarchy/current/theme/backgrounds/" +USER_BACKGROUNDS_PATH="$HOME/.config/omarchy/backgrounds/$THEME_NAME/" CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background" -mapfile -d '' -t BACKGROUNDS < <(find -L "$BACKGROUNDS_DIR" -type f -print0 | sort -z) +mapfile -d '' -t BACKGROUNDS < <(find -L "$USER_BACKGROUNDS_PATH" "$THEME_BACKGROUNDS_PATH" -maxdepth 1 -type f -print0 2>/dev/null | sort -z) TOTAL=${#BACKGROUNDS[@]} if [[ $TOTAL -eq 0 ]]; then diff --git a/bin/omarchy-theme-current b/bin/omarchy-theme-current index 40350c53..fc2dab31 100755 --- a/bin/omarchy-theme-current +++ b/bin/omarchy-theme-current @@ -1,3 +1,9 @@ #!/bin/bash -basename "$(realpath "$HOME/.config/omarchy/current/theme")" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' +THEME_NAME_PATH="$HOME/.config/omarchy/current/theme.name" + +if [[ -f $THEME_NAME_PATH ]]; then + cat $THEME_NAME_PATH | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' +else + echo "Unknown" +fi diff --git a/bin/omarchy-theme-list b/bin/omarchy-theme-list index 944979f4..08678288 100755 --- a/bin/omarchy-theme-list +++ b/bin/omarchy-theme-list @@ -1,5 +1,8 @@ #!/bin/bash -find ~/.config/omarchy/themes/ -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do - echo "$(basename "$path" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')" +{ + find ~/.config/omarchy/themes/ -mindepth 1 -maxdepth 1 \( -type d -o -type l \) -printf '%f\n' + find "$OMARCHY_PATH/themes/" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' +} | sort -u | while read -r name; do + echo "$name" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' done diff --git a/bin/omarchy-theme-next b/bin/omarchy-theme-next deleted file mode 100755 index eb97d907..00000000 --- a/bin/omarchy-theme-next +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -THEMES_DIR="$HOME/.config/omarchy/themes/" -CURRENT_THEME_LINK="$HOME/.config/omarchy/current/theme" - -THEMES=($(find "$THEMES_DIR" -mindepth 1 -maxdepth 1 | sort)) -TOTAL=${#THEMES[@]} - -# Get current theme from symlink -if [[ -L "$CURRENT_THEME_LINK" ]]; then - CURRENT_THEME=$(realpath "$CURRENT_THEME_LINK") -else - # Default to first theme if no symlink exists - CURRENT_THEME=$(realpath "${THEMES[0]}") -fi - -# Find current theme index -INDEX=0 -for i in "${!THEMES[@]}"; do - THEMES[$i]=$(realpath "${THEMES[$i]}") - - if [[ "${THEMES[$i]}" == "$CURRENT_THEME" ]]; then - INDEX=$i - break - fi -done - -# Get next theme (wrap around) -NEXT_INDEX=$(((INDEX + 1) % TOTAL)) -NEW_THEME=${THEMES[$NEXT_INDEX]} -NEW_THEME_NAME=$(basename "$NEW_THEME") - -omarchy-theme-set $NEW_THEME_NAME -notify-send "Theme changed to $NEW_THEME_NAME" -t 2000 diff --git a/bin/omarchy-theme-remove b/bin/omarchy-theme-remove index e3733feb..ee51d809 100755 --- a/bin/omarchy-theme-remove +++ b/bin/omarchy-theme-remove @@ -7,7 +7,7 @@ if [ -z "$1" ]; then mapfile -t extra_themes < <(find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n') if [[ ${#extra_themes[@]} -gt 0 ]]; then - THEME_NAME=$(gum choose --header="Remove extra theme" "${extra_themes[@]}") + THEME_NAME=$(printf '%s\n' "${extra_themes[@]}" | sort | gum choose --header="Remove extra theme") else echo "No extra themes installed." exit 1 @@ -31,10 +31,5 @@ if [ ! -d "$THEME_PATH" ]; then exit 1 fi -# Move to the next theme if the current theme is the one being removed -if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then - omarchy-theme-next -fi - # Now remove the theme directory for THEME_NAME rm -rf "$THEME_PATH" diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set index c90d11eb..1aa8082b 100755 --- a/bin/omarchy-theme-set +++ b/bin/omarchy-theme-set @@ -1,24 +1,42 @@ #!/bin/bash -if [[ -z $1 && $1 != "CNCLD" ]]; then +if [[ -z $1 ]]; then echo "Usage: omarchy-theme-set " exit 1 fi -THEMES_DIR="$HOME/.config/omarchy/themes/" -CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" +CURRENT_THEME_PATH="$HOME/.config/omarchy/current/theme" +NEXT_THEME_PATH="$HOME/.config/omarchy/current/next-theme" +USER_THEMES_PATH="$HOME/.config/omarchy/themes" +OMARCHY_THEMES_PATH="$OMARCHY_PATH/themes" THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-') -THEME_PATH="$THEMES_DIR/$THEME_NAME" -# Check if the theme entered exists -if [[ ! -d "$THEME_PATH" ]]; then - echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" +if [[ -d "$USER_THEMES_PATH/$THEME_NAME" ]]; then + THEME_PATH="$USER_THEMES_PATH/$THEME_NAME" +elif [[ -d "$OMARCHY_THEMES_PATH/$THEME_NAME" ]]; then + THEME_PATH="$OMARCHY_THEMES_PATH/$THEME_NAME" +else + echo "Theme '$THEME_NAME' does not exist" exit 1 fi -# Update theme symlinks -ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR" +# Setup clean next theme directory (for atomic theme config swapping) +rm -rf "$NEXT_THEME_PATH" +mkdir -p "$NEXT_THEME_PATH" + +# Copy static configs +cp -r "$THEME_PATH/"* "$NEXT_THEME_PATH/" 2>/dev/null + +# Generate dynamic configs +omarchy-theme-set-templates + +# Swap next theme in as current +rm -rf "$CURRENT_THEME_PATH" +mv "$NEXT_THEME_PATH" "$CURRENT_THEME_PATH" + +# Store theme name for reference +echo "$THEME_NAME" > "$HOME/.config/omarchy/current/theme.name" # Change background with theme omarchy-theme-bg-next @@ -28,15 +46,17 @@ if pgrep -x waybar >/dev/null; then omarchy-restart-waybar fi omarchy-restart-swayosd +omarchy-restart-terminal hyprctl reload pkill -SIGUSR2 btop +# pkill -SIGUSR2 opencode makoctl reload -# Change gnome, browser, vscode, cursor themes -omarchy-theme-set-terminal +# Change app-specific themes omarchy-theme-set-gnome omarchy-theme-set-browser omarchy-theme-set-vscode +omarchy-theme-set-vscodium omarchy-theme-set-cursor omarchy-theme-set-obsidian diff --git a/bin/omarchy-theme-set-browser b/bin/omarchy-theme-set-browser index 81443091..00afa68f 100755 --- a/bin/omarchy-theme-set-browser +++ b/bin/omarchy-theme-set-browser @@ -23,11 +23,6 @@ if omarchy-cmd-present chromium || omarchy-cmd-present helium-browser || omarchy fi fi - if omarchy-cmd-present helium-browser; then - echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null - helium-browser --no-startup-window --refresh-platform-policy - fi - if omarchy-cmd-present brave; then echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null brave --refresh-platform-policy --no-startup-window diff --git a/bin/omarchy-theme-set-cursor b/bin/omarchy-theme-set-cursor index 2db672e1..18b962bc 100755 --- a/bin/omarchy-theme-set-cursor +++ b/bin/omarchy-theme-set-cursor @@ -1,4 +1,4 @@ #!/bin/bash # Call the VSCode theme setter with Cursor-specific parameters -omarchy-theme-set-vscode cursor "$HOME/.config/Cursor/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-cursor-theme-changes" Cursor +omarchy-theme-set-vscode cursor "$HOME/.config/Cursor/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-cursor-theme-changes" diff --git a/bin/omarchy-theme-set-obsidian b/bin/omarchy-theme-set-obsidian index e67f0b62..83980f6b 100755 --- a/bin/omarchy-theme-set-obsidian +++ b/bin/omarchy-theme-set-obsidian @@ -3,7 +3,7 @@ # omarchy-theme-set-obsidian: Bootstrap and update Omarchy theme for Obsidian # # - Ensures registry at ~/.local/state/omarchy/obsidian-vaults -# - If missing/empty, bootstraps by scanning ~/Documents/*/.obsidian and ~/Dropbox/*/.obsidian +# - Populates by extracting vault paths from ~/.config/obsidian/obsidian.json # - For each valid vault: # - Ensures .obsidian/themes/Omarchy/{manifest.json, theme.css} # - Updates theme.css (uses current theme’s obsidian.css if present; otherwise generates -- see below) @@ -26,30 +26,18 @@ VAULTS_FILE="$HOME/.local/state/omarchy/obsidian-vaults" CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" -# Ensure the vaults registry exists, or bootstrap from known locations ensure_vaults_file() { mkdir -p "$(dirname "$VAULTS_FILE")" - # If file exists (even empty), do not scan; treat as authoritative - if [ -f "$VAULTS_FILE" ]; then - return - fi local tmpfile tmpfile="$(mktemp)" - # Scan a couple of common locations for //.obsidian - for base in "$HOME/Documents" "$HOME/Dropbox"; do - [ -d "$base" ] || continue - for d in "$base"/*/.obsidian; do - [ -d "$d" ] || continue - vault_dir="${d%/.obsidian}" - printf "%s\n" "$vault_dir" >>"$tmpfile" - done - done - if [ -s "$tmpfile" ]; then - sort -u "$tmpfile" >"$VAULTS_FILE" - else - : >"$VAULTS_FILE" - fi - rm -f "$tmpfile" + # Extract the Obsidian vault location from config file //.obsidian + jq -r '.vaults | values[].path' ~/.config/obsidian/obsidian.json 2>/dev/null >>"$tmpfile" + if [ -s "$tmpfile" ]; then + sort -u "$tmpfile" >"$VAULTS_FILE" + else + : >"$VAULTS_FILE" + fi + rm "$tmpfile" } # Ensure theme directory and minimal manifest exist in a vault @@ -99,6 +87,35 @@ calculate_brightness() { echo $(((r * 299 + g * 587 + b * 114) / 1000)) } +# Calculate approximate contrast ratio between two colors +# Returns ratio scaled by 100 (e.g., 450 = 4.5:1 ratio) +# (this is due to bash not supporting decimal math) +calculate_contrast_ratio() { + local hex1="$1" hex2="$2" + local br1=$(calculate_brightness "$hex1") # 0-255 range + local br2=$(calculate_brightness "$hex2") # 0-255 range + + # Ensure br1 is the lighter color (higher brightness) + if [ $br1 -lt $br2 ]; then + local temp=$br1 + br1=$br2 + br2=$temp + fi + + # Approximate contrast ratio scaled by 100 + # Add offset to avoid division by zero and approximate WCAG +0.05 behavior + echo $(((br1 + 13) * 100 / (br2 + 13))) +} + +# Check if two colors meet minimum contrast threshold +# Usage: meets_contrast_threshold +# Both ratio and threshold should be scaled by 100 (e.g., 300 = 3:1) +meets_contrast_threshold() { + local ratio="$1" # Ratio scaled by 100 (from calculate_contrast_ratio) + local threshold="$2" # Threshold scaled by 100 (300=3:1, 450=4.5:1, 700=7:1) + [ $ratio -ge $threshold ] +} + # Calculate color distance (euclidean in RGB space) color_distance() { local hex1="$1" @@ -241,38 +258,30 @@ extract_theme_data() { fi done - # Sort by distance and get the closest color for code background - local -a closest_to_bg - readarray -t closest_to_bg < <(printf '%s\n' "${bg_distances[@]}" | sort -n | head -1 | cut -d: -f2) - # All background variations use the same as primary background local bg_primary_alt="$bg_color" local bg_secondary="$bg_color" local bg_secondary_alt="$bg_color" - # Code block background uses the closest different color - local code_bg="${closest_to_bg[0]}" - - # If no different color available, create a subtle variant for code blocks - if [ -z "$code_bg" ]; then - read -r r g b <<<"$(hex_to_rgb "$bg_color")" - if [ $bg_brightness -gt 127 ]; then - r=$((r - 10)) - g=$((g - 10)) - b=$((b - 10)) - else - r=$((r + 15)) - g=$((g + 15)) - b=$((b + 15)) - fi - [ $r -lt 0 ] && r=0 - [ $r -gt 255 ] && r=255 - [ $g -lt 0 ] && g=0 - [ $g -gt 255 ] && g=255 - [ $b -lt 0 ] && b=0 - [ $b -gt 255 ] && b=255 - code_bg=$(printf "#%02x%02x%02x" "$r" "$g" "$b") + # Generate code background color that will contrast with foreground text + read -r r g b <<<"$(hex_to_rgb "$bg_color")" + if [ $bg_brightness -gt 127 ]; then + r=$((r - 10)) + g=$((g - 10)) + b=$((b - 10)) + else + r=$((r + 15)) + g=$((g + 15)) + b=$((b + 15)) fi + [ $r -lt 0 ] && r=0 + [ $r -gt 255 ] && r=255 + [ $g -lt 0 ] && g=0 + [ $g -gt 255 ] && g=255 + [ $b -lt 0 ] && b=0 + [ $b -gt 255 ] && b=255 + code_bg=$(printf "#%02x%02x%02x" "$r" "$g" "$b") + # Find closest color to foreground for code block text local code_fg="" @@ -357,6 +366,22 @@ extract_theme_data() { border_color=$(printf "#%02x%02x%02x" "$r" "$g" "$b") fi + # Set text colors for muted/faint based on contrast + local text_muted_color="$border_color" + local text_faint_color="$border_color" + + # Validate border color contrast against background + + # Represents a 3:1 WCAG contrast ratio + local ideal_contrast_ratio=300 + + local border_contrast=$(calculate_contrast_ratio "$border_color" "$bg_color") + if ! meets_contrast_threshold "$border_contrast" "$ideal_contrast_ratio"; then + # Override text colors for readability, keep border color for visibility + text_muted_color="$fg_color" + text_faint_color="$fg_color" + fi + # Get unique colors array (without bg/fg) sorted by frequency local -a unique_colors readarray -t unique_colors < <(echo "$filtered_data" | sort_colors_by_frequency) @@ -366,7 +391,7 @@ extract_theme_data() { readarray -t color_slots < <(fill_color_slots "${unique_colors[@]}" | tr ' ' '\n') # Extract fonts - local monospace_font="CaskaydiaMono Nerd Font" + local monospace_font="JetBrainsMono Nerd Font" local ui_font="Liberation Sans" if [ -f "$CURRENT_THEME_DIR/alacritty.toml" ]; then @@ -421,8 +446,8 @@ extract_theme_data() { --text-mark: ${color_slots[7]}; --interactive-accent: ${color_slots[8]}; --blockquote-border: ${color_slots[9]}; - --text-muted: $border_color; /* Use border color for muted text */ - --text-faint: $border_color; /* Use border color for faint text */ + --text-muted: $text_muted_color; /* Use text-specific color for muted text */ + --text-faint: $text_faint_color; /* Use text-specific color for faint text */ /* Additional mappings */ --text-accent: var(--interactive-accent); diff --git a/bin/omarchy-theme-set-templates b/bin/omarchy-theme-set-templates new file mode 100755 index 00000000..11b3559c --- /dev/null +++ b/bin/omarchy-theme-set-templates @@ -0,0 +1,44 @@ +#!/bin/bash + +TEMPLATES_DIR="$OMARCHY_PATH/default/themed" +NEXT_THEME_DIR="$HOME/.config/omarchy/current/next-theme" +COLORS_FILE="$NEXT_THEME_DIR/colors.toml" + +# Convert hex color to decimal RGB (e.g., "#1e1e2e" -> "30,30,46") +hex_to_rgb() { + local hex="${1#\#}" + printf "%d,%d,%d" "0x${hex:0:2}" "0x${hex:2:2}" "0x${hex:4:2}" +} + +# Only generate dynamic templates for themes with a colors.toml definition +if [[ -f $COLORS_FILE ]]; then + # Parse TOML using yq (treating it as YAML since the flat key=value structure is compatible) + # We convert 'key = value' to 'key: value' to make it valid YAML, then use yq/jq to generate the replacement commands. + sed_script=$(mktemp) + + # Generate standard and _strip substitutions + sed 's/=/:/' "$COLORS_FILE" | yq -r 'to_entries[] | "s|{{ \(.key) }}|\(.value)|g", "s|{{ \(.key)_strip }}|\(.value | sub("^#";""))|g"' > "$sed_script" + + # Generate _rgb substitutions for hex colors + while IFS='=' read -r key value; do + key=$(echo "$key" | xargs) + value=$(echo "$value" | xargs | tr -d '"') + if [[ $value =~ ^# ]]; then + rgb=$(hex_to_rgb "$value") + echo "s|{{ ${key}_rgb }}|${rgb}|g" >> "$sed_script" + fi + done < "$COLORS_FILE" + + shopt -s nullglob + for tpl in "$TEMPLATES_DIR"/*.tpl; do + filename=$(basename "$tpl" .tpl) + output_path="$NEXT_THEME_DIR/$filename" + + # Don't overwrite configs already exists in the output directory (copied from theme specific folder) + if [[ ! -f $output_path ]]; then + sed -f "$sed_script" "$tpl" > "$output_path" + fi + done + + rm "$sed_script" +fi diff --git a/bin/omarchy-theme-set-vscode b/bin/omarchy-theme-set-vscode index c04010ca..31f95bf1 100755 --- a/bin/omarchy-theme-set-vscode +++ b/bin/omarchy-theme-set-vscode @@ -7,8 +7,6 @@ EDITOR_CMD="${1:-code}" SETTINGS_PATH="${2:-$HOME/.config/Code/User/settings.json}" SKIP_FLAG="${3:-$HOME/.local/state/omarchy/toggles/skip-vscode-theme-changes}" -EDITOR_NAME="${4:-VS Code}" - VS_CODE_THEME="$HOME/.config/omarchy/current/theme/vscode.json" if omarchy-cmd-present "$EDITOR_CMD" && [[ ! -f "$SKIP_FLAG" ]]; then @@ -16,7 +14,7 @@ if omarchy-cmd-present "$EDITOR_CMD" && [[ ! -f "$SKIP_FLAG" ]]; then theme_name=$(jq -r '.name' "$VS_CODE_THEME") extension=$(jq -r '.extension' "$VS_CODE_THEME") - # Install $EDITOR_NAME theme extension + # Install theme extension if [[ -n "$extension" ]] && ! "$EDITOR_CMD" --list-extensions | grep -Fxq "$extension"; then "$EDITOR_CMD" --install-extension "$extension" >/dev/null fi @@ -39,7 +37,7 @@ if omarchy-cmd-present "$EDITOR_CMD" && [[ ! -f "$SKIP_FLAG" ]]; then "s/(\"workbench.colorTheme\"[[:space:]]*:[[:space:]]*\")[^\"]*(\")/\1$theme_name\2/" \ "$SETTINGS_PATH" else - # Remove theme from settings.json when the theme doesn't have $EDITOR_NAME support + # Remove theme from settings.json when the theme doesn't have editor support if [[ -f "$SETTINGS_PATH" ]]; then sed -i --follow-symlinks -E 's/\"workbench\.colorTheme\"[[:space:]]*:[^,}]*,?//' "$SETTINGS_PATH" fi diff --git a/bin/omarchy-theme-set-vscodium b/bin/omarchy-theme-set-vscodium new file mode 100755 index 00000000..3d955c02 --- /dev/null +++ b/bin/omarchy-theme-set-vscodium @@ -0,0 +1,4 @@ +#!/bin/bash + +# Call the VSCode theme setter with VSCodium-specific parameters +omarchy-theme-set-vscode codium "$HOME/.config/VSCodium/User/settings.json" "$HOME/.local/state/omarchy/toggles/skip-codium-theme-changes" diff --git a/bin/omarchy-theme-update b/bin/omarchy-theme-update index a4ecbde6..aa68f095 100755 --- a/bin/omarchy-theme-update +++ b/bin/omarchy-theme-update @@ -1,5 +1,8 @@ #!/bin/bash for dir in ~/.config/omarchy/themes/*/; do - [ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull + if [[ -d $dir ]] && [[ ! -L "${dir%/}" ]] && [[ -d "$dir/.git" ]]; then + echo "Updating: $(basename "$dir")" + git -C "$dir" pull + fi done diff --git a/bin/omarchy-tui-install b/bin/omarchy-tui-install index 916db654..ebd3dfa1 100755 --- a/bin/omarchy-tui-install +++ b/bin/omarchy-tui-install @@ -1,11 +1,13 @@ #!/bin/bash +set -e + if [ "$#" -ne 4 ]; then echo -e "\e[32mLet's create a TUI shortcut you can start with the app launcher.\n\e[0m" APP_NAME=$(gum input --prompt "Name> " --placeholder "My TUI") APP_EXEC=$(gum input --prompt "Launch Command> " --placeholder "lazydocker or bash -c 'dust; read -n 1 -s'") WINDOW_STYLE=$(gum choose --header "Window style" float tile) - ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)") + ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG or SVG!)") else APP_NAME="$1" APP_EXEC="$2" @@ -43,7 +45,7 @@ cat >"$DESKTOP_FILE" </dev/null; then + sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org + sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571 + + # This is generally not a good idea, but this is a special case because we're going to be updating + # the full set of packages in omarchy-update-system-pkgs right after this (and it needs latest keyring)! + sudo pacman -Sy + omarchy-pkg-add omarchy-keyring + + sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 +fi diff --git a/bin/omarchy-update-perform b/bin/omarchy-update-perform index 9e68a67b..82946cfd 100755 --- a/bin/omarchy-update-perform +++ b/bin/omarchy-update-perform @@ -2,8 +2,17 @@ set -e +# Ensure screensaver/sleep doesn't set in during updates +hyprctl dispatch tagwindow +noidle &> /dev/null || true + +# Perform all update steps +omarchy-update-time +omarchy-update-keyring omarchy-update-available-reset omarchy-update-system-pkgs omarchy-migrate omarchy-hook post-update omarchy-update-restart + +# Re-enable screensaver/sleep after updates +hyprctl dispatch tagwindow -- -noidle &> /dev/null || true diff --git a/bin/omarchy-update-restart b/bin/omarchy-update-restart index 2811e937..b6b73afe 100755 --- a/bin/omarchy-update-restart +++ b/bin/omarchy-update-restart @@ -1,10 +1,10 @@ #!/bin/bash if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $2}')" ]; then - gum confirm "Linux kernel has been updated. Reboot?" && omarchy-state clear re*-required && sudo reboot now + gum confirm "Linux kernel has been updated. Reboot?" && omarchy-cmd-reboot elif [ -f "$HOME/.local/state/omarchy/reboot-required" ]; then - gum confirm "Updates require reboot. Ready?" && omarchy-state clear re*-required && sudo reboot now + gum confirm "Updates require reboot. Ready?" && omarchy-cmd-reboot fi for file in "$HOME"/.local/state/omarchy/restart-*-required; do diff --git a/bin/omarchy-update-system-pkgs b/bin/omarchy-update-system-pkgs index 28baffda..ab133286 100755 --- a/bin/omarchy-update-system-pkgs +++ b/bin/omarchy-update-system-pkgs @@ -1,19 +1,15 @@ #!/bin/bash -# Used in package emergencies if a bad package has been pushed and we can't revoke. -# Requires manually installing the good package using sudo pacman -U -ignored_packages=$(omarchy-pkg-ignored) +set -e echo -e "\e[32m\nUpdate system packages\e[0m" -[[ -n $ignored_packages ]] && echo "sudo pacman -Syu --noconfirm --ignore \"$ignored_packages\"" -sudo pacman -Syu --noconfirm --ignore "$ignored_packages" +sudo pacman -Syyu --noconfirm # Update AUR packages if any are installed if pacman -Qem >/dev/null; then if omarchy-pkg-aur-accessible; then echo -e "\e[32m\nUpdate AUR packages\e[0m" - [[ -n $ignored_packages ]] && echo "yay -Sua --noconfirm --ignore \"$ignored_packages\"" - yay -Sua --noconfirm --ignore "$ignored_packages" + yay -Sua --noconfirm echo else echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m" @@ -21,7 +17,7 @@ if pacman -Qem >/dev/null; then fi fi -orphans=$(pacman -Qtdq) +orphans=$(pacman -Qtdq || true) if [[ -n $orphans ]]; then echo -e "\e[32m\nRemove orphan system packages\e[0m" for pkg in $orphans; do diff --git a/bin/omarchy-update-time b/bin/omarchy-update-time new file mode 100755 index 00000000..14fc8b6f --- /dev/null +++ b/bin/omarchy-update-time @@ -0,0 +1,4 @@ +#!/bin/bash + +echo "Updating time..." +sudo systemctl restart systemd-timesyncd diff --git a/bin/omarchy-update-without-idle b/bin/omarchy-update-without-idle new file mode 100755 index 00000000..20d1ef10 --- /dev/null +++ b/bin/omarchy-update-without-idle @@ -0,0 +1,5 @@ +#!/bin/bash + +# No-op now that omarchy-update-perform is responsible for idle management. +# But this file can't be removed since it was referenced in old omarchy-update files, +# which would fail if this file is missing. diff --git a/bin/omarchy-version-channel b/bin/omarchy-version-channel new file mode 100755 index 00000000..8affb87e --- /dev/null +++ b/bin/omarchy-version-channel @@ -0,0 +1,23 @@ +#!/bin/bash + +if grep -q "https://stable-mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then + mirror="stable" +elif grep -q "https://mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then + mirror="edge" +else + mirror="unknown" +fi + +if grep -q "https://pkgs.omarchy.org/stable/" /etc/pacman.conf; then + pkgs="stable" +elif grep -q "https://pkgs.omarchy.org/edge/" /etc/pacman.conf; then + pkgs="edge" +else + pkgs="unknown" +fi + +if [[ $mirror == $pkgs ]]; then + echo $mirror +else + echo "$mirror / $pkgs" +fi diff --git a/bin/omarchy-version-pkgs b/bin/omarchy-version-pkgs new file mode 100755 index 00000000..bc638110 --- /dev/null +++ b/bin/omarchy-version-pkgs @@ -0,0 +1,3 @@ +#!/bin/bash + +date -d "$(grep upgraded /var/log/pacman.log | tail -1 | sed -E 's/\[([^]]+)\].*/\1/')" "+%A, %B %d %Y at %H:%M" diff --git a/bin/omarchy-webapp-install b/bin/omarchy-webapp-install index e954e842..a66dcabd 100755 --- a/bin/omarchy-webapp-install +++ b/bin/omarchy-webapp-install @@ -1,5 +1,7 @@ #!/bin/bash +set -e + if [ "$#" -lt 3 ]; then echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m" APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app") diff --git a/bin/omarchy-webapp-remove b/bin/omarchy-webapp-remove index ca4daefc..2da36b54 100755 --- a/bin/omarchy-webapp-remove +++ b/bin/omarchy-webapp-remove @@ -1,5 +1,7 @@ #!/bin/bash +set -e + ICON_DIR="$HOME/.local/share/applications/icons" DESKTOP_DIR="$HOME/.local/share/applications/" @@ -30,7 +32,7 @@ else fi if [[ ${#APP_NAMES[@]} -eq 0 ]]; then - echo "You must provide web app names." + echo "You must select at least one web app to remove." exit 1 fi diff --git a/bin/omarchy-windows-vm b/bin/omarchy-windows-vm index 2bc18db6..e67fddee 100755 --- a/bin/omarchy-windows-vm +++ b/bin/omarchy-windows-vm @@ -328,7 +328,7 @@ launch_windows() { echo "Starting Windows VM..." # Send desktop notification - notify-send "Windows VM" "Starting Windows VM, this may take a moment..." + notify-send " Starting Windows VM" " This can take 15-30 seconds" -t 15000 if ! docker-compose -f "$COMPOSE_FILE" up -d 2>&1; then echo "❌ Failed to start Windows VM!" @@ -337,6 +337,23 @@ launch_windows() { notify-send -u critical "Windows VM" "Failed to start Windows VM" exit 1 fi + + # Wait for RDP to be ready + echo "Waiting for Windows VM to be ready..." + WAIT_COUNT=0 + while ! nc -z 127.0.0.1 3389 2>/dev/null; do + sleep 2 + WAIT_COUNT=$((WAIT_COUNT + 1)) + if [ $WAIT_COUNT -gt 60 ]; then # 2 minutes timeout + echo "❌ Timeout waiting for RDP!" + echo " The VM might still be installing Windows." + echo " Check progress at: http://127.0.0.1:8006" + exit 1 + fi + done + + # Give it a moment more to fully initialize + sleep 5 fi if ! wait_for_rdp_ready "$WIN_USER" "$WIN_PASS"; then @@ -362,7 +379,7 @@ To stop: omarchy-windows-vm stop" "$LIFECYCLE" # Detect display scale from Hyprland - HYPR_SCALE=$(hyprctl monitors -j | jq -r '.[0].scale') + HYPR_SCALE=$(hyprctl monitors -j | jq -r '.[] | select (.focused == true) | .scale') SCALE_PERCENT=$(echo "$HYPR_SCALE" | awk '{print int($1 * 100)}') RDP_SCALE="" @@ -374,7 +391,7 @@ To stop: omarchy-windows-vm stop" # If scale is less than 130%, don't set any scale (use default 100) # Connect with RDP in fullscreen (auto-detects resolution) - xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 +f -grab-keyboard /cert:ignore /title:"Windows VM - Omarchy" /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE + xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /cert:ignore /title:"Windows VM - Omarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE # After RDP closes, stop the container unless --keep-alive was specified if [ "$KEEP_ALIVE" = false ]; then diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml index ee1fb6fc..be44031c 100644 --- a/config/alacritty/alacritty.toml +++ b/config/alacritty/alacritty.toml @@ -4,9 +4,9 @@ general.import = [ "~/.config/omarchy/current/theme/alacritty.toml" ] TERM = "xterm-256color" [font] -normal = { family = "CaskaydiaMono Nerd Font", style = "Regular" } -bold = { family = "CaskaydiaMono Nerd Font", style = "Bold" } -italic = { family = "CaskaydiaMono Nerd Font", style = "Italic" } +normal = { family = "JetBrainsMono Nerd Font", style = "Regular" } +bold = { family = "JetBrainsMono Nerd Font", style = "Bold" } +italic = { family = "JetBrainsMono Nerd Font", style = "Italic" } size = 9 [window] diff --git a/config/brave-flags.conf b/config/brave-flags.conf index 3510e03d..bce00d52 100644 --- a/config/brave-flags.conf +++ b/config/brave-flags.conf @@ -1,5 +1,6 @@ --ozone-platform=wayland --ozone-platform-hint=wayland --enable-features=TouchpadOverscrollHistoryNavigation +--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url # Chromium crash workaround for Wayland color management on Hyprland - see https://github.com/hyprwm/Hyprland/issues/11957 --disable-features=WaylandWpColorManagerV1 diff --git a/config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc index 31542724..ea6b59e1 100644 --- a/config/fastfetch/config.jsonc +++ b/config/fastfetch/config.jsonc @@ -74,6 +74,12 @@ "keyColor": "blue", "text": "branch=$(omarchy-version-branch); echo \"$branch\"" }, + { + "type": "command", + "key": "│ ├󰔫", + "keyColor": "blue", + "text": "channel=$(omarchy-version-channel); echo \"$channel\"" + }, { "type": "kernel", "key": "│ ├", @@ -122,19 +128,25 @@ "break", { "type": "custom", - "format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" + "format": "\u001b[90m┌────────────────Age / Uptime / Update───────────────┐" }, { "type": "command", "key": "󱦟 OS Age", "keyColor": "magenta", - "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" + "text": "echo $(( ($(date +%s) - $(stat -c %W /)) / 86400 )) days" }, { "type": "uptime", "key": "󱫐 Uptime", "keyColor": "magenta" }, + { + "type": "command", + "key": " Update", + "keyColor": "magenta", + "text": "updated=$(omarchy-version-pkgs); echo \"$updated\"" + }, { "type": "custom", "format": "\u001b[90m└────────────────────────────────────────────────────┘" diff --git a/config/fcitx5/conf/clipboard.conf b/config/fcitx5/conf/clipboard.conf new file mode 100644 index 00000000..8aef5a8f --- /dev/null +++ b/config/fcitx5/conf/clipboard.conf @@ -0,0 +1,2 @@ +TriggerKey= +PastePrimaryKey= diff --git a/config/fontconfig/fonts.conf b/config/fontconfig/fonts.conf index 85c37b99..5463ba30 100644 --- a/config/fontconfig/fonts.conf +++ b/config/fontconfig/fonts.conf @@ -24,7 +24,7 @@ monospace - CaskaydiaMono Nerd Font + JetBrainsMono Nerd Font diff --git a/config/ghostty/config b/config/ghostty/config index f714edb3..4360f279 100644 --- a/config/ghostty/config +++ b/config/ghostty/config @@ -2,7 +2,7 @@ config-file = ?"~/.config/omarchy/current/theme/ghostty.conf" # Font -font-family = "CaskaydiaMono Nerd Font" +font-family = "JetBrainsMono Nerd Font" font-style = Regular font-size = 9 @@ -17,11 +17,18 @@ gtk-toolbar-style = flat # Cursor styling cursor-style = "block" cursor-style-blink = false -shell-integration-features = no-cursor + +# Cursor styling + SSH session terminfo +# (all shell integration options must be passed together) +shell-integration-features = no-cursor,ssh-env # Keyboard bindings keybind = shift+insert=paste_from_clipboard keybind = control+insert=copy_to_clipboard +keybind = super+control+shift+alt+arrow_down=resize_split:down,100 +keybind = super+control+shift+alt+arrow_up=resize_split:up,100 +keybind = super+control+shift+alt+arrow_left=resize_split:left,100 +keybind = super+control+shift+alt+arrow_right=resize_split:right,100 -# SSH session terminfo -shell-integration-features = ssh-env +# Slowdown mouse scrolling +mouse-scroll-multiplier = 0.95 diff --git a/config/git/config b/config/git/config new file mode 100644 index 00000000..0f8e9797 --- /dev/null +++ b/config/git/config @@ -0,0 +1,28 @@ +# See https://git-scm.com/docs/git-config + +[alias] + co = checkout + br = branch + ci = commit + st = status +[init] + defaultBranch = master +[pull] + rebase = true # Rebase (instead of merge) on pull +[push] + autoSetupRemote = true # Automatically set upstream branch on push +[diff] + algorithm = histogram # Clearer diffs on moved/edited lines + colorMoved = plain # Highlight moved blocks in diffs + mnemonicPrefix = true # More intuitive refs in diff output +[commit] + verbose = true # Include diff comment in commit message template +[column] + ui = auto # Output in columns when possible +[branch] + sort = -committerdate # Sort branches by most recent commit first +[tag] + sort = -version:refname # Sort version numbers as you would expect +[rerere] + enabled = true # Record and reuse conflict resolutions + autoupdate = true # Apply stored conflict resolutions automatically diff --git a/config/hypr/bindings.conf b/config/hypr/bindings.conf index 954929ed..cdb0118c 100644 --- a/config/hypr/bindings.conf +++ b/config/hypr/bindings.conf @@ -1,27 +1,26 @@ # Application bindings -$terminal = uwsm-app -- $TERMINAL -$browser = omarchy-launch-browser - -bindd = SUPER, RETURN, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)" +bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window -bindd = SUPER SHIFT, B, Browser, exec, $browser -bindd = SUPER SHIFT ALT, B, Browser (private), exec, $browser --private +bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser +bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor -bindd = SUPER SHIFT, T, Activity, exec, $terminal -e btop -bindd = SUPER SHIFT, D, Docker, exec, $terminal -e lazydocker -bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus signal "uwsm-app -- signal-desktop" -bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus "^obsidian$" "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime" +bindd = SUPER SHIFT, D, Docker, exec, omarchy-launch-tui lazydocker +bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus ^signal$ "uwsm-app -- signal-desktop" +bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime" +bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password -# If your web app url contains #, type it as ## to prevent hyperland treat it as comments +# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com" bindd = SUPER SHIFT ALT, A, Grok, exec, omarchy-launch-webapp "https://grok.com" +bindd = SUPER SHIFT CTRL, A, opencode, exec, omarchy-launch-opencode bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/" bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://app.hey.com" bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/" bindd = SUPER SHIFT ALT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/" bindd = SUPER SHIFT CTRL, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations" +bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Google Photos" "https://photos.google.com/" bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/" bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post" diff --git a/config/hypr/envs.conf b/config/hypr/envs.conf deleted file mode 100644 index a2a36410..00000000 --- a/config/hypr/envs.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Extra env variables -# env = MY_GLOBAL_ENV,setting diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf index f2245a7a..87fab46a 100644 --- a/config/hypr/hypridle.conf +++ b/config/hypr/hypridle.conf @@ -11,7 +11,7 @@ listener { } listener { - timeout = 300 # 5min + timeout = 150 # 5min on-timeout = loginctl lock-session # lock screen when timeout has passed } diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index f513cd08..4786e7e2 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -16,7 +16,6 @@ source = ~/.config/omarchy/current/theme/hyprland.conf source = ~/.config/hypr/monitors.conf source = ~/.config/hypr/input.conf source = ~/.config/hypr/bindings.conf -source = ~/.config/hypr/envs.conf source = ~/.config/hypr/looknfeel.conf source = ~/.config/hypr/autostart.conf diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf index 063d793b..f7a939c0 100644 --- a/config/hypr/hyprlock.conf +++ b/config/hypr/hyprlock.conf @@ -1,5 +1,9 @@ source = ~/.config/omarchy/current/theme/hyprlock.conf +general { + ignore_empty_input = true +} + background { monitor = color = $color @@ -22,10 +26,10 @@ input-field { outer_color = $outer_color outline_thickness = 4 - font_family = CaskaydiaMono Nerd Font Propo + font_family = JetBrainsMono Nerd Font font_color = $font_color - placeholder_text = Enter Password 󰈷 + placeholder_text = Enter Password check_color = $check_color fail_text = $FAIL ($ATTEMPTS) diff --git a/config/hypr/hyprsunset.conf b/config/hypr/hyprsunset.conf index f51ff746..c4d0f8d3 100644 --- a/config/hypr/hyprsunset.conf +++ b/config/hypr/hyprsunset.conf @@ -5,7 +5,9 @@ profile { identity = true } -# Enable auto switch to nightlight: +# To enable auto switch to nightlight, set in your .config/hypr/autostart: +# exec-once = uwsm app -- hyprsunset +# and use the following: # profile { # time = 20:00 # temperature = 4000 diff --git a/config/hypr/input.conf b/config/hypr/input.conf index 6bbee49b..c48b2703 100644 --- a/config/hypr/input.conf +++ b/config/hypr/input.conf @@ -3,7 +3,7 @@ input { # Use multiple keyboard layouts and switch between them with Left Alt + Right Alt # kb_layout = us,dk,eu - kb_options = compose:caps # ,grp:shifts_toggle + kb_options = compose:caps # ,grp:alts_toggle # Change speed of keyboard repeat repeat_rate = 40 @@ -24,12 +24,15 @@ input { # Control the speed of your scrolling scroll_factor = 0.4 + + # Left-click-and-drag with three fingers + # drag_3fg = 1 } } # Scroll nicely in the terminal -windowrule = scrolltouchpad 1.5, class:(Alacritty|kitty) -windowrule = scrolltouchpad 0.2, class:com.mitchellh.ghostty +windowrule = match:class (Alacritty|kitty), scroll_touchpad 1.5 +windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2 # Enable touchpad gestures for changing workspaces # See https://wiki.hyprland.org/Configuring/Gestures/ diff --git a/config/hypr/looknfeel.conf b/config/hypr/looknfeel.conf index 39022b89..62e26344 100644 --- a/config/hypr/looknfeel.conf +++ b/config/hypr/looknfeel.conf @@ -2,9 +2,10 @@ # https://wiki.hyprland.org/Configuring/Variables/#general general { - # No gaps between windows + # No gaps between windows or borders # gaps_in = 0 # gaps_out = 0 + # border_size = 0 # Use master layout instead of dwindle # layout = master diff --git a/config/hypr/monitors.conf b/config/hypr/monitors.conf index 2f1f0db8..875ad265 100644 --- a/config/hypr/monitors.conf +++ b/config/hypr/monitors.conf @@ -8,7 +8,7 @@ monitor=,preferred,auto,auto # Good compromise for 27" or 32" 4K monitors (but fractional!) # env = GDK_SCALE,1.75 -# monitor=,preferred,auto,1.666667 +# monitor=,preferred,auto,1.6 # Straight 1x setup for low-resolution displays like 1080p or 1440p # env = GDK_SCALE,1 diff --git a/config/hypr/xdph.conf b/config/hypr/xdph.conf new file mode 100644 index 00000000..63b66be1 --- /dev/null +++ b/config/hypr/xdph.conf @@ -0,0 +1,4 @@ +screencopy { + allow_token_by_default = true + custom_picker_binary = hyprland-preview-share-picker +} diff --git a/config/hyprland-preview-share-picker/config.yaml b/config/hyprland-preview-share-picker/config.yaml new file mode 100644 index 00000000..6b939570 --- /dev/null +++ b/config/hyprland-preview-share-picker/config.yaml @@ -0,0 +1,71 @@ +# paths to stylesheets on the filesystem which should be applied to the application +# +# relative paths are resolved relative to the location of the config file +stylesheets: ["../omarchy/current/theme/hyprland-preview-share-picker.css"] +# default page selected when the picker is opened +default_page: windows + +window: + # height of the application window + height: 500 + # width of the application window + width: 1000 + +image: + # size to which the images should be internally resized to reduce the memory footprint + resize_size: 500 + # target size of the longer side of the image widget + widget_size: 150 + +classes: + # css classname of the window + window: window + # css classname of the card containing an image and a label + image_card: card + # css classname of the card containing an image and a label when the image is still being loaded + image_card_loading: card-loading + # css classname of the image inside the card + image: image + # css classname of the label inside the card + image_label: image-label + # css classname of the notebook containing all pages + notebook: notebook + # css classname of a label of the notebook + tab_label: tab-label + # css classname of a notebook page (e.g. windows container) + notebook_page: page + # css classname of the region selection button + region_button: region-button + # css classname of the button containing the session restore checkbox and label + restore_button: restore-button + +windows: + # minimum amount of image cards per row on the windows page + min_per_row: 3 + # maximum amount of image cards per row on the windows page + max_per_row: 999 + # number of clicks needed to select a window + clicks: 1 + # spacing in pixels between the window cards + spacing: 12 + +outputs: + # number of clicks needed to select an output + clicks: 1 + # spacing in pixels between the outputs in the layout + # note: the spacing is applied from both sides (the gap is `spacing * 2`) + spacing: 6 + # show the label with the output name + show_label: false + # size the output cards respectively to their scaling + respect_output_scaling: true + +region: + # command to run for region selection + # the output needs to be in the @,,, (e.g. DP-3@2789,436,756,576) format + command: slurp -f '%o@%x,%y,%w,%h' + +# hide the token restore checkbox and use the default value instead +hide_token_restore: true +# enable debug logs by default +debug: false diff --git a/config/imv/config b/config/imv/config new file mode 100644 index 00000000..46493240 --- /dev/null +++ b/config/imv/config @@ -0,0 +1,13 @@ +[binds] + +# Print the current image file + = exec lp "$imv_current_file" + +# Delete the current image and quit the viewer + = exec rm "$imv_current_file"; quit + +# Delete the current image and move to the next one + = exec rm "$imv_current_file"; close + +# Rotate the currently open image by 90 degrees + = exec mogrify -rotate 90 "$imv_current_file" diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index 88413ad7..5a76a146 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,15 +1,13 @@ include ~/.config/omarchy/current/theme/kitty.conf # Font -font_family CaskaydiaMono Nerd Font +font_family JetBrainsMono Nerd Font bold_italic_font auto font_size 9.0 # Window window_padding_width 14 -window_padding_height 14 hide_window_decorations yes -show_window_resize_notification no confirm_os_window_close 0 # Keybindings @@ -17,7 +15,6 @@ map ctrl+insert copy_to_clipboard map shift+insert paste_from_clipboard # Allow remote access -single_instance yes allow_remote_control yes # Aesthetics diff --git a/config/omarchy/extensions/menu.sh b/config/omarchy/extensions/menu.sh new file mode 100644 index 00000000..e62f9580 --- /dev/null +++ b/config/omarchy/extensions/menu.sh @@ -0,0 +1,17 @@ +# Overwrite parts of the omarchy-menu with user-specific submenus. +# See $OMARCHY_PATH/bin/omarchy-menu for functions that can be overwritten. +# +# WARNING: Overwritten functions will obviously not be updated when Omarchy changes. +# +# Example adding suspend to the system menu: +# +# show_system_menu() { +# case $(menu "System" " Lock\n󱄄 Screensaver\n󰒲 Suspend\n󰜉 Restart\n󰐥 Shutdown") in +# *Lock*) omarchy-lock-screen ;; +# *Screensaver*) omarchy-launch-screensaver force ;; +# *Suspend*) systemctl suspend ;; +# *Restart*) omarchy-cmd-reboot ;; +# *Shutdown*) omarchy-cmd-shutdown ;; +# *) back_to show_main_menu ;; +# esac +# } diff --git a/config/opencode/opencode.json b/config/opencode/opencode.json new file mode 100644 index 00000000..a03a5cb0 --- /dev/null +++ b/config/opencode/opencode.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://opencode.ai/config.json", + "theme": "system" +} diff --git a/config/swayosd/style.css b/config/swayosd/style.css index 3c372e6b..b95ab9f3 100644 --- a/config/swayosd/style.css +++ b/config/swayosd/style.css @@ -9,7 +9,7 @@ window { } label { - font-family: 'CaskaydiaMono Nerd Font'; + font-family: 'JetBrainsMono Nerd Font'; font-size: 11pt; color: @label; diff --git a/config/uwsm/default b/config/uwsm/default index fa7f656d..946fbe5f 100644 --- a/config/uwsm/default +++ b/config/uwsm/default @@ -1,4 +1,13 @@ # Changes require a restart to take effect. -export TERMINAL=alacritty +# Install other terminals via Install > Terminal +export TERMINAL=xdg-terminal-exec + +# Use code for VSCode export EDITOR=nvim + +# Use a custom directory for screenshots (remember to make the directory!) +# export OMARCHY_SCREENSHOT_DIR="$HOME/Pictures/Screenshots" + +# Use a custom directory for screenrecordings (remember to make the directory!) +# export OMARCHY_SCREENRECORD_DIR="$HOME/Videos/Screencasts" diff --git a/config/uwsm/env b/config/uwsm/env index 065fcdac..b988bc29 100644 --- a/config/uwsm/env +++ b/config/uwsm/env @@ -2,7 +2,7 @@ # Ensure Omarchy bins are in the path export OMARCHY_PATH=$HOME/.local/share/omarchy -export PATH=$OMARCHY_PATH/bin/:$PATH +export PATH=$OMARCHY_PATH/bin:$PATH # Set default terminal and editor source ~/.config/uwsm/default diff --git a/config/walker/config.toml b/config/walker/config.toml index 85a86a12..7638097c 100644 --- a/config/walker/config.toml +++ b/config/walker/config.toml @@ -1,41 +1,24 @@ force_keyboard_focus = true # forces keyboard forcus to stay in Walker -close_when_open = true # close walker when invoking while already opened selection_wrap = true # wrap list if at bottom or top -click_to_close = true # closes walker if clicking outside of the main content area -global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config -exact_search_prefix = "'" # disable fuzzy searching theme = "omarchy-default" # theme to use -disable_mouse = false # disable mouse (on input and list only) additional_theme_location = "~/.local/share/omarchy/default/walker/themes/" - -[shell] -anchor_top = true -anchor_bottom = true -anchor_left = true -anchor_right = true +hide_action_hints = true # globally hide the action hints [placeholders] "default" = { input = " Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other" [keybinds] -close = ["Escape"] -next = ["Down"] -previous = ["Up"] -toggle_exact = ["ctrl e"] -resume_last_query = ["ctrl r"] quick_activate = [] +[columns] +symbols = 1 # providers to be queried by default + [providers] +max_results = 256 # 256 should be enough for everyone default = [ "desktopapplications", - "menus", "websearch", -] # providers to be queried by default -empty = ["desktopapplications"] # providers to be queried when query is empty -max_results = 50 # global max results - -[providers.sets] # define your own defaults/empty sets of providers -[providers.max_results_provider] # define max results per provider in here +] [[providers.prefixes]] prefix = "/" @@ -61,85 +44,6 @@ provider = "websearch" prefix = "$" provider = "clipboard" -[providers.actions] # This will be MERGED/OVEWRITTEN with what the user specifies -dmenu = [{ action = "select", default = true, bind = "Return" }] - -providerlist = [ - { action = "activate", default = true, bind = "Return", after = "ClearReload" }, -] - -bluetooth = [ - { action = "find", global = true, bind = "ctrl f", after = "AsyncClearReload" }, - { action = "trust", bind = "ctrl t", after = "AsyncReload" }, - { action = "untrust", bind = "ctrl t", after = "AsyncReload" }, - { action = "pair", bind = "Return", after = "AsyncReload" }, - { action = "remove", bind = "ctrl d", after = "AsyncReload" }, - { action = "connect", bind = "Return", after = "AsyncReload" }, - { action = "disconnect", bind = "Return", after = "AsyncReload" }, -] - -archlinuxpkgs = [ - { action = "install", bind = "Return", default = true }, - { action = "remove", bind = "Return" }, -] - -calc = [ - { action = "copy", default = true, bind = "Return" }, - { action = "delete", bind = "ctrl d", after = "AsyncReload" }, - { action = "save", bind = "ctrl s", after = "AsyncClearReload" }, -] - -websearch = [ - { action = "search", default = true, bind = "Return" }, - { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" }, -] - -desktopapplications = [ - { action = "start", default = true, bind = "Return" }, - { action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" }, - { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" }, - { action = "pin", bind = "ctrl p", after = "AsyncReload" }, - { action = "unpin", bind = "ctrl p", after = "AsyncReload" }, - { action = "pinup", bind = "ctrl n", after = "AsyncReload" }, - { action = "pindown", bind = "ctrl m", after = "AsyncReload" }, -] - -files = [ - { action = "open", default = true, bind = "Return" }, - { action = "opendir", label = "open dir", bind = "ctrl Return" }, - { action = "copypath", label = "copy path", bind = "ctrl shift c" }, - { action = "copyfile", label = "copy file", bind = "ctrl c" }, -] - -todo = [ - { action = "save", default = true, bind = "Return", after = "ClearReload" }, - { action = "delete", bind = "ctrl d", after = "ClearReload" }, - { action = "active", bind = "Return", after = "ClearReload" }, - { action = "inactive", bind = "Return", after = "ClearReload" }, - { action = "done", bind = "ctrl f", after = "ClearReload" }, - { action = "clear", bind = "ctrl x", after = "ClearReload", global = true }, -] - -runner = [ - { action = "run", default = true, bind = "Return" }, - { action = "runterminal", label = "run in terminal", bind = "shift Return" }, - { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" }, -] - -symbols = [ - { action = "run_cmd", label = "select", default = true, bind = "Return" }, - { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" }, -] - -unicode = [ - { action = "run_cmd", label = "select", default = true, bind = "Return" }, - { action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" }, -] - -clipboard = [ - { action = "copy", default = true, bind = "Return" }, - { action = "remove", bind = "ctrl d", after = "ClearReload" }, - { action = "remove_all", global = true, label = "clear", bind = "ctrl shift d", after = "ClearReload" }, - { action = "toggle_images", global = true, label = "toggle images", bind = "ctrl i", after = "ClearReload" }, - { action = "edit", bind = "ctrl o" }, -] +[[emergencies]] +text = "Restart Walker" +command = "omarchy-restart-walker" diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 8fe19a3c..20cad4c0 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -28,6 +28,7 @@ "7": "7", "8": "8", "9": "9", + "10": "0", "active": "󱓻" }, "persistent-workspaces": { @@ -41,6 +42,7 @@ "custom/omarchy": { "format": "\ue900", "on-click": "omarchy-menu", + "on-click-right": "xdg-terminal-exec", "tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space" }, "custom/update": { @@ -49,13 +51,14 @@ "on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update", "tooltip-format": "Omarchy update available", "signal": 7, - "interval": 3600 + "interval": 21600 }, "cpu": { "interval": 5, "format": "󰍛", - "on-click": "$TERMINAL -e btop" + "on-click": "omarchy-launch-or-focus-tui btop", + "on-click-right": "alacritty" }, "clock": { "format": "{:L%A %H:%M}", @@ -97,14 +100,16 @@ }, "bluetooth": { "format": "", + "format-off": "󰂲", "format-disabled": "󰂲", - "format-connected": "", + "format-connected": "󰂱", + "format-no-controller": "", "tooltip-format": "Devices connected: {num_connections}", - "on-click": "blueberry" + "on-click": "omarchy-launch-bluetooth" }, "pulseaudio": { "format": "{icon}", - "on-click": "$TERMINAL --class=Wiremix -e wiremix", + "on-click": "omarchy-launch-audio", "on-click-right": "pamixer -t", "tooltip-format": "Playing at {volume}%", "scroll-step": 5, @@ -122,8 +127,12 @@ "modules": ["custom/expand-icon", "tray"] }, "custom/expand-icon": { - "format": "", - "tooltip": false + "format": "", + "tooltip": false, + "on-scroll-up": "", + "on-scroll-down": "", + "on-scroll-left": "", + "on-scroll-right": "" }, "custom/screenrecording-indicator": { "on-click": "omarchy-cmd-screenrecord", diff --git a/config/waybar/style.css b/config/waybar/style.css index f2b1e9fe..7b7a980e 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -7,7 +7,7 @@ border: none; border-radius: 0; min-height: 0; - font-family: 'CaskaydiaMono Nerd Font'; + font-family: 'JetBrainsMono Nerd Font'; font-size: 12px; } @@ -53,7 +53,7 @@ } #custom-expand-icon { - margin-right: 20px; + margin-right: 18px; } tooltip { diff --git a/config/xdg-terminals.list b/config/xdg-terminals.list new file mode 100644 index 00000000..bc27bcf6 --- /dev/null +++ b/config/xdg-terminals.list @@ -0,0 +1,3 @@ +# Terminal emulator preference order for xdg-terminal-exec +# The first found and valid terminal will be used +com.mitchellh.ghostty.desktop diff --git a/default/bash/aliases b/default/bash/aliases index 53254cbb..8e485a35 100644 --- a/default/bash/aliases +++ b/default/bash/aliases @@ -1,19 +1,26 @@ # File system -alias ls='eza -lh --group-directories-first --icons=auto' -alias lsa='ls -a' -alias lt='eza --tree --level=2 --long --icons --git' -alias lta='lt -a' +if command -v eza &> /dev/null; then + alias ls='eza -lh --group-directories-first --icons=auto' + alias lsa='ls -a' + alias lt='eza --tree --level=2 --long --icons --git' + alias lta='lt -a' +fi + alias ff="fzf --preview 'bat --style=numbers --color=always {}'" -alias cd="zd" -zd() { - if [ $# -eq 0 ]; then - builtin cd ~ && return - elif [ -d "$1" ]; then - builtin cd "$1" - else - z "$@" && printf "\U000F17A9 " && pwd || echo "Error: Directory not found" - fi -} + +if command -v zoxide &> /dev/null; then + alias cd="zd" + zd() { + if [ $# -eq 0 ]; then + builtin cd ~ && return + elif [ -d "$1" ]; then + builtin cd "$1" + else + z "$@" && printf "\U000F17A9 " && pwd || echo "Error: Directory not found" + fi + } +fi + open() { xdg-open "$@" >/dev/null 2>&1 & } @@ -24,6 +31,7 @@ alias ...='cd ../..' alias ....='cd ../../..' # Tools +alias c='opencode' alias d='docker' alias r='rails' n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; } diff --git a/default/bash/functions b/default/bash/functions index 152deebb..1839e242 100644 --- a/default/bash/functions +++ b/default/bash/functions @@ -15,7 +15,7 @@ iso2sd() { fi } -# Format an entire drive for a single partition using ext4 +# Format an entire drive for a single partition using exFAT format-drive() { if [ $# -ne 2 ]; then echo "Usage: format-drive " @@ -25,14 +25,20 @@ format-drive() { else echo "WARNING: This will completely erase all data on $1 and label it '$2'." read -rp "Are you sure you want to continue? (y/N): " confirm + if [[ "$confirm" =~ ^[Yy]$ ]]; then sudo wipefs -a "$1" sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress sudo parted -s "$1" mklabel gpt - sudo parted -s "$1" mkpart primary ext4 1MiB 100% - sudo mkfs.ext4 -L "$2" "$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")" - sudo chmod -R 777 "/run/media/$USER/$2" - echo "Drive $1 formatted and labeled '$2'." + sudo parted -s "$1" mkpart primary 1MiB 100% + + partition="$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")" + sudo partprobe "$1" || true + sudo udevadm settle || true + + sudo mkfs.exfat -n "$2" "$partition" + + echo "Drive $1 formatted as exFAT and labeled '$2'." fi fi } @@ -49,19 +55,28 @@ transcode-video-4K() { # Transcode any image to JPG image that's great for shrinking wallpapers img2jpg() { - magick $1 -quality 95 -strip ${1%.*}.jpg + img="$1" + shift + + magick "$img" $@ -quality 95 -strip ${img%.*}-optimized.jpg } # Transcode any image to JPG image that's great for sharing online without being too big img2jpg-small() { - magick $1 -resize 1080x\> -quality 95 -strip ${1%.*}.jpg + img="$1" + shift + + magick "$img" $@ -resize 1080x\> -quality 95 -strip ${img%.*}-optimized.jpg } # Transcode any image to compressed-but-lossless PNG img2png() { - magick "$1" -strip -define png:compression-filter=5 \ + img="$1" + shift + + magick "$img" $@ -strip -define png:compression-filter=5 \ -define png:compression-level=9 \ -define png:compression-strategy=1 \ -define png:exclude-chunk=all \ - "${1%.*}.png" + "${img%.*}-optimized.png" } diff --git a/default/bash/init b/default/bash/init index 149b16c5..e9228edb 100644 --- a/default/bash/init +++ b/default/bash/init @@ -10,6 +10,10 @@ if command -v zoxide &> /dev/null; then eval "$(zoxide init bash)" fi +if command -v try &> /dev/null; then + eval "$(try init ~/Work/tries)" +fi + if command -v fzf &> /dev/null; then if [[ -f /usr/share/fzf/completion.bash ]]; then source /usr/share/fzf/completion.bash diff --git a/default/bash/prompt b/default/bash/prompt deleted file mode 100644 index 4901a584..00000000 --- a/default/bash/prompt +++ /dev/null @@ -1,7 +0,0 @@ -# Technicolor dreams -force_color_prompt=yes -color_prompt=yes - -# Simple prompt with path in the window/pane title and caret for typing line -PS1=$'\uf0a9 ' -PS1="\[\e]0;\w\a\]$PS1" diff --git a/default/bash/rc b/default/bash/rc index b0b572c9..487bdd40 100644 --- a/default/bash/rc +++ b/default/bash/rc @@ -1,7 +1,6 @@ source ~/.local/share/omarchy/default/bash/shell source ~/.local/share/omarchy/default/bash/aliases 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 [[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc diff --git a/default/bash/shell b/default/bash/shell index 7b39de7b..7eb48672 100644 --- a/default/bash/shell +++ b/default/bash/shell @@ -9,6 +9,5 @@ if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_comple source /usr/share/bash-completion/bash_completion fi -# Set complete path -export PATH="$HOME/.local/bin:$PATH" +# Ensure command hashing is off for mise set +h diff --git a/default/bashrc b/default/bashrc index f9ea4fd4..eaf13c66 100644 --- a/default/bashrc +++ b/default/bashrc @@ -1,3 +1,6 @@ +# If not running interactively, don't do anything (leave this at the top of this file) +[[ $- != *i* ]] && return + # All the default Omarchy aliases and functions # (don't mess with these directly, just overwrite them here!) source ~/.local/share/omarchy/default/bash/rc diff --git a/default/elephant/omarchy_themes.lua b/default/elephant/omarchy_themes.lua new file mode 100644 index 00000000..02baa0a9 --- /dev/null +++ b/default/elephant/omarchy_themes.lua @@ -0,0 +1,96 @@ +-- +-- Dynamic Omarchy Theme Menu for Elephant/Walker +-- +Name = "omarchythemes" +NamePretty = "Omarchy Themes" + +-- Check if file exists using Lua (no subprocess) +local function file_exists(path) + local f = io.open(path, "r") + if f then + f:close() + return true + end + return false +end + +-- Get first matching file from directory using ls (single call for fallback) +local function first_image_in_dir(dir) + local handle = io.popen("ls -1 '" .. dir .. "' 2>/dev/null | head -n 1") + if handle then + local file = handle:read("*l") + handle:close() + if file and file ~= "" then + return dir .. "/" .. file + end + end + return nil +end + +-- The main function elephant will call +function GetEntries() + local entries = {} + local user_theme_dir = os.getenv("HOME") .. "/.config/omarchy/themes" + local omarchy_path = os.getenv("OMARCHY_PATH") or "" + local default_theme_dir = omarchy_path .. "/themes" + + local seen_themes = {} + + -- Helper function to process themes from a directory + local function process_themes_from_dir(theme_dir) + -- Single find call to get all theme directories + local handle = io.popen("find -L '" .. theme_dir .. "' -mindepth 1 -maxdepth 1 -type d 2>/dev/null") + if not handle then + return + end + + for theme_path in handle:lines() do + local theme_name = theme_path:match(".*/(.+)$") + + if theme_name and not seen_themes[theme_name] then + seen_themes[theme_name] = true + + -- Check for preview images directly (no subprocess) + local preview_path = nil + local preview_png = theme_path .. "/preview.png" + local preview_jpg = theme_path .. "/preview.jpg" + + if file_exists(preview_png) then + preview_path = preview_png + elseif file_exists(preview_jpg) then + preview_path = preview_jpg + else + -- Fallback: get first image from backgrounds (one ls call) + preview_path = first_image_in_dir(theme_path .. "/backgrounds") + end + + if preview_path and preview_path ~= "" then + local display_name = theme_name:gsub("_", " "):gsub("%-", " ") + display_name = display_name:gsub("(%a)([%w_']*)", function(first, rest) + return first:upper() .. rest:lower() + end) + display_name = display_name .. " " + + table.insert(entries, { + Text = display_name, + Preview = preview_path, + PreviewType = "file", + Actions = { + activate = "omarchy-theme-set " .. theme_name, + }, + }) + end + end + end + + handle:close() + end + + -- Process user themes first (they take precedence) + process_themes_from_dir(user_theme_dir) + -- Then process default themes (only if not already seen) + process_themes_from_dir(default_theme_dir) + + return entries +end + diff --git a/default/ghostty/screensaver b/default/ghostty/screensaver new file mode 100644 index 00000000..dc359062 --- /dev/null +++ b/default/ghostty/screensaver @@ -0,0 +1,3 @@ +window-padding-x = 0 +window-padding-y = 0 +window-padding-color = "extend-always" diff --git a/default/hypr/apps/1password.conf b/default/hypr/apps/1password.conf index 3d825fe0..a666430c 100644 --- a/default/hypr/apps/1password.conf +++ b/default/hypr/apps/1password.conf @@ -1 +1,2 @@ -windowrule = noscreenshare, class:^(1Password)$ +windowrule = no_screen_share on, match:class ^(1[p|P]assword)$ +windowrule = tag +floating-window, match:class ^(1[p|P]assword)$ diff --git a/default/hypr/apps/bitwarden.conf b/default/hypr/apps/bitwarden.conf index 339ddb6b..974aa28c 100644 --- a/default/hypr/apps/bitwarden.conf +++ b/default/hypr/apps/bitwarden.conf @@ -1 +1,2 @@ -windowrule = noscreenshare, class:^(Bitwarden)$ +windowrule = no_screen_share on, match:class ^(Bitwarden)$ +windowrule = tag +floating-window, match:class ^(Bitwarden)$ diff --git a/default/hypr/apps/browser.conf b/default/hypr/apps/browser.conf index cf9ae193..2b44576b 100644 --- a/default/hypr/apps/browser.conf +++ b/default/hypr/apps/browser.conf @@ -1,13 +1,13 @@ # Browser types -windowrule = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable|helium) -windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf) +windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) +windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf) # Force chromium-based browsers into a tile to deal with --app bug -windowrule = tile, tag:chromium-based-browser +windowrule = tile on, match:tag chromium-based-browser # Only a subtle opacity change, but not for video sites -windowrule = opacity 1 0.97, tag:chromium-based-browser -windowrule = opacity 1 0.97, tag:firefox-based-browser +windowrule = opacity 1 0.97, match:tag chromium-based-browser +windowrule = opacity 1 0.97, match:tag firefox-based-browser # Some video sites should never have opacity applied to them -windowrule = opacity 1.0 1.0, initialTitle:((?i)(?:[a-z0-9-]+\.)*youtube\.com_/|app\.zoom\.us_/wc/home) +windowrule = opacity 1.0 1.0, match:initial_title ((?i)(?:[a-z0-9-]+\.)*youtube\.com_/|app\.zoom\.us_/wc/home) diff --git a/default/hypr/apps/davinci-resolve.conf b/default/hypr/apps/davinci-resolve.conf new file mode 100644 index 00000000..9067fdf6 --- /dev/null +++ b/default/hypr/apps/davinci-resolve.conf @@ -0,0 +1,2 @@ +# Focus floating DaVinci Resolve dialog windows +windowrule = stay_focused on, match:class .*[Rr]esolve.*, match:float 1 diff --git a/default/hypr/apps/hyprshot.conf b/default/hypr/apps/hyprshot.conf index c9003208..795ac396 100644 --- a/default/hypr/apps/hyprshot.conf +++ b/default/hypr/apps/hyprshot.conf @@ -1,2 +1,2 @@ # Remove 1px border around hyprshot screenshots -layerrule = noanim, selection +layerrule = no_anim on, match:namespace selection diff --git a/default/hypr/apps/jetbrains.conf b/default/hypr/apps/jetbrains.conf index 661b0a4c..d045f823 100644 --- a/default/hypr/apps/jetbrains.conf +++ b/default/hypr/apps/jetbrains.conf @@ -1,6 +1,22 @@ -# Fixing popup size issue -windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$,floating:1 +# Fix splash screen showing in weird places and prevent annoying focus takeovers +windowrule = tag +jetbrains-splash, match:class ^(jetbrains-.*)$, match:title ^(splash)$, match:float 1 +windowrule = center on, match:tag jetbrains-splash +windowrule = no_focus on, match:tag jetbrains-splash +windowrule = border_size 0, match:tag jetbrains-splash -# Fix tab dragging (always have a single space character as their title) -windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$ -windowrule = nofocus, class:^(.*jetbrains.*)$, title:^\\s$ +# Center popups/find windows +windowrule = tag +jetbrains, match:class ^(jetbrains-.*), match:title ^()$, match:float 1 +windowrule = center on, match:tag jetbrains + +# Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.) +windowrule = stay_focused on, match:tag jetbrains +windowrule = border_size 0, match:tag jetbrains + +# For some reason tag:jetbrains does not work for size rule +windowrule = min_size (monitor_w*0.5) (monitor_h*0.5), match:class ^(jetbrains-.*), match:title ^()$, match:float 1 + +# Disable window flicker when autocomplete or tooltips appear +windowrule = no_initial_focus on, match:class ^(jetbrains-.*)$, match:title ^(win.*)$, match:float 1 + +# Disable mouse focus +windowrule = no_follow_mouse on, match:class ^(jetbrains-.*)$ diff --git a/default/hypr/apps/localsend.conf b/default/hypr/apps/localsend.conf index 46255404..c1741692 100644 --- a/default/hypr/apps/localsend.conf +++ b/default/hypr/apps/localsend.conf @@ -1,3 +1,3 @@ # Float LocalSend and fzf file picker -windowrule = float, class:(Share|localsend) -windowrule = center, class:(Share|localsend) +windowrule = float on, match:class (Share|localsend) +windowrule = center on, match:class (Share|localsend) diff --git a/default/hypr/apps/pip.conf b/default/hypr/apps/pip.conf index 363c1ed2..e5b45d56 100644 --- a/default/hypr/apps/pip.conf +++ b/default/hypr/apps/pip.conf @@ -1,9 +1,9 @@ # Picture-in-picture overlays -windowrule = tag +pip, title:(Picture.{0,1}in.{0,1}[Pp]icture) -windowrule = float, tag:pip -windowrule = pin, tag:pip -windowrule = size 600 338, tag:pip -windowrule = keepaspectratio, tag:pip -windowrule = noborder, tag:pip -windowrule = opacity 1 1, tag:pip -windowrule = move 100%-w-40 4%, tag:pip +windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture) +windowrule = float on, match:tag pip +windowrule = pin on, match:tag pip +windowrule = size 600 338, match:tag pip +windowrule = keep_aspect_ratio on, match:tag pip +windowrule = border_size 0, match:tag pip +windowrule = opacity 1 1, match:tag pip +windowrule = move (monitor_w-window_w-40) (monitor_h*0.04), match:tag pip diff --git a/default/hypr/apps/qemu.conf b/default/hypr/apps/qemu.conf index 104442ca..acc32a4a 100644 --- a/default/hypr/apps/qemu.conf +++ b/default/hypr/apps/qemu.conf @@ -1 +1 @@ -windowrule = opacity 1 1, class:qemu +windowrule = opacity 1 1, match:class qemu diff --git a/default/hypr/apps/retroarch.conf b/default/hypr/apps/retroarch.conf index 94be39f3..f3b046f9 100644 --- a/default/hypr/apps/retroarch.conf +++ b/default/hypr/apps/retroarch.conf @@ -1,4 +1,3 @@ -windowrule = fullscreen, class:com.libretro.RetroArch -windowrule = opacity 1 1, class:com.libretro.RetroArch -windowrule = idleinhibit fullscreen, class:com.libretro.RetroArch - +windowrule = fullscreen on, match:class com.libretro.RetroArch +windowrule = opacity 1 1, match:class com.libretro.RetroArch +windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch diff --git a/default/hypr/apps/steam.conf b/default/hypr/apps/steam.conf index 77d8a4bc..ec4f754d 100644 --- a/default/hypr/apps/steam.conf +++ b/default/hypr/apps/steam.conf @@ -1,7 +1,7 @@ # Float Steam -windowrule = float, class:steam -windowrule = center, class:steam, title:Steam -windowrule = opacity 1 1, class:steam -windowrule = size 1100 700, class:steam, title:Steam -windowrule = size 460 800, class:steam, title:Friends List -windowrule = idleinhibit fullscreen, class:steam +windowrule = float on, match:class steam +windowrule = center on, match:class steam, match:title Steam +windowrule = opacity 1 1, match:class steam +windowrule = size 1100 700, match:class steam, match:title Steam +windowrule = size 460 800, match:class steam, match:title Friends List +windowrule = idle_inhibit fullscreen, match:class steam diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf index fbddc65c..ee6c6b86 100644 --- a/default/hypr/apps/system.conf +++ b/default/hypr/apps/system.conf @@ -1,14 +1,21 @@ # Floating windows -windowrule = float, tag:floating-window -windowrule = center, tag:floating-window -windowrule = size 800 600, tag:floating-window +windowrule = float on, match:tag floating-window +windowrule = center on, match:tag floating-window +windowrule = size 875 600, match:tag floating-window -windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) -windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files) -windowrule = float, class:org.gnome.Calculator +windowrule = tag +floating-window, match:class (org.omarchy.bluetui|org.omarchy.impala|org.omarchy.wiremix|org.omarchy.btop|org.omarchy.terminal|org.omarchy.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Omarchy|About|TUI.float|imv|mpv) +windowrule = tag +floating-window, match:class (xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), match:title ^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) +windowrule = float on, match:class org.gnome.Calculator # Fullscreen screensaver -windowrule = fullscreen, class:Screensaver +windowrule = fullscreen on, match:class org.omarchy.screensaver +windowrule = float on, match:class org.omarchy.screensaver # No transparency on media windows -windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ +windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ + +# Popped window rounding +windowrule = rounding 8, match:tag pop + +# Prevent idle while open +windowrule = idle_inhibit always, match:tag noidle diff --git a/default/hypr/apps/terminals.conf b/default/hypr/apps/terminals.conf index e908e5df..2bcf0eb6 100644 --- a/default/hypr/apps/terminals.conf +++ b/default/hypr/apps/terminals.conf @@ -1,2 +1,2 @@ # Define terminal tag to style them uniformly -windowrule = tag +terminal, class:(Alacritty|kitty|com.mitchellh.ghostty) +windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty) diff --git a/default/hypr/apps/walker.conf b/default/hypr/apps/walker.conf index eefd923c..127e3b42 100644 --- a/default/hypr/apps/walker.conf +++ b/default/hypr/apps/walker.conf @@ -1,2 +1,2 @@ # Application-specific animation -layerrule = noanim, walker +layerrule = no_anim on, match:namespace walker diff --git a/default/hypr/apps/webcam-overlay.conf b/default/hypr/apps/webcam-overlay.conf index eca1c751..307d6864 100644 --- a/default/hypr/apps/webcam-overlay.conf +++ b/default/hypr/apps/webcam-overlay.conf @@ -1,6 +1,6 @@ # Webcam overlay for screen recording -windowrule = float, title:WebcamOverlay -windowrule = pin, title:WebcamOverlay -windowrule = noinitialfocus, title:WebcamOverlay -windowrule = nodim, title:WebcamOverlay -windowrule = move 100%-w-40 100%-w-40, title:WebcamOverlay # There's a typo in the hyprland rule so 100%-w on the height param is actually correct here +windowrule = float on, match:title WebcamOverlay +windowrule = pin on, match:title WebcamOverlay +windowrule = no_initial_focus on, match:title WebcamOverlay +windowrule = no_dim on, match:title WebcamOverlay +windowrule = move (monitor_w-window_w-40) (monitor_h-window_h-40), match:title WebcamOverlay diff --git a/default/hypr/autostart.conf b/default/hypr/autostart.conf index 43cd3000..0462f73a 100644 --- a/default/hypr/autostart.conf +++ b/default/hypr/autostart.conf @@ -6,5 +6,7 @@ exec-once = uwsm-app -- swaybg -i ~/.config/omarchy/current/background -m fill exec-once = uwsm-app -- swayosd-server exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = omarchy-cmd-first-run -exec-once = uwsm-app -- elephant -exec-once = uwsm-app -- walker --gapplication-service + +# Slow app launch fix -- set systemd vars +exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1) +exec-once = dbus-update-activation-environment --systemd --all diff --git a/default/hypr/bindings/clipboard.conf b/default/hypr/bindings/clipboard.conf index 2a79989a..ffaede7a 100644 --- a/default/hypr/bindings/clipboard.conf +++ b/default/hypr/bindings/clipboard.conf @@ -1,5 +1,5 @@ # Copy / Paste -bindd = SUPER, C, Copy, sendshortcut, CTRL, Insert, -bindd = SUPER, V, Paste, sendshortcut, SHIFT, Insert, -bindd = SUPER, X, Cut, sendshortcut, CTRL, X, -bindd = SUPER CTRL, V, Clipboard, exec, omarchy-launch-walker -m clipboard +bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, +bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, +bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, +bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard diff --git a/default/hypr/bindings/tiling-v2.conf b/default/hypr/bindings/tiling-v2.conf index b933f09e..2b4de61c 100644 --- a/default/hypr/bindings/tiling-v2.conf +++ b/default/hypr/bindings/tiling-v2.conf @@ -1,22 +1,23 @@ # Close windows -bindd = SUPER, W, Close active window, killactive, -bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-cmd-close-all-windows +bindd = SUPER, W, Close window, killactive, +bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all # Control tiling -bindd = SUPER, J, Toggle split, togglesplit, # dwindle +bindd = SUPER, J, Toggle window split, togglesplit, # dwindle bindd = SUPER, P, Pseudo window, pseudo, # dwindle -bindd = SUPER, T, Toggle floating, togglefloating, -bindd = SUPER, F, Force full screen, fullscreen, 0 +bindd = SUPER, T, Toggle window floating/tiling, togglefloating, +bindd = SUPER, F, Full screen, fullscreen, 0 bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2 bindd = SUPER ALT, F, Full width, fullscreen, 1 +bindd = SUPER, O, Pop window out (float & pin), exec, omarchy-hyprland-window-pop # Move focus with SUPER + arrow keys -bindd = SUPER, LEFT, Move focus left, movefocus, l -bindd = SUPER, RIGHT, Move focus right, movefocus, r -bindd = SUPER, UP, Move focus up, movefocus, u -bindd = SUPER, DOWN, Move focus down, movefocus, d +bindd = SUPER, LEFT, Move window focus left, movefocus, l +bindd = SUPER, RIGHT, Move window focus right, movefocus, r +bindd = SUPER, UP, Move window focus up, movefocus, u +bindd = SUPER, DOWN, Move window focus down, movefocus, d -# Switch workspaces with SUPER + [0-9] +# Switch workspaces with SUPER + [1-9; 0] bindd = SUPER, code:10, Switch to workspace 1, workspace, 1 bindd = SUPER, code:11, Switch to workspace 2, workspace, 2 bindd = SUPER, code:12, Switch to workspace 3, workspace, 3 @@ -28,7 +29,7 @@ bindd = SUPER, code:17, Switch to workspace 8, workspace, 8 bindd = SUPER, code:18, Switch to workspace 9, workspace, 9 bindd = SUPER, code:19, Switch to workspace 10, workspace, 10 -# Move active window to a workspace with SUPER + SHIFT + [0-9] +# Move active window to a workspace with SUPER + SHIFT + [1-9; 0] bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2 bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3 @@ -40,11 +41,33 @@ bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8 bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 +# Move active window silently to a workspace with SUPER + SHIFT + ALT + [1-9; 0] +bindd = SUPER SHIFT ALT, code:10, Move window silently to workspace 1, movetoworkspacesilent, 1 +bindd = SUPER SHIFT ALT, code:11, Move window silently to workspace 2, movetoworkspacesilent, 2 +bindd = SUPER SHIFT ALT, code:12, Move window silently to workspace 3, movetoworkspacesilent, 3 +bindd = SUPER SHIFT ALT, code:13, Move window silently to workspace 4, movetoworkspacesilent, 4 +bindd = SUPER SHIFT ALT, code:14, Move window silently to workspace 5, movetoworkspacesilent, 5 +bindd = SUPER SHIFT ALT, code:15, Move window silently to workspace 6, movetoworkspacesilent, 6 +bindd = SUPER SHIFT ALT, code:16, Move window silently to workspace 7, movetoworkspacesilent, 7 +bindd = SUPER SHIFT ALT, code:17, Move window silently to workspace 8, movetoworkspacesilent, 8 +bindd = SUPER SHIFT ALT, code:18, Move window silently to workspace 9, movetoworkspacesilent, 9 +bindd = SUPER SHIFT ALT, code:19, Move window silently to workspace 10, movetoworkspacesilent, 10 + +# Control scratchpad +bindd = SUPER, S, Toggle scratchpad, togglespecialworkspace, scratchpad +bindd = SUPER ALT, S, Move window to scratchpad, movetoworkspacesilent, special:scratchpad + # TAB between workspaces bindd = SUPER, TAB, Next workspace, workspace, e+1 bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 bindd = SUPER CTRL, TAB, Former workspace, workspace, previous +# Move workspaces to other monitors +bindd = SUPER SHIFT ALT, LEFT, Move workspace to left monitor, movecurrentworkspacetomonitor, l +bindd = SUPER SHIFT ALT, RIGHT, Move workspace to right monitor, movecurrentworkspacetomonitor, r +bindd = SUPER SHIFT ALT, UP, Move workspace to up monitor, movecurrentworkspacetomonitor, u +bindd = SUPER SHIFT ALT, DOWN, Move workspace to down monitor, movecurrentworkspacetomonitor, d + # Swap active window with the one next to it with SUPER + SHIFT + arrow keys bindd = SUPER SHIFT, LEFT, Swap window to the left, swapwindow, l bindd = SUPER SHIFT, RIGHT, Swap window to the right, swapwindow, r @@ -85,9 +108,17 @@ bindd = SUPER ALT, DOWN, Move window to group on bottom, moveintogroup, d bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b +# Window navigation for grouped windows +bindd = SUPER CTRL, LEFT, Move grouped window focus left, changegroupactive, b +bindd = SUPER CTRL, RIGHT, Move grouped window focus right, changegroupactive, f + +# Scroll through a set of grouped windows with SUPER + ALT + scroll +bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f +bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b + # Activate window in a group by number -bindd = SUPER ALT, 1, Switch to group window 1, changegroupactive, 1 -bindd = SUPER ALT, 2, Switch to group window 2, changegroupactive, 2 -bindd = SUPER ALT, 3, Switch to group window 3, changegroupactive, 3 -bindd = SUPER ALT, 4, Switch to group window 4, changegroupactive, 4 -bindd = SUPER ALT, 5, Switch to group window 5, changegroupactive, 5 +bindd = SUPER ALT, code:10, Switch to group window 1, changegroupactive, 1 +bindd = SUPER ALT, code:11, Switch to group window 2, changegroupactive, 2 +bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3 +bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4 +bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5 diff --git a/default/hypr/bindings/tiling.conf b/default/hypr/bindings/tiling.conf index f0c0190b..b1dc65cc 100644 --- a/default/hypr/bindings/tiling.conf +++ b/default/hypr/bindings/tiling.conf @@ -2,13 +2,13 @@ # Do not make changes here, but bring them to tiling-v2.conf instead. # Close windows -bindd = SUPER, W, Close active window, killactive, -bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-cmd-close-all-windows +bindd = SUPER, W, Close window, killactive, +bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all # Control tiling -bindd = SUPER, J, Toggle split, togglesplit, # dwindle +bindd = SUPER, J, Toggle window split, togglesplit, # dwindle bindd = SUPER, P, Pseudo window, pseudo, # dwindle -bindd = SUPER SHIFT, V, Toggle floating, togglefloating, +bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating, bindd = SHIFT, F11, Force full screen, fullscreen, 0 bindd = ALT, F11, Full width, fullscreen, 1 diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index ed44654e..bdd1a6ba 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -2,7 +2,7 @@ bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu -bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system +bindd = SUPER, ESCAPE, System menu, exec, omarchy-menu system bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings bindd = , XF86Calculator, Calculator, exec, gnome-calculator @@ -10,13 +10,16 @@ bindd = , XF86Calculator, Calculator, exec, gnome-calculator # Aesthetics bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar bindd = SUPER CTRL, SPACE, Next background in theme, exec, omarchy-theme-bg-next -bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, omarchy-menu theme +bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, omarchy-menu theme bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle +bindd = SUPER SHIFT, BACKSPACE, Toggle workspace gaps, exec, omarchy-hyprland-workspace-toggle-gaps # Notifications bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications" +bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke +bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore # Toggle idling bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle @@ -30,10 +33,20 @@ bindd = CTRL, F2, Apple Display brightness up, exec, omarchy-cmd-apple-display-b bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-cmd-apple-display-brightness +60000 # Captures -bindd = , PRINT, Screenshot, exec, omarchy-cmd-screenshot -bindd = SHIFT, PRINT, Screenshot, exec, omarchy-cmd-screenshot smart clipboard +bindd = , PRINT, Screenshot with editing, exec, omarchy-cmd-screenshot +bindd = SHIFT, PRINT, Screenshot to clipboard, exec, omarchy-cmd-screenshot smart clipboard bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord -bindd = SUPER, PRINT, Color picking, exec, pkill hyprpicker || hyprpicker -a +bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a # File sharing -bindd = CTRL SUPER, S, Share, exec, omarchy-menu share +bindd = SUPER CTRL, S, Share, exec, omarchy-menu share + +# Waybar-less information +bindd = SUPER CTRL ALT, T, Show time, exec, notify-send " $(date +"%A %H:%M — %d %B W%V %Y")" +bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send "󰁹 Battery is at $(omarchy-battery-remaining)%" + +# Control panels +bindd = SUPER CTRL, A, Audio controls, exec, omarchy-launch-audio +bindd = SUPER CTRL, B, Bluetooth controls, exec, omarchy-launch-bluetooth +bindd = SUPER CTRL, W, Wifi controls, exec, omarchy-launch-wifi +bindd = SUPER CTRL, T, Activity, exec, omarchy-launch-tui btop \ No newline at end of file diff --git a/default/hypr/input.conf b/default/hypr/input.conf index bb4d610b..74b2acab 100644 --- a/default/hypr/input.conf +++ b/default/hypr/input.conf @@ -14,3 +14,8 @@ input { natural_scroll = false } } + +misc { + key_press_enables_dpms = true # key press will trigger wake + mouse_move_enables_dpms = true # mouse move will trigger wake +} diff --git a/default/hypr/looknfeel.conf b/default/hypr/looknfeel.conf index 823a1121..0279074e 100644 --- a/default/hypr/looknfeel.conf +++ b/default/hypr/looknfeel.conf @@ -38,8 +38,11 @@ decoration { # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true - size = 3 - passes = 3 + size = 2 + passes = 2 + special = true + brightness = 0.60 + contrast = 0.75 } } @@ -120,9 +123,17 @@ misc { disable_splash_rendering = true focus_on_activate = true anr_missed_pings = 3 + on_focus_under_fullscreen = 1 } # https://wiki.hypr.land/Configuring/Variables/#cursor cursor { hide_on_key_press = true } + +# Style Gum confirm to match terminal theme +env = GUM_CONFIRM_PROMPT_FOREGROUND,6 # Cyan +env = GUM_CONFIRM_SELECTED_FOREGROUND,0 # Black +env = GUM_CONFIRM_SELECTED_BACKGROUND,2 # Green +env = GUM_CONFIRM_UNSELECTED_FOREGROUND,0 # Black +env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index bc665b22..5d1afb76 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -1,11 +1,12 @@ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -windowrule = suppressevent maximize, class:.* +# Hyprland 0.53+ syntax +windowrule = suppress_event maximize, match:class .* # Just dash of opacity by default -windowrule = opacity 0.97 0.9, class:.* +windowrule = opacity 0.97 0.9, match:class .* # Fix some dragging issues with XWayland -windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 +windowrule = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0 # App-specific tweaks source = ~/.local/share/omarchy/default/hypr/apps.conf diff --git a/default/mako/core.ini b/default/mako/core.ini index 927d8d40..0c9a46e8 100644 --- a/default/mako/core.ini +++ b/default/mako/core.ini @@ -18,6 +18,7 @@ invisible=false [urgency=critical] default-timeout=0 +layer=overlay [summary~="Setup Wi-Fi"] on-button-left=exec sh -c 'omarchy-notification-dismiss "Setup Wi-Fi"; omarchy-launch-wifi' diff --git a/default/pacman/mirrorlist b/default/pacman/mirrorlist deleted file mode 100644 index 2d92d05a..00000000 --- a/default/pacman/mirrorlist +++ /dev/null @@ -1,3 +0,0 @@ -Server = https://mirror.omarchy.org/$repo/os/$arch -Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch -Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch diff --git a/default/pacman/mirrorlist-edge b/default/pacman/mirrorlist-edge new file mode 100644 index 00000000..914c1fa7 --- /dev/null +++ b/default/pacman/mirrorlist-edge @@ -0,0 +1 @@ +Server = https://mirror.omarchy.org/$repo/os/$arch diff --git a/default/pacman/mirrorlist-stable b/default/pacman/mirrorlist-stable new file mode 100644 index 00000000..1c2dc11c --- /dev/null +++ b/default/pacman/mirrorlist-stable @@ -0,0 +1 @@ +Server = https://stable-mirror.omarchy.org/$repo/os/$arch diff --git a/default/pacman/pacman.conf b/default/pacman/pacman.conf index f5760877..5dafbc84 100644 --- a/default/pacman/pacman.conf +++ b/default/pacman/pacman.conf @@ -27,4 +27,4 @@ Include = /etc/pacman.d/mirrorlist [omarchy] SigLevel = Optional TrustAll -Server = https://pkgs.omarchy.org/$arch +Server = https://pkgs.omarchy.org/stable/$arch diff --git a/default/themed/alacritty.toml.tpl b/default/themed/alacritty.toml.tpl new file mode 100644 index 00000000..ff8bc8df --- /dev/null +++ b/default/themed/alacritty.toml.tpl @@ -0,0 +1,47 @@ +[colors.primary] +background = "{{ background }}" +foreground = "{{ foreground }}" + +[colors.cursor] +text = "{{ background }}" +cursor = "{{ cursor }}" + +[colors.vi_mode_cursor] +text = "{{ background }}" +cursor = "{{ cursor }}" + +[colors.search.matches] +foreground = "{{ background }}" +background = "{{ color3 }}" + +[colors.search.focused_match] +foreground = "{{ background }}" +background = "{{ color1 }}" + +[colors.footer_bar] +foreground = "{{ background }}" +background = "{{ foreground }}" + +[colors.selection] +text = "{{ selection_foreground }}" +background = "{{ selection_background }}" + +[colors.normal] +black = "{{ color0 }}" +red = "{{ color1 }}" +green = "{{ color2 }}" +yellow = "{{ color3 }}" +blue = "{{ color4 }}" +magenta = "{{ color5 }}" +cyan = "{{ color6 }}" +white = "{{ color7 }}" + +[colors.bright] +black = "{{ color8 }}" +red = "{{ color9 }}" +green = "{{ color10 }}" +yellow = "{{ color11 }}" +blue = "{{ color12 }}" +magenta = "{{ color13 }}" +cyan = "{{ color14 }}" +white = "{{ color15 }}" diff --git a/default/themed/btop.theme.tpl b/default/themed/btop.theme.tpl new file mode 100644 index 00000000..7b1b299d --- /dev/null +++ b/default/themed/btop.theme.tpl @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="{{ background }}" + +# Main text color +theme[main_fg]="{{ foreground }}" + +# Title color for boxes +theme[title]="{{ foreground }}" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="{{ accent }}" + +# Background color of selected item in processes box +theme[selected_bg]="{{ color8 }}" + +# Foreground color of selected item in processes box +theme[selected_fg]="{{ accent }}" + +# Color of inactive/disabled text +theme[inactive_fg]="{{ color8 }}" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="{{ foreground }}" + +# Background color of the percentage meters +theme[meter_bg]="{{ color8 }}" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="{{ foreground }}" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="{{ color5 }}" +theme[mem_box]="{{ color2 }}" +theme[net_box]="{{ color1 }}" +theme[proc_box]="{{ accent }}" + +# Box divider line and small boxes line color +theme[div_line]="{{ color8 }}" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="{{ color2 }}" +theme[temp_mid]="{{ color3 }}" +theme[temp_end]="{{ color1 }}" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="{{ color6 }}" +theme[cpu_mid]="{{ color4 }}" +theme[cpu_end]="{{ color5 }}" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="{{ color5 }}" +theme[free_mid]="{{ color4 }}" +theme[free_end]="{{ color6 }}" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="{{ color4 }}" +theme[cached_mid]="{{ color6 }}" +theme[cached_end]="{{ color5 }}" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="{{ color3 }}" +theme[available_mid]="{{ color1 }}" +theme[available_end]="{{ color1 }}" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="{{ color2 }}" +theme[used_mid]="{{ color6 }}" +theme[used_end]="{{ color4 }}" + +# Download graph colors (Peach -> Red) +theme[download_start]="{{ color3 }}" +theme[download_mid]="{{ color1 }}" +theme[download_end]="{{ color1 }}" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="{{ color2 }}" +theme[upload_mid]="{{ color6 }}" +theme[upload_end]="{{ color4 }}" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="{{ color6 }}" +theme[process_mid]="{{ color4 }}" +theme[process_end]="{{ color5 }}" diff --git a/default/themed/ghostty.conf.tpl b/default/themed/ghostty.conf.tpl new file mode 100644 index 00000000..bafc6498 --- /dev/null +++ b/default/themed/ghostty.conf.tpl @@ -0,0 +1,22 @@ +background = {{ background }} +foreground = {{ foreground }} +cursor-color = {{ cursor }} +selection-background = {{ selection_background }} +selection-foreground = {{ selection_foreground }} + +palette = 0={{ color0 }} +palette = 1={{ color1 }} +palette = 2={{ color2 }} +palette = 3={{ color3 }} +palette = 4={{ color4 }} +palette = 5={{ color5 }} +palette = 6={{ color6 }} +palette = 7={{ color7 }} +palette = 8={{ color8 }} +palette = 9={{ color9 }} +palette = 10={{ color10 }} +palette = 11={{ color11 }} +palette = 12={{ color12 }} +palette = 13={{ color13 }} +palette = 14={{ color14 }} +palette = 15={{ color15 }} diff --git a/default/themed/hyprland-preview-share-picker.css.tpl b/default/themed/hyprland-preview-share-picker.css.tpl new file mode 100644 index 00000000..07e5e4e8 --- /dev/null +++ b/default/themed/hyprland-preview-share-picker.css.tpl @@ -0,0 +1,94 @@ +@define-color foreground {{ foreground }}; +@define-color background {{ background }}; +@define-color accent {{ accent }}; +@define-color muted {{ color8 }}; +@define-color card_bg {{ color0 }}; +@define-color text_dark {{ background }}; +@define-color accent_hover {{ color12 }}; +@define-color selected_tab {{ accent }}; +@define-color text {{ foreground }}; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/everforest/hyprland.conf b/default/themed/hyprland.conf.tpl similarity index 70% rename from themes/everforest/hyprland.conf rename to default/themed/hyprland.conf.tpl index 10e2c5d4..e4dbf3c3 100644 --- a/themes/everforest/hyprland.conf +++ b/default/themed/hyprland.conf.tpl @@ -1,4 +1,4 @@ -$activeBorderColor = rgb(d3c6aa) +$activeBorderColor = rgb({{ accent_strip }}) general { col.active_border = $activeBorderColor diff --git a/default/themed/hyprlock.conf.tpl b/default/themed/hyprlock.conf.tpl new file mode 100644 index 00000000..1b4cac3c --- /dev/null +++ b/default/themed/hyprlock.conf.tpl @@ -0,0 +1,5 @@ +$color = rgba({{ background_rgb }}, 1.0) +$inner_color = rgba({{ background_rgb }}, 0.8) +$outer_color = rgba({{ foreground_rgb }}, 1.0) +$font_color = rgba({{ foreground_rgb }}, 1.0) +$check_color = rgba({{ accent_rgb }}, 1.0) diff --git a/default/themed/kitty.conf.tpl b/default/themed/kitty.conf.tpl new file mode 100644 index 00000000..88006243 --- /dev/null +++ b/default/themed/kitty.conf.tpl @@ -0,0 +1,27 @@ +foreground {{ foreground }} +background {{ background }} +selection_foreground {{ selection_foreground }} +selection_background {{ selection_background }} + +cursor {{ cursor }} +cursor_text_color {{ background }} + +active_border_color {{ active_border_color }} +active_tab_background {{ active_tab_background }} + +color0 {{ color0 }} +color1 {{ color1 }} +color2 {{ color2 }} +color3 {{ color3 }} +color4 {{ color4 }} +color5 {{ color5 }} +color6 {{ color6 }} +color7 {{ color7 }} +color8 {{ color8 }} +color9 {{ color9 }} +color10 {{ color10 }} +color11 {{ color11 }} +color12 {{ color12 }} +color13 {{ color13 }} +color14 {{ color14 }} +color15 {{ color15 }} diff --git a/default/themed/mako.ini.tpl b/default/themed/mako.ini.tpl new file mode 100644 index 00000000..51e9c66f --- /dev/null +++ b/default/themed/mako.ini.tpl @@ -0,0 +1,5 @@ +include=~/.local/share/omarchy/default/mako/core.ini + +text-color={{ foreground }} +border-color={{ foreground }} +background-color={{ background }} diff --git a/default/themed/swayosd.css.tpl b/default/themed/swayosd.css.tpl new file mode 100644 index 00000000..3f609e17 --- /dev/null +++ b/default/themed/swayosd.css.tpl @@ -0,0 +1,5 @@ +@define-color background-color {{ background }}; +@define-color border-color {{ foreground }}; +@define-color label {{ foreground }}; +@define-color image {{ foreground }}; +@define-color progress {{ foreground }}; diff --git a/default/themed/walker.css.tpl b/default/themed/walker.css.tpl new file mode 100644 index 00000000..123ca92c --- /dev/null +++ b/default/themed/walker.css.tpl @@ -0,0 +1,6 @@ +@define-color selected-text {{ accent }}; +@define-color text {{ foreground }}; +@define-color base {{ background }}; +@define-color border {{ foreground }}; +@define-color foreground {{ foreground }}; +@define-color background {{ background }}; diff --git a/default/themed/waybar.css.tpl b/default/themed/waybar.css.tpl new file mode 100644 index 00000000..d876a922 --- /dev/null +++ b/default/themed/waybar.css.tpl @@ -0,0 +1,2 @@ +@define-color foreground {{ foreground }}; +@define-color background {{ background }}; diff --git a/default/walker/themes/omarchy-default/layout.xml b/default/walker/themes/omarchy-default/layout.xml index a79de744..3b7bda71 100644 --- a/default/walker/themes/omarchy-default/layout.xml +++ b/default/walker/themes/omarchy-default/layout.xml @@ -112,13 +112,40 @@ + + + true + 10 + + + + 10 + + + + + + true + end + 10 + + + + + 0 - false + false diff --git a/default/walker/themes/omarchy-default/style.css b/default/walker/themes/omarchy-default/style.css index f4bbd082..0dc824fb 100644 --- a/default/walker/themes/omarchy-default/style.css +++ b/default/walker/themes/omarchy-default/style.css @@ -113,5 +113,4 @@ child:selected .item-box * { } .preview { - background: @background; } diff --git a/default/waybar/indicators/screen-recording.sh b/default/waybar/indicators/screen-recording.sh index bb6cf93c..80038e0e 100755 --- a/default/waybar/indicators/screen-recording.sh +++ b/default/waybar/indicators/screen-recording.sh @@ -1,6 +1,6 @@ #!/bin/bash -if pgrep -f "gpu-screen-recorder" >/dev/null; then +if pgrep -f "^gpu-screen-recorder" >/dev/null; then echo '{"text": "󰻂", "tooltip": "Stop recording", "class": "active"}' else echo '{"text": ""}' diff --git a/install/config/all.sh b/install/config/all.sh index 2304d8e9..5c19829c 100644 --- a/install/config/all.sh +++ b/install/config/all.sh @@ -30,3 +30,4 @@ run_logged $OMARCHY_INSTALL/config/hardware/fix-bcm43xx.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-suspend-nvme.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh +run_logged $OMARCHY_INSTALL/config/hardware/fix-surface-keyboard.sh diff --git a/install/config/git.sh b/install/config/git.sh index 39f77ed8..22ad70f6 100644 --- a/install/config/git.sh +++ b/install/config/git.sh @@ -1,15 +1,3 @@ -# Ensure git settings live under ~/.config -mkdir -p ~/.config/git -touch ~/.config/git/config - -# Set common git aliases -git config --global alias.co checkout -git config --global alias.br branch -git config --global alias.ci commit -git config --global alias.st status -git config --global pull.rebase true -git config --global init.defaultBranch master - # Set identification from install inputs if [[ -n "${OMARCHY_USER_NAME//[[:space:]]/}" ]]; then git config --global user.name "$OMARCHY_USER_NAME" diff --git a/install/config/hardware/fix-apple-t2.sh b/install/config/hardware/fix-apple-t2.sh index 51273f21..40c6942b 100644 --- a/install/config/hardware/fix-apple-t2.sh +++ b/install/config/hardware/fix-apple-t2.sh @@ -11,6 +11,13 @@ if lspci -nn | grep -q "106b:180[12]"; then t2fanrd \ tiny-dfr + # Add user to video group (required for tiny-dfr to access /dev/dri devices) + sudo usermod -aG video ${USER} + + # Enable T2 services + sudo systemctl enable t2fanrd.service + sudo systemctl enable tiny-dfr.service + echo "apple-bce" | sudo tee /etc/modules-load.d/t2.conf >/dev/null echo "MODULES+=(apple-bce usbhid hid_apple hid_generic xhci_pci xhci_hcd)" | sudo tee /etc/mkinitcpio.conf.d/apple-t2.conf >/dev/null diff --git a/install/config/hardware/fix-surface-keyboard.sh b/install/config/hardware/fix-surface-keyboard.sh new file mode 100644 index 00000000..d68fe5ae --- /dev/null +++ b/install/config/hardware/fix-surface-keyboard.sh @@ -0,0 +1,23 @@ +# Detect Surface devices which require additional modules for the keyboard to work. +# Module list derived from Chris McLeod's manual install instructions +# https://chrismcleod.dev/blog/installing-arch-linux-with-secure-boot-on-a-microsoft-surface-laptop-studio/ +product_name="$(cat /sys/class/dmi/id/product_name 2>/dev/null)" +if [[ "$product_name" =~ Surface ]]; then + echo "Detected Surface Device" + + # Modules already exist in the rootfs for the default kernel. + if [[ "$product_name" != "Surface Laptop 3" ]]; then + echo "Untested Surface Device: $product_name, additional modules may be required for your device." + fi + + echo "Attempting to autodetect required pinctrl module" + pinctrl_module=$(lsmod | grep pinctrl_ | cut -f 1 -d" ") + if [[ -z "$pinctrl_module" ]]; then + echo "Failed to autodetect pinctrl module." + else + echo "Detected pinctrl module: $pinctrl_module" + fi + + echo "MODULES=(${pinctrl_module} surface_aggregator surface_aggregator_registry surface_aggregator_hub surface_hid_core surface_hid surface_kbd intel_lpss_pci 8250_dw)" | sudo tee /etc/mkinitcpio.conf.d/surface_device_modules.conf >/dev/null + +fi diff --git a/install/config/hardware/nvidia.sh b/install/config/hardware/nvidia.sh index 494390b7..dba1e6b2 100644 --- a/install/config/hardware/nvidia.sh +++ b/install/config/hardware/nvidia.sh @@ -1,80 +1,40 @@ -# ============================================================================== -# Hyprland NVIDIA Setup Script for Arch Linux -# ============================================================================== -# This script automates the installation and configuration of NVIDIA drivers -# for use with Hyprland on Arch Linux, following the official Hyprland wiki. -# -# Author: https://github.com/Kn0ax -# -# ============================================================================== - -# --- GPU Detection --- -if [ -n "$(lspci | grep -i 'nvidia')" ]; then - # --- Driver Selection --- - # Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules - if echo "$(lspci | grep -i 'nvidia')" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then - NVIDIA_DRIVER_PACKAGE="nvidia-open-dkms" - else - NVIDIA_DRIVER_PACKAGE="nvidia-dkms" - fi +NVIDIA="$(lspci | grep -i 'nvidia')" +if [ -n "$NVIDIA" ]; then # Check which kernel is installed and set appropriate headers package - KERNEL_HEADERS="linux-headers" # Default - if pacman -Q linux-zen &>/dev/null; then - KERNEL_HEADERS="linux-zen-headers" - elif pacman -Q linux-lts &>/dev/null; then - KERNEL_HEADERS="linux-lts-headers" - elif pacman -Q linux-hardened &>/dev/null; then - KERNEL_HEADERS="linux-hardened-headers" + KERNEL_HEADERS="$(pacman -Qqs '^linux(-zen|-lts|-hardened)?$' | head -1)-headers" + + if echo "$NVIDIA" | grep -qE "RTX [2-9][0-9]|GTX 16"; then + # Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules + PACKAGES=(nvidia-open-dkms nvidia-utils lib32-nvidia-utils libva-nvidia-driver) + elif echo "$NVIDIA" | grep -qE "GTX 9|GTX 10"; then + # Pascal (10xx) and Maxwell (9xx) use legacy branch that can only be installed from AUR + PACKAGES=(nvidia-580xx-dkms nvidia-580xx-utils lib32-nvidia-580xx-utils) + fi + # Bail if no supported GPU + if [ -z "${PACKAGES+x}" ]; then + echo "No compatible driver for your NVIDIA GPU. See: https://wiki.archlinux.org/title/NVIDIA" + exit 0 fi - # force package database refresh - sudo pacman -Syu --noconfirm - - # Install packages - PACKAGES_TO_INSTALL=( - "${KERNEL_HEADERS}" - "${NVIDIA_DRIVER_PACKAGE}" - "nvidia-utils" - "lib32-nvidia-utils" - "egl-wayland" - "libva-nvidia-driver" # For VA-API hardware acceleration - "qt5-wayland" - "qt6-wayland" - ) - - sudo pacman -S --needed --noconfirm "${PACKAGES_TO_INSTALL[@]}" + pacman -S --needed --noconfirm "$KERNEL_HEADERS" "${PACKAGES[@]}" # Configure modprobe for early KMS - echo "options nvidia_drm modeset=1" | sudo tee /etc/modprobe.d/nvidia.conf >/dev/null + sudo tee /etc/modprobe.d/nvidia.conf </dev/null +options nvidia_drm modeset=1 +EOF # Configure mkinitcpio for early loading - MKINITCPIO_CONF="/etc/mkinitcpio.conf" + sudo tee /etc/mkinitcpio.conf.d/nvidia.conf </dev/null +MODULES+=(nvidia nvidia_modeset nvidia_uvm nvidia_drm) +EOF - # Define modules - NVIDIA_MODULES="nvidia nvidia_modeset nvidia_uvm nvidia_drm" + # Add NVIDIA environment variables + cat >>$HOME/.config/hypr/envs.conf <<'EOF' - # Create backup - sudo cp "$MKINITCPIO_CONF" "${MKINITCPIO_CONF}.backup" - - # Remove any old nvidia modules to prevent duplicates - sudo sed -i -E 's/ nvidia_drm//g; s/ nvidia_uvm//g; s/ nvidia_modeset//g; s/ nvidia//g;' "$MKINITCPIO_CONF" - # Add the new modules at the start of the MODULES array - sudo sed -i -E "s/^(MODULES=\\()/\\1${NVIDIA_MODULES} /" "$MKINITCPIO_CONF" - # Clean up potential double spaces - sudo sed -i -E 's/ +/ /g' "$MKINITCPIO_CONF" - - sudo mkinitcpio -P - - # Add NVIDIA environment variables to hyprland.conf - HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf" - if [ -f "$HYPRLAND_CONF" ]; then - cat >>"$HYPRLAND_CONF" <<'EOF' - -# NVIDIA environment variables +# NVIDIA env = NVD_BACKEND,direct env = LIBVA_DRIVER_NAME,nvidia env = __GLX_VENDOR_LIBRARY_NAME,nvidia EOF - fi fi diff --git a/install/config/increase-lockout-limit.sh b/install/config/increase-lockout-limit.sh index 522deb72..5932906f 100644 --- a/install/config/increase-lockout-limit.sh +++ b/install/config/increase-lockout-limit.sh @@ -1,3 +1,7 @@ # 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" + +# Ensure lockout limit is reset on restart +sudo sed -i '/pam_faillock\.so preauth/d' /etc/pam.d/sddm-autologin +sudo sed -i '/auth.*pam_permit\.so/a auth required pam_faillock.so authsucc' /etc/pam.d/sddm-autologin diff --git a/install/config/increase-sudo-tries.sh b/install/config/increase-sudo-tries.sh index 5b64b869..af5a61a6 100644 --- a/install/config/increase-sudo-tries.sh +++ b/install/config/increase-sudo-tries.sh @@ -1,3 +1,6 @@ # Give the user 10 instead of 3 tries to fat finger their password before lockout echo "Defaults passwd_tries=10" | sudo tee /etc/sudoers.d/passwd-tries sudo chmod 440 /etc/sudoers.d/passwd-tries + +# Set for hyprlock too +sudo sed -i 's/^# *deny = .*/deny = 10/' /etc/security/faillock.conf diff --git a/install/config/mimetypes.sh b/install/config/mimetypes.sh index ee662f55..ea8e1aff 100644 --- a/install/config/mimetypes.sh +++ b/install/config/mimetypes.sh @@ -36,3 +36,22 @@ xdg-mime default mpv.desktop application/ogg # Use Hey for mailto: links xdg-mime default HEY.desktop x-scheme-handler/mailto + +# Open text files with nvim +xdg-mime default nvim.desktop text/plain +xdg-mime default nvim.desktop text/english +xdg-mime default nvim.desktop text/x-makefile +xdg-mime default nvim.desktop text/x-c++hdr +xdg-mime default nvim.desktop text/x-c++src +xdg-mime default nvim.desktop text/x-chdr +xdg-mime default nvim.desktop text/x-csrc +xdg-mime default nvim.desktop text/x-java +xdg-mime default nvim.desktop text/x-moc +xdg-mime default nvim.desktop text/x-pascal +xdg-mime default nvim.desktop text/x-tcl +xdg-mime default nvim.desktop text/x-tex +xdg-mime default nvim.desktop application/x-shellscript +xdg-mime default nvim.desktop text/x-c +xdg-mime default nvim.desktop text/x-c++ +xdg-mime default nvim.desktop application/xml +xdg-mime default nvim.desktop text/xml diff --git a/install/config/mise-work.sh b/install/config/mise-work.sh index 64ba12d0..532ad350 100644 --- a/install/config/mise-work.sh +++ b/install/config/mise-work.sh @@ -1,6 +1,8 @@ -# Add ./bin to path for all items in ~/Work +# Setup default work directory (and tries) mkdir -p "$HOME/Work" +mkdir -p "$HOME/Work/tries" +# Add ./bin to path for all items in ~/Work cat >"$HOME/Work/.mise.toml" <<'EOF' [env] _.path = "{{ cwd }}/bin" diff --git a/install/config/theme.sh b/install/config/theme.sh index e88cc748..a4ed8b3e 100644 --- a/install/config/theme.sh +++ b/install/config/theme.sh @@ -20,9 +20,6 @@ ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current mkdir -p ~/.config/mako ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config -mkdir -p ~/.config/eza -ln -snf ~/.config/omarchy/current/theme/eza.yml ~/.config/eza/theme.yml - # Add managed policy directories for Chromium and Brave for theme changes sudo mkdir -p /etc/chromium/policies/managed sudo chmod a+rw /etc/chromium/policies/managed diff --git a/install/config/walker-elephant.sh b/install/config/walker-elephant.sh index e8e3330f..745450f3 100644 --- a/install/config/walker-elephant.sh +++ b/install/config/walker-elephant.sh @@ -1,5 +1,9 @@ #!/bin/bash +# Ensure Walker service is started automatically on boot +mkdir -p ~/.config/autostart/ +cp $OMARCHY_PATH/autostart/walker.desktop ~/.config/autostart/ + # Create pacman hook to restart walker after updates sudo mkdir -p /etc/pacman.d/hooks sudo tee /etc/pacman.d/hooks/walker-restart.hook > /dev/null << EOF @@ -15,3 +19,7 @@ Description = Restarting Walker services after system update When = PostTransaction Exec = $OMARCHY_PATH/bin/omarchy-restart-walker EOF + +# Link the visual theme menu config +mkdir -p ~/.config/elephant/menus +ln -snf $OMARCHY_PATH/default/elephant/omarchy_themes.lua ~/.config/elephant/menus/omarchy_themes.lua diff --git a/install/first-run/elephant.sh b/install/first-run/elephant.sh new file mode 100644 index 00000000..9517f6b9 --- /dev/null +++ b/install/first-run/elephant.sh @@ -0,0 +1,2 @@ +elephant service enable +systemctl --user start elephant.service diff --git a/install/first-run/firewall.sh b/install/first-run/firewall.sh index a38f5a56..cc187dc2 100644 --- a/install/first-run/firewall.sh +++ b/install/first-run/firewall.sh @@ -6,9 +6,6 @@ sudo ufw default allow outgoing sudo ufw allow 53317/udp sudo ufw allow 53317/tcp -# Allow SSH in -sudo ufw allow 22/tcp - # Allow Docker containers to use DNS on host sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'allow-docker-dns' diff --git a/install/first-run/welcome.sh b/install/first-run/welcome.sh index 2da4be2e..9c5d06af 100644 --- a/install/first-run/welcome.sh +++ b/install/first-run/welcome.sh @@ -1,2 +1 @@ -notify-send " Update System" "When you have internet, click to update the system." -u critical notify-send " Learn Keybindings" "Super + K for cheatsheet.\nSuper + Space for application launcher.\nSuper + Alt + Space for Omarchy Menu." -u critical diff --git a/install/first-run/wifi.sh b/install/first-run/wifi.sh index d645a5c3..f8d7fc8f 100644 --- a/install/first-run/wifi.sh +++ b/install/first-run/wifi.sh @@ -1,3 +1,6 @@ if ! ping -c3 -W1 1.1.1.1 >/dev/null 2>&1; then - notify-send "󰖩 Click to Setup Wi-Fi" "Tab to navigate, Space to select, ? for help." -u critical -t 30000 + notify-send " Update System" "When you have internet, click to update the system." -u critical + notify-send "󰖩 Click to Setup Wi-Fi" "Tab to navigate, Space to select, ? for help." -u critical +else + notify-send " Update System" "Click to update the system." -u critical fi diff --git a/install/login/limine-snapper.sh b/install/login/limine-snapper.sh index 6a037207..a9a13553 100644 --- a/install/login/limine-snapper.sh +++ b/install/login/limine-snapper.sh @@ -3,25 +3,27 @@ if command -v limine &>/dev/null; then sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf </dev/null HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs) +EOF + sudo tee /etc/mkinitcpio.conf.d/thunderbolt_module.conf </dev/null +MODULES+=(thunderbolt) EOF - [[ -f /boot/EFI/limine/limine.conf ]] || [[ -f /boot/EFI/BOOT/limine.conf ]] && EFI=true + # Detect boot mode + [[ -d /sys/firmware/efi ]] && EFI=true - # Conf location is different between EFI and BIOS - if [[ -n "$EFI" ]]; then - # Check USB location first, then regular EFI location - if [[ -f /boot/EFI/BOOT/limine.conf ]]; then - limine_config="/boot/EFI/BOOT/limine.conf" - else - limine_config="/boot/EFI/limine/limine.conf" - fi - else + # Find config location + if [[ -f /boot/EFI/arch-limine/limine.conf ]]; then + limine_config="/boot/EFI/arch-limine/limine.conf" + elif [[ -f /boot/EFI/BOOT/limine.conf ]]; then + limine_config="/boot/EFI/BOOT/limine.conf" + elif [[ -f /boot/EFI/limine/limine.conf ]]; then + limine_config="/boot/EFI/limine/limine.conf" + elif [[ -f /boot/limine/limine.conf ]]; then limine_config="/boot/limine/limine.conf" - fi - - # Double-check and exit if we don't have a config file for some reason - if [[ ! -f $limine_config ]]; then - echo "Error: Limine config not found at $limine_config" >&2 + elif [[ -f /boot/limine.conf ]]; then + limine_config="/boot/limine.conf" + else + echo "Error: Limine config not found" >&2 exit 1 fi @@ -75,9 +77,14 @@ term_palette_bright: 414868;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;c0caf5 term_foreground: c0caf5 term_foreground_bright: c0caf5 term_background_bright: 24283b - + EOF + # Remove the original config file if it's not /boot/limine.conf + if [[ "$limine_config" != "/boot/limine.conf" ]] && [[ -f "$limine_config" ]]; then + sudo rm "$limine_config" + fi + # Match Snapper configs if not installing from the ISO if [[ -z ${OMARCHY_CHROOT_INSTALL:-} ]]; then @@ -90,10 +97,15 @@ EOF fi fi + # Enable quota to allow space-aware algorithms to work + sudo btrfs quota enable / + # Tweak default Snapper configs sudo sed -i 's/^TIMELINE_CREATE="yes"/TIMELINE_CREATE="no"/' /etc/snapper/configs/{root,home} sudo sed -i 's/^NUMBER_LIMIT="50"/NUMBER_LIMIT="5"/' /etc/snapper/configs/{root,home} sudo sed -i 's/^NUMBER_LIMIT_IMPORTANT="10"/NUMBER_LIMIT_IMPORTANT="5"/' /etc/snapper/configs/{root,home} + sudo sed -i 's/^SPACE_LIMIT="0.5"/SPACE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} + sudo sed -i 's/^FREE_LIMIT="0.2"/FREE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} chrootable_systemctl_enable limine-snapper-sync.service fi @@ -120,17 +132,18 @@ if [[ -n $EFI ]] && efibootmgr &>/dev/null; then done < <(efibootmgr | grep -E "^Boot[0-9]{4}\*? Arch Linux Limine" | sed 's/^Boot\([0-9]\{4\}\).*/\1/') fi -if [[ -n $EFI ]] && efibootmgr &>/dev/null && - ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends" && - ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then - - uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1) - - if [[ -n "$uki_file" ]]; then - sudo efibootmgr --create \ - --disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \ - --part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \ - --label "Omarchy" \ - --loader "\\EFI\\Linux\\$uki_file" - fi -fi +# Move this to a utility to allow manual activation +# if [[ -n $EFI ]] && efibootmgr &>/dev/null && +# ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends" && +# ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then +# +# uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1) +# +# if [[ -n "$uki_file" ]]; then +# sudo efibootmgr --create \ +# --disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \ +# --part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \ +# --label "Omarchy" \ +# --loader "\\EFI\\Linux\\$uki_file" +# fi +# fi diff --git a/install/omarchy-base.packages b/install/omarchy-base.packages index 7b3b2082..7373e0f1 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -9,10 +9,10 @@ asdcontrol avahi bash-completion bat -blueberry +bluetui +bolt brightnessctl btop -cargo clang cups cups-browsed @@ -21,21 +21,11 @@ cups-pdf docker docker-buildx docker-compose +dotnet-runtime-9.0 dust -elephant -elephant-bluetooth -elephant-calc -elephant-clipboard -elephant-desktopapplications -elephant-files -elephant-menus -elephant-providerlist -elephant-runner -elephant-symbols -elephant-todo -elephant-unicode -elephant-websearch evince +exfatprogs +expac eza fastfetch fcitx5 @@ -45,6 +35,7 @@ fd ffmpegthumbnailer fontconfig fzf +ghostty github-cli gnome-calculator gnome-keyring @@ -57,7 +48,8 @@ gvfs-nfs gvfs-smb hypridle hyprland -hyprland-qtutils +hyprland-guiutils +hyprland-preview-share-picker hyprlock hyprpicker hyprsunset @@ -65,6 +57,7 @@ imagemagick impala imv inetutils +inxi iwd jq kdenlive @@ -75,12 +68,12 @@ less libsecret libyaml libqalculate -libreoffice +libreoffice-fresh llvm localsend luarocks mako -man +man-db mariadb-libs mise mpv @@ -96,6 +89,8 @@ obs-studio obsidian omarchy-chromium omarchy-nvim +omarchy-walker +opencode pamixer pinta playerctl @@ -109,6 +104,8 @@ python-poetry-core python-terminaltexteffects qt5-wayland ripgrep +ruby +rust satty sddm signal-desktop @@ -121,6 +118,7 @@ swayosd system-config-printer tldr tree-sitter-cli +tobi-try ttf-cascadia-mono-nerd ttf-ia-writer ttf-jetbrains-mono-nerd @@ -129,10 +127,10 @@ tzupdate ufw ufw-docker unzip +usage uwsm -walker waybar -wayfreeze-git +wayfreeze whois wireless-regdb wiremix @@ -141,8 +139,10 @@ wl-clipboard woff2-font-awesome xdg-desktop-portal-gtk xdg-desktop-portal-hyprland +xdg-terminal-exec xmlstarlet xournalpp yaru-icon-theme yay +yq zoxide diff --git a/install/omarchy-other.packages b/install/omarchy-other.packages index 1ece3ca4..e531d56e 100644 --- a/install/omarchy-other.packages +++ b/install/omarchy-other.packages @@ -27,15 +27,17 @@ linux linux-firmware linux-headers macbook12-spi-driver-dkms +nvidia-580xx-dkms nvidia-dkms nvidia-open-dkms +nvidia-580xx-utils nvidia-utils +lib32-nvidia-580xx-utils lib32-nvidia-utils pipewire pipewire-alsa pipewire-jack pipewire-pulse -qt5-remoteobjects qt6-wayland sassc snapper diff --git a/install/packages.ignored b/install/packages.ignored deleted file mode 100644 index e69de29b..00000000 diff --git a/install/packages.pinned b/install/packages.pinned deleted file mode 100644 index e69de29b..00000000 diff --git a/install/packaging/nvim.sh b/install/packaging/nvim.sh index e7680c51..e045d19e 100644 --- a/install/packaging/nvim.sh +++ b/install/packaging/nvim.sh @@ -1 +1,2 @@ +# Includes lazyvim and the themes omarchy-nvim-setup diff --git a/install/packaging/webapps.sh b/install/packaging/webapps.sh index c5f7350b..19bd0802 100644 --- a/install/packaging/webapps.sh +++ b/install/packaging/webapps.sh @@ -4,6 +4,7 @@ omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ WhatsApp.png omarchy-webapp-install "Google Photos" https://photos.google.com/ "Google Photos.png" omarchy-webapp-install "Google Contacts" https://contacts.google.com/ "Google Contacts.png" omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations "Google Messages.png" +omarchy-webapp-install "Google Maps" https://maps.google.com "Google Maps.png" omarchy-webapp-install "ChatGPT" https://chatgpt.com/ ChatGPT.png omarchy-webapp-install "YouTube" https://youtube.com/ YouTube.png omarchy-webapp-install "GitHub" https://github.com/ GitHub.png @@ -11,3 +12,4 @@ omarchy-webapp-install "X" https://x.com/ X.png omarchy-webapp-install "Figma" https://figma.com/ Figma.png omarchy-webapp-install "Discord" https://discord.com/channels/@me Discord.png omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home Zoom.png "omarchy-webapp-handler-zoom %u" "x-scheme-handler/zoommtg;x-scheme-handler/zoomus" +omarchy-webapp-install "Fizzy" https://app.fizzy.do/ Fizzy.png diff --git a/install/post-install/finished.sh b/install/post-install/finished.sh index b0b41615..5b524af0 100644 --- a/install/post-install/finished.sh +++ b/install/post-install/finished.sh @@ -22,8 +22,6 @@ fi if sudo test -f /etc/sudoers.d/99-omarchy-installer; then sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null - echo - echo_in_style "Remember to remove USB installer!" fi # Exit gracefully if user chooses not to reboot diff --git a/install/post-install/pacman.sh b/install/post-install/pacman.sh index c91a2c9d..dbd6bcfc 100644 --- a/install/post-install/pacman.sh +++ b/install/post-install/pacman.sh @@ -1,6 +1,6 @@ # Configure pacman sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf -sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist +sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist if lspci -nn | grep -q "106b:180[12]"; then cat </dev/null diff --git a/install/preflight/pacman.sh b/install/preflight/pacman.sh index 1d9a2f2f..b4e03ef7 100644 --- a/install/preflight/pacman.sh +++ b/install/preflight/pacman.sh @@ -6,6 +6,13 @@ if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist + sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org + sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571 + + sudo pacman -Sy + sudo pacman -S --noconfirm --needed omarchy-keyring + + # Refresh all repos sudo pacman -Syu --noconfirm fi diff --git a/migrations/1751134560.sh b/migrations/1751134560.sh index f4267951..928b98fa 100644 --- a/migrations/1751134560.sh +++ b/migrations/1751134560.sh @@ -9,8 +9,19 @@ export OMARCHY_PATH=$HOME/.local/share/omarchy export PATH=$OMARCHY_PATH/bin/:$PATH EOF +# Ensure we have the latest repos and are ready to pull +omarchy-refresh-pacman +sudo systemctl restart systemd-timesyncd +sudo pacman -Sy # Normally not advisable, but we'll do a full -Syu before finishing + mkdir -p ~/.local/state/omarchy/migrations touch ~/.local/state/omarchy/migrations/1751134560.sh -sudo systemctl restart systemd-timesyncd +# Remove old AUR packages to prevent a super lengthy build on old Omarchy installs +omarchy-pkg-drop zoom qt5-remoteobjects wf-recorder wl-screenrec + +# Get rid of old AUR packages +bash $OMARCHY_PATH/migrations/1756060611.sh +touch ~/.local/state/omarchy/migrations/1756060611.sh + bash omarchy-update-perform diff --git a/migrations/1751134561.sh b/migrations/1751134561.sh deleted file mode 100644 index 46a7ebf2..00000000 --- a/migrations/1751134561.sh +++ /dev/null @@ -1,9 +0,0 @@ -echo "Add Omarchy Package Repository" - -omarchy-refresh-pacman-mirrorlist - -if ! grep -q "omarchy" /etc/pacman.conf; then - sudo sed -i '/^\[core\]/i [omarchy]\nSigLevel = Optional TrustAll\nServer = https:\/\/pkgs.omarchy.org\/$arch\n' /etc/pacman.conf - sudo systemctl restart systemd-timesyncd - sudo pacman -Syu --noconfirm -fi diff --git a/migrations/1751134562.sh b/migrations/1751134562.sh index f1752eca..0be8ee25 100644 --- a/migrations/1751134562.sh +++ b/migrations/1751134562.sh @@ -1,3 +1,4 @@ echo "Ensure all indexes and packages are up to date" +omarchy-refresh-pacman sudo pacman -Syu --noconfirm diff --git a/migrations/1751134568.sh b/migrations/1751134568.sh index 14c8f414..99cd600f 100644 --- a/migrations/1751134568.sh +++ b/migrations/1751134568.sh @@ -1,4 +1,4 @@ -# Turn on bluetooth service so blueberry works out the box +# Turn on bluetooth service so blueberry or bluetui 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 # Bluetooth is already enabled, nothing to change diff --git a/migrations/1754515289.sh b/migrations/1754515289.sh deleted file mode 100644 index 23f4db5e..00000000 --- a/migrations/1754515289.sh +++ /dev/null @@ -1,4 +0,0 @@ -echo "Update and restart Walker to resolve stuck Omarchy menu" - -sudo pacman -Syu --noconfirm walker-bin -omarchy-restart-walker diff --git a/migrations/1754929737.sh b/migrations/1754929737.sh deleted file mode 100644 index e3645dba..00000000 --- a/migrations/1754929737.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Update Walker config to add 60s timeout such that it won't conflict with screensaver" - -omarchy-refresh-walker diff --git a/migrations/1756060611.sh b/migrations/1756060611.sh index 67d819b6..2aab819a 100644 --- a/migrations/1756060611.sh +++ b/migrations/1756060611.sh @@ -13,7 +13,6 @@ reinstall_package_opr yay-bin yay reinstall_package_opr obsidian-bin obsidian reinstall_package_opr localsend-bin localsend reinstall_package_opr omarchy-chromium-bin omarchy-chromium -reinstall_package_opr walker-bin reinstall_package_opr python-terminaltexteffects reinstall_package_opr tzupdate reinstall_package_opr typora diff --git a/migrations/1756360552.sh b/migrations/1756360552.sh index 056853d4..0ea76157 100644 --- a/migrations/1756360552.sh +++ b/migrations/1756360552.sh @@ -1,7 +1,4 @@ echo "Move Omarchy Package Repository after Arch core/extra/multilib and remove AUR" -sudo cp /etc/pacman.conf /etc/pacman.conf.bak -sudo sed -i '/\[omarchy\]/,+2 d' /etc/pacman.conf -sudo sed -i '/\[chaotic-aur\]/,+2 d' /etc/pacman.conf -sudo bash -c 'echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/\$arch" >> /etc/pacman.conf' +omarchy-refresh-pacman sudo pacman -Syu --noconfirm diff --git a/migrations/1756372498.sh b/migrations/1756372498.sh deleted file mode 100644 index 40ba5ad6..00000000 --- a/migrations/1756372498.sh +++ /dev/null @@ -1,8 +0,0 @@ -echo "Add eza themeing" - -mkdir -p ~/.config/eza - -if [ -f ~/.config/omarchy/current/theme/eza.yml ]; then - ln -snf ~/.config/omarchy/current/theme/eza.yml ~/.config/eza/theme.yml -fi - diff --git a/migrations/1756411333.sh b/migrations/1756411333.sh index c44e9ce1..5312a6f5 100644 --- a/migrations/1756411333.sh +++ b/migrations/1756411333.sh @@ -1,3 +1,3 @@ echo "Use new Omarchy mirror as default" -omarchy-refresh-pacman-mirrorlist +omarchy-refresh-pacman diff --git a/migrations/1757021485.sh b/migrations/1757021485.sh index cb8f4c49..ab524755 100644 --- a/migrations/1757021485.sh +++ b/migrations/1757021485.sh @@ -1,3 +1,3 @@ echo "Install Copy URL extension for Chromium" -omarchy-refresh-config chromium-flags.conf +omarchy-refresh-chromium diff --git a/migrations/1758019332.sh b/migrations/1758019332.sh index defe97ab..50caed1e 100644 --- a/migrations/1758019332.sh +++ b/migrations/1758019332.sh @@ -17,5 +17,5 @@ fi # Use default terminal for keybinding if grep -q "terminal = uwsm app" ~/.config/hypr/bindings.conf; then - sed -i '/terminal = uwsm-app -- alacritty/ c\$terminal = uwsm-app -- $TERMINAL' ~/.config/hypr/bindings.conf + sed -Ei '/terminal = uwsm[- ]app -- alacritty/ c\$terminal = uwsm-app -- $TERMINAL' ~/.config/hypr/bindings.conf fi diff --git a/migrations/1758107879.sh b/migrations/1758107879.sh index 059a0c5b..aaae09df 100644 --- a/migrations/1758107879.sh +++ b/migrations/1758107879.sh @@ -17,6 +17,7 @@ PACKAGES=( "elephant-websearch" "elephant-todo" "walker" + "libqalculate" ) for pkg in "${PACKAGES[@]}"; do @@ -31,6 +32,10 @@ if [[ "$WALKER_MAJOR" -lt 2 ]]; then NEEDS_MIGRATION=true fi +# Ensure basic config is present +mkdir -p ~/.config/walker +cp -r ~/.local/share/omarchy/config/walker/* ~/.config/walker/ + if $NEEDS_MIGRATION; then kill -9 $(pgrep -x walker) 2>/dev/null || true @@ -41,5 +46,10 @@ if $NEEDS_MIGRATION; then source $OMARCHY_PATH/install/config/walker-elephant.sh rm -rf ~/.config/walker/themes - omarchy-refresh-walker + + omarchy-refresh-config walker/config.toml + omarchy-refresh-config elephant/calc.toml + omarchy-refresh-config elephant/desktopapplications.toml fi + +echo # Assure final success diff --git a/migrations/1758455816.sh b/migrations/1758455816.sh new file mode 100644 index 00000000..9c578ffe --- /dev/null +++ b/migrations/1758455816.sh @@ -0,0 +1,13 @@ +echo "Add thunderbolt support to boot image" + +omarchy-pkg-add bolt + +if [[ ! -f /etc/mkinitcpio.conf.d/thunderbolt_module.conf ]]; then + sudo tee /etc/mkinitcpio.conf.d/thunderbolt_module.conf </dev/null +MODULES+=(thunderbolt) +EOF +fi + +if omarchy-cmd-present limine-update; then + sudo limine-update +fi diff --git a/migrations/1759782459.sh b/migrations/1759782459.sh deleted file mode 100644 index 015fd8e0..00000000 --- a/migrations/1759782459.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Fix opening in nvim from files manager" - -cp -f $OMARCHY_PATH/applications/nvim.desktop ~/.local/share/applications/nvim.desktop diff --git a/migrations/1760724934.sh b/migrations/1760724934.sh index 4f038af5..cc218ffb 100644 --- a/migrations/1760724934.sh +++ b/migrations/1760724934.sh @@ -8,9 +8,6 @@ if ! grep -q "map shift+insert paste_from_clipboard" "$KITTY_CONF"; then sed -i '/map ctrl+insert copy_to_clipboard/a map shift+insert paste_from_clipboard' "$KITTY_CONF" fi -echo "Update Walker configs" -omarchy-refresh-walker - echo "Copy hooks examples" cp -r $OMARCHY_PATH/config/omarchy/* $HOME/.config/omarchy/ diff --git a/migrations/1760974946.sh b/migrations/1760974946.sh new file mode 100644 index 00000000..ef800abc --- /dev/null +++ b/migrations/1760974946.sh @@ -0,0 +1,21 @@ +echo "Turn off VSCode's own auto-update feature (we rely on pacman)" + +# Note: We cannot use `jq` to update settings.json because it’s JSONC (allows comments), +# which jq doesn’t support. + +VS_CODE_SETTINGS="$HOME/.config/Code/User/settings.json" + +# If VSCode is installed, ensure that the "update.mode" setting is set to "none" +if omarchy-cmd-present code; then + mkdir -p "$(dirname "$VS_CODE_SETTINGS")" + + if [[ ! -f "$VS_CODE_SETTINGS" ]]; then + # If settings.json doesn't exist, create it with just the update.mode setting + printf '{\n "update.mode": "none"\n}\n' > "$VS_CODE_SETTINGS" + elif ! grep -q '"update.mode"' "$VS_CODE_SETTINGS"; then + # Insert "update.mode": "none", immediately after the first "{" + # Use sed's first-match range (0,/{/) to only replace the first "{ + sed -i --follow-symlinks -E '0,/\{/{s/\{/{\ + "update.mode": "none",/}' "$VS_CODE_SETTINGS" + fi +fi diff --git a/migrations/1761180745.sh b/migrations/1761180745.sh new file mode 100644 index 00000000..5a6b1e0f --- /dev/null +++ b/migrations/1761180745.sh @@ -0,0 +1,7 @@ +echo "Ensure interactive shell check is at the top of .bashrc" + +BASHRC="$HOME/.bashrc" + +if [ -f "$BASHRC" ] && ! grep -q '\[\[ $- != \*i\* \]\] && return' "$BASHRC"; then + sed -i '1i# If not running interactively, don'\''t do anything (leave this at the top of this file)\n[[ $- != *i* ]] && return\n' "$BASHRC" +fi diff --git a/migrations/1761181166.sh b/migrations/1761181166.sh new file mode 100644 index 00000000..fb7c54e4 --- /dev/null +++ b/migrations/1761181166.sh @@ -0,0 +1,3 @@ +echo "Change to pinned version of wayfreeze" +omarchy-pkg-drop wayfreeze-git +omarchy-pkg-add wayfreeze diff --git a/migrations/1761241493.sh b/migrations/1761241493.sh new file mode 100644 index 00000000..c4b977f0 --- /dev/null +++ b/migrations/1761241493.sh @@ -0,0 +1,33 @@ +echo "Cleanup extra UKI if needed to prevent errors" +if [[ -f /boot/EFI/linux/omarchy_linux.efi ]] && [[ -f /boot/EFI/linux/$(cat /etc/machine-id)_linux.efi ]]; then + sudo rm -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi + + if grep -q "/boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi" /boot/limine.conf; then + echo -e "Resetting limine config\n(you may need to re-add other entries via sudo limine-update)" + + sudo mv /boot/limine.conf /boot/limine.conf.bak + sudo tee /boot/limine.conf </dev/null +### Read more at config document: https://github.com/limine-bootloader/limine/blob/trunk/CONFIG.md +#timeout: 3 +default_entry: 2 +interface_branding: Omarchy Bootloader +interface_branding_color: 2 +hash_mismatch_panic: no + +term_background: 1a1b26 +backdrop: 1a1b26 + +# Terminal colors (Tokyo Night palette) +term_palette: 15161e;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;a9b1d6 +term_palette_bright: 414868;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;c0caf5 + +# Text colors +term_foreground: c0caf5 +term_foreground_bright: c0caf5 +term_background_bright: 24283b + +EOF + sudo limine-update + sudo limine-snapper-sync + fi +fi diff --git a/migrations/1761247569.sh b/migrations/1761247569.sh new file mode 100644 index 00000000..eff3980d --- /dev/null +++ b/migrations/1761247569.sh @@ -0,0 +1,2 @@ +echo "Install expac and inxi for omarchy-debug" +omarchy-pkg-add expac inxi diff --git a/migrations/1761269603.sh b/migrations/1761269603.sh new file mode 100644 index 00000000..8d29f613 --- /dev/null +++ b/migrations/1761269603.sh @@ -0,0 +1,7 @@ +echo "Add right-click terminal action to waybar omarchy menu icon" + +WAYBAR_CONFIG="$HOME/.config/waybar/config.jsonc" + +if [[ -f "$WAYBAR_CONFIG" ]] && ! grep -A5 '"custom/omarchy"' "$WAYBAR_CONFIG" | grep -q '"on-click-right"'; then + sed -i '/"on-click": "omarchy-menu",/a\ "on-click-right": "omarchy-launch-terminal",' "$WAYBAR_CONFIG" +fi diff --git a/migrations/1761274806.sh b/migrations/1761274806.sh new file mode 100644 index 00000000..7d0f5657 --- /dev/null +++ b/migrations/1761274806.sh @@ -0,0 +1,5 @@ +echo "Ensure node is available via mise (for treesitter cli)" + +if omarchy-cmd-missing node; then + mise use -g node@latest +fi diff --git a/migrations/1761274980.sh b/migrations/1761274980.sh new file mode 100644 index 00000000..5c85b362 --- /dev/null +++ b/migrations/1761274980.sh @@ -0,0 +1,11 @@ +echo "Migrate to proper packages for localsend and asdcontrol" + +if omarchy-pkg-present localsend-bin; then + omarchy-pkg-drop localsend-bin + omarchy-pkg-add localsend +fi + +if omarchy-pkg-present asdcontrol-git; then + omarchy-pkg-drop asdcontrol-git + omarchy-pkg-add asdcontrol +fi diff --git a/migrations/1761569743.sh b/migrations/1761569743.sh new file mode 100644 index 00000000..f45e7bfd --- /dev/null +++ b/migrations/1761569743.sh @@ -0,0 +1,9 @@ +echo "Add default Ctrl+P binding for imv; backup existing config if present" + +if [ -f ~/.config/imv/config ]; then + cp ~/.config/imv/config ~/.config/imv/config.bak.$(date +%s) +else + mkdir -p ~/.config/imv +fi + +cp ~/.local/share/omarchy/config/imv/config ~/.config/imv/config diff --git a/migrations/1761585764.sh b/migrations/1761585764.sh new file mode 100644 index 00000000..bafbfe27 --- /dev/null +++ b/migrations/1761585764.sh @@ -0,0 +1,3 @@ +echo "Disable Nvim news alerts box" + +cp /usr/share/omarchy-nvim/config/lua/plugins/disable-news-alert.lua ~/.config/nvim/lua/plugins/disable-news-alert.lua diff --git a/migrations/1761638377.sh b/migrations/1761638377.sh new file mode 100644 index 00000000..05a1fb16 --- /dev/null +++ b/migrations/1761638377.sh @@ -0,0 +1,6 @@ +echo "Turn off fcitx5 clipboard that is interferring with other applications" + +mkdir -p ~/.config/fcitx5/conf +cp $OMARCHY_PATH/config/fcitx5/conf/clipboard.conf ~/.config/fcitx5/conf/ + +omarchy-restart-xcompose diff --git a/migrations/1761758552.sh b/migrations/1761758552.sh new file mode 100644 index 00000000..49680d09 --- /dev/null +++ b/migrations/1761758552.sh @@ -0,0 +1,21 @@ +echo "Set nvim as default via xdg-mime" + +rm ~/.local/share/applications/nvim.desktop || true + +xdg-mime default nvim.desktop text/plain +xdg-mime default nvim.desktop text/english +xdg-mime default nvim.desktop text/x-makefile +xdg-mime default nvim.desktop text/x-c++hdr +xdg-mime default nvim.desktop text/x-c++src +xdg-mime default nvim.desktop text/x-chdr +xdg-mime default nvim.desktop text/x-csrc +xdg-mime default nvim.desktop text/x-java +xdg-mime default nvim.desktop text/x-moc +xdg-mime default nvim.desktop text/x-pascal +xdg-mime default nvim.desktop text/x-tcl +xdg-mime default nvim.desktop text/x-tex +xdg-mime default nvim.desktop application/x-shellscript +xdg-mime default nvim.desktop text/x-c +xdg-mime default nvim.desktop text/x-c++ +xdg-mime default nvim.desktop application/xml +xdg-mime default nvim.desktop text/xml diff --git a/migrations/1761897226.sh b/migrations/1761897226.sh new file mode 100644 index 00000000..34dbc1fd --- /dev/null +++ b/migrations/1761897226.sh @@ -0,0 +1,3 @@ +echo "Install Copy URL extension for Brave" + +omarchy-refresh-config brave-flags.conf diff --git a/migrations/1762121828.sh b/migrations/1762121828.sh new file mode 100644 index 00000000..e56d16ca --- /dev/null +++ b/migrations/1762121828.sh @@ -0,0 +1,58 @@ +echo "Setting up xdg-terminal-exec for gtk-launch terminal support" +# Solve for hardcoded glib terminals +# https://github.com/basecamp/omarchy/issues/1852 + +# Remove old symlink if it exists -- if someone ran the previous migration early +if [ -L /usr/local/bin/xdg-terminal-exec ]; then + sudo rm /usr/local/bin/xdg-terminal-exec +fi + +omarchy-pkg-add xdg-terminal-exec + +# Set up xdg-terminals.list based on current $TERMINAL +if [ -n "$TERMINAL" ]; then + case "$TERMINAL" in + alacritty) desktop_id="Alacritty.desktop" ;; + ghostty) desktop_id="com.mitchellh.ghostty.desktop" ;; + kitty) desktop_id="kitty.desktop" ;; + esac + + if [ -n "$desktop_id" ]; then + mkdir -p ~/.config + cat > ~/.config/xdg-terminals.list << EOF +# Terminal emulator preference order for xdg-terminal-exec +# The first found and valid terminal will be used +$desktop_id +EOF + fi +fi + +# Copy custom desktop entries with proper X-TerminalArg* keys +if command -v alacritty > /dev/null 2>&1; then + cp "$OMARCHY_PATH/applications/Alacritty.desktop" ~/.local/share/applications/ +fi + +# Update hyprland bindings to use xdg-terminal-exec +sed -i 's/\$terminal = uwsm-app -- \$TERMINAL/$terminal = uwsm-app -- xdg-terminal-exec/' ~/.config/hypr/bindings.conf +# Update --working-directory to --dir for xdg-terminal-exec +sed -i 's/--working-directory=/--dir=/g' ~/.config/hypr/bindings.conf + +# Update TERMINAL variable in uwsm config +sed -i 's/export TERMINAL=.*/export TERMINAL=xdg-terminal-exec/' ~/.config/uwsm/default + +# Update waybar config to use xdg-terminal-exec +waybar_config=~/.config/waybar/config.jsonc +if [ -f "$waybar_config" ]; then + sed -i 's|"on-click-right": "omarchy-launch-terminal"|"on-click-right": "xdg-terminal-exec"|' "$waybar_config" + sed -i 's|"on-click": "\$TERMINAL -e btop"|"on-click": "xdg-terminal-exec btop"|' "$waybar_config" + sed -i 's|"on-click": "\$TERMINAL --class=Wiremix -e wiremix"|"on-click": "xdg-terminal-exec --app-id=com.omarchy.Wiremix -e wiremix"|' "$waybar_config" + omarchy-state set restart-waybar-required +fi + +# Update hyprland window rules to use DNS-format class names +system_conf=~/.config/hypr/apps/system.conf +if [ -f "$system_conf" ]; then + if grep -q 'class:(.*|Impala|' "$system_conf" || grep -q 'class:(.*|Wiremix|' "$system_conf" || grep -q '|Omarchy|' "$system_conf"; then + sed -i 's/\bImpala\b/com.omarchy.Impala/g; s/\bWiremix\b/com.omarchy.Wiremix/g; s/|Omarchy|/|com.omarchy.Omarchy|/g' "$system_conf" + fi +fi diff --git a/migrations/1762150269.sh b/migrations/1762150269.sh new file mode 100644 index 00000000..3314021e --- /dev/null +++ b/migrations/1762150269.sh @@ -0,0 +1,2 @@ +echo "Install omarchy-walker meta package" +omarchy-pkg-add omarchy-walker diff --git a/migrations/1762352101.sh b/migrations/1762352101.sh new file mode 100644 index 00000000..9b69745a --- /dev/null +++ b/migrations/1762352101.sh @@ -0,0 +1,5 @@ +echo "Increase Walker limit on how many entries can be shown to 256" + +if ! grep -q "max_results" ~/.config/walker/config.toml; then + sed -i '/^\[providers\]$/a max_results = 256' ~/.config/walker/config.toml +fi diff --git a/migrations/1762417304.sh b/migrations/1762417304.sh new file mode 100644 index 00000000..a3c9e03c --- /dev/null +++ b/migrations/1762417304.sh @@ -0,0 +1,8 @@ +echo "Replace bluetooth GUI with TUI" + +omarchy-pkg-add bluetui +omarchy-pkg-drop blueberry + +if ! grep -q "omarchy-launch-bluetooth" ~/.config/waybar/config.jsonc; then + sed -i 's/blueberry/omarchy-launch-bluetooth/' ~/.config/waybar/config.jsonc +fi diff --git a/migrations/1762446739.sh b/migrations/1762446739.sh new file mode 100644 index 00000000..37ad3b1b --- /dev/null +++ b/migrations/1762446739.sh @@ -0,0 +1,12 @@ +echo "Remove alternative limine.conf files" + +if omarchy-cmd-present limine; then + if [ ! -f /boot/limine.conf ]; then + echo "Error: /boot/limine.conf does not exist. Do not reboot without resolving this issue!" + exit 1 + fi + + sudo rm -f /boot/EFI/limine/limine.conf + sudo rm -f /boot/EFI/BOOT/limine.conf + sudo rm -f /boot/limine/limine.conf +fi diff --git a/migrations/1762684663.sh b/migrations/1762684663.sh new file mode 100644 index 00000000..3ef9a1cd --- /dev/null +++ b/migrations/1762684663.sh @@ -0,0 +1,12 @@ +echo "Update hyprlock font to match current system font" + +font_name=$(omarchy-font-current) + +if [[ -n "$font_name" ]]; then + cp ~/.config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf.bak.$(date +%s) + + echo "Found font '$font_name', updating hyprlock" + sed -i "s/font_family = .*/font_family = $font_name/g" ~/.config/hypr/hyprlock.conf +else + echo "No font found, skipping migration" +fi diff --git a/migrations/1762685081.sh b/migrations/1762685081.sh new file mode 100644 index 00000000..5f48b054 --- /dev/null +++ b/migrations/1762685081.sh @@ -0,0 +1,12 @@ +echo "Update hyprlock placeholder text based on fingerprint setup status" + +cp ~/.config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf.bak.$(date +%s) + +# Check if fprintd is installed and has enrolled fingerprints +if command -v fprintd-list &>/dev/null && fprintd-list "$USER" 2>/dev/null | grep -q "Fingerprints for user"; then + echo "Fingerprint detected, updating placeholder text with fingerprint icon" + sed -i 's/placeholder_text = .*/placeholder_text = Enter Password 󰈷 <\/span>/' ~/.config/hypr/hyprlock.conf +else + echo "No fingerprint enrolled, updating placeholder text without fingerprint icon" + sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf +fi diff --git a/migrations/1762711005.sh b/migrations/1762711005.sh new file mode 100644 index 00000000..0ebf1d8a --- /dev/null +++ b/migrations/1762711005.sh @@ -0,0 +1,3 @@ +echo "Add usage package to provide tab completion for mise" + +omarchy-pkg-add usage diff --git a/migrations/1762768186.sh b/migrations/1762768186.sh new file mode 100644 index 00000000..93bc3634 --- /dev/null +++ b/migrations/1762768186.sh @@ -0,0 +1,3 @@ +echo "Ensure config/uwsm/default uses generic terminal exec" + +sed -i 's/export TERMINAL=.*/export TERMINAL=xdg-terminal-exec/' ~/.config/uwsm/default diff --git a/migrations/1762770442.sh b/migrations/1762770442.sh new file mode 100644 index 00000000..f312b393 --- /dev/null +++ b/migrations/1762770442.sh @@ -0,0 +1,5 @@ +echo "Slow down Ghostty mouse scrolling to match Alacritty" + +if ! grep -q "mouse-scroll-multiplier" ~/.config/ghostty/config; then + echo -e "\n# Slowdown mouse scrolling\nmouse-scroll-multiplier = 0.95" >> ~/.config/ghostty/config +fi diff --git a/migrations/1762770815.sh b/migrations/1762770815.sh new file mode 100644 index 00000000..36e6a4b4 --- /dev/null +++ b/migrations/1762770815.sh @@ -0,0 +1,3 @@ +echo "Pull packages from stable Arch mirror" + +omarchy-refresh-pacman diff --git a/migrations/1762781907.sh b/migrations/1762781907.sh new file mode 100644 index 00000000..8291dd0f --- /dev/null +++ b/migrations/1762781907.sh @@ -0,0 +1,4 @@ +echo "Add try command for managing quick code experiments" + +omarchy-pkg-add ruby tobi-try +mkdir -p ~/Work/tries diff --git a/migrations/1762802472.sh b/migrations/1762802472.sh new file mode 100644 index 00000000..95856362 --- /dev/null +++ b/migrations/1762802472.sh @@ -0,0 +1,4 @@ +echo "Update imv config with new keybindings" + +mkdir -p ~/.config/imv +cp $OMARCHY_PATH/config/imv/config ~/.config/imv/ diff --git a/migrations/1762873545.sh b/migrations/1762873545.sh new file mode 100644 index 00000000..6ad354da --- /dev/null +++ b/migrations/1762873545.sh @@ -0,0 +1,10 @@ +echo "Switch Elephant to run as a systemd service and walker to be autostarted on login" + +pkill elephant +elephant service enable +systemctl --user start elephant.service + +pkill walker +mkdir -p ~/.config/autostart/ +cp $OMARCHY_PATH/autostart/walker.desktop ~/.config/autostart/ +setsid walker --gapplication-service & diff --git a/migrations/1763386443.sh b/migrations/1763386443.sh new file mode 100644 index 00000000..e6d806d4 --- /dev/null +++ b/migrations/1763386443.sh @@ -0,0 +1,8 @@ +echo "Uniquely identify terminal apps with custom app-ids using omarchy-launch-tui" + +# Replace terminal -e calls with omarchy-launch-tui in bindings +sed -i 's/\$terminal -e \([^ ]*\)/omarchy-launch-tui \1/g' ~/.config/hypr/bindings.conf + +# Update waybar to use omarchy-launch-or-focus with omarchy-launch-tui for TUI apps +sed -i 's|xdg-terminal-exec btop|omarchy-launch-or-focus-tui btop|' ~/.config/waybar/config.jsonc +sed -i 's|xdg-terminal-exec --app-id=com\.omarchy\.Wiremix -e wiremix|omarchy-launch-or-focus-tui wiremix|' ~/.config/waybar/config.jsonc diff --git a/migrations/1763393133.sh b/migrations/1763393133.sh new file mode 100644 index 00000000..f84cf74d --- /dev/null +++ b/migrations/1763393133.sh @@ -0,0 +1,6 @@ +echo "Link new theme picker config" + +mkdir -p ~/.config/elephant/menus +ln -snf $OMARCHY_PATH/default/elephant/omarchy_themes.lua ~/.config/elephant/menus/omarchy_themes.lua +sed -i '/"menus",/d' ~/.config/walker/config.toml +omarchy-restart-walker diff --git a/migrations/1763409182.sh b/migrations/1763409182.sh new file mode 100644 index 00000000..74199ce4 --- /dev/null +++ b/migrations/1763409182.sh @@ -0,0 +1,3 @@ +echo "Install exfatprogs to support exfat in format-drive" + +omarchy-pkg-add exfatprogs diff --git a/migrations/1763409505.sh b/migrations/1763409505.sh new file mode 100644 index 00000000..ad1995be --- /dev/null +++ b/migrations/1763409505.sh @@ -0,0 +1,5 @@ +echo "Add 10th workspace option to waybar config" + +if ! grep -q '"10": "0",' ~/.config/waybar/config.jsonc; then + sed -i '/"9": "9",/a\ "10": "0",' ~/.config/waybar/config.jsonc +fi diff --git a/migrations/1763478660.sh b/migrations/1763478660.sh new file mode 100644 index 00000000..f7eec943 --- /dev/null +++ b/migrations/1763478660.sh @@ -0,0 +1,4 @@ +echo "Configure XDPH config for screensharing to remember token selection" + +cp $OMARCHY_PATH/config/hypr/xdph.conf ~/.config/hypr/ +systemctl --user restart xdg-desktop-portal-hyprland diff --git a/migrations/1763558828.sh b/migrations/1763558828.sh new file mode 100644 index 00000000..3da9eec0 --- /dev/null +++ b/migrations/1763558828.sh @@ -0,0 +1,28 @@ +echo "Make Alacritty compatible with X-TerminalArgs" + +if omarchy-pkg-present alacritty; then + mkdir -p ~/.local/share/applications + cat > ~/.local/share/applications/Alacritty.desktop << EOF +[Desktop Entry] +Type=Application +TryExec=alacritty +Exec=alacritty +Icon=Alacritty +Terminal=false +Categories=System;TerminalEmulator; +Name=Alacritty +GenericName=Terminal +Comment=A fast, cross-platform, OpenGL terminal emulator +StartupNotify=true +StartupWMClass=Alacritty +Actions=New; +X-TerminalArgExec=-e +X-TerminalArgAppId=--class= +X-TerminalArgTitle=--title= +X-TerminalArgDir=--working-directory= + +[Desktop Action New] +Name=New Terminal +Exec=alacritty +EOF +fi diff --git a/migrations/1763560161.sh b/migrations/1763560161.sh new file mode 100644 index 00000000..b3956966 --- /dev/null +++ b/migrations/1763560161.sh @@ -0,0 +1,3 @@ +echo "Hide Bluetooth module in waybar if there's no BT controller" + +sed -i '/format-connected": "",/a\ "format-no-controller": "",' ~/.config/waybar/config.jsonc diff --git a/migrations/1763561396.sh b/migrations/1763561396.sh new file mode 100644 index 00000000..d69e51e1 --- /dev/null +++ b/migrations/1763561396.sh @@ -0,0 +1,3 @@ +echo "Switch to stable Omarchy Package Repository builds" + +omarchy-refresh-pacman diff --git a/migrations/1763583093.sh b/migrations/1763583093.sh new file mode 100644 index 00000000..85cd0c2f --- /dev/null +++ b/migrations/1763583093.sh @@ -0,0 +1,6 @@ +echo "Make ethereal available as new theme" + +if [[ ! -L ~/.config/omarchy/themes/ethereal ]]; then + rm -rf ~/.config/omarchy/themes/ethereal + ln -nfs ~/.local/share/omarchy/themes/ethereal ~/.config/omarchy/themes/ +fi diff --git a/migrations/1763626772.sh b/migrations/1763626772.sh new file mode 100644 index 00000000..aa02e9f9 --- /dev/null +++ b/migrations/1763626772.sh @@ -0,0 +1,6 @@ +echo "Make hackerman available as new theme" + +if [[ ! -L ~/.config/omarchy/themes/hackerman ]]; then + rm -rf ~/.config/omarchy/themes/hackerman + ln -nfs ~/.local/share/omarchy/themes/hackerman ~/.config/omarchy/themes/ +fi diff --git a/migrations/1763633307.sh b/migrations/1763633307.sh new file mode 100644 index 00000000..d93893f7 --- /dev/null +++ b/migrations/1763633307.sh @@ -0,0 +1,5 @@ +echo "Add 100-line split resizing keybindings to Ghostty" + +if ! grep -q "resize_split:down,100" ~/.config/ghostty/config; then + sed -i "/keybind = control+insert=copy_to_clipboard/a\keybind = super+control+shift+alt+arrow_down=resize_split:down,100\nkeybind = super+control+shift+alt+arrow_up=resize_split:up,100\nkeybind = super+control+shift+alt+arrow_left=resize_split:left,100\nkeybind = super+control+shift+alt+arrow_right=resize_split:right,100" ~/.config/ghostty/config +fi diff --git a/migrations/1763634099.sh b/migrations/1763634099.sh new file mode 100644 index 00000000..267558b6 --- /dev/null +++ b/migrations/1763634099.sh @@ -0,0 +1,3 @@ +echo "Using 󰂱 icon for bluetooth when connected" + +sed -i 's/"format-connected": "",/"format-connected": "󰂱",/' ~/.config/waybar/config.jsonc diff --git a/migrations/1763653692.sh b/migrations/1763653692.sh new file mode 100644 index 00000000..46e2af14 --- /dev/null +++ b/migrations/1763653692.sh @@ -0,0 +1,5 @@ +echo "Replace Waybar dock icon with something more obvious" + +sed -i 's/"format": ""/"format": ""/' ~/.config/waybar/config.jsonc +sed -i '/#custom-expand-icon {/,/}/ s/margin-right: 20px;/margin-right: 18px;/' ~/.config/waybar/style.css +omarchy-restart-waybar diff --git a/migrations/1763743755.sh b/migrations/1763743755.sh new file mode 100644 index 00000000..db73b86e --- /dev/null +++ b/migrations/1763743755.sh @@ -0,0 +1,3 @@ +echo "Refresh Walker config to ensure compatibility with latest version" + +omarchy-refresh-walker diff --git a/migrations/1763753641.sh b/migrations/1763753641.sh new file mode 100644 index 00000000..40d83994 --- /dev/null +++ b/migrations/1763753641.sh @@ -0,0 +1,3 @@ +echo "Include pacman mirror and OPR upstreams (edge vs stable) in About" + +omarchy-refresh-fastfetch diff --git a/migrations/1764067068.sh b/migrations/1764067068.sh new file mode 100644 index 00000000..01843585 --- /dev/null +++ b/migrations/1764067068.sh @@ -0,0 +1,6 @@ +echo "Use Bluetooth off icon in the waybar when BlueTUI has turned off the adapter" + +if ! grep -q '"format-off": "󰂲"' ~/.config/waybar/config.jsonc; then + sed -i '/"format-disabled": "󰂲",/a\ "format-off": "󰂲",' ~/.config/waybar/config.jsonc + omarchy-restart-waybar +fi diff --git a/migrations/1764067963.sh b/migrations/1764067963.sh new file mode 100644 index 00000000..99590cbb --- /dev/null +++ b/migrations/1764067963.sh @@ -0,0 +1,4 @@ +echo "Ensure lockout limit is reset on reboot" + +sudo sed -i '/pam_faillock\.so preauth/d' /etc/pam.d/sddm-autologin +sudo sed -i '/auth.*pam_permit\.so/a auth required pam_faillock.so authsucc' /etc/pam.d/sddm-autologin diff --git a/migrations/1764332115.sh b/migrations/1764332115.sh new file mode 100644 index 00000000..f9df037d --- /dev/null +++ b/migrations/1764332115.sh @@ -0,0 +1,3 @@ +echo "Ensure emoji menu (Super + Ctrl + E) uses single column design" + +omarchy-refresh-walker diff --git a/migrations/1764333665.sh b/migrations/1764333665.sh new file mode 100644 index 00000000..e6d5fee5 --- /dev/null +++ b/migrations/1764333665.sh @@ -0,0 +1,3 @@ +echo "Ensure you have package repository indexes matching your channel" + +sudo pacman -Syyu --noconfirm diff --git a/migrations/1764378788.sh b/migrations/1764378788.sh new file mode 100644 index 00000000..de9b5f13 --- /dev/null +++ b/migrations/1764378788.sh @@ -0,0 +1,5 @@ +echo "Ignore empty passwords on lock screen" + +if ! grep -q "ignore_empty_input" ~/.config/hypr/hyprlock.conf; then + sed -i "/source =/a\ \ngeneral {\n ignore_empty_input = true\n}" ~/.config/hypr/hyprlock.conf +fi diff --git a/migrations/1765587218.sh b/migrations/1765587218.sh new file mode 100644 index 00000000..6d58bd9e --- /dev/null +++ b/migrations/1765587218.sh @@ -0,0 +1,17 @@ +echo "Add custom share portal picker" +omarchy-pkg-add hyprland-preview-share-picker + +mkdir -p ~/.config/hyprland-preview-share-picker +omarchy-refresh-config hyprland-preview-share-picker/config.yaml + +if ! grep -q "custom_picker_binary" ~/.config/hypr/xdph.conf; then + sed -i '/screencopy {/a\ custom_picker_binary = hyprland-preview-share-picker' ~/.config/hypr/xdph.conf +fi + +sleep 1 +killall -e xdg-desktop-portal-hyprland +killall -e xdg-desktop-portal-wlr +killall xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal & diff --git a/migrations/1765729055.sh b/migrations/1765729055.sh new file mode 100644 index 00000000..620b33fb --- /dev/null +++ b/migrations/1765729055.sh @@ -0,0 +1,11 @@ +echo "Add emergency entry for Walker" +CONFIG_FILE="$HOME/.config/walker/config.toml" + +if [[ -f "$CONFIG_FILE" ]] && ! grep -q 'command = "omarchy-restart-walker"' "$CONFIG_FILE"; then + cat >> "$CONFIG_FILE" << 'EOF' + +[[emergencies]] +text = "Restart Walker" +command = "omarchy-restart-walker" +EOF +fi diff --git a/migrations/1765739892.sh b/migrations/1765739892.sh new file mode 100644 index 00000000..845270b3 --- /dev/null +++ b/migrations/1765739892.sh @@ -0,0 +1,7 @@ +if omarchy-cmd-present btrfs && omarchy-cmd-present snapper; then + echo "Adjust snapper space limits & enable btrfs quota" + + sudo sed -i 's/^SPACE_LIMIT="0.5"/SPACE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} 2>/dev/null + sudo sed -i 's/^FREE_LIMIT="0.2"/FREE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} 2>/dev/null + sudo btrfs quota enable / +fi diff --git a/migrations/1765744321.sh b/migrations/1765744321.sh new file mode 100644 index 00000000..adc32e79 --- /dev/null +++ b/migrations/1765744321.sh @@ -0,0 +1,2 @@ +echo "Increase faillock attempts to 10" +sudo sed -i 's/^# *deny = .*/deny = 10/' /etc/security/faillock.conf diff --git a/migrations/1765846739.sh b/migrations/1765846739.sh new file mode 100644 index 00000000..5c7634be --- /dev/null +++ b/migrations/1765846739.sh @@ -0,0 +1,3 @@ +echo "Add missing dotnet 9.0 for Pinta" + +omarchy-pkg-add dotnet-runtime-9.0 diff --git a/migrations/1765884267.sh b/migrations/1765884267.sh new file mode 100644 index 00000000..f418914d --- /dev/null +++ b/migrations/1765884267.sh @@ -0,0 +1,6 @@ +echo "Change to openai-codex instead of openai-codex-bin" + +if omarchy-pkg-present openai-codex-bin; then + omarchy-pkg-drop openai-codex-bin + omarchy-pkg-add openai-codex +fi diff --git a/migrations/1766942230.sh b/migrations/1766942230.sh new file mode 100644 index 00000000..cb780f32 --- /dev/null +++ b/migrations/1766942230.sh @@ -0,0 +1,8 @@ +echo "Migrate legacy NVIDIA GPUs to nvidia-580xx driver (if needed)" + +# Only migrate GTX 9xx or 10xx (Pascal/Maxwell) +NVIDIA="$(lspci | grep -i 'nvidia')" +if echo "$NVIDIA" | grep -qE "GTX 9|GTX 10"; then + # Piping yes to override existing packages + yes | sudo pacman -S nvidia-580xx-dkms nvidia-580xx-utils lib32-nvidia-580xx-utils +fi diff --git a/migrations/1767138576.sh b/migrations/1767138576.sh new file mode 100644 index 00000000..8d452d07 --- /dev/null +++ b/migrations/1767138576.sh @@ -0,0 +1,9 @@ +echo "Update terminal scrolltouchpad setting to Hyprland 0.53 style" + +if grep -q "scrolltouchpad" ~/.config/hypr/input.conf; then + sed -Ei 's/^windowrule = scrolltouchpad ([^,]+), class:\(([^)]+)\)$/windowrule = match:class (\2), scroll_touchpad \1/; + s/^windowrule = scrolltouchpad ([^,]+), class:([^ ]+)$/windowrule = match:class \2, scroll_touchpad \1/' ~/.config/hypr/input.conf +fi + +# Ensure we restart to pair new Hyprland settings with new version +omarchy-state set reboot-required diff --git a/migrations/1767227973.sh b/migrations/1767227973.sh new file mode 100755 index 00000000..549727c9 --- /dev/null +++ b/migrations/1767227973.sh @@ -0,0 +1,3 @@ +echo "Replace Waybar omarchy-launch-or-focus-tui wiremix with omarchy-launch-audio" + +sed -i 's/omarchy-launch-or-focus-tui wiremix/omarchy-launch-audio/g' ~/.config/waybar/config.jsonc diff --git a/migrations/1767306902.sh b/migrations/1767306902.sh new file mode 100644 index 00000000..9a0a1bb1 --- /dev/null +++ b/migrations/1767306902.sh @@ -0,0 +1,62 @@ +echo "Migrate to new theme setup" + +omarchy-pkg-add yq + +# Move user-added backgrounds from Omarchy theme folders to user config +OMARCHY_DIR="$HOME/.local/share/omarchy" +USER_BACKGROUNDS_DIR="$HOME/.config/omarchy/backgrounds" + +if [[ -d "$OMARCHY_DIR/themes" ]]; then + cd "$OMARCHY_DIR" + + # Get list of git-tracked background files (relative to omarchy dir) + mapfile -t TRACKED_BACKGROUNDS < <(git ls-files --cached 'themes/*/backgrounds/*' 2>/dev/null) + + # Find all background files and check if they're untracked (user-added) + for theme_dir in themes/*/; do + theme_name=$(basename "$theme_dir") + backgrounds_dir="themes/$theme_name/backgrounds" + + [[ -d "$backgrounds_dir" ]] || continue + + for bg_file in "$backgrounds_dir"/*; do + [[ -f "$bg_file" ]] || continue + + # Check if this file is tracked by git + is_tracked=false + for tracked in "${TRACKED_BACKGROUNDS[@]}"; do + if [[ "$tracked" == "$bg_file" ]]; then + is_tracked=true + break + fi + done + + if [[ "$is_tracked" == "false" ]]; then + # This is a user-added background, move it to user config + user_theme_bg_dir="$USER_BACKGROUNDS_DIR/$theme_name" + mkdir -p "$user_theme_bg_dir" + mv "$bg_file" "$user_theme_bg_dir/" + echo "Moved user background: $bg_file -> $user_theme_bg_dir/" + fi + done + done +fi + +THEMES_DIR="$HOME/.config/omarchy/themes" +CURRENT_THEME_LINK="$HOME/.config/omarchy/current/theme" + +# Get current theme name from symlink before removing anything +CURRENT_THEME_NAME="" +if [[ -L $CURRENT_THEME_LINK ]]; then + CURRENT_THEME_NAME=$(basename "$(readlink "$CURRENT_THEME_LINK")") +elif [[ -f "$HOME/.config/omarchy/current/theme.name" ]]; then + CURRENT_THEME_NAME=$(cat "$HOME/.config/omarchy/current/theme.name") +fi + +# Remove all symlinks from ~/.config/omarchy/themes +find "$THEMES_DIR" -mindepth 1 -maxdepth 1 -type l -delete + +# Re-apply the current theme with the new system +if [[ -n $CURRENT_THEME_NAME ]]; then + omarchy-theme-set "$CURRENT_THEME_NAME" +fi diff --git a/migrations/1767414310.sh b/migrations/1767414310.sh new file mode 100644 index 00000000..7ab1d2f0 --- /dev/null +++ b/migrations/1767414310.sh @@ -0,0 +1,4 @@ +echo "Use correct idle-timer sensitive timeouts for screensaver + screen off" + +sed -i 's/timeout = 300/timeout = 150/' ~/.config/hypr/hypridle.conf +sed -i 's/timeout = 330/timeout = 30/' ~/.config/hypr/hypridle.conf diff --git a/migrations/1767478687.sh b/migrations/1767478687.sh new file mode 100644 index 00000000..0eed2011 --- /dev/null +++ b/migrations/1767478687.sh @@ -0,0 +1,16 @@ +echo "Add opencode with dynamic themeing and Super + Shift + Ctrl + A binding" + +omarchy-pkg-add opencode + +# Add config using omarchy theme by default +if [[ ! -f ~/.config/opencode/opencode.json ]]; then + cp $OMARCHY_PATH/config/opencode/opencode.json ~/.config/opencode/opencode.json +fi + +# Add binding if the key is available +BINDINGS_PATH="$HOME/.config/hypr/bindings.conf" +if ! grep -q "SUPER SHIFT CTRL, A" $BINDINGS_PATH; then + sed -i '/SUPER SHIFT ALT, A/a bindd = SUPER SHIFT CTRL, A, opencode, exec, omarchy-launch-opencode' "$BINDINGS_PATH" +else + echo "Add your own binding for opencode using omarchy-launch-opencode in $BINDINGS_PATH" +fi diff --git a/themes/catppuccin-latte/alacritty.toml b/themes/catppuccin-latte/alacritty.toml deleted file mode 100644 index 3fcf61eb..00000000 --- a/themes/catppuccin-latte/alacritty.toml +++ /dev/null @@ -1,67 +0,0 @@ -# https://raw.githubusercontent.com/catppuccin/alacritty/main/catppuccin-latte.toml - -[colors.primary] -background = "#eff1f5" -foreground = "#4c4f69" -dim_foreground = "#8c8fa1" -bright_foreground = "#4c4f69" - -[colors.cursor] -text = "#eff1f5" -cursor = "#dc8a78" - -[colors.vi_mode_cursor] -text = "#eff1f5" -cursor = "#7287fd" - -[colors.search.matches] -foreground = "#eff1f5" -background = "#6c6f85" - -[colors.search.focused_match] -foreground = "#eff1f5" -background = "#40a02b" - -[colors.footer_bar] -foreground = "#eff1f5" -background = "#6c6f85" - -[colors.hints.start] -foreground = "#eff1f5" -background = "#df8e1d" - -[colors.hints.end] -foreground = "#eff1f5" -background = "#6c6f85" - -[colors.selection] -text = "#eff1f5" -background = "#dc8a78" - -[colors.normal] -black = "#bcc0cc" -red = "#d20f39" -green = "#40a02b" -yellow = "#df8e1d" -blue = "#1e66f5" -magenta = "#ea76cb" -cyan = "#179299" -white = "#5c5f77" - -[colors.bright] -black = "#acb0be" -red = "#d20f39" -green = "#40a02b" -yellow = "#df8e1d" -blue = "#1e66f5" -magenta = "#ea76cb" -cyan = "#179299" -white = "#6c6f85" - -[[colors.indexed_colors]] -index = 16 -color = "#fe640b" - -[[colors.indexed_colors]] -index = 17 -color = "#dc8a78" diff --git a/themes/catppuccin-latte/colors.toml b/themes/catppuccin-latte/colors.toml new file mode 100644 index 00000000..93e550d6 --- /dev/null +++ b/themes/catppuccin-latte/colors.toml @@ -0,0 +1,26 @@ +accent = "#1e66f5" +active_border_color = "#8839EF" +active_tab_background = "#8839EF" + +cursor = "#dc8a78" +foreground = "#4c4f69" +background = "#eff1f5" +selection_foreground = "#eff1f5" +selection_background = "#dc8a78" + +color0 = "#bcc0cc" +color1 = "#d20f39" +color2 = "#40a02b" +color3 = "#df8e1d" +color4 = "#1e66f5" +color5 = "#ea76cb" +color6 = "#179299" +color7 = "#5c5f77" +color8 = "#acb0be" +color9 = "#d20f39" +color10 = "#40a02b" +color11 = "#df8e1d" +color12 = "#1e66f5" +color13 = "#ea76cb" +color14 = "#179299" +color15 = "#6c6f85" diff --git a/themes/catppuccin-latte/ghostty.conf b/themes/catppuccin-latte/ghostty.conf deleted file mode 100644 index e56f4ea6..00000000 --- a/themes/catppuccin-latte/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Catppuccin Latte diff --git a/themes/catppuccin-latte/hyprland.conf b/themes/catppuccin-latte/hyprland.conf deleted file mode 100644 index 4a72d792..00000000 --- a/themes/catppuccin-latte/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(1e66f5) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/catppuccin-latte/hyprlock.conf b/themes/catppuccin-latte/hyprlock.conf deleted file mode 100644 index c47e5186..00000000 --- a/themes/catppuccin-latte/hyprlock.conf +++ /dev/null @@ -1,6 +0,0 @@ -$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) - diff --git a/themes/catppuccin-latte/kitty.conf b/themes/catppuccin-latte/kitty.conf deleted file mode 100644 index 43cba927..00000000 --- a/themes/catppuccin-latte/kitty.conf +++ /dev/null @@ -1,78 +0,0 @@ -## name: Catppuccin Latte 🐑 -## author: Pocco81 (https://github.com/Pocco81) -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/latte.conf -## blurb: Soothing pastel theme for the high-spirited! - - - -# The basic colors -foreground #4C4F69 -background #EFF1F5 -selection_foreground #EFF1F5 -selection_background #DC8A78 - -# Cursor colors -cursor #DC8A78 -cursor_text_color #EFF1F5 - -# URL underline color when hovering with mouse -url_color #7287FD - -# Kitty window border colors -active_border_color #8839EF -inactive_border_color #7C7F93 -bell_border_color #E64553 - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #EFF1F5 -active_tab_background #8839EF -inactive_tab_foreground #4C4F69 -inactive_tab_background #9CA0B0 -tab_bar_background #BCC0CC - -# Colors for marks (marked text in the terminal) -mark1_foreground #EFF1F5 -mark1_background #1E66F5 -mark2_foreground #EFF1F5 -mark2_background #8839EF -mark3_foreground #EFF1F5 -mark3_background #209FB5 - -# The 16 terminal colors - -# black -color0 #4C4F69 -color8 #6C6F85 - -# red -color1 #D20F39 -color9 #D20F39 - -# green -color2 #40A02B -color10 #40A02B - -# yellow -color3 #DF8E1D -color11 #DF8E1D - -# blue -color4 #1E66F5 -color12 #1E66F5 - -# magenta -color5 #EA76CB -color13 #EA76CB - -# cyan -color6 #179299 -color14 #179299 - -# white -color7 #ACB0BE -color15 #ACB0BE diff --git a/themes/catppuccin-latte/mako.ini b/themes/catppuccin-latte/mako.ini deleted file mode 100644 index fa46cfff..00000000 --- a/themes/catppuccin-latte/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#4c4f69 -border-color=#1e66f5 -background-color=#eff1f5 diff --git a/themes/catppuccin-latte/preview.png b/themes/catppuccin-latte/preview.png index 4c594da8..8befd6f4 100644 Binary files a/themes/catppuccin-latte/preview.png and b/themes/catppuccin-latte/preview.png differ diff --git a/themes/catppuccin-latte/swayosd.css b/themes/catppuccin-latte/swayosd.css deleted file mode 100644 index c5f23aa1..00000000 --- a/themes/catppuccin-latte/swayosd.css +++ /dev/null @@ -1,5 +0,0 @@ -@define-color background-color #eff1f5; -@define-color border-color #1e66f5; -@define-color label #4c4f69; -@define-color image #4c4f69; -@define-color progress #4c4f69; diff --git a/themes/catppuccin-latte/walker.css b/themes/catppuccin-latte/walker.css deleted file mode 100644 index 30e54bd1..00000000 --- a/themes/catppuccin-latte/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/catppuccin-latte/waybar.css b/themes/catppuccin-latte/waybar.css deleted file mode 100644 index 5918ec62..00000000 --- a/themes/catppuccin-latte/waybar.css +++ /dev/null @@ -1,4 +0,0 @@ -@define-color foreground #4c4f69; /* text */ -@define-color background #eff1f5; /* base */ -@define-color border #dce0e8; /* crust */ -@define-color accent #1e66f5; /* blue */ diff --git a/themes/catppuccin/alacritty.toml b/themes/catppuccin/alacritty.toml deleted file mode 100644 index 7762dcdb..00000000 --- a/themes/catppuccin/alacritty.toml +++ /dev/null @@ -1,65 +0,0 @@ -[colors.primary] -background = "#1e1e2e" -foreground = "#cdd6f4" -dim_foreground = "#7f849c" -bright_foreground = "#cdd6f4" - -[colors.cursor] -text = "#1e1e2e" -cursor = "#f5e0dc" - -[colors.vi_mode_cursor] -text = "#1e1e2e" -cursor = "#b4befe" - -[colors.search.matches] -foreground = "#1e1e2e" -background = "#a6adc8" - -[colors.search.focused_match] -foreground = "#1e1e2e" -background = "#a6e3a1" - -[colors.footer_bar] -foreground = "#1e1e2e" -background = "#a6adc8" - -[colors.hints.start] -foreground = "#1e1e2e" -background = "#f9e2af" - -[colors.hints.end] -foreground = "#1e1e2e" -background = "#a6adc8" - -[colors.selection] -text = "#1e1e2e" -background = "#f5e0dc" - -[colors.normal] -black = "#45475a" -red = "#f38ba8" -green = "#a6e3a1" -yellow = "#f9e2af" -blue = "#89b4fa" -magenta = "#f5c2e7" -cyan = "#94e2d5" -white = "#bac2de" - -[colors.bright] -black = "#585b70" -red = "#f38ba8" -green = "#a6e3a1" -yellow = "#f9e2af" -blue = "#89b4fa" -magenta = "#f5c2e7" -cyan = "#94e2d5" -white = "#a6adc8" - -[[colors.indexed_colors]] -index = 16 -color = "#fab387" - -[[colors.indexed_colors]] -index = 17 -color = "#f5e0dc" diff --git a/themes/catppuccin/btop.theme b/themes/catppuccin/btop.theme index 18a4ff61..f0395b35 100644 --- a/themes/catppuccin/btop.theme +++ b/themes/catppuccin/btop.theme @@ -1,5 +1,5 @@ # Main background, empty for terminal default, need to be empty if you want transparent background -theme[main_bg]="#24273a" +theme[main_bg]="#1E1E2E" # Main text color theme[main_fg]="#c6d0f5" diff --git a/themes/catppuccin/colors.toml b/themes/catppuccin/colors.toml new file mode 100644 index 00000000..30eef198 --- /dev/null +++ b/themes/catppuccin/colors.toml @@ -0,0 +1,26 @@ +accent = "#89b4fa" +active_border_color = "#CBA6F7" +active_tab_background = "#CBA6F7" + +cursor = "#f5e0dc" +foreground = "#cdd6f4" +background = "#1e1e2e" +selection_foreground = "#1e1e2e" +selection_background = "#f5e0dc" + +color0 = "#45475a" +color1 = "#f38ba8" +color2 = "#a6e3a1" +color3 = "#f9e2af" +color4 = "#89b4fa" +color5 = "#f5c2e7" +color6 = "#94e2d5" +color7 = "#bac2de" +color8 = "#585b70" +color9 = "#f38ba8" +color10 = "#a6e3a1" +color11 = "#f9e2af" +color12 = "#89b4fa" +color13 = "#f5c2e7" +color14 = "#94e2d5" +color15 = "#a6adc8" diff --git a/themes/catppuccin/ghostty.conf b/themes/catppuccin/ghostty.conf deleted file mode 100644 index fe0502bc..00000000 --- a/themes/catppuccin/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Catppuccin Mocha diff --git a/themes/catppuccin/hyprland.conf b/themes/catppuccin/hyprland.conf deleted file mode 100644 index da3374ba..00000000 --- a/themes/catppuccin/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(c6d0f5) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/catppuccin/hyprlock.conf b/themes/catppuccin/hyprlock.conf deleted file mode 100644 index 4bd905b6..00000000 --- a/themes/catppuccin/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) -$check_color = rgba(68, 157, 171, 1.0) diff --git a/themes/catppuccin/kitty.conf b/themes/catppuccin/kitty.conf deleted file mode 100644 index e8ee9a1a..00000000 --- a/themes/catppuccin/kitty.conf +++ /dev/null @@ -1,78 +0,0 @@ -## name: Catppuccin Mocha 🌿 -## author: Pocco81 (https://github.com/Pocco81) -## license: MIT -## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf -## blurb: Soothing pastel theme for the high-spirited! - - - -# The basic colors -foreground #CDD6F4 -background #1E1E2E -selection_foreground #1E1E2E -selection_background #F5E0DC - -# Cursor colors -cursor #F5E0DC -cursor_text_color #1E1E2E - -# URL underline color when hovering with mouse -url_color #B4BEFE - -# Kitty window border colors -active_border_color #CBA6F7 -inactive_border_color #8E95B3 -bell_border_color #EBA0AC - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #11111B -active_tab_background #CBA6F7 -inactive_tab_foreground #CDD6F4 -inactive_tab_background #181825 -tab_bar_background #11111B - -# Colors for marks (marked text in the terminal) -mark1_foreground #1E1E2E -mark1_background #87B0F9 -mark2_foreground #1E1E2E -mark2_background #CBA6F7 -mark3_foreground #1E1E2E -mark3_background #74C7EC - -# The 16 terminal colors - -# black -color0 #43465A -color8 #43465A - -# red -color1 #F38BA8 -color9 #F38BA8 - -# green -color2 #A6E3A1 -color10 #A6E3A1 - -# yellow -color3 #F9E2AF -color11 #F9E2AF - -# blue -color4 #87B0F9 -color12 #87B0F9 - -# magenta -color5 #F5C2E7 -color13 #F5C2E7 - -# cyan -color6 #94E2D5 -color14 #94E2D5 - -# white -color7 #CDD6F4 -color15 #A1A8C9 diff --git a/themes/catppuccin/mako.ini b/themes/catppuccin/mako.ini deleted file mode 100644 index e530b7d5..00000000 --- a/themes/catppuccin/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#cad3f5 -border-color=#c6d0f5 -background-color=#24273a diff --git a/themes/catppuccin/preview.png b/themes/catppuccin/preview.png index 019de1d8..25c40d51 100644 Binary files a/themes/catppuccin/preview.png and b/themes/catppuccin/preview.png differ diff --git a/themes/catppuccin/swayosd.css b/themes/catppuccin/swayosd.css deleted file mode 100644 index 0ff80d2a..00000000 --- a/themes/catppuccin/swayosd.css +++ /dev/null @@ -1,5 +0,0 @@ -@define-color background-color #24273a; -@define-color border-color #c6d0f5; -@define-color label #cad3f5; -@define-color image #cad3f5; -@define-color progress #cad3f5; diff --git a/themes/catppuccin/walker.css b/themes/catppuccin/walker.css deleted file mode 100644 index 4b0d346f..00000000 --- a/themes/catppuccin/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/catppuccin/waybar.css b/themes/catppuccin/waybar.css deleted file mode 100644 index bf35a404..00000000 --- a/themes/catppuccin/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #cdd6f4; -@define-color background #181824; diff --git a/themes/ethereal/backgrounds/1.jpg b/themes/ethereal/backgrounds/1.jpg new file mode 100644 index 00000000..e5c1463f Binary files /dev/null and b/themes/ethereal/backgrounds/1.jpg differ diff --git a/themes/ethereal/backgrounds/2.jpg b/themes/ethereal/backgrounds/2.jpg new file mode 100644 index 00000000..95fdafb6 Binary files /dev/null and b/themes/ethereal/backgrounds/2.jpg differ diff --git a/themes/ethereal/btop.theme b/themes/ethereal/btop.theme new file mode 100644 index 00000000..135da3db --- /dev/null +++ b/themes/ethereal/btop.theme @@ -0,0 +1,70 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#060B1E" + +# Main text color +theme[main_fg]="#ffcead" + +# Title color for boxes +theme[title]="#c89dc1" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#a3bfd1" + +# Background color of selected item in processes box +theme[selected_bg]="#6d7db6" + +# Foreground color of selected item in processes box +theme[selected_fg]="#ffcead" + +# Color of inactive/disabled text +theme[inactive_fg]="#6d7db6" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#c89dc1" + +# Box outline and divider line color +theme[cpu_box]="#92a593" +theme[mem_box]="#92a593" +theme[net_box]="#92a593" +theme[proc_box]="#92a593" +theme[div_line]="#6d7db6" + +# Gradient for all meters and graphs +theme[temp_start]="#a3bfd1" +theme[temp_mid]="#7d82d9" +theme[temp_end]="#92a593" + + +theme[cpu_start]="#a3bfd1" +theme[cpu_mid]="#7d82d9" +theme[cpu_end]="#92a593" + + +theme[free_start]="#7d82d9" +theme[free_mid]="#E9BB4F" +theme[free_end]="#E9BB4F" + + +theme[cached_start]="#E9BB4F" +theme[cached_mid]="#E9BB4F" +theme[cached_end]="#E9BB4F" + + +theme[available_start]="#a3bfd1" +theme[available_mid]="#a3bfd1" +theme[available_end]="#a3bfd1" + + +theme[used_start]="#92a593" +theme[used_mid]="#92a593" +theme[used_end]="#92a593" + + +theme[download_start]="#E9BB4F" +theme[download_mid]="#a3bfd1" +theme[download_end]="#7d82d9" + + +theme[upload_start]="#E9BB4F" +theme[upload_mid]="#a3bfd1" +theme[upload_end]="#7d82d9" \ No newline at end of file diff --git a/themes/ethereal/chromium.theme b/themes/ethereal/chromium.theme new file mode 100644 index 00000000..164d85c8 --- /dev/null +++ b/themes/ethereal/chromium.theme @@ -0,0 +1 @@ +6,11,30 diff --git a/themes/ethereal/colors.toml b/themes/ethereal/colors.toml new file mode 100644 index 00000000..3cbe19b7 --- /dev/null +++ b/themes/ethereal/colors.toml @@ -0,0 +1,26 @@ +accent = "#7d82d9" +active_border_color = "#7d82d9" +active_tab_background = "#060B1E" + +cursor = "#ffcead" +foreground = "#ffcead" +background = "#060B1E" +selection_foreground = "#060B1E" +selection_background = "#ffcead" + +color0 = "#060B1E" +color1 = "#ED5B5A" +color2 = "#92a593" +color3 = "#E9BB4F" +color4 = "#7d82d9" +color5 = "#c89dc1" +color6 = "#a3bfd1" +color7 = "#F99957" +color8 = "#6d7db6" +color9 = "#faaaa9" +color10 = "#c4cfc4" +color11 = "#f7dc9c" +color12 = "#c2c4f0" +color13 = "#ead7e7" +color14 = "#dfeaf0" +color15 = "#ffcead" diff --git a/themes/ethereal/icons.theme b/themes/ethereal/icons.theme new file mode 100644 index 00000000..6ce2f147 --- /dev/null +++ b/themes/ethereal/icons.theme @@ -0,0 +1 @@ +Yaru-blue diff --git a/themes/ethereal/neovim.lua b/themes/ethereal/neovim.lua new file mode 100644 index 00000000..885bece6 --- /dev/null +++ b/themes/ethereal/neovim.lua @@ -0,0 +1,12 @@ +return { + { + "bjarneo/ethereal.nvim", + priority = 1000, + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "ethereal", + }, + }, +} diff --git a/themes/ethereal/preview.png b/themes/ethereal/preview.png new file mode 100644 index 00000000..0064a2ab Binary files /dev/null and b/themes/ethereal/preview.png differ diff --git a/themes/ethereal/vscode.json b/themes/ethereal/vscode.json new file mode 100644 index 00000000..2fccd6b0 --- /dev/null +++ b/themes/ethereal/vscode.json @@ -0,0 +1,4 @@ +{ + "name": "Ethereal", + "extension": "Bjarne.ethereal-omarchy" +} diff --git a/themes/everforest/alacritty.toml b/themes/everforest/alacritty.toml deleted file mode 100644 index faf62fac..00000000 --- a/themes/everforest/alacritty.toml +++ /dev/null @@ -1,24 +0,0 @@ -[colors] -[colors.primary] -background = '#2d353b' -foreground = '#d3c6aa' - -[colors.normal] -black = '#475258' -red = '#e67e80' -green = '#a7c080' -yellow = '#dbbc7f' -blue = '#7fbbb3' -magenta = '#d699b6' -cyan = '#83c092' -white = '#d3c6aa' - -[colors.bright] -black = '#475258' -red = '#e67e80' -green = '#a7c080' -yellow = '#dbbc7f' -blue = '#7fbbb3' -magenta = '#d699b6' -cyan = '#83c092' -white = '#d3c6aa' diff --git a/themes/everforest/btop.theme b/themes/everforest/btop.theme index f6aeadfe..2ad33bbe 100644 --- a/themes/everforest/btop.theme +++ b/themes/everforest/btop.theme @@ -22,7 +22,7 @@ theme[selected_bg]="#3d484d" theme[selected_fg]="#dbbc7f" # Color of inactive/disabled text -theme[inactive_fg]="#2d353b" +theme[inactive_fg]="#2d353b" # Color of text appearing on top of graphs, i.e uptime and current network graph scaling theme[graph_text]="#d3c6aa" diff --git a/themes/everforest/colors.toml b/themes/everforest/colors.toml new file mode 100644 index 00000000..f2e61588 --- /dev/null +++ b/themes/everforest/colors.toml @@ -0,0 +1,26 @@ +accent = "#7fbbb3" +active_border_color = "#7fbbb3" +active_tab_background = "#2d353b" + +cursor = "#d3c6aa" +foreground = "#d3c6aa" +background = "#2d353b" +selection_foreground = "#2d353b" +selection_background = "#d3c6aa" + +color0 = "#475258" +color1 = "#e67e80" +color2 = "#a7c080" +color3 = "#dbbc7f" +color4 = "#7fbbb3" +color5 = "#d699b6" +color6 = "#83c092" +color7 = "#d3c6aa" +color8 = "#475258" +color9 = "#e67e80" +color10 = "#a7c080" +color11 = "#dbbc7f" +color12 = "#7fbbb3" +color13 = "#d699b6" +color14 = "#83c092" +color15 = "#d3c6aa" diff --git a/themes/everforest/ghostty.conf b/themes/everforest/ghostty.conf deleted file mode 100644 index 69dd0ed4..00000000 --- a/themes/everforest/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Everforest Dark Hard diff --git a/themes/everforest/hyprlock.conf b/themes/everforest/hyprlock.conf deleted file mode 100644 index 11359524..00000000 --- a/themes/everforest/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) -$check_color = rgba(131, 192, 146, 1.0) diff --git a/themes/everforest/kitty.conf b/themes/everforest/kitty.conf deleted file mode 100644 index 07cea61f..00000000 --- a/themes/everforest/kitty.conf +++ /dev/null @@ -1,69 +0,0 @@ -## name: Everforest Dark Hard -## author: Sainnhe Park -## license: MIT -## upstream: https://github.com/ewal/kitty-everforest/blob/master/themes/everforest_dark_hard.conf -## blurb: A green based color scheme designed to be warm and soft - -foreground #d3c6aa -background #272e33 -selection_foreground #9da9a0 -selection_background #464e53 - -cursor #d3c6aa -cursor_text_color #2e383c - -url_color #7fbbb3 - -active_border_color #a7c080 -inactive_border_color #4f5b58 -bell_border_color #e69875 -visual_bell_color none - -wayland_titlebar_color system -macos_titlebar_color system - -active_tab_background #272e33 -active_tab_foreground #d3c6aa -inactive_tab_background #374145 -inactive_tab_foreground #9da9a0 -tab_bar_background #2e383c -tab_bar_margin_color none - -mark1_foreground #272e33 -mark1_background #7fbbb3 -mark2_foreground #272e33 -mark2_background #d3c6aa -mark3_foreground #272e33 -mark3_background #d699b6 - -#: black -color0 #343f44 -color8 #868d80 - -#: red -color1 #e67e80 -color9 #e67e80 - -#: green -color2 #a7c080 -color10 #a7c080 - -#: yellow -color3 #dbbc7f -color11 #dbbc7f - -#: blue -color4 #7fbbb3 -color12 #7fbbb3 - -#: magenta -color5 #d699b6 -color13 #d699b6 - -#: cyan -color6 #83c092 -color14 #83c092 - -#: white -color7 #859289 -color15 #9da9a0 diff --git a/themes/everforest/mako.ini b/themes/everforest/mako.ini deleted file mode 100644 index 0008121f..00000000 --- a/themes/everforest/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#d3c6aa -border-color=#d3c6aa -background-color=#2d353b diff --git a/themes/everforest/preview.png b/themes/everforest/preview.png index 113396cc..3124f21e 100644 Binary files a/themes/everforest/preview.png and b/themes/everforest/preview.png differ diff --git a/themes/everforest/swayosd.css b/themes/everforest/swayosd.css deleted file mode 100644 index f0bff409..00000000 --- a/themes/everforest/swayosd.css +++ /dev/null @@ -1,6 +0,0 @@ -@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/everforest/walker.css b/themes/everforest/walker.css deleted file mode 100644 index 56d6e569..00000000 --- a/themes/everforest/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/everforest/waybar.css b/themes/everforest/waybar.css deleted file mode 100644 index e8249f7e..00000000 --- a/themes/everforest/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #d3c6aa; -@define-color background #2d353b; diff --git a/themes/flexoki-light/alacritty.toml b/themes/flexoki-light/alacritty.toml deleted file mode 100644 index e59fce8b..00000000 --- a/themes/flexoki-light/alacritty.toml +++ /dev/null @@ -1,39 +0,0 @@ -[colors.bright] -black = "#100F0F" -blue = "#205EA6" -cyan = "#3AA99F" -green = "#879A39" -magenta = "#CE5D97" -red = "#D14D41" -white = "#FFFCF0" -yellow = "#D0A215" - -[colors.cursor] -cursor = "#100F0F" -text = "#FFFCF0" - -[colors.dim] -black = "#100F0F" -blue = "#205EA6" -cyan = "#3AA99F" -green = "#879A39" -magenta = "#CE5D97" -red = "#D14D41" -white = "#FFFCF0" -yellow = "#D0A215" - -[colors.normal] -black = "#100F0F" -blue = "#205EA6" -cyan = "#3AA99F" -green = "#879A39" -magenta = "#CE5D97" -red = "#D14D41" -white = "#FFFCF0" -yellow = "#D0A215" - -[colors.primary] -background = "#FFFCF0" -bright_foreground = "#100F0F" -dim_foreground = "#100F0F" -foreground = "#100F0F" diff --git a/themes/flexoki-light/colors.toml b/themes/flexoki-light/colors.toml new file mode 100644 index 00000000..b5e3a622 --- /dev/null +++ b/themes/flexoki-light/colors.toml @@ -0,0 +1,26 @@ +accent = "#205EA6" +active_border_color = "#D14D41" +active_tab_background = "#CECDC3" + +cursor = "#100F0F" +foreground = "#100F0F" +background = "#FFFCF0" +selection_foreground = "#100F0F" +selection_background = "#CECDC3" + +color0 = "#100F0F" +color1 = "#D14D41" +color2 = "#879A39" +color3 = "#D0A215" +color4 = "#205EA6" +color5 = "#CE5D97" +color6 = "#3AA99F" +color7 = "#FFFCF0" +color8 = "#100F0F" +color9 = "#D14D41" +color10 = "#879A39" +color11 = "#D0A215" +color12 = "#4385BE" +color13 = "#CE5D97" +color14 = "#3AA99F" +color15 = "#FFFCF0" diff --git a/themes/flexoki-light/ghostty.conf b/themes/flexoki-light/ghostty.conf deleted file mode 100644 index 5bc755a1..00000000 --- a/themes/flexoki-light/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Flexoki Light \ No newline at end of file diff --git a/themes/flexoki-light/hyprland.conf b/themes/flexoki-light/hyprland.conf deleted file mode 100644 index 1baef471..00000000 --- a/themes/flexoki-light/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgba(205EA6ee) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/flexoki-light/hyprlock.conf b/themes/flexoki-light/hyprlock.conf deleted file mode 100644 index e1d0dd4a..00000000 --- a/themes/flexoki-light/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$color = rgba(255,252,240,1.0) -$inner_color = rgba(242,240,229,1.0) -$outer_color = rgba(206,205,195,1.0) -$font_color = rgba(16,15,15,1.0) -$check_color = rgba(32, 94, 166, 1.0) diff --git a/themes/flexoki-light/kitty.conf b/themes/flexoki-light/kitty.conf deleted file mode 100644 index c8ee0142..00000000 --- a/themes/flexoki-light/kitty.conf +++ /dev/null @@ -1,67 +0,0 @@ -# vim:ft=kitty - -## name: Flexoki (Light) -## author: Kepano -## license: MIT -## upstream: https://raw.githubusercontent.com/kepano/flexoki/main/kitty/flexoki_light.conf -## blurb: An inky color scheme for prose and code - -# The basic colors -foreground #100F0F -background #FFFCF0 -selection_foreground #100F0F -selection_background #CECDC3 - -# Cursor colors -cursor #100F0F -cursor_text_color #FFFCF0 - -# kitty window border colors -active_border_color #D14D41 -inactive_border_color #CECDC3 - -# Tab bar colors -active_tab_foreground #100F0F -active_tab_background #CECDC3 -inactive_tab_foreground #6F6E69 -inactive_tab_background #E6E4D9 - -# The basic 16 colors -# black -color0 #100F0F -color8 #6F6E69 - - -# red -color1 #D14D41 -color9 #AF3029 - - -# green -color2 #879A39 -color10 #66800B - - -# yellow -color3 #D0A215 -color11 #AD8301 - - -# blue -color4 #4385BE -color12 #205EA6 - - -# magenta -color5 #CE5D97 -color13 #A02F6F - - -# cyan -color6 #3AA99F -color14 #24837B - - -# white -color7 #FFFCF0 -color15 #F2F0E5 \ No newline at end of file diff --git a/themes/flexoki-light/mako.ini b/themes/flexoki-light/mako.ini deleted file mode 100644 index 19cf1af4..00000000 --- a/themes/flexoki-light/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#100F0F -border-color=#205EA6 -background-color=#FFFCF0 diff --git a/themes/flexoki-light/preview.png b/themes/flexoki-light/preview.png new file mode 100644 index 00000000..dce1c542 Binary files /dev/null and b/themes/flexoki-light/preview.png differ diff --git a/themes/flexoki-light/swayosd.css b/themes/flexoki-light/swayosd.css deleted file mode 100644 index 444964d5..00000000 --- a/themes/flexoki-light/swayosd.css +++ /dev/null @@ -1,5 +0,0 @@ -@define-color background-color #FFFCF0; -@define-color border-color #205EA6; -@define-color label #100F0F; -@define-color image #100F0F; -@define-color progress #100F0F; diff --git a/themes/flexoki-light/walker.css b/themes/flexoki-light/walker.css deleted file mode 100644 index e2ecdfb2..00000000 --- a/themes/flexoki-light/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@define-color selected-text #205EA6; -@define-color text #100F0F; -@define-color base #FFFCF0; -@define-color border #205EA6; -@define-color foreground #100F0F; -@define-color background #FFFCF0; diff --git a/themes/flexoki-light/waybar.css b/themes/flexoki-light/waybar.css deleted file mode 100644 index edc54c16..00000000 --- a/themes/flexoki-light/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #100F0F; -@define-color background #FFFCF0; diff --git a/themes/gruvbox/alacritty.toml b/themes/gruvbox/alacritty.toml deleted file mode 100644 index 03f4b615..00000000 --- a/themes/gruvbox/alacritty.toml +++ /dev/null @@ -1,24 +0,0 @@ -[colors] -[colors.primary] -background = "0x282828" -foreground = "0xd4be98" - -[colors.normal] -black = "0x3c3836" -red = "0xea6962" -green = "0xa9b665" -yellow = "0xd8a657" -blue = "0x7daea3" -magenta = "0xd3869b" -cyan = "0x89b482" -white = "0xd4be98" - -[colors.bright] -black = "0x3c3836" -red = "0xea6962" -green = "0xa9b665" -yellow = "0xd8a657" -blue = "0x7daea3" -magenta = "0xd3869b" -cyan = "0x89b482" -white = "0xd4be98" diff --git a/themes/gruvbox/backgrounds/1-grubox.jpg b/themes/gruvbox/backgrounds/1-grubox.jpg index fd318699..c9ff5316 100644 Binary files a/themes/gruvbox/backgrounds/1-grubox.jpg and b/themes/gruvbox/backgrounds/1-grubox.jpg differ diff --git a/themes/gruvbox/backgrounds/2-gruvbox.jpg b/themes/gruvbox/backgrounds/2-gruvbox.jpg new file mode 100644 index 00000000..fd318699 Binary files /dev/null and b/themes/gruvbox/backgrounds/2-gruvbox.jpg differ diff --git a/themes/gruvbox/colors.toml b/themes/gruvbox/colors.toml new file mode 100644 index 00000000..b6e7b351 --- /dev/null +++ b/themes/gruvbox/colors.toml @@ -0,0 +1,26 @@ +accent = "#7daea3" +active_border_color = "#458588" +active_tab_background = "#d65d0e" + +cursor = "#bdae93" +foreground = "#d4be98" +background = "#282828" +selection_foreground = "#ebdbb2" +selection_background = "#d65d0e" + +color0 = "#3c3836" +color1 = "#ea6962" +color2 = "#a9b665" +color3 = "#d8a657" +color4 = "#7daea3" +color5 = "#d3869b" +color6 = "#89b482" +color7 = "#d4be98" +color8 = "#3c3836" +color9 = "#ea6962" +color10 = "#a9b665" +color11 = "#d8a657" +color12 = "#7daea3" +color13 = "#d3869b" +color14 = "#89b482" +color15 = "#d4be98" diff --git a/themes/gruvbox/ghostty.conf b/themes/gruvbox/ghostty.conf deleted file mode 100644 index dbb7464e..00000000 --- a/themes/gruvbox/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Gruvbox Dark diff --git a/themes/gruvbox/hyprland.conf b/themes/gruvbox/hyprland.conf deleted file mode 100644 index 029cc908..00000000 --- a/themes/gruvbox/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(a89984) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/gruvbox/hyprlock.conf b/themes/gruvbox/hyprlock.conf deleted file mode 100644 index 1d18e4f5..00000000 --- a/themes/gruvbox/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) -$check_color = rgba(214, 153, 92, 1.0) diff --git a/themes/gruvbox/kitty.conf b/themes/gruvbox/kitty.conf deleted file mode 100644 index 38b015cc..00000000 --- a/themes/gruvbox/kitty.conf +++ /dev/null @@ -1,40 +0,0 @@ -## name: Gruvbox Dark -## author: Pavel Pertsev -## license: MIT/X11 -## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark.conf - -selection_foreground #ebdbb2 -selection_background #d65d0e - -background #282828 -foreground #ebdbb2 - -color0 #3c3836 -color1 #cc241d -color2 #98971a -color3 #d79921 -color4 #458588 -color5 #b16286 -color6 #689d6a -color7 #a89984 -color8 #928374 -color9 #fb4934 -color10 #b8bb26 -color11 #fabd2f -color12 #83a598 -color13 #d3869b -color14 #8ec07c -color15 #fbf1c7 - -cursor #bdae93 -cursor_text_color #665c54 - -url_color #458588 - -# START_AUTOGENERATED_TAB_STYLE -# Feel free to update these colors manually and remove these comments. -active_tab_foreground #eeeeee -active_tab_background #d65d0e -inactive_tab_foreground #ebdbb2 -inactive_tab_background #202020 -# END_AUTOGENERATED_TAB_STYLE diff --git a/themes/gruvbox/mako.ini b/themes/gruvbox/mako.ini deleted file mode 100644 index 5d2d17cc..00000000 --- a/themes/gruvbox/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#d4be98 -border-color=#a89984 -background-color=#282828 diff --git a/themes/gruvbox/preview.png b/themes/gruvbox/preview.png index 61d13c3f..f934bafa 100644 Binary files a/themes/gruvbox/preview.png and b/themes/gruvbox/preview.png differ diff --git a/themes/gruvbox/swayosd.css b/themes/gruvbox/swayosd.css deleted file mode 100644 index 16240ae0..00000000 --- a/themes/gruvbox/swayosd.css +++ /dev/null @@ -1,6 +0,0 @@ -@define-color background-color #282828; -@define-color border-color #a89984; -@define-color label #ebdbb2; -@define-color image #ebdbb2; -@define-color progress #ebdbb2; - diff --git a/themes/gruvbox/walker.css b/themes/gruvbox/walker.css deleted file mode 100644 index 6192cd6c..00000000 --- a/themes/gruvbox/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/gruvbox/waybar.css b/themes/gruvbox/waybar.css deleted file mode 100644 index 598de57a..00000000 --- a/themes/gruvbox/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #d4be98; -@define-color background #282828; diff --git a/themes/hackerman/backgrounds/1.jpg b/themes/hackerman/backgrounds/1.jpg new file mode 100644 index 00000000..7a36f6aa Binary files /dev/null and b/themes/hackerman/backgrounds/1.jpg differ diff --git a/themes/hackerman/backgrounds/2.jpg b/themes/hackerman/backgrounds/2.jpg new file mode 100644 index 00000000..a18aff80 Binary files /dev/null and b/themes/hackerman/backgrounds/2.jpg differ diff --git a/themes/hackerman/btop.theme b/themes/hackerman/btop.theme new file mode 100644 index 00000000..76091891 --- /dev/null +++ b/themes/hackerman/btop.theme @@ -0,0 +1,70 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#0B0C16" + +# Main text color +theme[main_fg]="#ddf7ff" + +# Title color for boxes +theme[title]="#86a7df" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#7cf8f7" + +# Background color of selected item in processes box +theme[selected_bg]="#6a6e95" + +# Foreground color of selected item in processes box +theme[selected_fg]="#ddf7ff" + +# Color of inactive/disabled text +theme[inactive_fg]="#6a6e95" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#86a7df" + +# Box outline and divider line color +theme[cpu_box]="#4fe88f" +theme[mem_box]="#4fe88f" +theme[net_box]="#4fe88f" +theme[proc_box]="#4fe88f" +theme[div_line]="#6a6e95" + +# Gradient for all meters and graphs +theme[temp_start]="#7cf8f7" +theme[temp_mid]="#829dd4" +theme[temp_end]="#4fe88f" + + +theme[cpu_start]="#7cf8f7" +theme[cpu_mid]="#829dd4" +theme[cpu_end]="#4fe88f" + + +theme[free_start]="#829dd4" +theme[free_mid]="#50f7d4" +theme[free_end]="#50f7d4" + + +theme[cached_start]="#50f7d4" +theme[cached_mid]="#50f7d4" +theme[cached_end]="#50f7d4" + + +theme[available_start]="#7cf8f7" +theme[available_mid]="#7cf8f7" +theme[available_end]="#7cf8f7" + + +theme[used_start]="#4fe88f" +theme[used_mid]="#4fe88f" +theme[used_end]="#4fe88f" + + +theme[download_start]="#50f7d4" +theme[download_mid]="#7cf8f7" +theme[download_end]="#829dd4" + + +theme[upload_start]="#50f7d4" +theme[upload_mid]="#7cf8f7" +theme[upload_end]="#829dd4" \ No newline at end of file diff --git a/themes/hackerman/chromium.theme b/themes/hackerman/chromium.theme new file mode 100644 index 00000000..6950bd95 --- /dev/null +++ b/themes/hackerman/chromium.theme @@ -0,0 +1 @@ +11,12,22 diff --git a/themes/hackerman/colors.toml b/themes/hackerman/colors.toml new file mode 100644 index 00000000..90792645 --- /dev/null +++ b/themes/hackerman/colors.toml @@ -0,0 +1,26 @@ +accent = "#829dd4" +active_border_color = "#829dd4" +active_tab_background = "#0B0C16" + +cursor = "#ddf7ff" +foreground = "#ddf7ff" +background = "#0B0C16" +selection_foreground = "#0B0C16" +selection_background = "#ddf7ff" + +color0 = "#0B0C16" +color1 = "#50f872" +color2 = "#4fe88f" +color3 = "#50f7d4" +color4 = "#829dd4" +color5 = "#86a7df" +color6 = "#7cf8f7" +color7 = "#85E1FB" +color8 = "#6a6e95" +color9 = "#85ff9d" +color10 = "#9cf7c2" +color11 = "#a4ffec" +color12 = "#c4d2ed" +color13 = "#cddbf4" +color14 = "#d1fffe" +color15 = "#ddf7ff" diff --git a/themes/hackerman/icons.theme b/themes/hackerman/icons.theme new file mode 100644 index 00000000..66be38a1 --- /dev/null +++ b/themes/hackerman/icons.theme @@ -0,0 +1 @@ +Yaru-blue \ No newline at end of file diff --git a/themes/hackerman/neovim.lua b/themes/hackerman/neovim.lua new file mode 100644 index 00000000..d4588f0e --- /dev/null +++ b/themes/hackerman/neovim.lua @@ -0,0 +1,13 @@ +return { + { + "bjarneo/hackerman.nvim", + dependencies = { "bjarneo/aether.nvim" }, -- Ensure aether is loaded first + priority = 1000, + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "hackerman", + }, + }, +} diff --git a/themes/hackerman/preview.png b/themes/hackerman/preview.png new file mode 100644 index 00000000..b574b952 Binary files /dev/null and b/themes/hackerman/preview.png differ diff --git a/themes/hackerman/vscode.json b/themes/hackerman/vscode.json new file mode 100644 index 00000000..95f432be --- /dev/null +++ b/themes/hackerman/vscode.json @@ -0,0 +1,4 @@ +{ + "name": "Hackerman", + "extension": "Bjarne.hackerman-omarchy" +} diff --git a/themes/kanagawa/alacritty.toml b/themes/kanagawa/alacritty.toml deleted file mode 100644 index 341965c8..00000000 --- a/themes/kanagawa/alacritty.toml +++ /dev/null @@ -1,36 +0,0 @@ -[colors] -[colors.primary] -background = '#1f1f28' -foreground = '#dcd7ba' - -[colors.normal] -black = '#090618' -red = '#c34043' -green = '#76946a' -yellow = '#c0a36e' -blue = '#7e9cd8' -magenta = '#957fb8' -cyan = '#6a9589' -white = '#c8c093' - -[colors.bright] -black = '#727169' -red = '#e82424' -green = '#98bb6c' -yellow = '#e6c384' -blue = '#7fb4ca' -magenta = '#938aa9' -cyan = '#7aa89f' -white = '#dcd7ba' - -[colors.selection] -background = '#2d4f67' -foreground = '#c8c093' - -[[colors.indexed_colors]] -index = 16 -color = '#ffa066' - -[[colors.indexed_colors]] -index = 17 -color = '#ff5d62' diff --git a/themes/kanagawa/colors.toml b/themes/kanagawa/colors.toml new file mode 100644 index 00000000..4e7b987e --- /dev/null +++ b/themes/kanagawa/colors.toml @@ -0,0 +1,26 @@ +accent = "#7e9cd8" +active_border_color = "#7e9cd8" +active_tab_background = "#1f1f28" + +cursor = "#c8c093" +foreground = "#dcd7ba" +background = "#1f1f28" +selection_foreground = "#c8c093" +selection_background = "#2d4f67" + +color0 = "#090618" +color1 = "#c34043" +color2 = "#76946a" +color3 = "#c0a36e" +color4 = "#7e9cd8" +color5 = "#957fb8" +color6 = "#6a9589" +color7 = "#c8c093" +color8 = "#727169" +color9 = "#e82424" +color10 = "#98bb6c" +color11 = "#e6c384" +color12 = "#7fb4ca" +color13 = "#938aa9" +color14 = "#7aa89f" +color15 = "#dcd7ba" diff --git a/themes/kanagawa/ghostty.conf b/themes/kanagawa/ghostty.conf deleted file mode 100644 index 4e26c720..00000000 --- a/themes/kanagawa/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Kanagawa Wave diff --git a/themes/kanagawa/hyprland.conf b/themes/kanagawa/hyprland.conf index b5b6403a..0ee92cac 100644 --- a/themes/kanagawa/hyprland.conf +++ b/themes/kanagawa/hyprland.conf @@ -9,4 +9,4 @@ group { } # Kanagawa backdrop is too strong for detault opacity -windowrule = opacity 0.98 0.95, tag:terminal +windowrule = opacity 0.98 0.95, match:tag terminal diff --git a/themes/kanagawa/hyprlock.conf b/themes/kanagawa/hyprlock.conf deleted file mode 100644 index 7608b2c5..00000000 --- a/themes/kanagawa/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) -$check_color = rgba(126, 156, 216, 1.0) diff --git a/themes/kanagawa/kitty.conf b/themes/kanagawa/kitty.conf deleted file mode 100644 index 7122cea5..00000000 --- a/themes/kanagawa/kitty.conf +++ /dev/null @@ -1,68 +0,0 @@ -## name: Kanagawa -## author: Tommaso Laurenzi -## license: MIT -## upstream: https://github.com/rebelot/kanagawa.nvim/ -## blurb: NeoVim dark colorscheme inspired by the colors of the famous painting -## by Katsushika Hokusai. - -#: The basic colors - -foreground #dcd7ba -background #1f1f28 -selection_foreground #c8c093 -selection_background #2d4f67 - -#: Cursor colors - -cursor #c8c093 - -#: URL underline color when overing with mouse - -url_color #72a7bc - -#: Tab bar colors - -active_tab_foreground #c8c093 -active_tab_background #1f1f28 -inactive_tab_foreground #727169 -inactive_tab_background #1f1f28 - -#: The basic 16 colors - -#: black -color0 #16161d -color8 #727169 - -#: red -color1 #c34043 -color9 #e82424 - -#: green -color2 #76946a -color10 #98bb6c - -#: yellow -color3 #c0a36e -color11 #e6c384 - -#: blue -color4 #7e9cd8 -color12 #7fb4ca - -#: magenta -color5 #957fb8 -color13 #938aa9 - -#: cyan -color6 #6a9589 -color14 #7aa89f - -#: white -color7 #c8c093 -color15 #dcd7ba - - -#: You can set the remaining 240 colors as color16 to color255. - -color16 #ffa066 -color17 #ff5d62 diff --git a/themes/kanagawa/mako.ini b/themes/kanagawa/mako.ini deleted file mode 100644 index ca2e939c..00000000 --- a/themes/kanagawa/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#dcd7ba -border-color=#dcd7ba -background-color=#1f1f28 diff --git a/themes/kanagawa/preview.png b/themes/kanagawa/preview.png index e75e1189..db3ab75a 100644 Binary files a/themes/kanagawa/preview.png and b/themes/kanagawa/preview.png differ diff --git a/themes/kanagawa/swayosd.css b/themes/kanagawa/swayosd.css deleted file mode 100644 index 1eb5c851..00000000 --- a/themes/kanagawa/swayosd.css +++ /dev/null @@ -1,6 +0,0 @@ -@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/kanagawa/walker.css b/themes/kanagawa/walker.css deleted file mode 100644 index 8284746c..00000000 --- a/themes/kanagawa/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/kanagawa/waybar.css b/themes/kanagawa/waybar.css deleted file mode 100644 index 029cc07f..00000000 --- a/themes/kanagawa/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #dcd7ba; -@define-color background #1f1f28; diff --git a/themes/matte-black/alacritty.toml b/themes/matte-black/alacritty.toml deleted file mode 100644 index 20824098..00000000 --- a/themes/matte-black/alacritty.toml +++ /dev/null @@ -1,53 +0,0 @@ -# ──────────────────────────────────────────────────────────── -# Omarchy Matte Black Theme for Alacritty -# By tahayvr -# https://github.com/tahayvr -# ──────────────────────────────────────────────────────────── - -[window] -# window padding {px} -padding.x = 12 -padding.y = 12 - -[font] -size = 12.0 - - - -[colors] -[colors.primary] -background = "#121212" -foreground = "#bebebe" -dim_foreground = "#8a8a8d" - -[colors.cursor] -text = "#121212" -cursor = "#eaeaea" - -[colors.vi_mode_cursor] -text = "#121212" -cursor = "#eaeaea" - -[colors.selection] -text = "CellForeground" -background = "#333333" - -[colors.normal] -black = "#333333" -red = "#D35F5F" -green = "#FFC107" -yellow = "#b91c1c" -blue = "#e68e0d" -magenta = "#D35F5F" -cyan = "#bebebe" -white = "#bebebe" - -[colors.bright] -black = "#8a8a8d" -red = "#B91C1C" -green = "#FFC107" -yellow = "#b90a0a" -blue = "#f59e0b" -magenta = "#B91C1C" -cyan = "#eaeaea" -white = "#ffffff" \ No newline at end of file diff --git a/themes/matte-black/colors.toml b/themes/matte-black/colors.toml new file mode 100644 index 00000000..badef1ab --- /dev/null +++ b/themes/matte-black/colors.toml @@ -0,0 +1,26 @@ +accent = "#e68e0d" +active_border_color = "#595959" +active_tab_background = "#121212" + +cursor = "#eaeaea" +foreground = "#bebebe" +background = "#121212" +selection_foreground = "#bebebe" +selection_background = "#333333" + +color0 = "#333333" +color1 = "#D35F5F" +color2 = "#FFC107" +color3 = "#b91c1c" +color4 = "#e68e0d" +color5 = "#D35F5F" +color6 = "#bebebe" +color7 = "#bebebe" +color8 = "#8a8a8d" +color9 = "#B91C1C" +color10 = "#FFC107" +color11 = "#b90a0a" +color12 = "#f59e0b" +color13 = "#B91C1C" +color14 = "#eaeaea" +color15 = "#ffffff" diff --git a/themes/matte-black/ghostty.conf b/themes/matte-black/ghostty.conf deleted file mode 100644 index 85c69b15..00000000 --- a/themes/matte-black/ghostty.conf +++ /dev/null @@ -1,28 +0,0 @@ -background = #121212 -foreground = #BEBEBE - -cursor-color = #EAEAEA -cursor-text = #121212 - -selection-background = #333333 -selection-foreground = #EAEAEA - -# normal colors -palette = 0=#333333 -palette = 1=#D35F5F -palette = 2=#FFC107 -palette = 3=#B91C1C -palette = 4=#E68E0D -palette = 5=#D35F5F -palette = 6=#BEBEBE -palette = 7=#BEBEBE - -# bright colors -palette = 8=#8A8A8D -palette = 9=#B91C1C -palette = 10=#FFC107 -palette = 11=#B90A0A -palette = 12=#F59E0B -palette = 13=#B91C1C -palette = 14=#EAEAEA -palette = 15=#FFFFFF diff --git a/themes/matte-black/hyprland.conf b/themes/matte-black/hyprland.conf deleted file mode 100644 index 4fd7ff60..00000000 --- a/themes/matte-black/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(8A8A8D) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/matte-black/hyprlock.conf b/themes/matte-black/hyprlock.conf deleted file mode 100644 index 54f49479..00000000 --- a/themes/matte-black/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) diff --git a/themes/matte-black/kitty.conf b/themes/matte-black/kitty.conf deleted file mode 100644 index b5ee1da1..00000000 --- a/themes/matte-black/kitty.conf +++ /dev/null @@ -1,54 +0,0 @@ -## name: Matte Black - -foreground #bebebe -background #121212 -selection_foreground #121212 -selection_background #333333 - -cursor #eaeaea -cursor_text_color #121212 - -# URL underline color when hovering with mouse -url_color #bebebe - -# Kitty window border colors -active_border_color #595959 -inactive_border_color #595959 -bell_border_color #595959 - -# OS Window titlebar colors -wayland_titlebar_color system -macos_titlebar_color system - -# Tab bar colors -active_tab_foreground #bebebe -active_tab_background #121212 -inactive_tab_foreground #bebebe -inactive_tab_background #121212 -tab_bar_background #bebebe - -# Colors for marks (marked text in the terminal) -mark1_foreground #121212 -mark1_background #404040 -mark2_foreground #121212 -mark2_background #121212 -mark3_foreground #121212 -mark3_background #a6a6a6 - -color0 #333333 -color8 #8a8a8d -color1 #D35F5F -color9 #B91C1C -color2 #FFC107 -color10 #FFC107 -color3 #b91c1c -color11 #b90a0a -color4 #e68e0d -color12 #f59e0b -color5 #D35F5F -color13 #B91C1C -color6 #bebebe -color14 #eaeaea -color7 #bebebe -color15 #ffffff - diff --git a/themes/matte-black/mako.ini b/themes/matte-black/mako.ini deleted file mode 100644 index 0515363c..00000000 --- a/themes/matte-black/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#8a8a8d -border-color=#8A8A8D -background-color=#1e1e1e diff --git a/themes/matte-black/preview.png b/themes/matte-black/preview.png index 63a7ceaf..3aff6390 100644 Binary files a/themes/matte-black/preview.png and b/themes/matte-black/preview.png differ diff --git a/themes/matte-black/swayosd.css b/themes/matte-black/swayosd.css deleted file mode 100644 index 3f24dbb4..00000000 --- a/themes/matte-black/swayosd.css +++ /dev/null @@ -1,6 +0,0 @@ -@define-color background-color #121212; -@define-color border-color #8A8A8D; -@define-color label #8A8A8D; -@define-color image #8A8A8D; -@define-color progress #8A8A8D; - diff --git a/themes/matte-black/walker.css b/themes/matte-black/walker.css deleted file mode 100644 index d3d606bc..00000000 --- a/themes/matte-black/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/matte-black/waybar.css b/themes/matte-black/waybar.css deleted file mode 100644 index 1b8bb7f2..00000000 --- a/themes/matte-black/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #8a8a8d; -@define-color background #1e1e1e; diff --git a/themes/nord/alacritty.toml b/themes/nord/alacritty.toml deleted file mode 100644 index 4a087891..00000000 --- a/themes/nord/alacritty.toml +++ /dev/null @@ -1,47 +0,0 @@ -[colors] -[colors.primary] -background = "#2e3440" -foreground = "#d8dee9" -dim_foreground = "#a5abb6" - -[colors.cursor] -text = "#2e3440" -cursor = "#d8dee9" - -[colors.vi_mode_cursor] -text = "#2e3440" -cursor = "#d8dee9" - -[colors.selection] -text = "CellForeground" -background = "#4c566a" - -[colors.normal] -black = "#3b4252" -red = "#bf616a" -green = "#a3be8c" -yellow = "#ebcb8b" -blue = "#81a1c1" -magenta = "#b48ead" -cyan = "#88c0d0" -white = "#e5e9f0" - -[colors.bright] -black = "#4c566a" -red = "#bf616a" -green = "#a3be8c" -yellow = "#ebcb8b" -blue = "#81a1c1" -magenta = "#b48ead" -cyan = "#8fbcbb" -white = "#eceff4" - -[colors.dim] -black = "#373e4d" -red = "#94545d" -green = "#809575" -yellow = "#b29e75" -blue = "#68809a" -magenta = "#8c738c" -cyan = "#6d96a5" -white = "#aeb3bb" diff --git a/themes/nord/colors.toml b/themes/nord/colors.toml new file mode 100644 index 00000000..9ff8d33d --- /dev/null +++ b/themes/nord/colors.toml @@ -0,0 +1,26 @@ +accent = "#81a1c1" +active_border_color = "#81A1C1" +active_tab_background = "#2E3440" + +cursor = "#d8dee9" +foreground = "#d8dee9" +background = "#2e3440" +selection_foreground = "#d8dee9" +selection_background = "#4c566a" + +color0 = "#3b4252" +color1 = "#bf616a" +color2 = "#a3be8c" +color3 = "#ebcb8b" +color4 = "#81a1c1" +color5 = "#b48ead" +color6 = "#88c0d0" +color7 = "#e5e9f0" +color8 = "#4c566a" +color9 = "#bf616a" +color10 = "#a3be8c" +color11 = "#ebcb8b" +color12 = "#81a1c1" +color13 = "#b48ead" +color14 = "#8fbcbb" +color15 = "#eceff4" diff --git a/themes/nord/ghostty.conf b/themes/nord/ghostty.conf deleted file mode 100644 index a93dbc9e..00000000 --- a/themes/nord/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Nord diff --git a/themes/nord/hyprland.conf b/themes/nord/hyprland.conf deleted file mode 100644 index ac91e8bb..00000000 --- a/themes/nord/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(D8DEE9) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/nord/hyprlock.conf b/themes/nord/hyprlock.conf deleted file mode 100644 index 7726df47..00000000 --- a/themes/nord/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) -$check_color = rgba(136, 192, 208, 1.0) diff --git a/themes/nord/kitty.conf b/themes/nord/kitty.conf deleted file mode 100644 index 91b570ff..00000000 --- a/themes/nord/kitty.conf +++ /dev/null @@ -1,40 +0,0 @@ -# Nord Colorscheme for Kitty - -foreground #D8DEE9 -background #2E3440 -selection_foreground #000000 -selection_background #FFFACD -url_color #0087BD -cursor #81A1C1 - -# black -color0 #3B4252 -color8 #4C566A - -# red -color1 #BF616A -color9 #BF616A - -# green -color2 #A3BE8C -color10 #A3BE8C - -# yellow -color3 #EBCB8B -color11 #EBCB8B - -# blue -color4 #81A1C1 -color12 #81A1C1 - -# magenta -color5 #B48EAD -color13 #B48EAD - -# cyan -color6 #88C0D0 -color14 #8FBCBB - -# white -color7 #E5E9F0 -color15 #ECEFF4 diff --git a/themes/nord/mako.ini b/themes/nord/mako.ini deleted file mode 100644 index 5eaadd9a..00000000 --- a/themes/nord/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#d8dee9 -border-color=#D8DEE9 -background-color=#2e3440 diff --git a/themes/nord/preview.png b/themes/nord/preview.png index 4e36427f..07a1692b 100644 Binary files a/themes/nord/preview.png and b/themes/nord/preview.png differ diff --git a/themes/nord/swayosd.css b/themes/nord/swayosd.css deleted file mode 100644 index db1b40d8..00000000 --- a/themes/nord/swayosd.css +++ /dev/null @@ -1,6 +0,0 @@ -@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/nord/walker.css b/themes/nord/walker.css deleted file mode 100644 index 2e20d172..00000000 --- a/themes/nord/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/nord/waybar.css b/themes/nord/waybar.css deleted file mode 100644 index bc2a99d4..00000000 --- a/themes/nord/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #d8dee9; -@define-color background #2e3440; diff --git a/themes/osaka-jade/alacritty.toml b/themes/osaka-jade/alacritty.toml deleted file mode 100644 index 3cb8513a..00000000 --- a/themes/osaka-jade/alacritty.toml +++ /dev/null @@ -1,28 +0,0 @@ -[colors] -[colors.primary] -background = '#111c18' -foreground = '#C1C497' - -[colors.normal] -black = "#23372B" -red = "#FF5345" -green = "#549e6a" -yellow = "#459451" -blue = "#509475" -magenta = "#D2689C" -cyan = "#2DD5B7" -white = "#F6F5DD" - -[colors.bright] -black = "#53685B" -red = "#db9f9c" -green = "#63b07a" -yellow = "#E5C736" -blue = "#ACD4CF" -magenta = "#75bbb3" -cyan = "#8CD3CB" -white = "#9eebb3" - -[colors.cursor] -text = "#000000" -cursor = "#D7C995" diff --git a/themes/osaka-jade/colors.toml b/themes/osaka-jade/colors.toml new file mode 100644 index 00000000..a93532dc --- /dev/null +++ b/themes/osaka-jade/colors.toml @@ -0,0 +1,26 @@ +accent = "#509475" +active_border_color = "#509475" +active_tab_background = "#C1C497" + +cursor = "#D7C995" +foreground = "#C1C497" +background = "#111c18" +selection_foreground = "#111C18" +selection_background = "#C1C497" + +color0 = "#23372B" +color1 = "#FF5345" +color2 = "#549e6a" +color3 = "#459451" +color4 = "#509475" +color5 = "#D2689C" +color6 = "#2DD5B7" +color7 = "#F6F5DD" +color8 = "#53685B" +color9 = "#db9f9c" +color10 = "#63b07a" +color11 = "#E5C736" +color12 = "#ACD4CF" +color13 = "#75bbb3" +color14 = "#8CD3CB" +color15 = "#9eebb3" diff --git a/themes/osaka-jade/ghostty.conf b/themes/osaka-jade/ghostty.conf deleted file mode 100644 index 75eb6685..00000000 --- a/themes/osaka-jade/ghostty.conf +++ /dev/null @@ -1,25 +0,0 @@ -# primary -background = #111c18 -foreground = #C1C497 -cursor-color = #D7C995 -cursor-text = #000000 - -# normal colors -palette = 0=#23372B -palette = 1=#FF5345 -palette = 2=#549e6a -palette = 3=#459451 -palette = 4=#509475 -palette = 5=#D2689C -palette = 6=#2DD5B7 -palette = 7=#F6F5DD - -# bright colors -palette = 8=#53685B -palette = 9=#db9f9c -palette = 10=#63b07a -palette = 11=#E5C736 -palette = 12=#ACD4CF -palette = 13=#75bbb3 -palette = 14=#8CD3CB -palette = 15=#9eebb3 diff --git a/themes/osaka-jade/hyprland.conf b/themes/osaka-jade/hyprland.conf deleted file mode 100644 index fd7c0363..00000000 --- a/themes/osaka-jade/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(71CEAD) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/osaka-jade/hyprlock.conf b/themes/osaka-jade/hyprlock.conf deleted file mode 100644 index 885b89d0..00000000 --- a/themes/osaka-jade/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$color = rgb(7, 40, 32) -$inner_color = rgb(7, 40, 32) -$outer_color = rgb(167, 172, 132) -$font_color = rgb(167, 172, 132) -$check_color = rgb(131, 162, 152) diff --git a/themes/osaka-jade/kitty.conf b/themes/osaka-jade/kitty.conf deleted file mode 100644 index cd6c84e5..00000000 --- a/themes/osaka-jade/kitty.conf +++ /dev/null @@ -1,44 +0,0 @@ -## name :osaka-jade -foreground #C1C497 -background #111C18 -selection_foreground #111C18 -selection_background #C1C497 -cursor #D7C995 -cursor_text_color #000000 -active_tab_foreground #111C18 -active_tab_background #C1C497 -inactive_tab_foreground #C1C497 -inactive_tab_background #111C18 - -# black -color0 #23372B -color8 #53685B - -# red -color1 #FF5345 -color9 #DB9F9C - -# green -color2 #549E6A -color10 #63b07a - -# yellow -color3 #459451 -color11 #E5C736 - -# blue -color4 #509475 -color12 #ACD4CF - -# magenta -color5 #D2689C -color13 #75BBB3 - -# cyan -color6 #2DD5B7 -color14 #8CD3CB - -# white -color7 #F6F5DD -color15 #9EEBB3 - diff --git a/themes/osaka-jade/mako.ini b/themes/osaka-jade/mako.ini deleted file mode 100644 index 22fe2aae..00000000 --- a/themes/osaka-jade/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#C1C497 -border-color=#214237 -background-color=#11221C diff --git a/themes/osaka-jade/preview.png b/themes/osaka-jade/preview.png index bd99eed0..4b446055 100644 Binary files a/themes/osaka-jade/preview.png and b/themes/osaka-jade/preview.png differ diff --git a/themes/osaka-jade/swayosd.css b/themes/osaka-jade/swayosd.css deleted file mode 100644 index 1558ad4d..00000000 --- a/themes/osaka-jade/swayosd.css +++ /dev/null @@ -1,5 +0,0 @@ -@define-color background-color #11221C; -@define-color border-color #589A5F; -@define-color label #C0C396; -@define-color image #C0C396; -@define-color progress #C0C396; diff --git a/themes/osaka-jade/walker.css b/themes/osaka-jade/walker.css deleted file mode 100644 index ff99bbb9..00000000 --- a/themes/osaka-jade/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@define-color selected-text #e1b55e; -@define-color text #ebfff2; -@define-color base #11221C; -@define-color border #214237; -@define-color foreground #11221C; -@define-color background #11221C; diff --git a/themes/osaka-jade/waybar.css b/themes/osaka-jade/waybar.css deleted file mode 100644 index 7cfd5372..00000000 --- a/themes/osaka-jade/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #e6d8ba; -@define-color background #11221C; diff --git a/themes/ristretto/alacritty.toml b/themes/ristretto/alacritty.toml deleted file mode 100644 index 45236efd..00000000 --- a/themes/ristretto/alacritty.toml +++ /dev/null @@ -1,33 +0,0 @@ -[colors] - -[colors.normal] -black = "#72696a" -red = "#fd6883" -green = "#adda78" -yellow = "#f9cc6c" -blue = "#f38d70" -magenta = "#a8a9eb" -cyan = "#85dacc" -white = "#e6d9db" - -[colors.bright] -black = "#948a8b" -red = "#ff8297" -green = "#c8e292" -yellow = "#fcd675" -blue = "#f8a788" -magenta = "#bebffd" -cyan = "#9bf1e1" -white = "#f1e5e7" - -[colors.cursor] -cursor = '#c3b7b8' -text = '#2c2525' - -[colors.primary] -background = '#2c2525' -foreground = '#e6d9db' - -[colors.selection] -background = '#403e41' -text = '#e6d9db' diff --git a/themes/ristretto/colors.toml b/themes/ristretto/colors.toml new file mode 100644 index 00000000..948c4d39 --- /dev/null +++ b/themes/ristretto/colors.toml @@ -0,0 +1,26 @@ +accent = "#f38d70" +active_border_color = "#e6d9db" +active_tab_background = "#f9cc6c" + +cursor = "#c3b7b8" +foreground = "#e6d9db" +background = "#2c2525" +selection_foreground = "#e6d9db" +selection_background = "#403e41" + +color0 = "#72696a" +color1 = "#fd6883" +color2 = "#adda78" +color3 = "#f9cc6c" +color4 = "#f38d70" +color5 = "#a8a9eb" +color6 = "#85dacc" +color7 = "#e6d9db" +color8 = "#948a8b" +color9 = "#ff8297" +color10 = "#c8e292" +color11 = "#fcd675" +color12 = "#f8a788" +color13 = "#bebffd" +color14 = "#9bf1e1" +color15 = "#f1e5e7" diff --git a/themes/ristretto/ghostty.conf b/themes/ristretto/ghostty.conf deleted file mode 100644 index f4ba692b..00000000 --- a/themes/ristretto/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Monokai Pro Ristretto diff --git a/themes/ristretto/hyprland.conf b/themes/ristretto/hyprland.conf deleted file mode 100644 index d8ffcdb9..00000000 --- a/themes/ristretto/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(e6d9db) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/ristretto/hyprlock.conf b/themes/ristretto/hyprlock.conf deleted file mode 100644 index 71c8b78a..00000000 --- a/themes/ristretto/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$color = rgba(44,37,37,1.0) -$inner_color = rgba(44,37,37,0.8) -$outer_color = rgba(230,217,219,1.0) -$font_color = rgba(230,217,219,1.0) -$check_color = rgba(253,104,131,1.0) diff --git a/themes/ristretto/kitty.conf b/themes/ristretto/kitty.conf deleted file mode 100644 index 7640e7cc..00000000 --- a/themes/ristretto/kitty.conf +++ /dev/null @@ -1,53 +0,0 @@ -## name : Ristretto - -foreground #e6d9db -background #2c2525 - -selection_foreground #e6d9db -selection_background #403e41 - -cursor #c3b7b8 -cursor_text_color #c3b7b8 - -url_color #e6d9db - -active_border_color #e6d9db -inactive_border_color #595959 -bell_border_color #595959 - -active_tab_foreground #2c2525 -active_tab_background #f9cc6c -inactive_tab_foreground #e6d9db -inactive_tab_background #2c2525 -tab_bar_background #404040 - -mark1_foreground #2c2525 -mark1_background #404040 -mark2_foreground #2c2525 -mark2_background #2c2525 -mark3_foreground #2c2525 -mark3_background #a6a6a6 - -color0 #72696a -color8 #948a8b - -color1 #fd6883 -color9 #ff8297 - -color2 #adda78 -color10 #c8e292 - -color3 #f9cc6c -color11 #fcd675 - -color4 #f38d70 -color12 #f8a788 - -color5 #a8a9eb -color13 #bebffd - -color6 #85dacc -color14 #9bf1e1 - -color7 #e6d9db -color15 #f1e5e7 diff --git a/themes/ristretto/mako.ini b/themes/ristretto/mako.ini deleted file mode 100644 index 732a96df..00000000 --- a/themes/ristretto/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#e6d9db -border-color=#e6d9db -background-color=#2c2525 diff --git a/themes/ristretto/preview.png b/themes/ristretto/preview.png index d4ab5ca8..e138d51e 100644 Binary files a/themes/ristretto/preview.png and b/themes/ristretto/preview.png differ diff --git a/themes/ristretto/swayosd.css b/themes/ristretto/swayosd.css deleted file mode 100644 index cd9c5765..00000000 --- a/themes/ristretto/swayosd.css +++ /dev/null @@ -1,5 +0,0 @@ -@define-color background-color #2c2525; -@define-color border-color #c3b7b8; -@define-color label #c3b7b8; -@define-color image #c3b7b8; -@define-color progress #c3b7b8; diff --git a/themes/ristretto/walker.css b/themes/ristretto/walker.css deleted file mode 100644 index ab2cfd84..00000000 --- a/themes/ristretto/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@define-color selected-text #fabd2f; -@define-color text #e6d9db; -@define-color base #2c2525; -@define-color border #e6d9db; -@define-color foreground #e6d9db; -@define-color background #2c2525; diff --git a/themes/ristretto/waybar.css b/themes/ristretto/waybar.css deleted file mode 100644 index a6be70ac..00000000 --- a/themes/ristretto/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #e6d9db; -@define-color background #2c2525; diff --git a/themes/rose-pine/alacritty.toml b/themes/rose-pine/alacritty.toml deleted file mode 100644 index 947e42da..00000000 --- a/themes/rose-pine/alacritty.toml +++ /dev/null @@ -1,72 +0,0 @@ -[colors.primary] -foreground = "#575279" -background = "#faf4ed" -dim_foreground = "#797593" -bright_foreground = "#575279" - -[colors.cursor] -text = "#575279" -cursor = "#cecacd" - -[colors.vi_mode_cursor] -text = "#575279" -cursor = "#cecacd" - -[colors.search.matches] -foreground = "#797593" -background = "#f2e9e1" - -[colors.search.focused_match] -foreground = "#faf4ed" -background = "#d7827e" - -[colors.hints.start] -foreground = "#797593" -background = "#fffaf3" - -[colors.hints.end] -foreground = "#9893a5" -background = "#fffaf3" - -[colors.line_indicator] -foreground = "None" -background = "None" - -[colors.footer_bar] -foreground = "#575279" -background = "#fffaf3" - -[colors.selection] -text = "#575279" -background = "#dfdad9" - -[colors.normal] -black = "#f2e9e1" -red = "#b4637a" -green = "#286983" -yellow = "#ea9d34" -blue = "#56949f" -magenta = "#907aa9" -cyan = "#d7827e" -white = "#575279" - -[colors.bright] -black = "#9893a5" -red = "#b4637a" -green = "#286983" -yellow = "#ea9d34" -blue = "#56949f" -magenta = "#907aa9" -cyan = "#d7827e" -white = "#575279" - -[colors.dim] -black = "#9893a5" -red = "#b4637a" -green = "#286983" -yellow = "#ea9d34" -blue = "#56949f" -magenta = "#907aa9" -cyan = "#d7827e" -white = "#575279" - diff --git a/themes/rose-pine/colors.toml b/themes/rose-pine/colors.toml new file mode 100644 index 00000000..1321c13d --- /dev/null +++ b/themes/rose-pine/colors.toml @@ -0,0 +1,26 @@ +accent = "#56949f" +active_border_color = "#595959" +active_tab_background = "#fffaf3" + +cursor = "#cecacd" +foreground = "#575279" +background = "#faf4ed" +selection_foreground = "#575279" +selection_background = "#dfdad9" + +color0 = "#f2e9e1" +color1 = "#b4637a" +color2 = "#286983" +color3 = "#ea9d34" +color4 = "#56949f" +color5 = "#907aa9" +color6 = "#d7827e" +color7 = "#575279" +color8 = "#9893a5" +color9 = "#b4637a" +color10 = "#286983" +color11 = "#ea9d34" +color12 = "#56949f" +color13 = "#907aa9" +color14 = "#d7827e" +color15 = "#575279" diff --git a/themes/rose-pine/ghostty.conf b/themes/rose-pine/ghostty.conf deleted file mode 100644 index 33bbaa74..00000000 --- a/themes/rose-pine/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = Rose Pine Dawn diff --git a/themes/rose-pine/hyprland.conf b/themes/rose-pine/hyprland.conf deleted file mode 100644 index 34d47643..00000000 --- a/themes/rose-pine/hyprland.conf +++ /dev/null @@ -1,9 +0,0 @@ -$activeBorderColor = rgb(575279) - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} diff --git a/themes/rose-pine/hyprlock.conf b/themes/rose-pine/hyprlock.conf deleted file mode 100644 index 890e7e5f..00000000 --- a/themes/rose-pine/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) -$check_color = rgba(136, 192, 208, 1.0) diff --git a/themes/rose-pine/kitty.conf b/themes/rose-pine/kitty.conf deleted file mode 100644 index 6c021dca..00000000 --- a/themes/rose-pine/kitty.conf +++ /dev/null @@ -1,51 +0,0 @@ -## name: Rose-Pine - -foreground #575279 -background #faf4ed - -selection_foreground #575279 -selection_background #dfdad9 - -cursor #cecacd -cursor_text_color #575279 - -url_color #575279 - -active_border_color #595959 -inactive_border_color #595959 -bell_border_color #595959 - -active_tab_foreground #575279 -active_tab_background #fffaf3 -inactive_tab_foreground #575279 -inactive_tab_background #fffaf3 -tab_bar_background #575279 - -mark1_foreground #faf4ed -mark1_background #fffaf3 -mark2_foreground #9893a5 -mark2_background #fffaf3 - -color0 #f2e9e1 -color8 #9893a5 - -color1 #b4637a -color9 #b4637a - -color2 #286983 -color10 #286983 - -color3 #ea9d34 -color11 #ea9d34 - -color4 #56949f -color12 #56949f - -color5 #907aa9 -color13 #907aa9 - -color6 #d7827e -color14 #d7827e - -color7 #575279 -color15 #575279 diff --git a/themes/rose-pine/mako.ini b/themes/rose-pine/mako.ini deleted file mode 100644 index f2284fc8..00000000 --- a/themes/rose-pine/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#575279 -border-color=#575279 -background-color=#faf4ed diff --git a/themes/rose-pine/preview.png b/themes/rose-pine/preview.png index 02d85d08..70392181 100644 Binary files a/themes/rose-pine/preview.png and b/themes/rose-pine/preview.png differ diff --git a/themes/rose-pine/swayosd.css b/themes/rose-pine/swayosd.css deleted file mode 100644 index e58cc080..00000000 --- a/themes/rose-pine/swayosd.css +++ /dev/null @@ -1,6 +0,0 @@ -@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/rose-pine/walker.css b/themes/rose-pine/walker.css deleted file mode 100644 index a6188c87..00000000 --- a/themes/rose-pine/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/rose-pine/waybar.css b/themes/rose-pine/waybar.css deleted file mode 100644 index d2e59424..00000000 --- a/themes/rose-pine/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #575279; -@define-color background #faf4ed; diff --git a/themes/tokyo-night/alacritty.toml b/themes/tokyo-night/alacritty.toml deleted file mode 100644 index 19c1e22d..00000000 --- a/themes/tokyo-night/alacritty.toml +++ /dev/null @@ -1,29 +0,0 @@ -[colors] -[colors.primary] -background = '#1a1b26' -foreground = '#a9b1d6' - -# Normal colors -[colors.normal] -black = '#32344a' -red = '#f7768e' -green = '#9ece6a' -yellow = '#e0af68' -blue = '#7aa2f7' -magenta = '#ad8ee6' -cyan = '#449dab' -white = '#787c99' - -# Bright colors -[colors.bright] -black = '#444b6a' -red = '#ff7a93' -green = '#b9f27c' -yellow = '#ff9e64' -blue = '#7da6ff' -magenta = '#bb9af7' -cyan = '#0db9d7' -white = '#acb0d0' - -[colors.selection] -background = '#7aa2f7' diff --git a/themes/tokyo-night/colors.toml b/themes/tokyo-night/colors.toml new file mode 100644 index 00000000..7fb020cf --- /dev/null +++ b/themes/tokyo-night/colors.toml @@ -0,0 +1,26 @@ +accent = "#7aa2f7" +active_border_color = "#7aa2f7" +active_tab_background = "#7aa2f7" + +cursor = "#c0caf5" +foreground = "#a9b1d6" +background = "#1a1b26" +selection_foreground = "#c0caf5" +selection_background = "#7aa2f7" + +color0 = "#32344a" +color1 = "#f7768e" +color2 = "#9ece6a" +color3 = "#e0af68" +color4 = "#7aa2f7" +color5 = "#ad8ee6" +color6 = "#449dab" +color7 = "#787c99" +color8 = "#444b6a" +color9 = "#ff7a93" +color10 = "#b9f27c" +color11 = "#ff9e64" +color12 = "#7da6ff" +color13 = "#bb9af7" +color14 = "#0db9d7" +color15 = "#acb0d0" diff --git a/themes/tokyo-night/ghostty.conf b/themes/tokyo-night/ghostty.conf deleted file mode 100644 index 845659fb..00000000 --- a/themes/tokyo-night/ghostty.conf +++ /dev/null @@ -1 +0,0 @@ -theme = TokyoNight diff --git a/themes/tokyo-night/hyprland.conf b/themes/tokyo-night/hyprland.conf deleted file mode 100644 index 779a27d4..00000000 --- a/themes/tokyo-night/hyprland.conf +++ /dev/null @@ -1,10 +0,0 @@ -$activeBorderColor = rgba(33ccffee) rgba(00ff99ee) 45deg - -general { - col.active_border = $activeBorderColor -} - -group { - col.border_active = $activeBorderColor -} - diff --git a/themes/tokyo-night/hyprlock.conf b/themes/tokyo-night/hyprlock.conf deleted file mode 100644 index 7ef8abb3..00000000 --- a/themes/tokyo-night/hyprlock.conf +++ /dev/null @@ -1,5 +0,0 @@ -$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) -$check_color = rgba(68, 157, 171, 1.0) diff --git a/themes/tokyo-night/kitty.conf b/themes/tokyo-night/kitty.conf deleted file mode 100644 index 37a5bd27..00000000 --- a/themes/tokyo-night/kitty.conf +++ /dev/null @@ -1,48 +0,0 @@ -## name: Tokyo Night -## license: MIT -## author: Folke Lemaitre -## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_night.conf - - -background #1a1b26 -foreground #c0caf5 -selection_background #283457 -selection_foreground #c0caf5 -url_color #73daca -cursor #c0caf5 -cursor_text_color #1a1b26 - -# Tabs -active_tab_background #7aa2f7 -active_tab_foreground #16161e -inactive_tab_background #292e42 -inactive_tab_foreground #545c7e -#tab_bar_background #15161e - -# Windows -active_border_color #7aa2f7 -inactive_border_color #292e42 - -# normal -color0 #15161e -color1 #f7768e -color2 #9ece6a -color3 #e0af68 -color4 #7aa2f7 -color5 #bb9af7 -color6 #7dcfff -color7 #a9b1d6 - -# bright -color8 #414868 -color9 #f7768e -color10 #9ece6a -color11 #e0af68 -color12 #7aa2f7 -color13 #bb9af7 -color14 #7dcfff -color15 #c0caf5 - -# extended colors -color16 #ff9e64 -color17 #db4b4b diff --git a/themes/tokyo-night/mako.ini b/themes/tokyo-night/mako.ini deleted file mode 100644 index b1649be1..00000000 --- a/themes/tokyo-night/mako.ini +++ /dev/null @@ -1,5 +0,0 @@ -include=~/.local/share/omarchy/default/mako/core.ini - -text-color=#c0caf5 -border-color=#33ccff -background-color=#1a1b26 diff --git a/themes/tokyo-night/preview.png b/themes/tokyo-night/preview.png index 2c0eb4fa..8dab01d4 100644 Binary files a/themes/tokyo-night/preview.png and b/themes/tokyo-night/preview.png differ diff --git a/themes/tokyo-night/swayosd.css b/themes/tokyo-night/swayosd.css deleted file mode 100644 index 1300b6ad..00000000 --- a/themes/tokyo-night/swayosd.css +++ /dev/null @@ -1,6 +0,0 @@ -@define-color background-color #1a1b26; -@define-color border-color #33ccff; -@define-color label #a9b1d6; -@define-color image #a9b1d6; -@define-color progress #a9b1d6; - diff --git a/themes/tokyo-night/walker.css b/themes/tokyo-night/walker.css deleted file mode 100644 index aeb271d1..00000000 --- a/themes/tokyo-night/walker.css +++ /dev/null @@ -1,6 +0,0 @@ -@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; diff --git a/themes/tokyo-night/waybar.css b/themes/tokyo-night/waybar.css deleted file mode 100644 index ecd3da04..00000000 --- a/themes/tokyo-night/waybar.css +++ /dev/null @@ -1,2 +0,0 @@ -@define-color foreground #cdd6f4; -@define-color background #1a1b26; diff --git a/version b/version index 94ff29cc..b347b11e 100644 --- a/version +++ b/version @@ -1 +1 @@ -3.1.1 +3.2.3