hyprwm / Hyprland

Hyprland is a highly customizable dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
18.25k stars 761 forks source link

JetBrains IDEA popup dialog cannot be zoom out under XWayland #5949

Closed hdm9527 closed 2 months ago

hdm9527 commented 2 months ago

Hyprland Version

System/Version info ```sh Hyprland, built from branch main at commit a8a04c746b07fe80bb852bb42473d58868d3b294 (renderer: deny solitary during a session lock). Date: Mon May 6 09:24:11 2024 Tag: v0.40.0-12-ga8a04c74, commits: 4618 flags: (if any) System Information: System name: Linux Node name: Arch Release: 6.8.9-1-cachyos-echo-lto Version: #1 SMP PREEMPT_DYNAMIC Fri, 03 May 2024 15:07:15 +0000 GPU information: 64:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c7) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: ```

Bug or Regression?

Bug

Description

Enable or disable XWayland scaling, Idea's settings popup dialog cannot be zoom out, only zoom in.

xwayland {
    force_zero_scaling = true
}

How to reproduce

above

Crash reports, logs, images, videos

https://github.com/hyprwm/Hyprland/assets/39702328/4f51c2e1-d2f4-4e72-8932-81fb16d7ccc6

ikalco commented 2 months ago

Do you have something like this in your hyprland.conf? (the minsize window rule) windowrulev2 = minsize 800 600, class:(Intellij)

hdm9527 commented 2 months ago

Do you have something like this in your hyprland.conf? (the minsize window rule) windowrulev2 = minsize 800 600, class:(Intellij)

No, here's my window rule.

windowrulev2 = opacity 0.90 0.90,class:^(firefox)$
windowrulev2 = opacity 0.90 0.90,class:^(Brave-browser)$
windowrulev2 = opacity 0.80 0.80,class:^(code-oss)$
windowrulev2 = opacity 0.80 0.80,class:^(Code)$
windowrulev2 = opacity 0.80 0.80,class:^(code-url-handler)$
windowrulev2 = opacity 0.80 0.80,class:^(code-insiders-url-handler)$
windowrulev2 = opacity 0.80 0.80,class:^(Alacritty)$
windowrulev2 = opacity 0.80 0.80,class:^(kitty)$
windowrulev2 = opacity 0.80 0.80,class:^(org.kde.dolphin)$
windowrulev2 = opacity 0.80 0.80,class:^(org.kde.ark)$
windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$
windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$
windowrulev2 = opacity 0.80 0.80,class:^(qt6ct)$
windowrulev2 = opacity 0.80 0.80,class:^(kvantummanager)$
windowrulev2 = opacity 0.80 0.80,class:^(^jetbrains-(?!toolbox)
windowrulev2 = opacity 0.80 0.70,class:^(pavucontrol)$
windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$
windowrulev2 = opacity 0.70 0.70,class:^([Ss]team)$
windowrulev2 = opacity 0.70 0.70,class:^(steamwebhelper)$
windowrulev2 = opacity 0.70 0.70,class:^(Spotify)$
windowrulev2 = opacity 0.70 0.70,initialTitle:^(Spotify Free)$

windowrulev2 = opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt
windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(discord)$ # Discord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(WebCord)$ # WebCord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron
windowrulev2 = opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
windowrulev2 = opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(Signal)$ # Signal-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
windowrulev2 = opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk

windowrulev2 = opacity 0.80 0.70,class:^(pavucontrol)$
windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$
windowrulev2 = opacity 0.80 0.70,class:^(blueman-services)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$
windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$
windowrulev2 = opacity 0.80 0.80,class:^(polkit-gnome-authentication-agent-1)$
windowrulev2 = opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.gtk)$
windowrulev2 = opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.hyprland)$
windowrulev2 = opacity 0.80 0.80,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk

windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Progress Dialog — Dolphin)$
windowrulev2 = float,class:^(org.kde.dolphin)$,title:^(Copying — Dolphin)$
windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = float,class:^(firefox)$,title:^(Library)$
windowrulev2 = float,class:^(vlc)$
windowrulev2 = float,class:^(kvantummanager)$
windowrulev2 = float,class:^(qt5ct)$
windowrulev2 = float,class:^(qt6ct)$
windowrulev2 = float,class:^(nwg-look)$
windowrulev2 = float,class:^(org.kde.ark)$
windowrulev2 = float,class:^(pavucontrol)$
windowrulev2 = float,class:^(blueman-manager)$
windowrulev2 = float,class:^(nm-applet)$
windowrulev2 = float,class:^(nm-connection-editor)$

windowrulev2 = float,class:^(Signal)$ # Signal-Gtk
windowrulev2 = float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk
windowrulev2 = float,class:^(app.drey.Warp)$ # Warp-Gtk
windowrulev2 = float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt
windowrulev2 = float,class:^(yad)$ # Protontricks-Gtk
windowrulev2 = float,class:^(eog)$ # Imageviewer-Gtk
windowrulev2 = float,class:^(io.github.alainm23.planify)$ # planify-Gtk
windowrulev2 = float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk
windowrulev2 = float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk
windowrulev2 = float,class:^(pavucontrol)$
windowrulev2 = float,class:^(blueman-manager)$
windowrulev2 = float,class:^(blueman-services)$
windowrulev2 = float,class:^(nm-applet)$
windowrulev2 = float,class:^(nm-connection-editor)$

windowrulev2 = float,class:^(org.fcitx.fcitx5-config-qt)$
windowrulev2 = float,class:^(feh)$

windowrulev2 = pin,class:^(feh)$

windowrulev2 = center,class:^(org.kde.kdeconnect.app)$
windowrulev2 = float,class:^(org.kde.kdeconnect.app)$

# Tencent
windowrulev2 = center,class:^(QQ)$
windowrulev2 = float,class:^(QQ)$
windowrulev2 = center,title:^(微信|Preview|图片查看|公众号)$
windowrulev2 = float,title:^(微信)$

# -- Fix odd behaviors in IntelliJ IDEs --
#! Fix focus issues when dialogs are opened or closed
# windowrulev2 = windowdance,class:^(jetbrains-.*)$,floating:1
#! Fix splash screen showing in weird places and prevent annoying focus takeovers
# windowrulev2 = center,class:^(jetbrains-.*)$,title:^(splash)$,floating:1
# windowrulev2 = nofocus,class:^(jetbrains-.*)$,title:^(splash)$,floating:1

#! Center popups/find windows
# windowrulev2 = center,class:^(jetbrains-.*)$,title:^( )$,floating:1
# windowrulev2 = stayfocused,class:^(jetbrains-.*)$,title:^( )$,floating:1
#! Disable window flicker when autocomplete or tooltips appear
# windowrulev2 = nofocus,class:^(jetbrains-.*)$,title:^(win.*)$,floating:1

# windowrulev2 = idleinhibit focus,class:^(google-chrome)$
windowrulev2 = float,class:^(io.gitlab.adhami3310.Impression)$ # Impression-Gtk

# █░░ ▄▀█ █▄█ █▀▀ █▀█   █▀█ █░█ █░░ █▀▀ █▀
# █▄▄ █▀█ ░█░ ██▄ █▀▄   █▀▄ █▄█ █▄▄ ██▄ ▄█

layerrule = blur,rofi
layerrule = ignorezero,rofi
layerrule = blur,notifications
layerrule = ignorezero,notifications
layerrule = blur,swaync-notification-window
layerrule = ignorezero,swaync-notification-window
layerrule = blur,swaync-control-center
layerrule = ignorezero,swaync-control-center
layerrule = blur,logout_dialog
vaxerski commented 2 months ago

that's an intellij issue that can be fixed by setting minsize windowrule as above to a small(er) value for the window