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.83k stars 908 forks source link

mouse re-appear even if captured/hidden by app/window after reload #8545

Open littleblack111 opened 2 days ago

littleblack111 commented 2 days ago

Already reported ? *

Regression?

Yes, No

System Info and Version

System/Version info ```sh Hyprland 0.45.0 built from branch a at commit 14853b2346cae3d3e85ef17ddba1e3d79d951ccb (). Date: Thu Nov 21 17:56:55 2024 Tag: v0.45.0-80-g14853b23, commits: 5513 built against aquamarine 0.4.5 flags set: debug System Information: System name: Linux Node name: Arch-Linux Release: 6.11.9-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Sun, 17 Nov 2024 16:06:09 +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 } master { new_status = inherit } # 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 { # use_cpu_buffer = true # no_hardware_cursors = false 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 # overlay = true # show fps suppress_errors = true error_position = 1 } Config File: /home/system/.config/hypr/colors.conf: Read Succeeded $wallpaper = /home/system/.cache/porsche-gt3rs-in-rain.3840x2160.mp4.png $background = rgb(201918) $foreground = rgb(D5F1F0) $cursor = rgb(D5F1F0) $color0 = rgb(47403F) $color1 = rgb(30120D) $color2 = rgb(653E38) $color3 = rgb(255D4B) $color4 = rgb(E1948D) $color5 = rgb(8FC2B8) $color6 = rgb(86D7D4) $color7 = rgb(BAE3E1) $color8 = rgb(829F9E) $color9 = rgb(30120D) $color10 = rgb(653E38) $color11 = rgb(255D4B) $color12 = rgb(E1948D) $color13 = rgb(8FC2B8) $color14 = rgb(86D7D4) $color15 = rgb(BAE3E1) 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 # java fix 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 windowrulev2 = keepaspectratio, 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|jetbrains-clion)$ # 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)$ windowrule = tag +games, title:.*\.exe # 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 # Full screen no idle windowrulev2 = idleinhibit fullscren, class:.* # 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)$ # 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 allow_pin_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, $rofiexec/rofi_powermenu bind = alt, F1, execr, $rofiexec/rofi_launcher bind = alt, F2, execr, $rofiexec/rofi_runner bind = $mainMod, period, execr, $rofiexec/rofi_emoji # utils bind = $mainMod, c, execr, $rofiexec/rofi_configs bind = $mainMod, m, execr, $rofiexec/rofi_music bind = $mainMod, n, execr, nmd bind = $mainMod, r, execr, $rofiexec/rofi_asroot # bind = $mainMod, s, execr, $rofiexec/rofi_screenshot bind = $mainMod, v, execr, $rofiexec/rofi_clipboard bind = $mainMod, w, execr, $rofiexec/rofi_windows bind = $mainMod, x, execr, $rofiexec/rofi_powermenu bind = $mainMod, b, execr, $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, code 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, $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 position 5+ bindo = ,XF86AudioNext, execr, playerctl -p spotify next bind = ,XF86AudioPrev, execr, playerctl position 5- bindo = ,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, $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 # zoom bind = $mainMod, equal, execr, /bin/bash -c "hyprctl keyword cursor:zoom_factor $(($(hyprctl getoption cursor:zoom_factor | awk '/float/ {print $2}')+0.1))" # window shortcuts bind = $mainMod, f, fullscreen, bind = $mainMod, space, togglefloating, bind = $mainMod shift, space, pseudo, # dwindle bind = $mainMod shift, m, togglesplit, # dwindle bind = $mainMod, s, pin # 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 # restore stuff like music etc exec-once = $SCRIPTSDIR/hypridle.sh --stopidle # spam of notification at start(e.g. chromium) exec-once = swaync-client --dnd-on && sleep 3 && swaync-client --dnd-off ======Config-End======== ```

Description

I have a wallust/pywal script that sets a color.conf that is read and applied to stuff like border color. This triggers a hyprctl reload. That script trigger every 30min(also resets my wallpaper).

This is very annoying in 3d games such as minecraft that captures your mouse since it'd spawn again on the screen, very distractive towards competitive games.

How to reproduce

  1. be in a application or something that captures/hides mouse
  2. trigger a reload
  3. mouse will appear

Crash reports, logs, images, videos

this is not a game specific issue, as this works on browsers(i tested firefox, chromium) cursor: none

littleblack111 commented 2 days ago

please ignore where hyprland is built, it's based yesterday's main branch commit and input-capture fork(not merged yet) and pin-fullscreen(not merged yet).

i can repro on latest -git too