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
21.8k stars 906 forks source link

floating window does not respect gaps #8411

Open littleblack111 opened 1 week ago

littleblack111 commented 1 week ago

Already reported ? *

Regression?

Yes, No

System Info and Version

System/Version info ```sh Hyprland 0.45.0 built from branch main at commit 80b074dbf5b5e25dcf1b18fcdd33926e615f89f0 (input-capture: fix rebase issues). Date: Sat Nov 9 23:43:11 2024 Tag: v0.45.0-10-g80b074db, commits: 5443 built against aquamarine 0.4.2 flags set: debug System Information: System name: Linux Node name: Arch-Linux Release: 6.11.6-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Fri, 01 Nov 2024 03:30:35 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770] [8086:a780] (rev 04) (prog-if 00 [VGA controller]) 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD103 [GeForce RTX 4080 SUPER] [10de:2702] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 565.57.01 Thu Oct 10 12:29:05 UTC 2024 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: ======Config-Start====== Config File: /home/system/.config/hypr/hyprland.conf: Read Succeeded ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=,highres@highrr,auto,auto # ,bitdepth,10 # monitor=,preferred,auto,auto,bitdepth,10 ################### ### MY PROGRAMS ### ################### # Program defaults $terminal = alacritty $termfloat = [float; size 40% 40%; workspace +0] alacritty $editor = lvim # $browser = thorium-browser $browser = zen-browser $fileManager = thunar $sessionManager = sddm $menu = rofi -i -dmenu -theme $HOME/.config/rofi/configs.rasi # Dirs $HYPRDIR = $HOME/.config/hypr $WAYBARDIR = $HOME/.config/waybar $SCRIPTSDIR = $HOME/scripts $rofiexec = $HOME/.config/rofi/scripts # global vars $outer_gaps = 12 source = $HYPRDIR/colors.conf # misc $waylandarg = --enable-features=WaylandWindowDecorations,UseOzonePlatform --ozone-platform-hint=auto ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 5 gaps_out = 7 border_size = 3 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg # DO THIS LATER # col.inactive_border = rgba(595959aa) # col.active_border = rgb(00a7f5) rgb(538620) rgb(538620) rgb(00a7f5) 90deg # col.inactive_border = rgb(00a7f5) rgb(538620) rgb(538620) rgb(00a7f5) 90deg # col.active_border = rgb(00a7f5) rgb(538620) # col.inactive_border = rgb(00a7f5) rgb(538620) col.inactive_border = $background col.active_border = $color15 $color13 $color10 $color8 $color6 $color4 $color2 $color0 # 45deg # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = true layout = dwindle snap { enabled = true # border_overlap = false } } xwayland { force_zero_scaling = true } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 7 # Change transparency of focused and unfocused windows active_opacity = 0.95 inactive_opacity = 0.85 fullscreen_opacity = 1.0 shadow { enabled = true range = 15 render_power = 4 # sharp = true ignore_window = true color = $background # color = rgba(1a1a1aee) } screen_shader = /usr/share/hyprshade/shaders/vibrance.glsl # dim_inactive = true # dim_strength = 0.4 # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 6 passes = 3 # vibrancy = 1 popups = true ignore_opacity = true # KEEP THIS, THIS MAKE BLUR ACTUALLY BLUR COOL } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = true # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = windowovershot, 1, 1, 0, 1.05 bezier = overshot, 0.5, 1, 0, 1.2 # bezier = outsideIn, 0.5, 1.1, 0, 0.9 bezier = slow-fast, 1, 0.33, 0.3, 1 bezier = fast-slow, 0.33, 0.8, 0, 1 bezier = linear, 0, 0, 1, 1 # bezier = linear, 0, 0, 1, 1 # bezier = md3_standard, 0.2, 0, 0, 1 bezier = md3_decel, 0.05, 0.7, 0.1, 1 # bezier = md3_accel, 0.3, 0, 0.8, 0.15 # bezier = overshot, 0.05, 0.9, 0.1, 1.1 # bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 # bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 # bezier = menu_decel, 0.1, 1, 0, 1 # bezier = menu_accel, 0.38, 0.04, 1, 0.07 # bezier = easeInOutCirc, 0.85, 0, 0.15, 1 # bezier = easeOutCirc, 0, 0.55, 0.45, 1 # bezier = easeOutExpo, 0.16, 1, 0.3, 1 # bezier = softAcDecel, 0.26, 0.26, 0.15, 1 # bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration animation = fade, 1, 4, md3_decel animation = windows, 1, 3, overshot # animation = windowsOut, 1, 2, slow-fast, popin 15% animation = windowsOut, 1, 2, slow-fast, popin 15% # animation = windowsMove, 1, 2, md3_accel # when new window appears, it will block it for a while since its slower then windowIn animation animation = workspaces, 1, 6, fast-slow, slide animation = workspacesIn, 1, 6, fast-slow, slidefade animation = borderangle, 1, 100, linear, loop } # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this force_split = 3 } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers focus_on_activate = true disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( # vfr = false # vrr = 1 # 1 = always, 2 = only in full screen mouse_move_enables_dpms = true key_press_enables_dpms = true # animate_manual_resizes = true # animate_mouse_windowdragging = true middle_click_paste = false enable_swallow = false # true swallow_regex = ^(Alacritty)$ new_window_takes_over_fullscreen = 2 } group { groupbar { # enabled = false render_titles = false text_color = $foreground col.active = $color0 col.inactive = $background col.locked_active = $color0 col.locked_inactive = $background } col.border_active = $color0 $color15 $foreground $cursor col.border_inactive = $background col.border_locked_active = $color0 $background col.border_locked_inactive = $background } # binds { # workspace_back_and_forth = true # } render { explicit_sync = 1 explicit_sync_kms = 1 direct_scanout = true } opengl { # nvidia_anti_flicker = false # force_introspection = 0 } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 # scroll_factor = 1.0 # sensitivity = 0 # -1.0 - 1.0, 0 means no modification. numlock_by_default = true repeat_delay = 300 # touchpad { # natural_scroll = false # } } cursor { # allow_dumb_copy = true no_hardware_cursors = true no_break_fs_vrr = true # zoom_rigid = true persistent_warps = true } plugin { overview { enabled = true disableGestures = true panelHeight = 150 } # hyprfocus { # enabled = yes # focus_animation = shrink # animate_floating = yes # animate_worksapcechange = yes # } dynamic-cursors { mode = stretch shake { effects = true } shaperule = text, none # shaperule = clientside, none } # chromakey_background = $background # hy3 { # # disable gaps when only one window is onscreen # # 0 - always show gaps # # 1 - hide gaps with a single window onscreen # # 2 - 1 but also show the window border # # no_gaps_when_only = # default: 0 # # policy controlling what happens when a node is removed from a group, # # leaving only a group # # 0 = remove the nested group # # 1 = keep the nested group # # 2 = keep the nested group only if its parent is a tab group # # node_collapse_policy = # default: 2 # # offset from group split direction when only one window is in a group # # group_inset = # default: 10 # # if a tab group will automatically be created for the first window spawned in a workspace # # tab_first_window = # # tab group settings # tabs { # # height of the tab bar # # height = # default: 15 # # padding between the tab bar and its focused node # # padding = # default: 5 # # the tab bar should animate in/out from the top instead of below the window # # from_top = # default: false # # rounding of tab bar corners # # rounding = # default: 3 # # render the window title on the bar # # render_text = # default: true # # center the window title # # text_center = # default: false # # font to render the window title with # # text_font = # default: Sans # # height of the window title # # text_height = # default: 8 # # left padding of the window title # # text_padding = # default: 3 # # active tab bar segment color # # col.active = # default: 0xff32b4ff # # urgent tab bar segment color # # col.urgent = # default: 0xffff4f4f # # inactive tab bar segment color # # col.inactive = # default: 0x80808080 # # active tab bar text color # # col.text.active = # default: 0xff000000 # # urgent tab bar text color # # col.text.urgent = # default: 0xff000000 # # inactive tab bar text color # # col.text.inactive = # default: 0xff000000 # } # # autotiling settings # autotile { # # enable autotile # # enable = # default: false # # make autotile-created groups ephemeral # # ephemeral_groups = # default: true # # if a window would be squished smaller than this width, a vertical split will be created # # -1 = never automatically split vertically # # 0 = always automatically split vertically # # = pixel height to split at # # trigger_width = # default: 0 # # if a window would be squished smaller than this height, a horizontal split will be created # # -1 = never automatically split horizontally # # 0 = always automatically split horizontally # # = pixel height to split at # # trigger_height = # default: 0 # # a space or comma separated list of workspace ids where autotile should be enabled # # it's possible to create an exception rule by prefixing the definition with "not:" # # workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2 # # workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2 # # workspaces = # default: all # } # } # hyprwinwrap { # class = winwrap # } } source = ~/.config/hypr/env.conf source = ~/.config/hypr/rules.conf source = ~/.config/hypr/binds.conf source = ~/.config/hypr/autostart.conf # debug:disable_logs = false debug { # overlay = true # show fps suppress_errors = true error_position = 1 } Config File: /home/system/.config/hypr/colors.conf: Read Succeeded $wallpaper = /home/system/.cache/mountains-in-clouds.3840x2160.mp4.png $background = rgb(000107) $foreground = rgb(CAE0E6) $cursor = rgb(CAE0E6) $color0 = rgb(000107) $color1 = rgb(365974) $color2 = rgb(3B617A) $color3 = rgb(427493) $color4 = rgb(6288A2) $color5 = rgb(6792B4) $color6 = rgb(69A5B9) $color7 = rgb(ABCAD3) $color8 = rgb(788D94) $color9 = rgb(365974) $color10 = rgb(3B617A) $color11 = rgb(427493) $color12 = rgb(6288A2) $color13 = rgb(6792B4) $color14 = rgb(69A5B9) $color15 = rgb(ABCAD3) Config File: /home/system/.config/hypr/env.conf: Read Succeeded ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 env = HYPRCURSOR_THEME,Bibata-Rainbow-Modern # Nvidia env = LIBVA_DRIVER_NAME,nvidia env = GBM_BACKEND,nvidia-drm env = __GLX_VENDOR_LIBRARY_NAME,nvidia # env = __GL_GSYNC_ALLOWED,1 env = VDPAU_DRIVER,nvidia env = NVD_BACKEND,direct # just in case if it tried to use igpu for hardware accel # env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 # XDG env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland # QT env = QT_AUTO_SCREEN_SCALE_FACTOR,1 # env = QT_QPA_PLATFORM=wayland;xcb # Not yet working for onlyoffice-editor env = QT_QPA_PLATFORM = xcb env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_QPA_PLATFORMTHEME,qt6ct # env = SDL_VIDEODRIVER,wayland env = _JAVA_AWT_WM_NONREPARENTING,1 # Scale env = QT_AUTO_SCREEN_SCALE_FACTOR,1 # env = GDK_DPI_SCALE,1.5 # env = QT_SCALE_FACTOR,2 # Electron blurry etc fix env = ELECTRON_OZONE_PLATFORM_HINT,auto # Input method # env = GTK_IM_MODULE,fcitx env = QT_IM_MODULE,fcitx env = QT_IM_MODULES,wayland;fcitx;ibus env = XMODIFIERS,@im=fcitx env = SDL_IM_MODULE,fcitx env = GLFW_IM_MODULE,fcitx env = INPUT_METHOD,fcitx env = XMODIFIERS,fcitx env = IMSETTINGS_MODULE,fcitx # wine env = WINEPREFIX, /opt/windows.wine # howdy avoid spam from gstreamer env = OPENCV_LOG_LEVEL, ERROR # temp fix for gtk apps seg fault # env = GSK_RENDERER, ngl # Toolkit backend env = GDK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb env = SDL_VIDEODRIVER,wayland # Remove or set to x11 if games that provide older versions of SDL cause compatibility issues # QT env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_QPA_PLATFORM,wayland;xcb # firefox env = MOZ_DISABLE_RDD_SANDBOX, 1 env = MOZ_ENABLE_WAYLAND,1 Config File: /home/system/.config/hypr/rules.conf: Read Succeeded ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # Tag # workspaces windowrulev2 = workspace 1, tag:terminal windowrulev2 = workspace 2, tag:web windowrulev2 = workspace 3, tag:file windowrulev2 = workspace 4, tag:code windowrulev2 = workspace 5, tag:office windowrulev2 = workspace 6, tag:communication windowrulev2 = workspace 7, tag:media windowrulev2 = workspace 8, tag:games windowrulev2 = workspace 9, tag:system windowrulev2 = workspace 10, tag:misc # GUI Utils windowrulev2 = opacity 0.85 0.75, tag:gui-utils windowrulev2 = pin, tag:gui-utils windowrulev2 = size 53% 60%, tag:gui-utils windowrulev2 = move 46.5% 4.8%, tag:gui-utils windowrulev2 = animation slide right top, tag:gui-utils # media contents windowrulev2 = float, tag:media-contents windowrulev2 = pin, tag:media-contents windowrulev2 = move 100%-w-$outer_gaps, tag:media-contents windowrulev2 = noinitialfocus, tag:media-contents windowrulev2 = noshadow, tag:media-contents # It grabs our focus when it change video windowrulev2 = suppressevent activatefocus, tag:media-contents # fake fullscreen windowrulev2 = fullscreenstate 0 2, tag:fakefullscreen # Games windowrulev2 = fullscreen, tag:games # Tearing (for better gaming performance) windowrulev2 = immediate, tag:games # time-sensitive app rules windowrulev2 = stayfocused, tag:time-sensitive windowrulev2 = pin, tag:time-sensitive windowrulev2 = dimaround, tag:time-sensitive windowrulev2 = center, tag:time-sensitive windowrulev2 = float, tag:time-sensitive # cli util apps windowrulev2 = float, tag:cli-utils windowrulev2 = pin, tag:cli-utils windowrulev2 = dimaround, tag:cli-utils # hidden windowrulev2 = movetoworkspacesilent, special:minimized, tag:hidden # Group # windowrule = group, ^virt-manager$ # Terminal applications windowrulev2 = tag terminal, class:^(Alacritty|Xfce4-terminal|Kitty)$ # Web browsers windowrulev2 = tag web, class:^($browser|Brave-browser|chromium|firefox|thorium|zen-alpha)$ # File managers windowrulev2 = tag file, class:^($fileManager|Pcmanfm|Thunar|qBittorrent|Caja)$ # Code editors windowrulev2 = tag code, class:^(Geany|code|code-url-handler|cursor-url-handler|code-oss|Code - OSS|install4j-burp-StartBurp|burp-StartBurp|Unity|jetbrains-pycharm-ce|Postman)$ # Office applications windowrulev2 = tag office, class:^(Gucharmap|Atril|Evince|LibreOffice.*|libreoffice.*|Soffice|Typora|obsidian|figma-linux|anytype|craft-nativefier-e0958b|evince)$ # Communication apps windowrulev2 = tag communication, class:^(Thunderbird|TelegramDesktop|Hexchat|discord|vesktop|VencordDesktop|Chat-gpt|Whatsapp-for-linux|Chatbox)$ # Media applications windowrulev2 = tag media, class:^(Audacity|Music|MPlayer|Lxmusic|Inkscape|Gimp|Blender|obs|zoom|Zoom|Pitivi|kdenlive|openshot|vlc|cider|Cider|shotwell|Shotwell|fr.handbrake.ghb|Spotify)$ # Games windowrulev2 = tag games, class:^(Minecraft|Badlion|War|steam_proton|steam|csgo_linux64|cs2|minecraft-launcher|lutris|genshinimpact.exe|moe.launcher.an-anime-game-launcher|lunarclient|Lunar Client.*|zenlesszonezero.exe|moe.launcher.sleepy-launcher|org.vinegarhq.Sober)$ # System/Settings applications windowrulev2 = tag system, class:^(virt-manager|blueman-adapters|GParted|Xdm-app|timeshift-gtk|com.nextcloud.desktopclient.nextcloud|gearlever|Lxappearance|Lxtask|Lxrandr|Arandr|System-config-printer.py|Pavucontrol|Exo-helper-1|Protonvpn|Xfce4-power-manager-settings|Mysql-workbench-bin|Grub-customizer|Nitrogen|archlinux-tweak-tool.py|pamac-manager|helvum|Vmware|btrfs-assistant|Bitwarden|wootility-lekker|nwg-look|com.github.wwmm.easyeffects|kvantummanager)$ # Miscellaneous applications windowrulev2 = tag misc, class:^(maxautoclicker|os_server|Os_server)$ # floating applications windowrulev2 = float, class:^(Pcmanfm|Onboard|Yad|zoom|Xdm-app|wechat|WeChat|sxiv|Sxiv|Firefox:Places|Viewnior|feh|Nm-connection-editor|install4j-burp-StartBurp|thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|float|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper|electron|com.github.rafostar.Clapper)|Sign in – Google accounts$ windowrulev2 = float, title:^(Steam Settings)$ # pin apps windowrulev2 = pin, title:^(zoom_linux_float_video_window)$ # specificly sized # windowrulev2 = size 40% 40%, class:^(alacritty-float)$ # Sticky applicationsp # App that have menu on top for stayfocused, without this, menus will dissappear when you move ur mouse windowrulev2 = stayfocused, title:(menu) # GUI Utils applications windowrulev2 = tag gui-utils, class:^(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper)$ windowrulev2 = animation slide right top, tag:gui-utils # bitwarden chrome extension popup windowrulev2 = pin, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$ windowrulev2 = float, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$ windowrulev2 = stayfocused, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$ # firefox windowrulev2 = float, title:^Extension # for media contents windowrulev2 = tag media-contents, class:^(blobdrop|dragon)$ # PIP windowrulev2 = tag media-contents, title:^(Picture-in-Picture)$ windowrulev2 = size 25% 25%, title:^(Picture-in-Picture)$ # removes title/border windowrulev2 = tag fakefullscreen, class:^(thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default) # Full screen applications # time-sensitive app rules windowrulev2 = tag time-sensitive, class:^(org.freedesktop.impl.portal.desktop.kde|polkit-gnome-authentication-agent-1|pinentry-|xdg-desktop-portal.*|hyprland-share-picker.*|gcr-prompter|io.missioncenter.MissionCenter)$ windowrulev2 = tag time-sensitive, title:^(Open File|Open|Select a File|Choose wallpaper|Open Folder|Save As|Save File|Library|File Upload|.*- Properties)$ windowrulev2 = dimaround, tag:time-sensitive # rofi # windowrulev2 = float, class:^(Rofi) # windowrulev2 = pin, class:^(Rofi) # windowrulev2 = dimaround, class:^(Rofi) # util apps windowrulev2 = tag cli-utils, title:^(nmd|cliphist|pulsemixer|ranger|btop)$ windowrulev2 = dimaround, tag:cli-utils windowrulev2 = stayfocused, title:^(btop)$ # windowrulev2 = stayfocused, title:^(rofi - Command|rofi - Confirmation|rofi - ArchLinux (hyprland)) # No shadow for tiled window windowrulev2 = noshadow,floating:0 # Opacity rules # windowrule = opacity 0.89 override 0.89 override, .* set in decoration # windowrulev2 = opacity 0.95 0.90, class:.+ windowrulev2 = opacity 0.85 0.75, class:^code-oss$ windowrulev2 = opacity 0.85 0.75, class:^code$ windowrulev2 = opacity 0.85 0.75, class:^code-url-handler$ windowrulev2 = opacity 0.85 0.75, class:^cursor-url-handler$ windowrulev2 = opacity 1.00 0.90, class:^TelegramDesktop$ windowrulev2 = opacity 0.90 0.80, class:^Spotify$ windowrulev2 = opacity 0.90 0.80, class:^Cider$ windowrulev2 = opacity 0.50 0.40, class:^fcitx$ windowrulev2 = opacity 0.90 0.80, class:^Brave-browser$ windowrulev2 = opacity 0.90 0.80, class:^thunar$ windowrulev2 = opacity 0.85 0.75, class:^discord$ windowrulev2 = opacity 0.90 0.80, class:^Caja$ windowrulev2 = opacity 0.80 0.70, class:^polkit-gnome-authentication-agent-1$ windowrulev2 = opacity 0.80 0.70, title:^Open$ windowrulev2 = opacity 0.8 0.5, title:^New Tab - Thorium$ # windowrulev2 = ignorezero, title:Annotation - Zoom # no blurs windowrulev2 = noblur, title:^(Annotation - Zoom)$ # Layer rules/blur layerrule = blurpopups layerrule = blur,rofi layerrule = ignorezero,rofi layerrule = dimaround,rofi layerrule = animation popin 65%,rofi layerrule = blur,notifications layerrule = ignorezero,notifications layerrule = blur,swaync-notification-window layerrule = ignorezero,swaync-notification-window layerrule = blur,swaync-control-center layerrule = animation slide right,swaync-notification-window layerrule = animation slide right,swaync-control-center layerrule = ignorezero,swaync-control-center layerrule = blur,logout_dialog layerrule = blur,waybar layerrule = ignorezero, waybar layerrule = blur,syshud layerrule = ignorezero, syshud # layerrule = blur,$browser # Misc # xwaylandvideobridge windowrulev2 = opacity 0.0 override, class:^(xwaylandvideobridge)$ windowrulev2 = noanim, class:^(xwaylandvideobridge)$ windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$ windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$ windowrulev2 = noblur, class:^(xwaylandvideobridge)$ # Tearing (for better gaming performance) windowrule = tag games, .*\.exe # Roblox join private server windowrulev2 = float, title:^(Join Friends)$ class:^(org.vinegarhq.Sober)$ # No transparency for fullscreen windows windowrulev2 = plugin:chromakey,fullscreen:0 # Ignore maximize requests from apps. You'll probably like this. windowrulev2 = suppressevent maximize, class:.* # Fix some dragging issues with XWayland windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 Config File: /home/system/.config/hypr/binds.conf: Read Succeeded #################### ### KEYBINDINGSS ### #################### binds { # allow_workspace_cycles = yes # movefocus_cycles_fullscreen = true } # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "SUPER" key as main modifier # Launching... bind = $mainMod, return, execr, $terminal bind = $mainMod shift, return, exec, $termfloat # bind = $mainMod space, return, execr, $terminal start --class pseudo bind = $mainMod alt, Delete, execr, pkill rofi || $rofiexec/rofi_powermenu bind = alt, F1, execr, pkill rofi || $rofiexec/rofi_launcher bind = alt, F2, execr, pkill rofi || $rofiexec/rofi_runner bind = $mainMod, period, execr, pkill rofi || $rofiexec/rofi_emoji # utils bind = $mainMod, c, execr, pkill rofi || $rofiexec/rofi_configs bind = $mainMod, m, execr, pkill rofi || $rofiexec/rofi_music bind = $mainMod, n, execr, nmd bind = $mainMod, r, execr, pkill rofi || $rofiexec/rofi_asroot bind = $mainMod, s, execr, pkill rofi || $rofiexec/rofi_screenshot bind = $mainMod, v, execr, pkill rofi || $rofiexec/rofi_clipboard bind = $mainMod, w, execr, pkill rofi || $rofiexec/rofi_windows bind = $mainMod, x, execr, pkill rofi || $rofiexec/rofi_powermenu bind = $mainMod, b, execr, pkill rofi || $rofiexec/rofi_bluetooth # GUI bind = $mainMod shift, f, execr, $fileManager # bind = $mainMod shift, w, execr, $browser --restore-last-session bind = $mainMod shift, w, execr, $browser # -new-tab about:sessionrestore bind = $mainMod shift, e, execr, cursor bind = $mainMod shift, d, execr, discord $waylandarg bind = $mainMod shift, b, execr, beeper $waylandarg # CLI bind = ctrl alt, a, exec, $termfloat -T pulsemixer -e pulsemixer bind = ctrl alt, r, exec, $termfloat -T ranger -e ranger bind = ctrl alt, v, exec, $termfloat -e $editor # Emergency bindtp = ctrl alt, b, exec, $termfloat -T btop -e sudo nice -n -20 ionice -c 1 sudo btop bindtp = ctrl alt, delete, execr, pkill rofi || $rofiexec/rofi_shutdown_menu bindtp = ctrl shift, escape, execr, missioncenter # Misc # bind = ctrl alt, m, execr, music bind = $mainMod, p, execr, hyprpicker --autocopy bindtp = ctrl alt, l, execr, loginctl lock-session # Misc bind = $mainMod shift, g, execr, gtk-launch shortwave.desktop # bind = $mainMod shift, c, execr, gtk-launch google-chat.desktop # XF86 keys & Misc bind = ,XF86Print, execr, pidof slurp || $HOME/scripts/sysutil.sh screenshot --now bind = alt, XF86AudioMute, execr, $HOME/scripts/sysutil.sh screenshot --in5sec bind = $mainMod shift, s, execr, $HOME/scripts/sysutil.sh screenshot --area # Volume binde = ,XF86AudioRaiseVolume, execr, $HOME/scripts/sysutil.sh volume --inc binde = ,XF86AudioLowerVolume, execr, $HOME/scripts/sysutil.sh volume --dec bind = ,XF86AudioMute, execr, $HOME/scripts/sysutil.sh volume --toggle bind = ,XF86AudioMicMute, execr, $HOME/scripts/sysutil.sh volume --toggle-mic bind = ,XF86AudioNext, execr, playerctl -p spotify next bind = ,XF86AudioPrev, execr, playerctl -p spotify previous bindl = ,XF86AudioPlay, exec, [workspace 7 silent; noinitialfocus] $HOME/scripts/play-pause.sh || LD_PRELOAD=/usr/lib/spotify-adblock.so spotify bind = ,XF86AudioStop, execr, playerctl -p spotify stop bind = ,XF86PowerOff, execr, pkill rofi || $rofiexec/rofi_shutdown # Pause bind = ,Pause, execr, hyprfreeze -s -a # Print bind = ,Print, execr, $HOME/scripts/hyprshot --now # Brightness bind = ,XF86MonBrightnessUp, execr, $HOME/scripts/sysutil.sh brightness --inc bind = ,XF86MonBrightnessDown, execr, $HOME/scripts/sysutil.sh brightness --dec # Window management # bind = $mainMod, d, execr, $HOME/scripts/hyprhide h # bind = $mainMod, i, execr, $HOME/scripts/hyprhide s bind = $mainMod, d, movetoworkspacesilent, special:minimized bind = $mainMod, i, togglespecialworkspace, minimized bind = $mainMod, i, movetoworkspace, +0 bind = $mainMod, q, killactive bind = $mainMod shift, q, execr, kill -9 $(hyprctl activewindow | grep pid | tail -1 | awk '{print$2}') bind = ctrl alt, escape, execr, hyprctl kill bind = ctrl $mainMod shift, r, execr, systemctl restart $sessionManager # restart bar bind = ctrl $mainMod, escape, execr, killall -SIGUSR2 waybar || waybar & # reload wall bind = $mainMod alt, b, execr, killall wallust; killall mpvpaper.sh; $SCRIPTSDIR/mpvpaper.sh # bind = ctrl, up, hyprexpo:expo, on # bind = ctrl, down, hyprexpo:expo, off bind = ctrl $mainMod alt, up, overview:open bind = ctrl $mainMod alt, down, overview:close # bind = alt, tab, execr, hyprswitch gui # bind = alt, grave, execr, hyprswitch gui --reverse # bindr = alt, tab, execr, hyprswitch close # bindr = alt, grave, execr, hyprswitch close bind = alt, tab, execr, hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch bind = alt, grave, execr, hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch -r binde = ctrl alt, left, workspace, -1 binde = ctrl alt, right, workspace, +1 binde = $mainMod shift, left, movewindow, l binde = $mainMod shift, right, movewindow, r binde = $mainMod shift, up, movewindow, u binde = $mainMod shift, down, movewindow, d binde = $mainMod shift, h, movewindow, l binde = $mainMod shift, l, movewindow, r binde = $mainMod shift, k, movewindow, u binde = $mainMod shift, j, movewindow, d # binde = ctrl shift, left, resizeactive, -20 0 # binde = ctrl shift, left, moveactive, 20 0 # binde = ctrl shift, right, resizeactive, -20 0 # binde = ctrl shift, up, resizeactive, 0 -20 # binde = ctrl shift, up, moveactive, 0 20 # binde = ctrl shift, down, resizeactive, 0 -20 binde = ctrl $mainMod, left, resizeactive, 20 0 binde = ctrl $mainMod, left, moveactive, -20 0 binde = ctrl $mainMod, right, resizeactive, 20 0 binde = ctrl $mainMod, up, resizeactive, 0 20 binde = ctrl $mainMod, up, moveactive, 0 -20 binde = ctrl $mainMod, down, resizeactive, 0 20 binde = ctrl $mainMod alt, f, setfloating, 1 binde = ctrl $mainMod alt, f, centerwindow, 1 binde = shift alt, left, moveactive, -20 0 binde = shift alt, right, moveactive, 20 0 binde = shift alt, up, moveactive, 0 -20 binde = shift alt, down, moveactive, 0 20 # window shortcuts bind = $mainMod, f, fullscreen, bind = $mainMod, space, togglefloating, bind = $mainMod shift, space, pseudo, # dwindle bind = $mainMod shift, m, togglesplit, # dwindle # Move focus with mainMod + arrow keys binde = $mainMod, left, movefocus, l binde = $mainMod, right, movefocus, r binde = $mainMod, up, movefocus, u binde = $mainMod, down, movefocus, d # vim binds binde = $mainMod, h, movefocus, l binde = $mainMod, l, movefocus, r binde = $mainMod, k, movefocus, u binde = $mainMod, j, movefocus, d # 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, movetoworkspacesilent, 10 # Scroll through existing workspaces with mainMod + scroll # use waybar # 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, mouse:273, resizewindow # bind = $mainMod, mouse:272, pin # bindri = $mainMod, mouse:272, pin, disable bindi = ,mouse:275, execr, exec -a autoclicker-left zsh -c 'while true; do wlrctl pointer click; sleep $((0.$RANDOM/10)); done' bindi = ,mouse:276, execr, exec -a autoclicker-right zsh -c 'while true; do wlrctl pointer click right; sleep $((0.$RANDOM/10)); done' bindri = ,mouse:275, execr, kill $(pgrep -f autoclicker-left) bindri = ,mouse:276, execr, kill $(pgrep -f autoclicker-right) # Make group # bind = $mainMod, g, togglegroup # bindie = ,mouse:276, execr, wlrctl pointer click # bindie = ,mouse:275, execr, wlrctl pointer click right # bindri = ,mouse:276, execr, kill $(pgrep -f autoclicker-left) # bindri = ,mouse:275, execr, kill $(pgrep -f autoclicker-right) # chroma bind = $mainMod, O, togglechromakey # input capture bind = $mainMod SHIFT, escape, releaseinputcapture Config File: /home/system/.config/hypr/autostart.conf: Read Succeeded ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: # seems to be builtin? # exec-once = dbus-update-activation-environment --all && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # exec-once = systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME # FIX CURSOR because keep reseting(see: https://www.reddit.com/r/hyprland/comments/1fgfmqb/gtk_apps_not_respecting_cursor_theme/) # exec-once = gsettings set org.gnome.desktop.interface cursor-theme Bibata-Rainbow-Modern exec-once = hyprctl setcursor Bibata-Rainbow-Modern 24 # Launch hyprland plugins exec-once = hyprpm reload || hyprpm update # Start pyprland daemon exec-once = pyprland # Waybar exec-once = waybar # Hypr-Eco # exec-once = hyprpaper # exec-once = $SCRIPTSDIR/hyprpaper.sh # exec-once = $SCRIPTSDIR/swww.sh exec-once = $SCRIPTSDIR/mpvpaper.sh exec-once = hypridle # XWayland exec-once = xrdb -merge ~/.Xresources # Auth agent # exec-once = systemctl --user start plasma-polkit-agent # doesnt respect themeing # exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = systemctl --user start hyprpolkitagent # keyring agent exec-once = gnome-keyring-daemon --start --components=pkcs11,secrets,ssh # Location service exec-once = /usr/lib/geoclue-2.0/demos/agent & # input method exec-once = fcitx5 -d # app armor notifications # exec-once = aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log & # Clipboard history # exec-once = wl-paste --watch cliphist store exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store # exec-once = wl-clip-persist --clipboard regular # Notification agent exec-once = swaync # window swicher daemon exec-once = hyprswitch init --size-factor 5 # audio auto adjust exec-once = $HOME/scripts/audio-autoAdjust.sh --daemon # effect for audio exec-once = while true; do easyeffects --gapplication-service; done # startup sound exec-once = $HOME/scripts/startupsound.sh # misc # sys hud exec-once = syshud -M audio_in,audio_out,brightness -b /sys/bus/ddcci/devices/ddcci13/backlight/ddcci13/ # night light exec-once = gammastep -l geoclue2 # exec-once = $HOME/scripts/hyprsunset.sh # user applications exec-once = udiskie exec-once = bitwarden-desktop # exec-once = kdeconnectd exec-once = input-leap # works with https://github.com/3l0w/Hyprland/tree/feat/input-capture-impl exec-once = nextcloud --background exec-once = [workspace 6 silent; noinitialfocus] discord --start-minimized exec-once = beeper --no-sandbox --hidden --default-frame # exec-once = echo 'ddcci 0x37' | sudo tee /sys/bus/i2c/devices/i2c-13/new_device # Notify if stuff is already started exec-once = warp-cli status | grep Connect && notify-send 'warp-vpn' 'connected' exec-once = pactl get-source-mute @DEFAULT_SOURCE@ | grep 'Mute: yes' >/dev/null && notify-send 'microphone' 'muted' exec-once = modprobe uvcvideo || notify-send 'uvcvideo' 'disabled' exec-once = pgrep -f gpu-screen-recorder && notify-send 'recorder' 'recording' # restore session exec-once = hyprsession # spam of notification at start(e.g. chromium) exec-once = swaync-client --dnd-on && sleep 3 && swaync-client --dnd-off ======Config-End======== ```

Description

for example. movewindows bottom will just go the bottom of my display, disregarding the gaps. applies to snaping too.

maybe option to disable such behavoir

How to reproduce

  1. use movewindow dispatcher or snap
  2. it'd go the display's very edge disregarding the gaps set

Crash reports, logs, images, videos

No response

vaxerski commented 1 week ago

works on my end...?