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-branch-set b/bin/omarchy-branch-set new file mode 100755 index 00000000..ef531e91 --- /dev/null +++ b/bin/omarchy-branch-set @@ -0,0 +1,14 @@ +#!/bin/bash + +if (($# == 0)); then + echo "Usage: omarchy-channel-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..067aad2d --- /dev/null +++ b/bin/omarchy-channel-set @@ -0,0 +1,15 @@ +#!/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 "edge" && omarchy-refresh-pacman "stable" ;; +"dev") omarchy-branch-set "dev" && omarchy-refresh-pacman "edge" ;; +*) echo "Unknown channel: $channel"; exit 1; ;; +esac diff --git a/bin/omarchy-cmd-first-run b/bin/omarchy-cmd-first-run index c8837e00..b400a584 100755 --- a/bin/omarchy-cmd-first-run +++ b/bin/omarchy-cmd-first-run @@ -12,6 +12,7 @@ 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/welcome.sh" 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..156b1180 100755 --- a/bin/omarchy-cmd-screensaver +++ b/bin/omarchy-cmd-screensaver @@ -1,28 +1,31 @@ #!/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 } 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) + effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | grep -Ev '^(dev_worm)$' | 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" & + --frame-rate 120 --canvas-width 0 --canvas-height 0 --reuse-canvas --anchor-canvas c --anchor-text c\ + --no-eol --no-restore-cursor $effect & while pgrep -x tte >/dev/null; do - if read -n 1 -t 3 || ! screensaver_in_focus; then + if read -n 1 -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-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-hyprland-window-pop b/bin/omarchy-hyprland-window-pop index ac700bf5..d1e8ef3c 100755 --- a/bin/omarchy-hyprland-window-pop +++ b/bin/omarchy-hyprland-window-pop @@ -2,21 +2,45 @@ # Toggle to pop-out a tile to stay fixed on a display basis. -active=$(hyprctl activewindow -j) -pinned=$(echo "$active" | jq .pinned) -addr=$(echo "$active" | jq -r ".address") -[ -z "$addr" ] && { echo "No active window"; exit 0; } +# 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. -if [ "$pinned" = "true" ]; then +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;" -else + "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 togglefloating address:$addr;" \ - "dispatch centerwindow address:$addr;" \ - "dispatch pin address:$addr;" \ - "dispatch alterzorder top address:$addr;" \ - "dispatch tagwindow +pop address:$addr;" + "dispatch pin address:$addr;" \ + "dispatch alterzorder top address:$addr;" \ + "dispatch tagwindow +pop address:$addr;" fi diff --git a/bin/omarchy-install-dev-env b/bin/omarchy-install-dev-env index a1329a91..ca9925a0 100755 --- a/bin/omarchy-install-dev-env +++ b/bin/omarchy-install-dev-env @@ -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-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 0cea1a4c..e962f3f3 100755 --- a/bin/omarchy-install-terminal +++ b/bin/omarchy-install-terminal @@ -9,31 +9,43 @@ 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 - ;; +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 + if [[ $package == "alacritty" ]]; then mkdir -p ~/.local/share/applications - cp "$OMARCHY_PATH/applications/Alacritty.desktop" ~/.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 # Update xdg-terminals.list to prioritize the proper terminal 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 8505ff0e..135f4d79 100755 --- a/bin/omarchy-launch-about +++ b/bin/omarchy-launch-about @@ -1,3 +1,3 @@ #!/bin/bash -exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.Omarchy -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-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-editor b/bin/omarchy-launch-editor index f120001e..7597cfcc 100755 --- a/bin/omarchy-launch-editor +++ b/bin/omarchy-launch-editor @@ -4,7 +4,7 @@ omarchy-cmd-present "$EDITOR" || EDITOR=nvim case "$EDITOR" in nvim | vim | nano | micro | hx | helix) - exec setsid uwsm-app -- xdg-terminal-exec "$EDITOR" "$@" + 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 c074cbf6..cc779efd 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 -- xdg-terminal-exec --app-id=com.omarchy.Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done" +exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.omarchy.terminal --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done" 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..8c9cdfcc --- /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..6fa5b2c4 100755 --- a/bin/omarchy-launch-screensaver +++ b/bin/omarchy-launch-screensaver @@ -6,7 +6,7 @@ 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 @@ -14,15 +14,36 @@ if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ] fi 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 b73cbadc..d942f680 100755 --- a/bin/omarchy-launch-wifi +++ b/bin/omarchy-launch-wifi @@ -1,3 +1,4 @@ #!/bin/bash -exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.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..f57d4526 100755 --- a/bin/omarchy-lock-screen +++ b/bin/omarchy-lock-screen @@ -9,4 +9,4 @@ if pgrep -x "1password" >/dev/null; then 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 b9f8501c..b80d6178 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() { - xdg-terminal-exec --app-id=com.omarchy.Omarchy "$@" + 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*) xdg-terminal-exec --app-id=com.omarchy.Wiremix -e wiremix ;; - *Wifi*) - rfkill unblock wifi - omarchy-launch-wifi - ;; - *Bluetooth*) - rfkill unblock bluetooth - blueberry - ;; + *Audio*) omarchy-launch-or-focus-tui wiremix ;; + *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,7 +252,7 @@ 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" ;; + *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 ;; @@ -301,10 +290,11 @@ show_install_ai_menu() { } 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*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;; + *Xbox*) present_terminal omarchy-install-xbox-controllers ;; *) show_install_menu ;; esac } @@ -448,8 +438,8 @@ show_system_menu() { *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 } 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-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-pacman b/bin/omarchy-refresh-pacman new file mode 100755 index 00000000..36d9678f --- /dev/null +++ b/bin/omarchy-refresh-pacman @@ -0,0 +1,20 @@ +#!/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 +sudo pacman -Syu --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..e32e2fcb 100755 --- a/bin/omarchy-refresh-walker +++ b/bin/omarchy-refresh-walker @@ -1,5 +1,9 @@ #!/bin/bash +# Ensure walker is set to autostart +mkdir -p ~/.config/autostart/ +cp $OMARCHY_PATH/autostart/walker.desktop ~/.config/autostart/ + omarchy-refresh-config walker/config.toml omarchy-refresh-config elephant/calc.toml omarchy-refresh-config elephant/desktopapplications.toml 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 1b5f4ea1..b3886e18 100755 --- a/bin/omarchy-restart-walker +++ b/bin/omarchy-restart-walker @@ -12,11 +12,11 @@ if [[ $EUID -eq 0 ]]; then # 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 & + systemctl --user restart elephant.service + setsid walker --gapplication-service & " else - setsid uwsm-app -- elephant & - wait 2 - setsid uwsm-app -- walker --gapplication-service & + elephant service enable 2>/dev/null + systemctl --user restart elephant.service + setsid walker --gapplication-service & 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-theme-set b/bin/omarchy-theme-set index c90d11eb..40404265 100755 --- a/bin/omarchy-theme-set +++ b/bin/omarchy-theme-set @@ -28,12 +28,12 @@ if pgrep -x waybar >/dev/null; then omarchy-restart-waybar fi omarchy-restart-swayosd +omarchy-restart-terminal hyprctl reload pkill -SIGUSR2 btop makoctl reload # Change gnome, browser, vscode, cursor themes -omarchy-theme-set-terminal omarchy-theme-set-gnome omarchy-theme-set-browser omarchy-theme-set-vscode 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-obsidian b/bin/omarchy-theme-set-obsidian index 4ff70d4c..83980f6b 100755 --- a/bin/omarchy-theme-set-obsidian +++ b/bin/omarchy-theme-set-obsidian @@ -391,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 diff --git a/bin/omarchy-tui-install b/bin/omarchy-tui-install index 916db654..657b70a6 100755 --- a/bin/omarchy-tui-install +++ b/bin/omarchy-tui-install @@ -5,7 +5,7 @@ if [ "$#" -ne 4 ]; then 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 +43,7 @@ cat >"$DESKTOP_FILE" < -ignored_packages=$(omarchy-pkg-ignored) - 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 -Syu --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" 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-windows-vm b/bin/omarchy-windows-vm index 2b223df3..3ef9eb11 100755 --- a/bin/omarchy-windows-vm +++ b/bin/omarchy-windows-vm @@ -327,7 +327,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="" 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..ddee6f36 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,7 +128,7 @@ "break", { "type": "custom", - "format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" + "format": "\u001b[90m┌────────────────Age / Uptime / Update───────────────┐" }, { "type": "command", @@ -135,6 +141,12 @@ "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/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 49d2edca..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 @@ -25,3 +25,10 @@ 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 + +# Slowdown mouse scrolling +mouse-scroll-multiplier = 0.95 diff --git a/config/hypr/bindings.conf b/config/hypr/bindings.conf index 698e1ee9..cb4c1ed2 100644 --- a/config/hypr/bindings.conf +++ b/config/hypr/bindings.conf @@ -1,17 +1,14 @@ # Application bindings -$terminal = uwsm-app -- xdg-terminal-exec -$browser = omarchy-launch-browser - -bindd = SUPER, RETURN, Terminal, exec, $terminal --dir="$(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, T, Activity, exec, omarchy-launch-tui btop +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 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/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..fb982bc1 100644 --- a/config/hypr/hyprlock.conf +++ b/config/hypr/hyprlock.conf @@ -22,10 +22,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/input.conf b/config/hypr/input.conf index 6bbee49b..fd0cd701 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 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..176b0c9e --- /dev/null +++ b/config/hypr/xdph.conf @@ -0,0 +1,3 @@ +screencopy { + allow_token_by_default = true +} diff --git a/config/imv/config b/config/imv/config index f54c29af..46493240 100644 --- a/config/imv/config +++ b/config/imv/config @@ -1,2 +1,13 @@ [binds] - = exec lp $imv_current_file + +# 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..04b7440f 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,7 +1,7 @@ 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 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/walker/config.toml b/config/walker/config.toml index 240c95e0..5f9e1237 100644 --- a/config/walker/config.toml +++ b/config/walker/config.toml @@ -2,6 +2,7 @@ force_keyboard_focus = true # fo selection_wrap = true # wrap list if at bottom or top theme = "omarchy-default" # theme to use additional_theme_location = "~/.local/share/omarchy/default/walker/themes/" +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" @@ -10,9 +11,9 @@ additional_theme_location = "~/.local/share/omarchy/default/walker/themes/" quick_activate = [] [providers] +max_results = 256 # 256 should be enough for everyone default = [ "desktopapplications", - "menus", "websearch", ] # providers to be queried by default diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 6bd34ee4..f0191c14 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": { @@ -56,7 +57,7 @@ "cpu": { "interval": 5, "format": "󰍛", - "on-click": "xdg-terminal-exec btop" + "on-click": "omarchy-launch-or-focus-tui btop" }, "clock": { "format": "{:L%A %H:%M}", @@ -99,13 +100,14 @@ "bluetooth": { "format": "", "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": "xdg-terminal-exec --app-id=com.omarchy.Wiremix -e wiremix", + "on-click": "omarchy-launch-or-focus-tui wiremix", "on-click-right": "pamixer -t", "tooltip-format": "Playing at {volume}%", "scroll-step": 5, @@ -123,7 +125,7 @@ "modules": ["custom/expand-icon", "tray"] }, "custom/expand-icon": { - "format": "", + "format": "", "tooltip": false }, "custom/screenrecording-indicator": { 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/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/elephant/omarchy_themes.lua b/default/elephant/omarchy_themes.lua new file mode 100644 index 00000000..1f21d847 --- /dev/null +++ b/default/elephant/omarchy_themes.lua @@ -0,0 +1,70 @@ +-- +-- Dynamic Omarchy Theme Menu for Elephant/Walker +-- +Name = "omarchythemes" +NamePretty = "Omarchy Themes" + +-- The main function elephant will call +function GetEntries() + local entries = {} + local theme_dir = os.getenv("HOME") .. "/.config/omarchy/themes" + + -- First, get all theme directories + local find_dirs_cmd = "find -L '" .. theme_dir .. "' -mindepth 1 -maxdepth 1 -type d 2>/dev/null" + + local handle = io.popen(find_dirs_cmd) + if not handle then + return entries + end + + for theme_path in handle:lines() do + local theme_name = theme_path:match(".*/(.+)$") + + if theme_name then + -- find preview image + local find_preview_cmd = "find -L '" + .. theme_path + .. "' -maxdepth 1 -type f \\( -name 'preview.png' -o -name 'preview.jpg' \\) 2>/dev/null | head -n 1" + local preview_handle = io.popen(find_preview_cmd) + local preview_path = nil + + if preview_handle then + preview_path = preview_handle:read("*l") + preview_handle:close() + end + + -- If no preview found, use first image from backgrounds folder + if not preview_path or preview_path == "" then + local bg_cmd = "find -L '" + .. theme_path + .. "/backgrounds' -maxdepth 1 -type f \\( -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' \\) 2>/dev/null | head -n 1" + local bg_handle = io.popen(bg_cmd) + if bg_handle then + preview_path = bg_handle:read("*l") + bg_handle:close() + end + 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() + 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..d5fc8888 100644 --- a/default/hypr/apps/1password.conf +++ b/default/hypr/apps/1password.conf @@ -1 +1,2 @@ -windowrule = noscreenshare, class:^(1Password)$ +windowrule = noscreenshare, class:^(1[p|P]assword)$ +windowrule = tag +floating-window, class:^(1[p|P]assword)$ diff --git a/default/hypr/apps/browser.conf b/default/hypr/apps/browser.conf index cf9ae193..ad278edd 100644 --- a/default/hypr/apps/browser.conf +++ b/default/hypr/apps/browser.conf @@ -1,5 +1,5 @@ # Browser types -windowrule = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable|helium) +windowrule = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf) # Force chromium-based browsers into a tile to deal with --app bug diff --git a/default/hypr/apps/davinci-resolve.conf b/default/hypr/apps/davinci-resolve.conf new file mode 100644 index 00000000..33b04f2f --- /dev/null +++ b/default/hypr/apps/davinci-resolve.conf @@ -0,0 +1,2 @@ +# Focus floating DaVinci Resolve dialog windows +windowrule = stayfocused, class:.*[Rr]esolve.*, floating:1 diff --git a/default/hypr/apps/jetbrains.conf b/default/hypr/apps/jetbrains.conf index f9273df1..6e8708af 100644 --- a/default/hypr/apps/jetbrains.conf +++ b/default/hypr/apps/jetbrains.conf @@ -1,9 +1,22 @@ -# JetBrains windows default size -windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$ +# Fix splash screen showing in weird places and prevent annoying focus takeovers +windowrule = tag +jetbrains-splash, class:^(jetbrains-.*)$, title:^(splash)$, floating:1 +windowrule = center, tag:jetbrains-splash +windowrule = nofocus, tag:jetbrains-splash +windowrule = noborder, tag:jetbrains-splash -# Fix tab dragging (tab titles are just one space) -windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$ +# Center popups/find windows +windowrule = tag +jetbrains, class:^(jetbrains-.*), title:^()$, floating:1 +windowrule = center, tag:jetbrains -# Allow dialogs (like "Send usage statistics") to be focusable and clickable -windowrule = unset,nofocus,class:^(.*jetbrains.*)$,title:^$ -windowrule = unset,noinitialfocus,class:^(.*jetbrains.*)$,title:^$ +# Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.) +windowrule = stayfocused, tag:jetbrains +windowrule = noborder, tag:jetbrains + +# For some reason tag:jetbrains does not work for size rule +windowrule = size >50% >50%, class:^(jetbrains-.*), title:^()$, floating:1 + +# Disable window flicker when autocomplete or tooltips appear +windowrule = noinitialfocus, class:^(jetbrains-.*)$, title:^(win.*)$, floating:1 + +# Disable mouse focus +windowrule = nofollowmouse, class:^(jetbrains-.*)$ diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf index 82300521..ccf2dd27 100644 --- a/default/hypr/apps/system.conf +++ b/default/hypr/apps/system.conf @@ -3,12 +3,12 @@ windowrule = float, tag:floating-window windowrule = center, tag:floating-window windowrule = size 875 600, tag:floating-window -windowrule = tag +floating-window, class:(blueberry.py|com.omarchy.Impala|com.omarchy.Wiremix|com.omarchy.Omarchy|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) +windowrule = tag +floating-window, 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, 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|.*wants to [open|save].*|[C|c]hoose.*) windowrule = float, class:org.gnome.Calculator # Fullscreen screensaver -windowrule = fullscreen, class:Screensaver +windowrule = fullscreen, 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)$ diff --git a/default/hypr/autostart.conf b/default/hypr/autostart.conf index 8588ac6f..0462f73a 100644 --- a/default/hypr/autostart.conf +++ b/default/hypr/autostart.conf @@ -6,8 +6,6 @@ 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) diff --git a/default/hypr/bindings/tiling-v2.conf b/default/hypr/bindings/tiling-v2.conf index 2589dd98..e984f73d 100644 --- a/default/hypr/bindings/tiling-v2.conf +++ b/default/hypr/bindings/tiling-v2.conf @@ -27,6 +27,7 @@ bindd = SUPER, code:15, Switch to workspace 6, workspace, 6 bindd = SUPER, code:16, Switch to workspace 7, workspace, 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 + [1-9] bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 @@ -38,6 +39,7 @@ bindd = SUPER SHIFT, code:15, Move window to workspace 6, movetoworkspace, 6 bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7 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 # Control scratchpad bindd = SUPER, S, Toggle scratchpad, togglespecialworkspace, scratchpad @@ -48,6 +50,10 @@ 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 + # 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 @@ -88,13 +94,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 +# Overload lateral window navigation for grouped windows +bindd = SUPER ALT, LEFT, Move grouped window focus left, changegroupactive, b +bindd = SUPER ALT, 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/utilities.conf b/default/hypr/bindings/utilities.conf index 0d414bd0..cdb852e5 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -18,6 +18,7 @@ bindd = SUPER SHIFT, BACKSPACE, Toggle workspace gaps, exec, omarchy-hyprland-wo 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 # Toggle idling bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle 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 791e6ebd..26a55948 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 } } 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/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/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/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/walker-elephant.sh b/install/config/walker-elephant.sh index e8e3330f..f4d5dffb 100644 --- a/install/config/walker-elephant.sh +++ b/install/config/walker-elephant.sh @@ -15,3 +15,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/wifi.sh b/install/first-run/wifi.sh index 758a84c4..f8d7fc8f 100644 --- a/install/first-run/wifi.sh +++ b/install/first-run/wifi.sh @@ -1,6 +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/omarchy-base.packages b/install/omarchy-base.packages index d2914907..8a55e7d0 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -4,15 +4,13 @@ 1password-beta 1password-cli aether -alacritty asdcontrol avahi bash-completion bat -blueberry +bluetui brightnessctl btop -cargo clang cups cups-browsed @@ -23,6 +21,7 @@ docker-buildx docker-compose dust evince +exfatprogs expac eza fastfetch @@ -33,6 +32,7 @@ fd ffmpegthumbnailer fontconfig fzf +ghostty github-cli gnome-calculator gnome-keyring @@ -64,12 +64,12 @@ less libsecret libyaml libqalculate -libreoffice +libreoffice-fresh llvm localsend luarocks mako -man +man-db mariadb-libs mise mpv @@ -99,6 +99,8 @@ python-poetry-core python-terminaltexteffects qt5-wayland ripgrep +ruby +rust satty sddm signal-desktop @@ -111,6 +113,7 @@ swayosd system-config-printer tldr tree-sitter-cli +tobi-try ttf-cascadia-mono-nerd ttf-ia-writer ttf-jetbrains-mono-nerd @@ -119,6 +122,7 @@ tzupdate ufw ufw-docker unzip +usage uwsm waybar wayfreeze diff --git a/install/omarchy-other.packages b/install/omarchy-other.packages index 1ece3ca4..8a7ae45a 100644 --- a/install/omarchy-other.packages +++ b/install/omarchy-other.packages @@ -35,7 +35,6 @@ pipewire pipewire-alsa pipewire-jack pipewire-pulse -qt5-remoteobjects qt6-wayland sassc snapper 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/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/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/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/1761269603.sh b/migrations/1761269603.sh index 35a8b06c..8d29f613 100644 --- a/migrations/1761269603.sh +++ b/migrations/1761269603.sh @@ -4,5 +4,4 @@ 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" - omarchy-state set restart-waybar-required fi 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 index 308dad36..e56d16ca 100644 --- a/migrations/1762121828.sh +++ b/migrations/1762121828.sh @@ -12,15 +12,9 @@ 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" - ;; + alacritty) desktop_id="Alacritty.desktop" ;; + ghostty) desktop_id="com.mitchellh.ghostty.desktop" ;; + kitty) desktop_id="kitty.desktop" ;; esac if [ -n "$desktop_id" ]; then 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/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/applications/Alacritty.desktop b/migrations/1763558828.sh similarity index 69% rename from applications/Alacritty.desktop rename to migrations/1763558828.sh index f53c813e..3da9eec0 100644 --- a/applications/Alacritty.desktop +++ b/migrations/1763558828.sh @@ -1,3 +1,8 @@ +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 @@ -19,3 +24,5 @@ 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/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/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/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/ethereal/alacritty.toml b/themes/ethereal/alacritty.toml new file mode 100644 index 00000000..215c3c09 --- /dev/null +++ b/themes/ethereal/alacritty.toml @@ -0,0 +1,28 @@ +[colors] +[colors.primary] +background = "#060B1E" +foreground = "#ffcead" + +[colors.normal] +black = "#060B1E" +red = "#ED5B5A" +green = "#92a593" +yellow = "#E9BB4F" +blue = "#7d82d9" +magenta = "#c89dc1" +cyan = "#a3bfd1" +white = "#F99957" + +[colors.bright] +black = "#6d7db6" +red = "#faaaa9" +green = "#c4cfc4" +yellow = "#f7dc9c" +blue = "#c2c4f0" +magenta = "#ead7e7" +cyan = "#dfeaf0" +white = "#ffcead" + +[colors.cursor] +text = "#060B1E" +cursor = "#ffcead" 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/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/ghostty.conf b/themes/ethereal/ghostty.conf new file mode 100644 index 00000000..1ac9168b --- /dev/null +++ b/themes/ethereal/ghostty.conf @@ -0,0 +1,23 @@ +# Background and foreground colors +background = #060B1E +foreground = #ffcead + +# Standard colors +palette = 0=#060B1E +palette = 1=#ED5B5A +palette = 2=#92a593 +palette = 3=#E9BB4F +palette = 4=#7d82d9 +palette = 5=#c89dc1 +palette = 6=#a3bfd1 +palette = 7=#F99957 + +# Bright colors +palette = 8=#6d7db6 +palette = 9=#faaaa9 +palette = 10=#c4cfc4 +palette = 11=#f7dc9c +palette = 12=#c2c4f0 +palette = 13=#ead7e7 +palette = 14=#dfeaf0 +palette = 15=#ffcead diff --git a/themes/ethereal/hyprland.conf b/themes/ethereal/hyprland.conf new file mode 100644 index 00000000..9b72328f --- /dev/null +++ b/themes/ethereal/hyprland.conf @@ -0,0 +1,12 @@ +# This file is not a full hyprland configuration. +# It is intended to be included in your main hyprland.conf. + +$activeBorderColor = rgb(4E85D8) + +general { + col.active_border = $activeBorderColor +} + +group { + col.border_active = $activeBorderColor +} diff --git a/themes/ethereal/hyprlock.conf b/themes/ethereal/hyprlock.conf new file mode 100644 index 00000000..7d9b62e2 --- /dev/null +++ b/themes/ethereal/hyprlock.conf @@ -0,0 +1,6 @@ +$color = rgba(6, 11, 30, 1) +$inner_color = rgba(6, 11, 30, 0.66) +$outer_color = rgba(200, 157, 193, 1) +$font_color = rgba(255, 206, 173, 1) +$placeholder_color = rgba(255, 206, 173, 0.7) +$check_color = rgba(163, 191, 209, 1) 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/kitty.conf b/themes/ethereal/kitty.conf new file mode 100644 index 00000000..fe3bae7d --- /dev/null +++ b/themes/ethereal/kitty.conf @@ -0,0 +1,34 @@ +background #060B1E +foreground #ffcead + +# black +color0 #060B1E +color8 #6d7db6 + +# red +color1 #ED5B5A +color9 #faaaa9 + +# green +color2 #92a593 +color10 #c4cfc4 + +# yellow +color3 #E9BB4F +color11 #f7dc9c + +# blue +color4 #7d82d9 +color12 #c2c4f0 + +# magenta +color5 #c89dc1 +color13 #ead7e7 + +#cyan +color6 #a3bfd1 +color14 #dfeaf0 + +#white +color7 #F99957 +color15 #ffcead diff --git a/themes/ethereal/mako.ini b/themes/ethereal/mako.ini new file mode 100644 index 00000000..fde27a45 --- /dev/null +++ b/themes/ethereal/mako.ini @@ -0,0 +1,21 @@ +text-color=#ffcead +border-color=#c89dc1 +background-color=#060B1E +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/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/swayosd.css b/themes/ethereal/swayosd.css new file mode 100644 index 00000000..7cdfeead --- /dev/null +++ b/themes/ethereal/swayosd.css @@ -0,0 +1,5 @@ +@define-color background-color #060B1E; +@define-color border-color #6d7db6; +@define-color label #ffcead; +@define-color image #ffcead; +@define-color progress #E9BB4F; \ No newline at end of file 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/ethereal/walker.css b/themes/ethereal/walker.css new file mode 100644 index 00000000..ceb5d953 --- /dev/null +++ b/themes/ethereal/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #7d82d9; +@define-color text #ffcead; +@define-color base #060B1E; +@define-color border #6d7db6; +@define-color foreground #ffcead; +@define-color background #060B1E; diff --git a/themes/ethereal/waybar.css b/themes/ethereal/waybar.css new file mode 100644 index 00000000..d03dff38 --- /dev/null +++ b/themes/ethereal/waybar.css @@ -0,0 +1,2 @@ +@define-color background #060B1E; +@define-color foreground #ffcead; 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/ghostty.conf b/themes/everforest/ghostty.conf index 69dd0ed4..6208b9ce 100644 --- a/themes/everforest/ghostty.conf +++ b/themes/everforest/ghostty.conf @@ -1 +1,20 @@ -theme = Everforest Dark Hard +background = #2d353b +foreground = #d3c6aa + +palette = 0=#475258 +palette = 1=#e67e80 +palette = 2=#a7c080 +palette = 3=#dbbc7f +palette = 4=#7fbbb3 +palette = 5=#d699b6 +palette = 6=#83c092 +palette = 7=#d3c6aa + +palette = 8=#475258 +palette = 9=#e67e80 +palette = 10=#a7c080 +palette = 11=#dbbc7f +palette = 12=#7fbbb3 +palette = 13=#d699b6 +palette = 14=#83c092 +palette = 15=#d3c6aa diff --git a/themes/everforest/kitty.conf b/themes/everforest/kitty.conf index 07cea61f..825cac23 100644 --- a/themes/everforest/kitty.conf +++ b/themes/everforest/kitty.conf @@ -4,66 +4,25 @@ ## 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 +background #2d353b +foreground #d3c6aa -cursor #d3c6aa -cursor_text_color #2e383c +# Normal colors +color0 #475258 +color1 #e67e80 +color2 #a7c080 +color3 #dbbc7f +color4 #7fbbb3 +color5 #d699b6 +color6 #83c092 +color7 #d3c6aa -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 +# Bright colors +color8 #475258 +color9 #e67e80 +color10 #a7c080 +color11 #dbbc7f +color12 #7fbbb3 +color13 #d699b6 +color14 #83c092 +color15 #d3c6aa 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/flexoki-light/preview.png b/themes/flexoki-light/preview.png index 558b6c55..dce1c542 100644 Binary files a/themes/flexoki-light/preview.png and b/themes/flexoki-light/preview.png differ 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/hackerman/alacritty.toml b/themes/hackerman/alacritty.toml new file mode 100644 index 00000000..120c8c3a --- /dev/null +++ b/themes/hackerman/alacritty.toml @@ -0,0 +1,28 @@ +[colors] +[colors.primary] +background = "#0B0C16" +foreground = "#ddf7ff" + +[colors.normal] +black = "#0B0C16" +red = "#50f872" +green = "#4fe88f" +yellow = "#50f7d4" +blue = "#829dd4" +magenta = "#86a7df" +cyan = "#7cf8f7" +white = "#85E1FB" + +[colors.bright] +black = "#6a6e95" +red = "#85ff9d" +green = "#9cf7c2" +yellow = "#a4ffec" +blue = "#c4d2ed" +magenta = "#cddbf4" +cyan = "#d1fffe" +white = "#ddf7ff" + +[colors.cursor] +text = "#0B0C16" +cursor = "#ddf7ff" 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/ghostty.conf b/themes/hackerman/ghostty.conf new file mode 100644 index 00000000..e4ead98f --- /dev/null +++ b/themes/hackerman/ghostty.conf @@ -0,0 +1,23 @@ +# Background and foreground colors +background = #0B0C16 +foreground = #ddf7ff + +# Standard colors +palette = 0=#0B0C16 +palette = 1=#50f872 +palette = 2=#4fe88f +palette = 3=#50f7d4 +palette = 4=#829dd4 +palette = 5=#86a7df +palette = 6=#7cf8f7 +palette = 7=#85E1FB + +# Bright colors +palette = 8=#6a6e95 +palette = 9=#85ff9d +palette = 10=#9cf7c2 +palette = 11=#a4ffec +palette = 12=#c4d2ed +palette = 13=#cddbf4 +palette = 14=#d1fffe +palette = 15=#ddf7ff diff --git a/themes/hackerman/hyprland.conf b/themes/hackerman/hyprland.conf new file mode 100644 index 00000000..92d76498 --- /dev/null +++ b/themes/hackerman/hyprland.conf @@ -0,0 +1,12 @@ +# This file is not a full hyprland configuration. +# It is intended to be included in your main hyprland.conf. + +$activeBorderColor = rgba(26a269ee) rgba(2ec27eee) 45deg + +general { + col.active_border = $activeBorderColor +} + +group { + col.border_active = $activeBorderColor +} diff --git a/themes/hackerman/hyprlock.conf b/themes/hackerman/hyprlock.conf new file mode 100644 index 00000000..6a16b1ec --- /dev/null +++ b/themes/hackerman/hyprlock.conf @@ -0,0 +1,6 @@ +$color = rgba(11, 12, 22, 1) +$inner_color = rgba(11, 12, 22, 0.66) +$outer_color = rgba(134, 167, 223, 1) +$font_color = rgba(221, 247, 255, 1) +$placeholder_color = rgba(221, 247, 255, 0.7) +$check_color = rgba(124, 248, 247, 1) 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/kitty.conf b/themes/hackerman/kitty.conf new file mode 100644 index 00000000..628715f7 --- /dev/null +++ b/themes/hackerman/kitty.conf @@ -0,0 +1,34 @@ +background #0B0C16 +foreground #ddf7ff + +# black +color0 #0B0C16 +color8 #6a6e95 + +# red +color1 #50f872 +color9 #85ff9d + +# green +color2 #4fe88f +color10 #9cf7c2 + +# yellow +color3 #50f7d4 +color11 #a4ffec + +# blue +color4 #829dd4 +color12 #c4d2ed + +# magenta +color5 #86a7df +color13 #cddbf4 + +#cyan +color6 #7cf8f7 +color14 #d1fffe + +#white +color7 #85E1FB +color15 #ddf7ff diff --git a/themes/hackerman/mako.ini b/themes/hackerman/mako.ini new file mode 100644 index 00000000..0727a1f1 --- /dev/null +++ b/themes/hackerman/mako.ini @@ -0,0 +1,21 @@ +text-color=#ddf7ff +border-color=#86a7df +background-color=#0B0C16 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/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/swayosd.css b/themes/hackerman/swayosd.css new file mode 100644 index 00000000..b89c9617 --- /dev/null +++ b/themes/hackerman/swayosd.css @@ -0,0 +1,5 @@ +@define-color background-color #0B0C16; +@define-color border-color #6a6e95; +@define-color label #ddf7ff; +@define-color image #ddf7ff; +@define-color progress #50f7d4; \ No newline at end of file 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/hackerman/walker.css b/themes/hackerman/walker.css new file mode 100644 index 00000000..82521c58 --- /dev/null +++ b/themes/hackerman/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #829dd4; +@define-color text #ddf7ff; +@define-color base #0B0C16; +@define-color border #6a6e95; +@define-color foreground #ddf7ff; +@define-color background #0B0C16; diff --git a/themes/hackerman/waybar.css b/themes/hackerman/waybar.css new file mode 100644 index 00000000..8f44e7a0 --- /dev/null +++ b/themes/hackerman/waybar.css @@ -0,0 +1,2 @@ +@define-color background #0B0C16; +@define-color foreground #ddf7ff; 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/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 index 3f24dbb4..b00ea2f5 100644 --- a/themes/matte-black/swayosd.css +++ b/themes/matte-black/swayosd.css @@ -1,6 +1,6 @@ @define-color background-color #121212; -@define-color border-color #8A8A8D; -@define-color label #8A8A8D; -@define-color image #8A8A8D; -@define-color progress #8A8A8D; +@define-color border-color #CCCCCC; +@define-color label #CCCCCC; +@define-color image #CCCCCC; +@define-color progress #CCCCCC; 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/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/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/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/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/version b/version index 23887f6e..e4604e3a 100644 --- a/version +++ b/version @@ -1 +1 @@ -3.1.7 +3.2.1