qtile icon indicating copy to clipboard operation
qtile copied to clipboard

Can't change windows focus with the cursor when running some application

Open shinobu-uwu opened this issue 2 years ago • 9 comments

Issue description

When there's a fullscreen application focused on my main screen and I click on my secondary screen it won't change the focus to it, but if i click on a gap it will. Note in the video how I am still typing in osu! instead of Firefox even tho I clicked on Firefox. osu! is running under wine, happens with both fullscreen and borderless. I could be misremembering but I think it sometimes happens to tiled windows as well, though I could not reproduce while writing this issue.

https://user-images.githubusercontent.com/62085690/138567658-4fa04b1a-ef66-4ac8-bcce-146ad2f4acb9.mp4

EDIT: it seems to be something related to wine, I'm running DigitalWorks in a tiled window and the issue is happening, not only to windows in different screens, but also to windows in the same window. Using keybindings to change focus works though.

Qtile version

0.18.1

Stack traces

I found this in qtile.log, though I'm not sure what it is or how to fix it.

2021-10-23 15:00:24,643 ERROR libqtile hook.py:fire():L382 Error in hook focus_change
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/libqtile/hook.py", line 380, in fire
    i(*args, **kwargs)
  File "/usr/lib/python3.9/site-packages/libqtile/widget/windowname.py", line 90, in hook_response
    self.update(pangocffi.markup_escape_text(unescaped))
  File "/usr/lib/python3.9/site-packages/libqtile/widget/base.py", line 469, in update
    self.text = text
  File "/usr/lib/python3.9/site-packages/libqtile/widget/base.py", line 361, in text
    self.layout.text = self.formatted_text
  File "/usr/lib/python3.9/site-packages/libqtile/drawer.py", line 71, in text
    attrlist, value, accel_char = pangocffi.parse_markup(value)
  File "/usr/lib/python3.9/site-packages/libqtile/pangocffi.py", line 183, in parse_markup
    raise Exception("parse_markup() failed for %s" % value)
Exception: parse_markup() failed for b'Question / Help - Mouse cursor doesn&apo\xe2\x80\xa6'

Configuration

# Copyright (c) 2010 Aldo Cortesi
# Copyright (c) 2010, 2014 dequis
# Copyright (c) 2012 Randall Ma
# Copyright (c) 2012-2014 Tycho Andersen
# Copyright (c) 2012 Craig Barnes
# Copyright (c) 2013 horsik
# Copyright (c) 2013 Tao Sauvage
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

from typing import List  # noqa: F401

from libqtile import bar, layout, widget, hook
from libqtile.config import Click, Drag, Group, Key, Match, Screen
from libqtile.lazy import lazy
from libqtile.utils import guess_terminal

mod = "mod4"
terminal = guess_terminal()

colors = {
    'background': '#282a36',
    'foreground': '#f8f8f2',
    'grey': '#44475a',
    'blue': '#6272a4',
    'cyan': '#8be9fd',
    'green': '#50fa7b',
    'orange': '#ffb86c',
    'pink': '#ff79c6',
    'purple': '#bd93f9',
    'red': '#ff5555',
    'yellow': '#f1fa8c'
}
dir = '~/.config/qtile/'

