qtile
qtile copied to clipboard
Can't change windows focus with the cursor when running some application
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])
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!
Does the cursor exit the window as normal or does the window try to grab the cursor?
Just the confirm, this is on X11?
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?
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.
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
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)
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.
Does it still happen with 0.23.0?
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...