hyprwm / Hyprland

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

Non-fullscreen tiled windows open on top of other tiled windows #7147

Closed carschandler closed 2 months ago

carschandler commented 2 months ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit e67322034037fef22079c8e480be38c1d04b5a4a (). Date: 2024-07-29 Tag: , commits: e67322034037fef22079c8e480be38c1d04b5a4a flags: (if any) System Information: System name: Linux Node name: desktop Release: 6.6.42 Version: #1-NixOS SMP PREEMPT_DYNAMIC Thu Jul 25 07:50:58 UTC 2024 GPU information: 09:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104 [GeForce GTX 1080] [10de:1b80] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 555.58.02 Tue Jun 25 01:39:15 UTC 2024 os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20240727.b73c222" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: ======Config-Start====== Config File: /home/chan/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/wbqwrp6gpf31acmdchik5lsj8zdw2z24-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target source=./source.conf Config File: /home/chan/.config/hypr/source.conf: Read Succeeded # This is an example Hyprland config file. # # Refer to the wiki for more information. # Please note not all available settings / options are set here. # For a full list, see the wiki # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=eDP-1, 1920x1080@60, 0x0, 1 monitor=DP-1, 2560x1440@144, 0x0, 1 monitor=DP-2, 2560x1440@144, 2560x-500, 1, transform, 3 monitor=,preferred,auto,auto # Slight chance this is related to gdm? Also see # https://github.com/hyprwm/Hyprland/issues/6309 monitor=Unknown-1, disabled env = XCURSOR_SIZE,24 env = XCURSOR_THEME,Adwaita env = NIXOS_OZONE_WL,1 # TODO # workspace=1, monitor:DP-2 # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch exec-once = hyprctl setcursor Adwaita 24 & swaync & bash /home/chan/nixos/dotfiles/hyprland/dot-config/hypr/launch_hyprpaper.sh # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = caps:backspace kb_rules = follow_mouse = 2 float_switch_override_focus = 0 touchpad { natural_scroll = true scroll_factor = 0.2 } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. numlock_by_default = true } $activeColor = rgba(bbbbbbcc) $inactiveColor = rgba(444444cc) general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 10 border_size = 2 # dim white col.active_border = $activeColor # with gradient? # col.active_border = rgba(bbbbbbcc) rgba(999999cc) 90deg # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg # gruvbox # col.active_border = rgba(83a598ee) rgba(8ec07cee) 45deg # col.active_border = rgba(8ec07cee) # col.active_border = rgba(83a598ee) col.inactive_border = $inactiveColor # col.inactive_border = rgba(00000000) layout = dwindle } xwayland { force_zero_scaling = true } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more blur { enabled = true size = 5 passes = 2 new_optimizations = true } rounding = 10 drop_shadow = true shadow_range = 30 shadow_render_power = 2 col.shadow = rgba(1a1a1afe) col.shadow_inactive = rgba(1a1a1a88) # col.shadow = rgba(aaaaaa99) # col.shadow_inactive = rgba(1a1a1a00) # dim_inactive = true # dim_strength = 0.05 } animations { enabled = true # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 bezier = easeInCubic, 0.32, 0, 0.67, 0 bezier = easeOutCubic, 0.33, 1, 0.68, 1 bezier = easeOutCirc, 0, 0.55, 0.45, 1 bezier = easeInOutSine, 0.37, 0, 0.63, 1 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, easeOutCirc animation = fadeShadow, 1, 6, easeOutCirc animation = fadeIn, 1, 2, easeOutCirc animation = fadeOut, 1, 2, easeOutCirc animation = fadeDim, 1, 2, easeOutCirc animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # you probably want this } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_status = slave } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = true } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } misc { disable_hyprland_logo = true disable_splash_rendering = true } binds { # Super+Tab (sort of) replaces the need for this # workspace_back_and_forth = true # allow_workspace_cycles = true } group { col.border_active = $activeColor col.border_inactive = $inactiveColor groupbar { col.active = $activeColor col.inactive = $inactiveColor } } # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more layerrule = blur,launcher # layerrule = blur,notifications # Would be nice, but blurs the margins around notification windows as well # layerrule = blur,swaync-notification-window # Would be nice, but blurs the margins around notification windows as well # layerrule = noanim,launcher # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = WIN # $appLauncher = tofi-drun --drun-launch=true # --font $HOME/.nix-profile/share/fonts/truetype/NerdFonts/SauceCodeProNerdFont-SemiBold.ttf $appLauncher = nwg-drawer -term wezterm # $appLauncher = tofi-drun --drun-launch=true --font $HOME/.local/share/fonts/SF-Pro.ttf --font-variations="wght 600" # $appLauncher = tofi-drun --drun-launch=true --font $HOME/.nix-profile/share/fonts/truetype/InterVariable.ttf --font-variations="wght 700" $cmdLauncher = tofi-run # --font $HOME/.nix-profile/share/fonts/truetype/NerdFonts/SauceCodeProNerdFont-SemiBold.ttf $browser = firefox # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, RETURN, exec, wezterm bind = $mainMod SHIFT, W, killactive, bind = $mainMod SHIFT CTRL, X, exit, bind = $mainMod, F, togglefloating, bind = $mainMod SHIFT, F, fullscreen, bindr = $mainMod, SPACE, exec, pkill tofi-drun || $appLauncher bindr = $mainMod, X, exec, pkill tofi-run || $cmdLauncher bind = $mainMod, D, pseudo, # dwindle bind = $mainMod, S, togglesplit, # dwindle bind = $mainMod SHIFT, L, exec, hyprlock bind = $mainMod SHIFT, A, exec, ~/.config/hypr/noanims.sh bind = $mainMod SHIFT, P, pin, active bind = $mainMod, B, exec, $browser bind = $mainMod SHIFT, N, exec, swaync-client -t -sw bind = $mainMod SHIFT, G, togglegroup bind = ALT_L, TAB, changegroupactive, f bind = ALT_L SHIFT, TAB, changegroupactive, b bind= $mainMod, SEMICOLON, togglespecialworkspace, bind= $mainMod SHIFT, SEMICOLON, movetoworkspace, special # Move focus with mainMod + vim keys bind = $mainMod, H, movefocus, l bind = $mainMod, J, movefocus, d bind = $mainMod, K, movefocus, u bind = $mainMod, L, movefocus, r # Corne bind = $mainMod, M, movefocus, l bind = $mainMod, N, movefocus, d bind = $mainMod, E, movefocus, u bind = $mainMod, I, movefocus, r # Switch focus to previously focused window bind = $mainMod, TAB, focuscurrentorlast bind = $mainMod, BACKSPACE, workspace, previous # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 bindl = $mainMod SHIFT, S, exec, systemctl suspend bindl = $mainMod SHIFT, H, exec, systemctl hibernate # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod SHIFT, mouse:272, resizewindow # Media keys bindle = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise bindle = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower bindl = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle bindl = SHIFT, XF86AudioMute, exec, swayosd-client --input-volume mute-toggle # bindle = , XF86MonBrightnessUp, exec, brightnessctl s 5%+ bindle = , XF86MonBrightnessUp, exec, swayosd-client --brightness raise bindle = , XF86MonBrightnessDown, exec, swayosd-client --brightness lower bind = , XF86Search, exec, $appLauncher bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous bindl = , XF86AudioNext, exec, playerctl next # Screenshots bind = , Print, exec, grimblast --notify --freeze copy area bind = SHIFT, Print, exec, grimblast --notify copy output bind = CTRL, Print, exec, grimblast --notify copy active bind = CTRL SHIFT, Print, exec, grimblast --notify copy screen bind = $mainMod, Print, exec, grimblast --notify --freeze copysave area bind = $mainMod SHIFT, Print, exec, grimblast --notify copysave output bind = $mainMod CTRL, Print, exec, grimblast --notify copysave active bind = $mainMod CTRL SHIFT, Print, exec, grimblast --notify copysave screen ======Config-End======== ```

Description

Occasionally, I will launch an application and it will occupy my entire display tiled as though it were first window to open in that workspace, but there will be other tiled windows beneath it. If I move or resize the window with my mouse (movewindow, resizewindow), it snaps back to how I'd expect it to.

How to reproduce

I'm not sure if it's happening in anything other than Evince, but I feel like I've remembered it elsewhere.

  1. Open at least one window in a workspace, tiled (i.e. WezTerm)
  2. Launch evince (from app launcher or keybind)
  3. The initial file picker window opens as a tiled window
  4. After selecting a document, the problem occurs

Crash reports, logs, images, videos

Sorry for some reason the video didn't really pick up until after my launcher closed. The behavior is still shown though.

https://github.com/user-attachments/assets/59646148-d35a-4274-8807-241265a91b8e

ikalco commented 2 months ago

try adding this config option windowrulev2 = suppressevent maximize, class:.*

carschandler commented 2 months ago

Thanks @ikalco