diff --git a/applications/icons/Fizzy.png b/applications/icons/Fizzy.png new file mode 100644 index 00000000..c68957e4 Binary files /dev/null and b/applications/icons/Fizzy.png differ diff --git a/bin/omarchy-channel-set b/bin/omarchy-channel-set index 653d3bb3..c0b98a5f 100755 --- a/bin/omarchy-channel-set +++ b/bin/omarchy-channel-set @@ -13,3 +13,5 @@ case "$channel" in "dev") omarchy-branch-set "dev" && omarchy-refresh-pacman "edge" ;; *) echo "Unknown channel: $channel"; exit 1; ;; esac + +omarchy-update -y diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver index d17ff55b..9a0db812 100755 --- a/bin/omarchy-cmd-screensaver +++ b/bin/omarchy-cmd-screensaver @@ -11,20 +11,25 @@ exit_screensaver() { exit 0 } +# Exit the screensaver on signals and input from keyboard and mouse trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT +printf '\e[?1000h\e[?1003h' # Enable mouse tracking (clicks: 1000, movement: 1003) +while read -rsn1 -t 0.1; do :; done # Flush any pending input printf '\033]11;rgb:00/00/00\007' # Set background color to black hyprctl keyword cursor:invisible true &>/dev/null +tty=$(tty 2>/dev/null) + while true; do tte -i ~/.config/omarchy/branding/screensaver.txt \ --frame-rate 120 --canvas-width 0 --canvas-height 0 --reuse-canvas --anchor-canvas c --anchor-text c\ --random-effect --exclude-effects dev_worm \ --no-eol --no-restore-cursor & - while pgrep -x tte >/dev/null; do - if read -n 1 -t 1 || ! screensaver_in_focus; then + while pgrep -t "${tty#/dev/}" -x tte >/dev/null; do + if read -rsn1 -t 1 || ! screensaver_in_focus; then exit_screensaver fi done diff --git a/bin/omarchy-install-dropbox b/bin/omarchy-install-dropbox index b4c59298..7473e9e8 100755 --- a/bin/omarchy-install-dropbox +++ b/bin/omarchy-install-dropbox @@ -5,4 +5,4 @@ omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-d echo "Starting Dropbox..." uwsm-app -- dropbox-cli start &>/dev/null & -echo "See Dropbox icon behind  hover tray in top right and right-click for setup." +echo "See Dropbox icon behind  hover tray in top right and right-click for setup." diff --git a/bin/omarchy-launch-browser b/bin/omarchy-launch-browser index d6ae00cb..a262f671 100755 --- a/bin/omarchy-launch-browser +++ b/bin/omarchy-launch-browser @@ -3,8 +3,10 @@ default_browser=$(xdg-settings get default-web-browser) browser_exec=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$default_browser 2>/dev/null | head -1) -if [[ $browser_exec =~ (firefox|zen|librewolf) ]]; then +if [[ $browser_exec =~ (firefox|zen|librewolf|mullvad) ]]; then private_flag="--private-window" +elif [[ $browser_exec =~ edge ]]; then + private_flag="--inprivate" else private_flag="--incognito" fi diff --git a/bin/omarchy-launch-screensaver b/bin/omarchy-launch-screensaver index 6fa5b2c4..44b38f0e 100755 --- a/bin/omarchy-launch-screensaver +++ b/bin/omarchy-launch-screensaver @@ -13,6 +13,9 @@ if [[ -f ~/.local/state/omarchy/toggles/screensaver-off ]] && [[ $1 != "force" ] exit 1 fi +# Silently quit Walker on overlay +walker -q + focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name') terminal=$(xdg-terminal-exec --print-id) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index b80d6178..5ddf81f3 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -309,11 +309,12 @@ show_install_style_menu() { } show_install_font_menu() { - case $(menu "Install" " Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono" "--width 350") in + case $(menu "Install" " Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono\n Iosevka" "--width 350") in *Meslo*) install_font "Meslo LG Mono" "ttf-meslo-nerd" "MesloLGL Nerd Font" ;; *Fira*) install_font "Fira Code" "ttf-firacode-nerd" "FiraCode Nerd Font" ;; *Victor*) install_font "Victor Code" "ttf-victor-mono-nerd" "VictorMono Nerd Font" ;; *Bistream*) install_font "Bistream Vera Code" "ttf-bitstream-vera-mono-nerd" "BitstromWera Nerd Font" ;; + *Iosevka*) install_font "Iosevka" "ttf-iosevka-nerd" "Iosevka Nerd Font Mono" ;; *) show_install_menu ;; esac } @@ -377,8 +378,9 @@ show_remove_menu() { } show_update_menu() { - case $(menu "Update" " Omarchy\n Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone\n Time") in + case $(menu "Update" " Omarchy\n󰔫 Channel\n Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone\n Time") in *Omarchy*) present_terminal omarchy-update ;; + *Channel*) show_update_channel_menu ;; *Config*) show_update_config_menu ;; *Themes*) present_terminal omarchy-theme-update ;; *Process*) show_update_process_menu ;; @@ -391,6 +393,14 @@ show_update_menu() { esac } +show_update_channel_menu() { + case $(menu "Update channel" "🟢 Stable\n🟡 Edge\n🔴 Dev") in + *Stable*) present_terminal "omarchy-channel-set stable" ;; + *Edge*) present_terminal "omarchy-channel-set edge" ;; + *Dev*) present_terminal "omarchy-channel-set dev" ;; + *) show_update_menu ;; + esac +} show_update_process_menu() { case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in *Hypridle*) omarchy-restart-hypridle ;; @@ -434,10 +444,9 @@ show_update_password_menu() { } show_system_menu() { - case $(menu "System" " Lock\n󱄄 Screensaver\n󰤄 Suspend\n󰜉 Restart\n󰐥 Shutdown") in + case $(menu "System" " Lock\n󱄄 Screensaver\n󰜉 Restart\n󰐥 Shutdown") in *Lock*) omarchy-lock-screen ;; *Screensaver*) omarchy-launch-screensaver force ;; - *Suspend*) systemctl suspend ;; *Restart*) omarchy-cmd-reboot ;; *Shutdown*) omarchy-cmd-shutdown ;; *) back_to show_main_menu ;; diff --git a/bin/omarchy-refresh-applications b/bin/omarchy-refresh-applications index c0f2bb00..bf666f5d 100755 --- a/bin/omarchy-refresh-applications +++ b/bin/omarchy-refresh-applications @@ -10,4 +10,8 @@ mkdir -p ~/.local/share/applications cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/ cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/ +# Refresh the webapps +bash $OMARCHY_PATH/install/packaging/icons.sh +bash $OMARCHY_PATH/install/packaging/webapps.sh + update-desktop-database ~/.local/share/applications diff --git a/bin/omarchy-refresh-walker b/bin/omarchy-refresh-walker index e32e2fcb..09a47495 100755 --- a/bin/omarchy-refresh-walker +++ b/bin/omarchy-refresh-walker @@ -3,6 +3,7 @@ # Ensure walker is set to autostart mkdir -p ~/.config/autostart/ cp $OMARCHY_PATH/autostart/walker.desktop ~/.config/autostart/ +systemctl --user daemon-reload omarchy-refresh-config walker/config.toml omarchy-refresh-config elephant/calc.toml diff --git a/bin/omarchy-restart-walker b/bin/omarchy-restart-walker index b3886e18..82c366c2 100755 --- a/bin/omarchy-restart-walker +++ b/bin/omarchy-restart-walker @@ -1,8 +1,5 @@ #!/bin/bash -pkill elephant -pkill walker - # Detect if we're running as root (from pacman hook) if [[ $EUID -eq 0 ]]; then # Get the owner of this script to determine which user to run as @@ -13,10 +10,9 @@ if [[ $EUID -eq 0 ]]; then systemd-run --uid="$SCRIPT_OWNER" --setenv=XDG_RUNTIME_DIR="/run/user/$USER_UID" \ bash -c " systemctl --user restart elephant.service - setsid walker --gapplication-service & + systemctl --user restart app-walker@autostart.service " else - elephant service enable 2>/dev/null systemctl --user restart elephant.service - setsid walker --gapplication-service & + systemctl --user restart app-walker@autostart.service fi diff --git a/bin/omarchy-update b/bin/omarchy-update index 39ae5c0c..bab341fb 100755 --- a/bin/omarchy-update +++ b/bin/omarchy-update @@ -4,7 +4,8 @@ set -e trap 'echo ""; echo -e "\033[0;31mSomething went wrong during the update!\n\nPlease review the output above carefully, correct the error, and retry the update.\n\nIf you need assistance, get help from the community at https://omarchy.org/discord\033[0m"' ERR -if omarchy-update-confirm; then +if [[ $1 == "-y" ]] || omarchy-update-confirm; then + omarchy-update-without-idle omarchy-snapshot create || [ $? -eq 127 ] omarchy-update-git omarchy-update-perform diff --git a/bin/omarchy-update-system-pkgs b/bin/omarchy-update-system-pkgs index dd58586f..ab133286 100755 --- a/bin/omarchy-update-system-pkgs +++ b/bin/omarchy-update-system-pkgs @@ -3,7 +3,7 @@ set -e echo -e "\e[32m\nUpdate system packages\e[0m" -sudo pacman -Syu --noconfirm +sudo pacman -Syyu --noconfirm # Update AUR packages if any are installed if pacman -Qem >/dev/null; then diff --git a/bin/omarchy-update-without-idle b/bin/omarchy-update-without-idle new file mode 100755 index 00000000..d1892373 --- /dev/null +++ b/bin/omarchy-update-without-idle @@ -0,0 +1,4 @@ +#!/bin/bash + +# Ensure screensaver/sleep doesn't set in during updates +hyprctl dispatch tagwindow +noidle &> /dev/null diff --git a/config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc index ddee6f36..ea6b59e1 100644 --- a/config/fastfetch/config.jsonc +++ b/config/fastfetch/config.jsonc @@ -134,7 +134,7 @@ "type": "command", "key": "󱦟 OS Age", "keyColor": "magenta", - "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" + "text": "echo $(( ($(date +%s) - $(stat -c %W /)) / 86400 )) days" }, { "type": "uptime", diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf index fb982bc1..f7a939c0 100644 --- a/config/hypr/hyprlock.conf +++ b/config/hypr/hyprlock.conf @@ -1,5 +1,9 @@ source = ~/.config/omarchy/current/theme/hyprlock.conf +general { + ignore_empty_input = true +} + background { monitor = color = $color diff --git a/config/hypr/input.conf b/config/hypr/input.conf index fd0cd701..4fce762a 100644 --- a/config/hypr/input.conf +++ b/config/hypr/input.conf @@ -24,6 +24,9 @@ input { # Control the speed of your scrolling scroll_factor = 0.4 + + # Left-click-and-drag with three fingers + # drag_3fg = 1 } } diff --git a/config/hypr/xdph.conf b/config/hypr/xdph.conf index 176b0c9e..63b66be1 100644 --- a/config/hypr/xdph.conf +++ b/config/hypr/xdph.conf @@ -1,3 +1,4 @@ screencopy { allow_token_by_default = true + custom_picker_binary = hyprland-preview-share-picker } diff --git a/config/hyprland-preview-share-picker/config.yaml b/config/hyprland-preview-share-picker/config.yaml new file mode 100644 index 00000000..6b939570 --- /dev/null +++ b/config/hyprland-preview-share-picker/config.yaml @@ -0,0 +1,71 @@ +# paths to stylesheets on the filesystem which should be applied to the application +# +# relative paths are resolved relative to the location of the config file +stylesheets: ["../omarchy/current/theme/hyprland-preview-share-picker.css"] +# default page selected when the picker is opened +default_page: windows + +window: + # height of the application window + height: 500 + # width of the application window + width: 1000 + +image: + # size to which the images should be internally resized to reduce the memory footprint + resize_size: 500 + # target size of the longer side of the image widget + widget_size: 150 + +classes: + # css classname of the window + window: window + # css classname of the card containing an image and a label + image_card: card + # css classname of the card containing an image and a label when the image is still being loaded + image_card_loading: card-loading + # css classname of the image inside the card + image: image + # css classname of the label inside the card + image_label: image-label + # css classname of the notebook containing all pages + notebook: notebook + # css classname of a label of the notebook + tab_label: tab-label + # css classname of a notebook page (e.g. windows container) + notebook_page: page + # css classname of the region selection button + region_button: region-button + # css classname of the button containing the session restore checkbox and label + restore_button: restore-button + +windows: + # minimum amount of image cards per row on the windows page + min_per_row: 3 + # maximum amount of image cards per row on the windows page + max_per_row: 999 + # number of clicks needed to select a window + clicks: 1 + # spacing in pixels between the window cards + spacing: 12 + +outputs: + # number of clicks needed to select an output + clicks: 1 + # spacing in pixels between the outputs in the layout + # note: the spacing is applied from both sides (the gap is `spacing * 2`) + spacing: 6 + # show the label with the output name + show_label: false + # size the output cards respectively to their scaling + respect_output_scaling: true + +region: + # command to run for region selection + # the output needs to be in the @,,, (e.g. DP-3@2789,436,756,576) format + command: slurp -f '%o@%x,%y,%w,%h' + +# hide the token restore checkbox and use the default value instead +hide_token_restore: true +# enable debug logs by default +debug: false diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index 04b7440f..5a76a146 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -7,9 +7,7 @@ font_size 9.0 # Window window_padding_width 14 -window_padding_height 14 hide_window_decorations yes -show_window_resize_notification no confirm_os_window_close 0 # Keybindings @@ -17,7 +15,6 @@ map ctrl+insert copy_to_clipboard map shift+insert paste_from_clipboard # Allow remote access -single_instance yes allow_remote_control yes # Aesthetics diff --git a/config/walker/config.toml b/config/walker/config.toml index 9bd2b05e..7638097c 100644 --- a/config/walker/config.toml +++ b/config/walker/config.toml @@ -43,3 +43,7 @@ provider = "websearch" [[providers.prefixes]] prefix = "$" provider = "clipboard" + +[[emergencies]] +text = "Restart Walker" +command = "omarchy-restart-walker" diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index f0191c14..62863cb0 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -57,7 +57,8 @@ "cpu": { "interval": 5, "format": "󰍛", - "on-click": "omarchy-launch-or-focus-tui btop" + "on-click": "omarchy-launch-or-focus-tui btop", + "on-click-right": "alacritty" }, "clock": { "format": "{:L%A %H:%M}", diff --git a/default/hypr/apps/bitwarden.conf b/default/hypr/apps/bitwarden.conf index 339ddb6b..4a6c5e6a 100644 --- a/default/hypr/apps/bitwarden.conf +++ b/default/hypr/apps/bitwarden.conf @@ -1 +1,2 @@ windowrule = noscreenshare, class:^(Bitwarden)$ +windowrule = tag +floating-window, class:^(Bitwarden)$ \ No newline at end of file diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf index ccf2dd27..889235cc 100644 --- a/default/hypr/apps/system.conf +++ b/default/hypr/apps/system.conf @@ -9,9 +9,13 @@ windowrule = float, class:org.gnome.Calculator # Fullscreen screensaver windowrule = fullscreen, class:org.omarchy.screensaver +windowrule = float, 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)$ # Popped window rounding windowrule = rounding 8, tag:pop + +# Prevent idle while open +windowrule = idleinhibit always, tag:noidle diff --git a/default/hypr/bindings/tiling-v2.conf b/default/hypr/bindings/tiling-v2.conf index d75e28b7..01aa7d72 100644 --- a/default/hypr/bindings/tiling-v2.conf +++ b/default/hypr/bindings/tiling-v2.conf @@ -106,9 +106,9 @@ 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 +# Window navigation for grouped windows +bindd = SUPER CTRL, LEFT, Move grouped window focus left, changegroupactive, b +bindd = SUPER CTRL, RIGHT, Move grouped window focus right, changegroupactive, f # Scroll through a set of grouped windows with SUPER + ALT + scroll bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index a2a6e81e..2e442630 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -19,7 +19,7 @@ bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications" bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke -bindd = SUPER SHIFT ALT, COMMA, Invoke last notification, exec, makoctl restore +bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore # Toggle idling bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle diff --git a/default/mako/core.ini b/default/mako/core.ini index 927d8d40..0c9a46e8 100644 --- a/default/mako/core.ini +++ b/default/mako/core.ini @@ -18,6 +18,7 @@ invisible=false [urgency=critical] default-timeout=0 +layer=overlay [summary~="Setup Wi-Fi"] on-button-left=exec sh -c 'omarchy-notification-dismiss "Setup Wi-Fi"; omarchy-launch-wifi' diff --git a/install/config/hardware/fix-apple-t2.sh b/install/config/hardware/fix-apple-t2.sh index 51273f21..40c6942b 100644 --- a/install/config/hardware/fix-apple-t2.sh +++ b/install/config/hardware/fix-apple-t2.sh @@ -11,6 +11,13 @@ if lspci -nn | grep -q "106b:180[12]"; then t2fanrd \ tiny-dfr + # Add user to video group (required for tiny-dfr to access /dev/dri devices) + sudo usermod -aG video ${USER} + + # Enable T2 services + sudo systemctl enable t2fanrd.service + sudo systemctl enable tiny-dfr.service + echo "apple-bce" | sudo tee /etc/modules-load.d/t2.conf >/dev/null echo "MODULES+=(apple-bce usbhid hid_apple hid_generic xhci_pci xhci_hcd)" | sudo tee /etc/mkinitcpio.conf.d/apple-t2.conf >/dev/null diff --git a/install/config/increase-sudo-tries.sh b/install/config/increase-sudo-tries.sh index 5b64b869..af5a61a6 100644 --- a/install/config/increase-sudo-tries.sh +++ b/install/config/increase-sudo-tries.sh @@ -1,3 +1,6 @@ # Give the user 10 instead of 3 tries to fat finger their password before lockout echo "Defaults passwd_tries=10" | sudo tee /etc/sudoers.d/passwd-tries sudo chmod 440 /etc/sudoers.d/passwd-tries + +# Set for hyprlock too +sudo sed -i 's/^# *deny = .*/deny = 10/' /etc/security/faillock.conf diff --git a/install/config/walker-elephant.sh b/install/config/walker-elephant.sh index f4d5dffb..745450f3 100644 --- a/install/config/walker-elephant.sh +++ b/install/config/walker-elephant.sh @@ -1,5 +1,9 @@ #!/bin/bash +# Ensure Walker service is started automatically on boot +mkdir -p ~/.config/autostart/ +cp $OMARCHY_PATH/autostart/walker.desktop ~/.config/autostart/ + # Create pacman hook to restart walker after updates sudo mkdir -p /etc/pacman.d/hooks sudo tee /etc/pacman.d/hooks/walker-restart.hook > /dev/null << EOF diff --git a/install/login/limine-snapper.sh b/install/login/limine-snapper.sh index 1f00375a..a9a13553 100644 --- a/install/login/limine-snapper.sh +++ b/install/login/limine-snapper.sh @@ -3,25 +3,27 @@ if command -v limine &>/dev/null; then sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf </dev/null HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs) +EOF + sudo tee /etc/mkinitcpio.conf.d/thunderbolt_module.conf </dev/null +MODULES+=(thunderbolt) EOF - [[ -f /boot/EFI/limine/limine.conf ]] || [[ -f /boot/EFI/BOOT/limine.conf ]] && EFI=true + # Detect boot mode + [[ -d /sys/firmware/efi ]] && EFI=true - # Conf location is different between EFI and BIOS - if [[ -n "$EFI" ]]; then - # Check USB location first, then regular EFI location - if [[ -f /boot/EFI/BOOT/limine.conf ]]; then - limine_config="/boot/EFI/BOOT/limine.conf" - else - limine_config="/boot/EFI/limine/limine.conf" - fi - else + # Find config location + if [[ -f /boot/EFI/arch-limine/limine.conf ]]; then + limine_config="/boot/EFI/arch-limine/limine.conf" + elif [[ -f /boot/EFI/BOOT/limine.conf ]]; then + limine_config="/boot/EFI/BOOT/limine.conf" + elif [[ -f /boot/EFI/limine/limine.conf ]]; then + limine_config="/boot/EFI/limine/limine.conf" + elif [[ -f /boot/limine/limine.conf ]]; then limine_config="/boot/limine/limine.conf" - fi - - # Double-check and exit if we don't have a config file for some reason - if [[ ! -f $limine_config ]]; then - echo "Error: Limine config not found at $limine_config" >&2 + elif [[ -f /boot/limine.conf ]]; then + limine_config="/boot/limine.conf" + else + echo "Error: Limine config not found" >&2 exit 1 fi @@ -95,10 +97,15 @@ EOF fi fi + # Enable quota to allow space-aware algorithms to work + sudo btrfs quota enable / + # Tweak default Snapper configs sudo sed -i 's/^TIMELINE_CREATE="yes"/TIMELINE_CREATE="no"/' /etc/snapper/configs/{root,home} sudo sed -i 's/^NUMBER_LIMIT="50"/NUMBER_LIMIT="5"/' /etc/snapper/configs/{root,home} sudo sed -i 's/^NUMBER_LIMIT_IMPORTANT="10"/NUMBER_LIMIT_IMPORTANT="5"/' /etc/snapper/configs/{root,home} + sudo sed -i 's/^SPACE_LIMIT="0.5"/SPACE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} + sudo sed -i 's/^FREE_LIMIT="0.2"/FREE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} chrootable_systemctl_enable limine-snapper-sync.service fi diff --git a/install/omarchy-base.packages b/install/omarchy-base.packages index 8a55e7d0..0eb48b42 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -4,11 +4,13 @@ 1password-beta 1password-cli aether +alacritty asdcontrol avahi bash-completion bat bluetui +bolt brightnessctl btop clang @@ -46,6 +48,7 @@ gvfs-smb hypridle hyprland hyprland-guiutils +hyprland-preview-share-picker hyprlock hyprpicker hyprsunset diff --git a/install/packaging/webapps.sh b/install/packaging/webapps.sh index c5f7350b..074f82d3 100644 --- a/install/packaging/webapps.sh +++ b/install/packaging/webapps.sh @@ -11,3 +11,4 @@ omarchy-webapp-install "X" https://x.com/ X.png omarchy-webapp-install "Figma" https://figma.com/ Figma.png omarchy-webapp-install "Discord" https://discord.com/channels/@me Discord.png omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home Zoom.png "omarchy-webapp-handler-zoom %u" "x-scheme-handler/zoommtg;x-scheme-handler/zoomus" +omarchy-webapp-install "Fizzy" https://app.fizzy.do/ Fizzy.png diff --git a/migrations/1758455816.sh b/migrations/1758455816.sh new file mode 100644 index 00000000..e9114e1b --- /dev/null +++ b/migrations/1758455816.sh @@ -0,0 +1,11 @@ +echo "Add thunderbolt support to boot image" + +omarchy-pkg-add bolt + +if [[ ! -f /etc/mkinitcpio.conf.d/thunderbolt_module.conf ]]; then + sudo tee /etc/mkinitcpio.conf.d/thunderbolt_module.conf </dev/null +MODULES+=(thunderbolt) +EOF +fi + +sudo limine-update diff --git a/migrations/1764378788.sh b/migrations/1764378788.sh new file mode 100644 index 00000000..de9b5f13 --- /dev/null +++ b/migrations/1764378788.sh @@ -0,0 +1,5 @@ +echo "Ignore empty passwords on lock screen" + +if ! grep -q "ignore_empty_input" ~/.config/hypr/hyprlock.conf; then + sed -i "/source =/a\ \ngeneral {\n ignore_empty_input = true\n}" ~/.config/hypr/hyprlock.conf +fi diff --git a/migrations/1765587218.sh b/migrations/1765587218.sh new file mode 100644 index 00000000..6d58bd9e --- /dev/null +++ b/migrations/1765587218.sh @@ -0,0 +1,17 @@ +echo "Add custom share portal picker" +omarchy-pkg-add hyprland-preview-share-picker + +mkdir -p ~/.config/hyprland-preview-share-picker +omarchy-refresh-config hyprland-preview-share-picker/config.yaml + +if ! grep -q "custom_picker_binary" ~/.config/hypr/xdph.conf; then + sed -i '/screencopy {/a\ custom_picker_binary = hyprland-preview-share-picker' ~/.config/hypr/xdph.conf +fi + +sleep 1 +killall -e xdg-desktop-portal-hyprland +killall -e xdg-desktop-portal-wlr +killall xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal & diff --git a/migrations/1765729055.sh b/migrations/1765729055.sh new file mode 100644 index 00000000..620b33fb --- /dev/null +++ b/migrations/1765729055.sh @@ -0,0 +1,11 @@ +echo "Add emergency entry for Walker" +CONFIG_FILE="$HOME/.config/walker/config.toml" + +if [[ -f "$CONFIG_FILE" ]] && ! grep -q 'command = "omarchy-restart-walker"' "$CONFIG_FILE"; then + cat >> "$CONFIG_FILE" << 'EOF' + +[[emergencies]] +text = "Restart Walker" +command = "omarchy-restart-walker" +EOF +fi diff --git a/migrations/1765739892.sh b/migrations/1765739892.sh new file mode 100644 index 00000000..845270b3 --- /dev/null +++ b/migrations/1765739892.sh @@ -0,0 +1,7 @@ +if omarchy-cmd-present btrfs && omarchy-cmd-present snapper; then + echo "Adjust snapper space limits & enable btrfs quota" + + sudo sed -i 's/^SPACE_LIMIT="0.5"/SPACE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} 2>/dev/null + sudo sed -i 's/^FREE_LIMIT="0.2"/FREE_LIMIT="0.3"/' /etc/snapper/configs/{root,home} 2>/dev/null + sudo btrfs quota enable / +fi diff --git a/migrations/1765744321.sh b/migrations/1765744321.sh new file mode 100644 index 00000000..adc32e79 --- /dev/null +++ b/migrations/1765744321.sh @@ -0,0 +1,2 @@ +echo "Increase faillock attempts to 10" +sudo sed -i 's/^# *deny = .*/deny = 10/' /etc/security/faillock.conf diff --git a/themes/catppuccin-latte/hyprland-preview-share-picker.css b/themes/catppuccin-latte/hyprland-preview-share-picker.css new file mode 100644 index 00000000..dc534965 --- /dev/null +++ b/themes/catppuccin-latte/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #4C4F69; +@define-color background #EFF1F5; +@define-color accent #1E66F5; +@define-color muted #9CA0B0; +@define-color card_bg #E6E9EF; +@define-color text_dark #EFF1F5; +@define-color accent_hover #7287FD; +@define-color selected_tab #1E66F5; +@define-color text #4C4F69; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/catppuccin/hyprland-preview-share-picker.css b/themes/catppuccin/hyprland-preview-share-picker.css new file mode 100644 index 00000000..8fb9f9d2 --- /dev/null +++ b/themes/catppuccin/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #CDD6F4; +@define-color background #1E1E2E; +@define-color accent #87B0F9; +@define-color muted #43465A; +@define-color card_bg #181825; +@define-color text_dark #11111B; +@define-color accent_hover #B4BEFE; +@define-color selected_tab #87B0F9; +@define-color text #CDD6F4; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/ethereal/backgrounds/2.jpg b/themes/ethereal/backgrounds/2.jpg new file mode 100644 index 00000000..95fdafb6 Binary files /dev/null and b/themes/ethereal/backgrounds/2.jpg differ diff --git a/themes/ethereal/hyprland-preview-share-picker.css b/themes/ethereal/hyprland-preview-share-picker.css new file mode 100644 index 00000000..55e556e5 --- /dev/null +++ b/themes/ethereal/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #ffcead; +@define-color background #060B1E; +@define-color accent #7d82d9; +@define-color muted #6d7db6; +@define-color card_bg #12172b; +@define-color text_dark #060B1E; +@define-color accent_hover #c2c4f0; +@define-color selected_tab #7d82d9; +@define-color text #ffcead; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/everforest/hyprland-preview-share-picker.css b/themes/everforest/hyprland-preview-share-picker.css new file mode 100644 index 00000000..58a15be3 --- /dev/null +++ b/themes/everforest/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #d3c6aa; +@define-color background #2d353b; +@define-color accent #a7c080; +@define-color muted #475258; +@define-color card_bg #333c43; +@define-color text_dark #2d353b; +@define-color accent_hover #83c092; +@define-color selected_tab #a7c080; +@define-color text #d3c6aa; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/flexoki-light/hyprland-preview-share-picker.css b/themes/flexoki-light/hyprland-preview-share-picker.css new file mode 100644 index 00000000..33faa53f --- /dev/null +++ b/themes/flexoki-light/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #100F0F; +@define-color background #FFFCF0; +@define-color accent #205EA6; +@define-color muted #6F6E69; +@define-color card_bg #F2F0E5; +@define-color text_dark #FFFCF0; +@define-color accent_hover #4385BE; +@define-color selected_tab #205EA6; +@define-color text #100F0F; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/gruvbox/hyprland-preview-share-picker.css b/themes/gruvbox/hyprland-preview-share-picker.css new file mode 100644 index 00000000..c3a552c4 --- /dev/null +++ b/themes/gruvbox/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #ebdbb2; +@define-color background #282828; +@define-color accent #d65d0e; +@define-color muted #928374; +@define-color card_bg #3c3836; +@define-color text_dark #282828; +@define-color accent_hover #fabd2f; +@define-color selected_tab #d65d0e; +@define-color text #ebdbb2; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/hackerman/hyprland-preview-share-picker.css b/themes/hackerman/hyprland-preview-share-picker.css new file mode 100644 index 00000000..172122b7 --- /dev/null +++ b/themes/hackerman/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #ddf7ff; +@define-color background #0B0C16; +@define-color accent #829dd4; +@define-color muted #6a6e95; +@define-color card_bg #141526; +@define-color text_dark #0B0C16; +@define-color accent_hover #c4d2ed; +@define-color selected_tab #829dd4; +@define-color text #ddf7ff; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/kanagawa/hyprland-preview-share-picker.css b/themes/kanagawa/hyprland-preview-share-picker.css new file mode 100644 index 00000000..36f9c65f --- /dev/null +++ b/themes/kanagawa/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #dcd7ba; +@define-color background #1f1f28; +@define-color accent #7e9cd8; +@define-color muted #727169; +@define-color card_bg #2a2a37; +@define-color text_dark #16161d; +@define-color accent_hover #7fb4ca; +@define-color selected_tab #7e9cd8; +@define-color text #dcd7ba; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/matte-black/hyprland-preview-share-picker.css b/themes/matte-black/hyprland-preview-share-picker.css new file mode 100644 index 00000000..783e7d72 --- /dev/null +++ b/themes/matte-black/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #EAEAEA; +@define-color background #121212; +@define-color accent #B91C1C; +@define-color muted #595959; +@define-color card_bg #1e1e1e; +@define-color text_dark #EAEAEA; +@define-color accent_hover #D35F5F; +@define-color selected_tab #B91C1C; +@define-color text #EAEAEA; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/nord/hyprland-preview-share-picker.css b/themes/nord/hyprland-preview-share-picker.css new file mode 100644 index 00000000..07de41cb --- /dev/null +++ b/themes/nord/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #D8DEE9; +@define-color background #2E3440; +@define-color accent #88C0D0; +@define-color muted #4C566A; +@define-color card_bg #3B4252; +@define-color text_dark #2E3440; +@define-color accent_hover #8FBCBB; +@define-color selected_tab #88C0D0; +@define-color text #D8DEE9; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/osaka-jade/hyprland-preview-share-picker.css b/themes/osaka-jade/hyprland-preview-share-picker.css new file mode 100644 index 00000000..faa50012 --- /dev/null +++ b/themes/osaka-jade/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #ebfff2; +@define-color background #11221C; +@define-color accent #2DD5B7; +@define-color muted #53685B; +@define-color card_bg #23372B; +@define-color text_dark #11221C; +@define-color accent_hover #8CD3CB; +@define-color selected_tab #2DD5B7; +@define-color text #ebfff2; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/ristretto/hyprland-preview-share-picker.css b/themes/ristretto/hyprland-preview-share-picker.css new file mode 100644 index 00000000..056861af --- /dev/null +++ b/themes/ristretto/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #e6d9db; +@define-color background #2c2525; +@define-color accent #f9cc6c; +@define-color muted #948a8b; +@define-color card_bg #403e41; +@define-color text_dark #2c2525; +@define-color accent_hover #fcd675; +@define-color selected_tab #f9cc6c; +@define-color text #e6d9db; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/rose-pine/hyprland-preview-share-picker.css b/themes/rose-pine/hyprland-preview-share-picker.css new file mode 100644 index 00000000..87ea9a56 --- /dev/null +++ b/themes/rose-pine/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #575279; +@define-color background #faf4ed; +@define-color accent #d7827e; +@define-color muted #9893a5; +@define-color card_bg #fffaf3; +@define-color text_dark #faf4ed; +@define-color accent_hover #b4637a; +@define-color selected_tab #d7827e; +@define-color text #575279; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/themes/tokyo-night/hyprland-preview-share-picker.css b/themes/tokyo-night/hyprland-preview-share-picker.css new file mode 100644 index 00000000..698c62c2 --- /dev/null +++ b/themes/tokyo-night/hyprland-preview-share-picker.css @@ -0,0 +1,94 @@ +@define-color foreground #c0caf5; +@define-color background #1a1b26; +@define-color accent #7aa2f7; +@define-color muted #565f89; +@define-color card_bg #24283b; +@define-color text_dark #15161e; +@define-color accent_hover #9ec1ff; +@define-color selected_tab #7dcfff; +@define-color text #c0caf5; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/version b/version index be94e6f5..b347b11e 100644 --- a/version +++ b/version @@ -1 +1 @@ -3.2.2 +3.2.3