keys = [
    # Switch between windows
    Key([mod], "h", lazy.layout.left(), desc="Move focus to left"),
    Key([mod], "l", lazy.layout.right(), desc="Move focus to right"),
    Key([mod], "j", lazy.layout.down(), desc="Move focus down"),
    Key([mod], "k", lazy.layout.up(), desc="Move focus up"),
    Key([mod], "space", lazy.layout.next(),
        desc="Move window focus to other window"),

    # Move windows between left/right columns or move up/down in current stack.
    # Moving out of range in Columns layout will create new column.
    Key([mod, "shift"], "h", lazy.layout.shuffle_left(),
        desc="Move window to the left"),
    Key([mod, "shift"], "l", lazy.layout.shuffle_right(),
        desc="Move window to the right"),
    Key([mod, "shift"], "j", lazy.layout.shuffle_down(),
        desc="Move window down"),
    Key([mod, "shift"], "k", lazy.layout.shuffle_up(), desc="Move window up"),

    # Grow windows. If current window is on the edge of screen and direction
    # will be to screen edge - window would shrink.
    Key([mod, "control"], "h", lazy.layout.grow_left(),
        desc="Grow window to the left"),
    Key([mod, "control"], "l", lazy.layout.grow_right(),
        desc="Grow window to the right"),
    Key([mod, "control"], "j", lazy.layout.grow_down(),
        desc="Grow window down"),
    Key([mod, "control"], "k", lazy.layout.grow_up(), desc="Grow window up"),
    Key([mod], "n", lazy.layout.normalize(), desc="Reset all window sizes"),

    # Toggle between split and unsplit sides of stack.
    # Split = all windows displayed
    # Unsplit = 1 window displayed, like Max layout, but still with
    # multiple stack panes
    Key([mod, "shift"], "Return", lazy.layout.toggle_split(),
        desc="Toggle between split and unsplit sides of stack"),
    Key([mod], "Return", lazy.spawn(terminal), desc="Launch terminal"),

    # Toggle between different layouts as defined below
    Key([mod], "Tab", lazy.next_layout(), desc="Toggle between layouts"),
    Key([mod], "w", lazy.window.kill(), desc="Kill focused window"),

    Key([mod, "control"], "r", lazy.restart(), desc="Restart Qtile"),
    Key([mod, "control"], "q", lazy.shutdown(), desc="Shutdown Qtile"),
    Key([mod], "r", lazy.spawn('rofi -show-icons -show drun'),
        desc="Spawn a command using a prompt widget"),
    Key([], "Print", lazy.spawn('flameshot gui')),
    Key([mod], "f", lazy.spawn('killall picom')),
    Key([mod, 'shift'], "f", lazy.spawn('picom -b --experimental-backends')),
]

groups = [Group(i) for i in "123456789"]

for i in groups:
    keys.extend([
        # mod1 + letter of group = switch to group
        Key([mod], i.name, lazy.group[i.name].toscreen(),
            desc="Switch to group {}".format(i.name)),

        # mod1 + shift + letter of group = switch to & move focused window to group
        Key([mod, "shift"], i.name, lazy.window.togroup(i.name, switch_group=True),
            desc="Switch to & move focused window to group {}".format(i.name)),
        # Or, use below if you prefer not to switch to that group.
        # # mod1 + shift + letter of group = move focused window to group
        # Key([mod, "shift"], i.name, lazy.window.togroup(i.name),
        #     desc="move focused window to group {}".format(i.name)),
    ])

layouts = [
    layout.Columns(
        border_focus = colors['green'],
        border_normal = colors['purple'],
        border_width=3,
        margin = 6
    ),
    layout.Max(),
    # Try more layouts by unleashing below layouts.
    # layout.Stack(num_stacks=2),
    # layout.Bsp(),
    # layout.Matrix(),
    # layout.MonadTall(),
    # layout.MonadWide(),
    # layout.RatioTile(),
    # layout.Tile(),
    # layout.TreeTab(),
    # layout.VerticalTile(),
    # layout.Zoomy(),
]

widget_defaults = dict(
    font='LexendDeca',
    fontsize=14,
    padding=3,
    background = colors['background'],
    foreground = colors['foreground'],
)
extension_defaults = widget_defaults.copy()

screens = [
    Screen(
        top=bar.Bar(
            [
                widget.GroupBox(
                    background = colors['purple'],
                    active = colors['foreground'],
                    inactive = colors['background'],
                    highlight_method = 'block',
                    this_current_screen_border = colors['green'],
                    this_screen_border = colors['grey'],
                    other_current_screen_border = colors['cyan'],
                    other_screen_border = colors['blue'],
                    urgent_border = colors['red'],
                    urgent_text = colors['foreground']
                ),
                widget.Image(filename = dir + '1.png'),
                widget.Spacer(),
                widget.WindowName(max_chars = 40),
                widget.Spacer(),
                widget.Systray(),
                widget.Image(filename = dir + '2.png'),
                widget.TextBox('', font = 'Material Icons', background = colors['grey'], fontsize = 20),
                widget.CPU(background = colors['grey'], format = '{freq_current}GHz {load_percent}%'),
                widget.Image(filename = dir + '3.png'),
                widget.TextBox('', font = 'Font Awesome 5 Free', background = colors['blue'], fontsize = 16),
                widget.Memory(background = colors['blue']),
                widget.Image(filename = dir + '4.png'),
                widget.TextBox('', font = 'Font Awesome 5 Free', background = colors['orange'], fontsize = 16),
                widget.Net(background = colors['orange'], format = '{up}'),
                widget.TextBox('', font = 'Font Awesome 5 Free', background = colors['orange'], fontsize = 16),
                widget.Net(background = colors['orange'], format = '{down}'),
                widget.Image(filename = dir + '5.png'),
                widget.TextBox('', font = 'Font Awesome 5 Free', background = colors['red'], fontsize = 16),
                widget.OpenWeather(background = colors['red'], location='Blumenau, BR', format = '{main_temp: .0f} °{units_temperature} {weather_details}'),
                widget.Image(filename = dir + '6.png'),
                widget.TextBox('', font = 'Font Awesome 5 Free', background = colors['purple'], fontsize = 16),
                widget.Clock(background = colors['purple']),
            ],
            24,
            margin = [6, 3, 0, 3]
        ),
    ),
]

