Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fuzzel launches on wrong monitor with mouse_move_focuses_monitor = false #8622

Closed
1 task done
skissue opened this issue Nov 30, 2024 · 0 comments
Closed
1 task done
Labels
bug Something isn't working
Milestone

Comments

@skissue
Copy link

skissue commented Nov 30, 2024

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

No

System Info and Version

System/Version info
Hyprland 0.45.0 built from branch  at commit 1fb720b62aeb474873ba43426ddc53afde1e6cdd  ().
Date: 2024-11-26
Tag: , commits: 5498
built against aquamarine 0.5.0


flags set:
debug


System Information:
System name: Linux
Node name: windstorm
Release: 6.11.7-cachyos
Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Nov  8 15:31:04 UTC 2024


GPU information: 
06:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8) (prog-if 00 [VGA controller])


os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="25.05.20241125.4633a7c"
CPE_NAME="cpe:/o:nixos:nixos:25.05"
DEFAULT_HOSTNAME=windstorm
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
ID_LIKE=""
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 25.05 (Warbler)"
SUPPORT_END="2025-06-30"
SUPPORT_URL="https://nixos.org/community.html"
VARIANT=""
VARIANT_ID=""
VENDOR_NAME=NixOS
VENDOR_URL="https://nixos.org/"
VERSION="25.05 (Warbler)"
VERSION_CODENAME=warbler
VERSION_ID="25.05"


plugins:
  hyprchroma by alexhulbert ver 1.0.0
  dynamic-cursors by Virt ver 0.1
  hyprfocus by Vortex ver 2.0
  hyprscroller by dawser ver 1.0

======Config-Start======


Config File: /home/ad/.config/hypr/hyprland.conf: Read Succeeded
plugin=/nix/store/fiy3pg8yn7k2jkpvgymd2ja221v03w65-hyprchroma-0.1/lib/libhyprchroma.so
plugin=/nix/store/33alk6rpxvkc88hjg5kqizhfq5niv3b9-hypr-dynamic-cursors/lib/libhypr-dynamic-cursors.so
plugin=/nix/store/jvb9n3xyvyb4s99sqnx2044ma63g9q00-hyprfocus-0.1/lib/libhyprfocus.so
plugin=/nix/store/fg7cj1wf4yb93qacyp91kw3bh8ncxygf-hyprscroller-date=2024-11-27_e7fb497_git/lib/libhyprscroller.so
monitor   = DP-2,2560x1440@144,0x0,1.25
monitor   = HDMI-A-1,1920x1080@60,2048x360,1
workspace = 1,monitor:DP-2,default:true
workspace = 2,monitor:DP-2
workspace = 3,monitor:DP-2
workspace = 4,monitor:DP-2
workspace = 5,monitor:DP-2
workspace = 6,monitor:DP-2
workspace = 7,monitor:DP-2
workspace = 8,monitor:DP-2
workspace = 9,monitor:DP-2
workspace = 10,monitor:HDMI-A-1,default:true

misc {
    vrr = 1
}

$dpmsExtra = && ddcutil setvcp d6 04
$undpmsExtra = && ddcutil setvcp d6 01

source = /nix/store/xy023zk2lz86jawlv33z2qbi67l07jrb-hyprland.conf


Config File: /nix/store/xy023zk2lz86jawlv33z2qbi67l07jrb-hyprland.conf: Read Succeeded
# Colors
# https://github.com/catppuccin/hyprland/blob/main/themes/macchiato.conf
$rosewater = rgb(f4dbd6)
$rosewaterAlpha = f4dbd6

$flamingo = rgb(f0c6c6)
$flamingoAlpha = f0c6c6

$pink = rgb(f5bde6)
$pinkAlpha = f5bde6

$mauve = rgb(c6a0f6)
$mauveAlpha = c6a0f6

$red = rgb(ed8796)
$redAlpha = ed8796

$maroon = rgb(ee99a0)
$maroonAlpha = ee99a0

$peach = rgb(f5a97f)
$peachAlpha = f5a97f

