Firefox CSS - Hover not recognized when dragging items
Regression?
Yes
System Info and Version
System/Version info
Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886
flags: (if any)
System Information:
System name: Linux
Node name: AveryPC
Release: 6.9.7-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000
GPU information:
09:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1) (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:
======Config-Start======
Config File: /home/duder963/.config/hypr/hyprland.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=,preferred,auto,auto
#env = GTK_THEME,catppuccin-mocha-blue-standard+default-dark
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = kdeconnect-indicator
exec-once = waypaper --restore
# Source a file (multi-file configs)
source = ~/.config/localdots/hyprland.conf
# Set programs that you use
$terminal = kitty
$fileManager = nemo
$menu = rofi -show drun -show-icons
# Some default env vars.
env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
sensitivity = -0.5
follow_mouse = 1
mouse_refocus = false
touchpad {
natural_scroll = false
}
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 10
border_size = 0
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
}
xwayland {
#force_zero_scaling = true
}
cursor {
no_warps = true
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 8
passes = 3
vibrancy = 0.1696
}
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
dim_inactive = yes
dim_strength = 0.2
}
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
animation = windows, 1, 4, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 3, default
animation = workspaces, 1, 4, default,slidefade 20%
}
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
force_split = 2
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = false
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers
}
# 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
#windowrulev2 = nomaximizerequest, class:.* # You'll probably like this.
windowrulev2 = immediate, class:^(cs2)$
windowrule = center, ^(fontforge)
windowrulev2 = unset, title:^(fontforge)$, class:^(fontforge)$
#windowrulev2 = move cursor,class:REAPER,floating:1
#windowrulev2 = nofocus,class:REAPER,title:^(menu)$
#windowrulev2 = nofocus,class:REAPER,title:^$
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Return, exec, $terminal
bind = $mainMod SHIFT, Q, killactive,
bind = $mainMod SHIFT ALT, L, exit,
bind = $mainMod SHIFT, Space, togglefloating,
bind = $mainMod, F, fullscreen
bind = $mainMod SHIFT, F, fullscreen, 2
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod ALT, F, exec, firefox
bind = $mainMod ALT, N, exec, nemo
bind = $mainMod SHIFT, R, forcerendererreload
bind = $mainMod SHIFT, R, exec, killall waybar ; waybar
bind = CONTROL ALT, DELETE, exec, hyprctl kill
bind = , PRINT, exec, hyprshot -m region --clipboard-only
bind = SHIFT, PRINT, exec, hyprshot -m region
# Discord PTT fix
#bind = , V, pass, ^discord$
# Move focus with mainMod + arrow/vim keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, down, movefocus, d
bind = $mainMod, up, movefocus, u
bind = $mainMod, right, movefocus, r
bind = $mainMod, H, movefocus, l
bind = $mainMod, J, movefocus, d
bind = $mainMod, K, movefocus, u
bind = $mainMod, L, movefocus, r
# Move window with mainMod + Shift + arrow/vim keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, down, movewindow, d
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, J, movewindow, d
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, L, movewindow, r
# 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
bind = $mainMod ALT, 1, workspace, 11
bind = $mainMod ALT, 2, workspace, 12
bind = $mainMod ALT, 3, workspace, 13
bind = $mainMod ALT, 4, workspace, 14
bind = $mainMod ALT, 5, workspace, 15
bind = $mainMod ALT, 6, workspace, 16
bind = $mainMod ALT, 7, workspace, 17
bind = $mainMod ALT, 8, workspace, 18
bind = $mainMod ALT, 9, workspace, 19
bind = $mainMod ALT, 0, workspace, 20
bind = $mainMod, M, workspace, 99
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
bind = $mainMod SHIFT ALT, 1, movetoworkspacesilent, 11
bind = $mainMod SHIFT ALT, 2, movetoworkspacesilent, 12
bind = $mainMod SHIFT ALT, 3, movetoworkspacesilent, 13
bind = $mainMod SHIFT ALT, 4, movetoworkspacesilent, 14
bind = $mainMod SHIFT ALT, 5, movetoworkspacesilent, 15
bind = $mainMod SHIFT ALT, 6, movetoworkspacesilent, 16
bind = $mainMod SHIFT ALT, 7, movetoworkspacesilent, 17
bind = $mainMod SHIFT ALT, 8, movetoworkspacesilent, 18
bind = $mainMod SHIFT ALT, 9, movetoworkspacesilent, 19
bind = $mainMod SHIFT ALT, 0, movetoworkspacesilent, 20
bind = $mainMod SHIFT, M, movetoworkspacesilent, 99
windowrule = workspace 1, ^(firefox)$
windowrule = workspace 4, ^(lutris)$
windowrule = workspace 5, title:^(Steam)$
windowrule = workspace 13, ^(discord)$
windowrule = workspace 20, title:^(*Spotify*)$
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# 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, mouse:273, resizewindow
Config File: /home/duder963/.config/localdots/hyprland.conf: Read Succeeded
# Nvidia shit
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = __GL_GSYNC_ALLOWED,1
env = __GL_VRR_ALLOWED,1
env = MOZ_ENABLE_WAYLAND,1
#env = QT_QPA_PLATFORM,wayland
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DP-1, 1920x1080@120,0x0,1,vrr,1
monitor=DP-3, 1920x1080@60,auto-right,1
# Bind workspaces to monitors
workspace=1,monitor:DP-1
workspace=2,monitor:DP-1
workspace=3,monitor:DP-1
workspace=4,monitor:DP-1
workspace=5,monitor:DP-1
workspace=6,monitor:DP-1
workspace=7,monitor:DP-1
workspace=8,monitor:DP-1
workspace=9,monitor:DP-1
workspace=10,monitor:DP-1
workspace=99,monitor:DP-1
workspace=11,monitor:DP-3
workspace=12,monitor:DP-3
workspace=13,monitor:DP-3
workspace=14,monitor:DP-3
workspace=15,monitor:DP-3
workspace=16,monitor:DP-3
workspace=17,monitor:DP-3
workspace=18,monitor:DP-3
workspace=19,monitor:DP-3
workspace=20,monitor:DP-3
exec-once = waybar & lutris & steam & spotify-launcher & flameshot & discord
misc {
vrr = 1
}
======Config-End========
Description
First Bad Commit: 46ef665 (Moving to other window breaks) Second Bad Commit: 1b54444 (Dragging in same window breaks)
I have been using ShyFox, a CSS config for Firefox which uses an extension for tabs and can hide it in a sidebar that shows upon hovering. In Hyprland 0.41.1, I could drag tabs from the sidebar and the hover aspect would work just fine, allowing me to reposition tabs or move them to another Firefox window. Version 0.41.2 has stopped this behavior, and now when trying to drag an item from the sidebar, the hover aspect breaks and the sidebar immediately hides
However this seems to be the "expected" behavior even on other Linux window managers. The issue is a known bug on Firefox's end, and can be partially resolved by setting a value in Firefox's about:config. With this, the sidebar doesn't close at all while dragging, allowing tabs to be rearranged, but another window's sidebar doesn't open on hover either, so tabs can't be moved between windows.
While bisecting, I noticed this issue appeared in two phases. Commit 46ef665 Caused moving tabs between windows to break, dropping the tab and opening in a new window. This would then break rearranging tabs in any Firefox window. Commit 1b54444 was where dragging stopped working entirely
How to reproduce
- Install Firefox
- Install the Sidebery extension for Firefox
- Install Shyfox (or some other CSS that can hide Firefox's sidebar and show it upon hover)
- Open multiple tabs
- Attempt to drag a tab in the sidebar window
Crash reports, logs, images, videos
Version 0.41.1
https://github.com/hyprwm/Hyprland/assets/44327643/d900d549-b709-46c1-8127-cee3a67ada04
Commit 46ef665
https://github.com/hyprwm/Hyprland/assets/44327643/a1adc2a6-2229-463d-bab4-7520c6d11936
Commit 1b54444
https://github.com/hyprwm/Hyprland/assets/44327643/03791a3c-a730-4b30-bdbe-388eb76860bc