# Drag floating layouts.
mouse = [
    Drag([mod], "Button1", lazy.window.set_position_floating(),
         start=lazy.window.get_position()),
    Drag([mod], "Button3", lazy.window.set_size_floating(),
         start=lazy.window.get_size()),
    Click([mod], "Button2", lazy.window.bring_to_front())
]

dgroups_key_binder = None
dgroups_app_rules = []  # type: List
follow_mouse_focus = False
bring_front_click = False
cursor_warp = False
floating_layout = layout.Floating(
    border_focus = colors['green'],
    border_normal = colors['purple'],
    float_rules=[
    # Run the utility of `xprop` to see the wm class and name of an X client.
    Match(wm_type='utility'),
    Match(wm_type='notification'),
    Match(wm_type='toolbar'),
    Match(wm_type='splash'),
    Match(wm_type='dialog'),
    Match(wm_class='file_progress'),
    Match(wm_class='confirm'),
    Match(wm_class='dialog'),
    Match(wm_class='download'),
    Match(wm_class='error'),
    Match(wm_class='notification'),
    Match(wm_class='splash'),
    Match(wm_class='toolbar'),
    Match(func=lambda c: c.has_fixed_size()),
    Match(wm_class='confirmreset'),  # gitk
    Match(wm_class='makebranch'),  # gitk
    Match(wm_class='maketag'),  # gitk
    Match(wm_class='ssh-askpass'),  # ssh-askpass
    Match(title='branchdialog'),  # gitk
    Match(title='pinentry'),  # GPG key password entry
])
auto_fullscreen = True
focus_on_window_activation = "smart"
reconfigure_screens = True

# If things like steam games want to auto-minimize themselves when losing
# focus, should we respect this or not?
auto_minimize = True

# XXX: Gasp! We're lying here. In fact, nobody really uses or cares about this
# string besides java UI toolkits; you can see several discussions on the
# mailing lists, GitHub issues, and other WM documentation that suggest setting
# this string if your java app doesn't work correctly. We may as well just lie
# and say that we're a working one by default.
#
# We choose LG3D to maximize irony: it is a 3D non-reparenting WM written in
# java that happens to be on java's whitelist.
wmname = "LG3D"

import os
import subprocess

@hook.subscribe.startup_once
def autostart():
    home = os.path.expanduser('~/.config/qtile/autostart.sh')
    subprocess.call([home])

shinobu-uwu avatar Oct 23 '21 18:10 shinobu-uwu

I think the screen focus point was something that @m-col has looked at so he's probably best placed to answer that one.

As for the error you posted, that's unrelated to this but something that does need to be fixed as it's popped up in a few widgets. It would be great if you could post it as a separate issue so I can add to my list of things to look at!

elParaguayo avatar Oct 29 '21 11:10 elParaguayo

Does the cursor exit the window as normal or does the window try to grab the cursor?

Just the confirm, this is on X11?

m-col avatar Oct 30 '21 11:10 m-col

Please could you enable debug logs with qtile cmd-obj -o cmd -d debug and paste the output from that when you try to focus and click?

m-col avatar Oct 30 '21 11:10 m-col

Does the cursor exit the window as normal or does the window try to grab the cursor?

Just the confirm, this is on X11?