$yellow = rgb(eed49f)
$yellowAlpha = eed49f

$green = rgb(a6da95)
$greenAlpha = a6da95

$teal = rgb(8bd5ca)
$tealAlpha = 8bd5ca

$sky = rgb(91d7e3)
$skyAlpha = 91d7e3

$sapphire = rgb(7dc4e4)
$sapphireAlpha = 7dc4e4

$blue = rgb(8aadf4)
$blueAlpha = 8aadf4

$lavender = rgb(b7bdf8)
$lavenderAlpha = b7bdf8

$text = rgb(cad3f5)
$textAlpha = cad3f5

$subtext1 = rgb(b8c0e0)
$subtext1Alpha = b8c0e0

$subtext0 = rgb(a5adcb)
$subtext0Alpha = a5adcb

$overlay2 = rgb(939ab7)
$overlay2Alpha = 939ab7

$overlay1 = rgb(8087a2)
$overlay1Alpha = 8087a2

$overlay0 = rgb(6e738d)
$overlay0Alpha = 6e738d

$surface2 = rgb(5b6078)
$surface2Alpha = 5b6078

$surface1 = rgb(494d64)
$surface1Alpha = 494d64

$surface0 = rgb(363a4f)
$surface0Alpha = 363a4f

$base = rgb(24273a)
$baseAlpha = 24273a

$mantle = rgb(1e2030)
$mantleAlpha = 1e2030

$crust = rgb(181926)
$crustAlpha = 181926

# Basic Configuration
#
general {
    border_size             = 2
    gaps_in                 = 2
    gaps_out                = 6

    col.inactive_border     = rgba(00000000)
    col.active_border       = $lavender

    resize_corner           = 3
    allow_tearing           = true

    layout                  = scroller

    snap {
         enabled = true
    }
}

decoration {
    rounding    = 0

    dim_special = 0.4

    shadow {
        enabled = false
    }
}

group {
    col.border_active   = $rosewater
    col.border_inactive = rgba(00000000)

    groupbar {
        col.active   = $overlay0
        col.inactive = $surface0
        
        font_family  = Iosevka Aile
        font_size    = 10
    }
}

dwindle {
    pseudotile           = true
    
    force_split          = 2
    preserve_split       = true
    
    special_scale_factor = 0.95
    
    smart_resizing       = false
    default_split_ratio  = 1.1
}

# Beziers
bezier = linear,  0,  0,  1,  1
bezier = easein,  0.5,0,  1,  1
bezier = easeout, 0,0.5,  0.5,1

animations {
    animation = windows,   1,2,easein, slide
    animation = windowsIn, 1,2,easein, slide
    animation = windowsOut,1,2,easein, popin
    animation = fade,      1,3,linear
    animation = border,    1,2,linear
    animation = workspaces,1,2,easeout,slidevert
}

input {
    # Separate keyboard/mouse focus
    follow_mouse  = 3

    kb_layout     = us
    kb_variant    = colemak_dh

    repeat_rate   = 40
    repeat_delay  = 400

    accel_profile = flat

    touchpad {
        natural_scroll = true
        scroll_factor  = 0.5
    }
}

# Firmware remapped
device {
    name = moergo-glove80-left-keyboard
    kb_variant =
    resolve_binds_by_sym = 1
}
# Bluetooth device name
device {
    name = glove80-keyboard
    kb_variant =
    resolve_binds_by_sym = 1
}

# Scaling for XWayland
xwayland {
    force_zero_scaling = true
}
env = GDK_SCALE,1.25

cursor {
    no_warps = true
}

render {
    direct_scanout = true
}

misc {
    font_family                      = Iosevka Aile

    key_press_enables_dpms           = true

    enable_swallow                   = true
    swallow_regex                    = Alacritty
    swallow_exception_regex          = dragon

    mouse_move_focuses_monitor       = false
    new_window_takes_over_fullscreen = 2 # Un-fullscreen if another window is opened
    initial_workspace_tracking       = 2 # Apply for children as well
}

