diff --git a/applications/icons/affinity.png b/applications/icons/affinity.png new file mode 100644 index 0000000000..bcd1470593 Binary files /dev/null and b/applications/icons/affinity.png differ diff --git a/bin/omarchy b/bin/omarchy index bcf820aa01..1b8809c5ce 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -35,6 +35,7 @@ GROUP_DESCRIPTIONS[capture]="Screenshots and screen recording" GROUP_DESCRIPTIONS[channel]="Omarchy release channel management" GROUP_DESCRIPTIONS[cmd]="Command and shortcut helpers" GROUP_DESCRIPTIONS[config]="System configuration helpers" +GROUP_DESCRIPTIONS[creative]="Creative application installers" GROUP_DESCRIPTIONS[debug]="Diagnostics and support logs" GROUP_DESCRIPTIONS[default]="Default application selection" GROUP_DESCRIPTIONS[dev]="Omarchy development tools" diff --git a/bin/omarchy-install-creative-affinity b/bin/omarchy-install-creative-affinity new file mode 100755 index 0000000000..2668c455f0 --- /dev/null +++ b/bin/omarchy-install-creative-affinity @@ -0,0 +1,18 @@ +#!/bin/bash + +# omarchy:summary=Install Affinity creative suite (Designer, Photo, Publisher) via Wine AppImage + +omarchy-pkg-aur-add affinity-appimage-bin + +mkdir -p ~/.local/share/applications/icons +cp "$OMARCHY_PATH/applications/icons/affinity.png" ~/.local/share/applications/icons/ + +mkdir -p ~/.local/share/applications +cat > ~/.local/share/applications/affinity.desktop << EOF +[Desktop Entry] +Name=Affinity Studio +Exec=omarchy-launch-affinity +Icon=$HOME/.local/share/applications/icons/affinity.png +Type=Application +Categories=Graphics; +EOF diff --git a/bin/omarchy-launch-affinity b/bin/omarchy-launch-affinity new file mode 100755 index 0000000000..d3aaf316e0 --- /dev/null +++ b/bin/omarchy-launch-affinity @@ -0,0 +1,27 @@ +#!/bin/bash + +# omarchy:summary=Launch Affinity with DPI scaled to the focused monitor + +WINEPREFIX="$HOME/.AffinityLinux-Appimage" + +if [[ -d $WINEPREFIX ]]; then + # Wait for any previous Wine/Affinity processes to fully exit + while pgrep -f "Affinity.exe" >/dev/null 2>&1; do + sleep 0.5 + done + while pgrep -f "mount_affini.*wineserver" >/dev/null 2>&1; do + sleep 0.5 + done + + SCALE=$(hyprctl monitors -j | jq -r '[.[] | select(.focused == true)][0].scale // 1') + DPI=$(jq -n "$SCALE * 96 | round") + HEX=$(printf '%08x' "$DPI") + + for reg in "$WINEPREFIX/user.reg" "$WINEPREFIX/system.reg"; do + if [[ -f $reg ]]; then + sed -i "s/\"LogPixels\"=dword:[0-9a-f]\{8\}/\"LogPixels\"=dword:${HEX}/g" "$reg" + fi + done +fi + +exec /usr/bin/affinity "$@" diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 6f372be2e3..da4cf056fe 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -526,7 +526,7 @@ show_setup_system_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 Package\n󰣇 AUR\n Web App\n TUI\n Service\n Style\n󰵮 Development\n Editor\n Terminal\n Browser\n󱚤 AI\n Gaming\n󰍲 Windows") in + case $(menu "Install" "󰣇 Package\n󰣇 AUR\n Web App\n TUI\n Service\n Style\n󰵮 Development\n Editor\n Terminal\n Browser\n󱚤 AI\n󰏘 Creative\n Gaming\n󰍲 Windows") in *Package*) terminal omarchy-pkg-install ;; *AUR*) terminal omarchy-pkg-aur-install ;; *Web*) present_terminal omarchy-webapp-install ;; @@ -537,6 +537,7 @@ show_install_menu() { *Editor*) show_install_editor_menu ;; *Terminal*) show_install_terminal_menu ;; *Browser*) show_install_browser_menu ;; + *Creative*) show_install_creative_menu ;; *Gaming*) show_install_gaming_menu ;; *AI*) show_install_ai_menu ;; *Windows*) present_terminal "omarchy-windows-vm install" ;; @@ -556,6 +557,13 @@ show_install_browser_menu() { esac } +show_install_creative_menu() { + case $(menu "Install" "󰃣 Affinity") in + *Affinity*) present_terminal omarchy-install-creative-affinity ;; + *) show_install_menu ;; + esac +} + show_install_service_menu() { case $(menu "Install" " Dropbox\n Tailscale\n󱇱 NordVPN [AUR]\n󰏖 ONCE\n󰟵 Bitwarden\n Chromium Account") in *Dropbox*) present_terminal omarchy-install-dropbox ;; @@ -691,7 +699,7 @@ show_install_elixir_menu() { } show_remove_menu() { - case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰵮 Development\n󰸌 Theme\n Browser\n Dictation\n Gaming\n󰍲 Windows\n󰏓 Preinstalls\n Security") in + case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰵮 Development\n󰸌 Theme\n Browser\n Dictation\n󰏘 Creative\n Gaming\n󰍲 Windows\n󰏓 Preinstalls\n Security") in *Package*) terminal omarchy-pkg-remove ;; *Web*) present_terminal omarchy-webapp-remove ;; *TUI*) present_terminal omarchy-tui-remove ;; @@ -699,6 +707,7 @@ show_remove_menu() { *Theme*) present_terminal omarchy-theme-remove ;; *Browser*) show_remove_browser_menu ;; *Dictation*) present_terminal omarchy-voxtype-remove ;; + *Creative*) show_remove_creative_menu ;; *Gaming*) show_remove_gaming_menu ;; *Windows*) present_terminal "omarchy-windows-vm remove" ;; *Preinstalls*) present_terminal omarchy-remove-preinstalls ;; @@ -707,6 +716,13 @@ show_remove_menu() { esac } +show_remove_creative_menu() { + case $(menu "Remove" "󰃣 Affinity") in + *Affinity*) present_terminal omarchy-remove-creative-affinity ;; + *) show_remove_menu ;; + esac +} + show_remove_security_menu() { case $(menu "Remove" "󰈷 Fingerprint\n Fido2") in *Fingerprint*) present_terminal omarchy-remove-security-fingerprint ;; diff --git a/bin/omarchy-remove-creative-affinity b/bin/omarchy-remove-creative-affinity new file mode 100755 index 0000000000..9d2381aa1b --- /dev/null +++ b/bin/omarchy-remove-creative-affinity @@ -0,0 +1,8 @@ +#!/bin/bash + +# omarchy:summary=Remove Affinity and its desktop entry + +rm -f ~/.local/share/applications/affinity.desktop +rm -f ~/.local/share/applications/icons/affinity.png + +yay -Rns --noconfirm affinity-appimage-bin 2>/dev/null