The cursor works normally, it does leave the window. Yes, I'm running X11. Also when running DigitalWorks (under wine) on a tiled window I couldn't change focus with the cursor at all, even in windows in the same screen, using keybindings works tho.

Have been pretty busy this weekend, will post the logs later today or tomorrow.

shinobu-uwu avatar Nov 01 '21 16:11 shinobu-uwu

Please could you enable debug logs with qtile cmd-obj -o cmd -d debug and paste the output from that when you try to focus and click?

I kept alternating between alacritty and osu, on different screens but it also happens to windows (even tiled) in the same screen, it worked once then in the next tries the focus wouldn't change. The logs in the end are from after I closed osu.

https://pastebin.com/0zcAebSc

shinobu-uwu avatar Nov 04 '21 23:11 shinobu-uwu

I said it's related to wine but it's not. It's happening now with CLion, although I could switch to windows in the same screen.

https://user-images.githubusercontent.com/62085690/140664188-4f7596aa-1f83-4141-8b45-c4969c2f2c42.mp4

Logs

2021-11-07 19:32:59,130 DEBUG libqtile hook.py:fire():L372 Internal event: client_mouse_enter((Window(name='untitled – Cargo.toml', wid=35651660),), {})
2021-11-07 19:32:59,130 DEBUG libqtile core.py:_xpoll():L295 X11 event: ButtonPress (targets: 2)
2021-11-07 19:32:59,144 DEBUG libqtile hook.py:fire():L372 Internal event: focus_change((), {})
2021-11-07 19:32:59,171 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:32:59,171 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:32:59,171 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:32:59,171 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:32:59,171 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:32:59,171 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:32:59,171 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:32:59,171 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:32:59,171 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:32:59,171 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:32:59,556 DEBUG libqtile core.py:_xpoll():L295 X11 event: EnterNotify (targets: 0)
2021-11-07 19:32:59,573 DEBUG libqtile core.py:_xpoll():L295 X11 event: LeaveNotify (targets: 0)
2021-11-07 19:32:59,573 DEBUG libqtile core.py:_xpoll():L295 X11 event: EnterNotify (targets: 1)
2021-11-07 19:32:59,573 DEBUG libqtile hook.py:fire():L372 Internal event: client_mouse_enter((Window(name="Can't change windows focus with the cursor when running wine application · Issue #2940 · qtile/qtile — Mozilla Firefox", wid=33554476),), {})
2021-11-07 19:32:59,747 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:32:59,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:32:59,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:32:59,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:32:59,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:32:59,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:32:59,762 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:32:59,762 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,009 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,010 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,010 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,010 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,010 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,010 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,022 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,022 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,071 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,071 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,071 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,071 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,071 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,071 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 0)
2021-11-07 19:33:00,071 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,084 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,085 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,418 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:33:00,418 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:33:00,747 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,748 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,760 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,761 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,793 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,793 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,794 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,794 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,794 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,794 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,804 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,805 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,962 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,962 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,963 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,963 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,963 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:00,963 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,973 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:00,973 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,095 DEBUG libqtile core.py:_xpoll():L295 X11 event: EnterNotify (targets: 0)
2021-11-07 19:33:01,097 DEBUG libqtile core.py:_xpoll():L295 X11 event: LeaveNotify (targets: 0)
2021-11-07 19:33:01,097 DEBUG libqtile core.py:_xpoll():L295 X11 event: EnterNotify (targets: 1)
2021-11-07 19:33:01,097 DEBUG libqtile hook.py:fire():L372 Internal event: client_mouse_enter((Window(name='untitled – Cargo.toml', wid=35651660),), {})
2021-11-07 19:33:01,298 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,298 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:01,298 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,298 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,299 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:01,299 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,311 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,312 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,632 DEBUG libqtile core.py:_xpoll():L295 X11 event: EnterNotify (targets: 1)
2021-11-07 19:33:01,632 DEBUG libqtile hook.py:fire():L372 Internal event: client_mouse_enter((Window(name='untitled – Cargo.toml', wid=35651660),), {})
2021-11-07 19:33:01,633 DEBUG libqtile core.py:_xpoll():L295 X11 event: ButtonPress (targets: 2)
2021-11-07 19:33:01,651 DEBUG libqtile hook.py:fire():L372 Internal event: focus_change((), {})
2021-11-07 19:33:01,681 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,681 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:33:01,681 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:33:01,681 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:33:01,682 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,682 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:33:01,682 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:33:01,682 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:33:01,682 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:33:01,682 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:33:01,749 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,749 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:01,749 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,750 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,750 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:01,750 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,762 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,762 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,795 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,795 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:01,795 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,795 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,795 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:01,795 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,810 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,811 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:01,998 DEBUG libqtile core.py:_xpoll():L295 X11 event: EnterNotify (targets: 0)
2021-11-07 19:33:02,006 DEBUG libqtile core.py:_xpoll():L295 X11 event: LeaveNotify (targets: 0)
2021-11-07 19:33:02,006 DEBUG libqtile core.py:_xpoll():L295 X11 event: EnterNotify (targets: 1)
2021-11-07 19:33:02,006 DEBUG libqtile hook.py:fire():L372 Internal event: client_mouse_enter((Window(name="Can't change windows focus with the cursor when running wine application · Issue #2940 · qtile/qtile — Mozilla Firefox", wid=33554476),), {})
2021-11-07 19:33:02,524 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:02,524 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:02,524 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:02,524 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:02,525 DEBUG libqtile core.py:_xpoll():L295 X11 event: Expose (targets: 1)
2021-11-07 19:33:02,525 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:02,535 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:02,535 DEBUG libqtile core.py:_xpoll():L295 X11 event: ConfigureNotify (targets: 0)
2021-11-07 19:33:02,582 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 2)
2021-11-07 19:33:02,582 DEBUG libqtile window.py:handle_PropertyNotify():L1707 Unknown window property: _NET_WM_USER_TIME
2021-11-07 19:33:02,703 DEBUG libqtile core.py:_xpoll():L295 X11 event: SelectionNotify (targets: 1)
2021-11-07 19:33:02,703 DEBUG libqtile hook.py:fire():L372 Internal event: selection_notify(('PRIMARY', {'owner': 33554530, 'selection': ''}), {})
2021-11-07 19:33:02,703 DEBUG libqtile core.py:_xpoll():L295 X11 event: SelectionNotify (targets: 1)
2021-11-07 19:33:02,704 DEBUG libqtile hook.py:fire():L372 Internal event: selection_notify(('PRIMARY', {'owner': 33554530, 'selection': ''}), {})
2021-11-07 19:33:02,704 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 1)
2021-11-07 19:33:02,705 DEBUG libqtile hook.py:fire():L372 Internal event: selection_change(('PRIMARY', {'owner': 33554530, 'selection': 'https://github.com/qtile/qtile/issues/2940'}), {})
2021-11-07 19:33:02,705 DEBUG libqtile core.py:_xpoll():L295 X11 event: SelectionNotify (targets: 1)
2021-11-07 19:33:02,705 DEBUG libqtile core.py:_xpoll():L295 X11 event: PropertyNotify (targets: 1)
2021-11-07 19:33:02,706 DEBUG libqtile hook.py:fire():L372 Internal event: selection_change(('PRIMARY', {'owner': 33554530, 'selection': 'https://github.com/qtile/qtile/issues/2940'}), {})
2021-11-07 19:33:02,706 DEBUG libqtile core.py:_xpoll():L295 X11 event: SelectionNotify (targets: 1)

shinobu-uwu avatar Nov 07 '21 22:11 shinobu-uwu

I also have this bug when switching between a Jetbrains IDE (any IDE: pycharm, fleet, Clion, etc) and any another window with follow_mouse_focus = False.

It happens specifically if I click on the IDE, then the window that just lost focus: it does not regain focus. If I click on any other window, it gains focus and then I'm able to give focus back to the initial window.

It does not happen when two jetbrains IDEs are involved, I can hop back and forth between them without any problem.

When two IDEs are involved and a third window loses focus, I can hop between the IDEs but the third window never regains focus.

🤔

Arch Qtile 0.22.1 X11

No errors in the log file.

geowarin avatar Oct 20 '22 15:10 geowarin

Does it still happen with 0.23.0?

ramnes avatar Oct 10 '23 13:10 ramnes

Does it still happen with 0.23.0?

it still happens to me, though i can only replicate it on osu!, all other apps seem to work fine for me...

M4rti21 avatar Dec 24 '23 01:12 M4rti21