# Keybinds

$run = uwsm app --

# Hyprland
bind = SUPERSHIFT,X,exec,uwsm stop
bind = SUPERSHIFT,P,exec,hyprctl reload

# Window Management
# Switching focus
bind = SUPER,N,scroller:movefocus,l
bind = SUPER,E,scroller:movefocus,d
bind = SUPER,U,scroller:movefocus,u
bind = SUPER,I,scroller:movefocus,r
bind = SUPER,B,scroller:movefocus,begin
bind = SUPER,J,scroller:movefocus,end

# Moving windows
bind = SUPERSHIFT,N,scroller:movewindow,l
bind = SUPERSHIFT,E,scroller:movewindow,d
bind = SUPERSHIFT,U,scroller:movewindow,u
bind = SUPERSHIFT,I,scroller:movewindow,r

# Managing tiling
bind = SUPERSHIFT,bracketleft, scroller:setmode,       row
bind = SUPERSHIFT,bracketright,scroller:setmode,       column
bind = SUPER,     bracketleft, scroller:admitwindow
bind = SUPER,     bracketright,scroller:expelwindow
bind = SUPER,     tab,         scroller:jump
bind = SUPERSHIFT,tab,         scroller:toggleoverview
bind = SUPER,     backslash,   scroller:pin

# Switch focus via interactive menu
bind = SUPER,space,exec,hyprland-window-selector

# Close window
bind = SUPER,D,killactive
# Force-kill window
bind = SUPERSHIFT,D,exec,hyprctl kill

# Move between monitors
bind = SUPER,     R,focusmonitor,l
bind = SUPER,     S,focusmonitor,r
bind = SUPERSHIFT,R,movewindow,  mon:l
bind = SUPERSHIFT,S,movewindow,  mon:r

# Toggle fullscreen, floating, fake fullscreen
bind = SUPER,     T,fullscreen,     0
bind = SUPERSHIFT,T,togglefloating
bind = SUPERALT,  T,fullscreenstate,-1 2

# Resizing windows
bind   = SUPER,P,submap,resize

submap = resize

binde = ,     N,resizeactive,-100 0
binde = ,     E,resizeactive,0 100
binde = ,     U,resizeactive,0 -100
binde = ,     I,resizeactive,100 0
binde = SHIFT,N,resizeactive,-20 0
binde = SHIFT,E,resizeactive,0 20
binde = SHIFT,U,resizeactive,0 -20
binde = SHIFT,I,resizeactive,20 0

bind = ,M,           scroller:fitsize,active
bind = ,M,           submap,reset
bind = ,V,           scroller:fitsize,visible
bind = ,V,           submap,reset
bind = ,A,           scroller:fitsize,all
bind = ,A,           submap,reset
bind = ,bracketleft, scroller:fitsize,tobeg
bind = ,bracketleft, submap,reset
bind = ,bracketright,scroller:fitsize,toend
bind = ,bracketright,submap,reset

bind  = ,escape,submap,reset

submap = reset

# Changing row/column size
bind = SUPER,minus,scroller:cyclesize,prev
bind = SUPER,equal,scroller:cyclesize,next

# Column alignment
bind = SUPER,L,submap,align

submap = align

bind = ,N,scroller:alignwindow,left
bind = ,N,submap,reset
bind = ,E,scroller:alignwindow,down
bind = ,E,submap,reset
bind = ,U,scroller:alignwindow,up
bind = ,U,submap,reset
bind = ,I,scroller:alignwindow,right
bind = ,I,submap,reset
bind = ,comma,scroller:alignwindow,center
bind = ,comma,submap,reset
bind = ,catchall,submap,reset

submap = reset

# Old defaults for moving windows with the mouse
bindm = SUPER,mouse:272,movewindow
bindm = SUPER,mouse:273,resizewindow

# Workspaces
# Focus workspaces
bind = SUPER,     1,workspace,1
bind = SUPER,     2,workspace,2
bind = SUPER,     3,workspace,3
bind = SUPER,     4,workspace,4
bind = SUPER,     5,workspace,5
bind = SUPER,     6,workspace,6
bind = SUPER,     7,workspace,7
bind = SUPER,     8,workspace,8
bind = SUPER,     9,workspace,9
bind = SUPER,     0,workspace,10
bind = SUPER,comma ,workspace,r-1
bind = SUPER,period,workspace,r+1
bind = SUPER,K,workspace,empty
# Move window to workspaces
bind = SUPERSHIFT,1,     movetoworkspace,1
bind = SUPERSHIFT,2,     movetoworkspace,2
bind = SUPERSHIFT,3,     movetoworkspace,3
bind = SUPERSHIFT,4,     movetoworkspace,4
bind = SUPERSHIFT,5,     movetoworkspace,5
bind = SUPERSHIFT,6,     movetoworkspace,6
bind = SUPERSHIFT,7,     movetoworkspace,7
bind = SUPERSHIFT,8,     movetoworkspace,8
bind = SUPERSHIFT,9,     movetoworkspace,9
bind = SUPERSHIFT,0,     movetoworkspace,10
bind = SUPERSHIFT,comma, movetoworkspace,r-1
bind = SUPERSHIFT,period,movetoworkspace,r+1
bind = SUPERSHIFT,K,     movetoworkspace,empty

# Special workspace
bind = SUPER,     slash,togglespecialworkspace
bind = SUPERSHIFT,slash,movetoworkspace,special

# Screen locking
bind  = SUPER,     grave, exec,loginctl lock-session && sleep 0.5 && hyprctl dispatch dpms off $dpmsExtra
bind  = SUPERSHIFT,grave, exec,systemctl suspend
bindl = SUPER,     escape,exec,sleep 0.5 && hyprctl dispatch dpms off $dpmsExtra
bindl = SUPERSHIFT,escape,exec,sleep 0.5 && hyprctl dispatch dpms on $undpmsExtra

# Screenshots
bind =      ,print,exec,hyprshot --clipboard-only -m region
bind = SHIFT,print,exec,hyprshot --clipboard-only -m window
bind = CTRL ,print,exec,hyprshot --clipboard-only -m output

# Media controls
bindl = ,xf86audioplay, exec,playerctl play-pause
bindl = ,xf86audiopause,exec,playerctl play-pause
bindl = ,xf86audioprev, exec,playerctl previous
bindl = ,xf86audionext, exec,playerctl next

# Brightness
bindle = ,     xf86monbrightnessdown,exec,brightnessctl set 1000-
bindle = SHIFT,xf86monbrightnessdown,exec,brightnessctl set 100-
bindle = ,     xf86monbrightnessup,  exec,brightnessctl set +1000
bindle = SHIFT,xf86monbrightnessup,  exec,brightnessctl set +100

# Notifications
bind = SUPER,     Q,exec,makoctl dismiss
bind = SUPERSHIFT,Q,exec,makoctl dismiss --all
bind = SUPERALT,  Q,exec,makoctl restore

# Applications
bindr = SUPER,Super_L,exec,$run $LAUNCHER
bindr = SUPER,Super_R,exec,$run $LAUNCHER
bind  = SUPER,return ,exec,alacritty msg create-window || $run alacritty

# Submap for focus-or-open
bind = SUPER,O,submap,applications

submap = applications

bind = ,B,exec,$run hyprland-focus-or-open zen-alpha zen
bind = ,B,submap,reset
bind = ,K,exec,[size 80% 80%] $run keepassxc
bind = ,K,submap,reset
bind = ,M,exec,alacritty msg create-window --class ncmpcpp -e ncmpcpp || $run alacritty -e ncmpcpp --class ncmpcpp
bind = ,M,submap,reset
bind = ,G,exec,$run hyprland-focus-or-open signal signal-desktop
bind = ,G,submap,reset
bind = ,W,exec,$run hyprland-focus-or-open WebCord webcord
bind = ,W,submap,reset
bind = ,catchall,submap,reset

submap = reset

# Emacs submap
bind = SUPER,F,submap,emacs

submap = emacs

bind = SUPER,F,exec,$run emacsclient -c -a 'emacs'
bind = SUPER,F,submap,reset

bind = ,E,exec,$run emacsclient -c -e '(mu4e)'
bind = ,E,submap,reset
bind = ,A,exec,$run emacsclient -c -e '(org-agenda)'
bind = ,A,submap,reset
bind = ,P,exec,$run emacsclient -c -e "(call-interactively ##'project-switch-project)"
bind = ,P,submap,reset
bind = ,catchall,submap,reset

submap = reset

# Window rules
#
windowrulev2 = float,       class:org.keepassxc.KeePassXC
windowrulev2 = center,      class:org.keepassxc.KeePassXC

windowrulev2 = float,       class:info.mumble.Mumble,title:Talking UI
windowrulev2 = pin,         class:info.mumble.Mumble,title:Talking UI

windowrulev2 = float,       class:ncmpcpp
windowrulev2 = size 80% 80%,class:ncmpcpp
windowrulev2 = center,      class:ncmpcpp

windowrulev2 = float,class:emacs,title:MINIBUFFER
windowrulev2 = workspace special:minibuffer silent,class:emacs,title:MINIBUFFER
windowrulev2 = size 80% 80%,class:emacs,title:MINIBUFFER

windowrulev2 = immediate,class:(tetrio-desktop)

# Blur widgets
layerrule = blur,bar

# Workspace rules
workspace = w[tg1],gapsout:0,border:2,rounding:0

# Startup applications
exec-once = $run swaybg -m fill -i ~/nc/pictures/wallpapers/0014.png
exec-once = $run eww open bar --size "40x$(hyprctl monitors -j | jq -r '(.[0].height / .[0].scale) - 16')"
exec-once = [workspace special silent] $run alacritty
exec-once = [float] $run keepassxc
exec-once = $run mpd-mpris
exec-once = $run playerctld daemon
exec-once = $run gnome-keyring-daemon --start

# Plugins
windowrulev2 = plugin:chromakey,fullscreen:0

plugin {
    chroma {
        color      = 0x1d1f21
        alpha      = 0.85
        similarity = 0.0
    }

    dynamic-cursors {
        enabled = true
        mode    = tilt
    
        tilt {
            limit = 4000
        }
    }

    hyprfocus {
        enabled                 = yes
        animate_floating        = yes
        animate_workspacechange = yes
        focus_animation         = flash

        flash {
            flash_opacity = 0.7
            in_speed = 0.8
            in_bezier = linear
            out_speed = 1.0
            out_bezier = linear
        }
    }
    
    scroller {
        column_default_width             = twothirds
        window_default_height            = one
        column_widths                    = onethird onehalf twothirds one
        window_heights                   = onethird onehalf twothirds one

        jump_labels_color                = 0xc5c8c6ff
        jump_labels_scale                = 0.4
        jump_labels_keys                 = arstneio

        gestures_workspace_switch_prefix = r
    }
}

======Config-End========

Description

With mouse_move_focuses_monitor = false, windows always open on the monitor with keyboard focus, rather than the monitor that the mouse is on (follow_mouse = 3), as expected. However, Fuzzel always opens on the monitor that the mouse is on; I would expect it to open on the monitor with keyboard focus as well. Also tested with Rofi, same issue.

How to reproduce

  1. Set mouse_move_focuses_monitor = false and follow_mouse = 3.
  2. Leave keyboard focus on monitor A while moving the cursor to monitor B.
  3. Open a window. Observe that the window opens on monitor A, as expected.
  4. Open Fuzzel. Observe that Fuzzel opens on monitor B instead.

Crash reports, logs, images, videos

No response

@skissue skissue added the bug Something isn't working label Nov 30, 2024
@vaxerski vaxerski added this to the 0.46.0 milestone Dec 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants