krohnkite icon indicating copy to clipboard operation
krohnkite copied to clipboard

Some utility windows still get tiled

Open Trollwut opened this issue 3 years ago • 8 comments

Hey there! New user on Krohnkite. While I do like tiling of any other window, I'd like my utility windows to be float.

Unfortunately, some of them are still getting tiled. Especially if they're coming from wine. (In comparison, i3 managed to find out that they're not meant to be tiled.)

Of course I set "Float utility windows" in the Krohnkite Rules settings.

Are there any other measures I can take?

(I'm quite new to Krohnkite and KDE in general.)

Trollwut avatar Apr 13 '21 22:04 Trollwut

Got an example! The Linux native steam has that behaviour.

So the Library and Chat window are getting tiled, which is intended.

But upon login of the software, the "wait until I logged in" window and then "Enter your credentials" window are getting tiled.

This is the line out of my i3 config:

for_window [title="Steam - News"] floating enable

As you see, it's specifically for one window. Other windows are being handled by standard i3.

Trollwut avatar Apr 21 '21 07:04 Trollwut

I managed to xprop the mentioned "waiting for login" window of Steam (I cropped out the icon):

 xprop
_NET_WM_ICON_GEOMETRY(CARDINAL) = 2375, 0, 4, 38
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_DESKTOP(CARDINAL) = 2
_KDE_NET_WM_ACTIVITIES(STRING) = "3a558af6-9242-4754-9204-5783f901e09a"
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FOCUSED
WM_NAME(UTF8_STRING) = "Steam"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
_NET_WM_ICON(CARDINAL) = 	Icon (48 x 48):
	(here would be the icon in ASCII)


_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 27713128
WM_CLASS(STRING) = "Steam", "Steam"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		user specified location: 3008, 649
		user specified size: 384 by 107
		program specified minimum size: 384 by 107
		program specified maximum size: 384 by 107

Trollwut avatar May 19 '21 15:05 Trollwut

Another Steam window that gets tiled, where it shouldn't. :)

Just for the record: I just "document" these windows in case it can help some developer to find a solution. It's not a "when is this stuff fixed" reminder. :D Just want to help. :)

Ok, here is the xprop. This window opens, when you want to install a game and Steam asks you where to:

_NET_WM_ICON_GEOMETRY(CARDINAL) = 436, 0, 38, 38
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE
_NET_WM_DESKTOP(CARDINAL) = 1
_KDE_NET_WM_ACTIVITIES(STRING) = "3a558af6-9242-4754-9204-5783f901e09a"
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_NET_WM_STATE(ATOM) =
WM_NAME(UTF8_STRING) = "Install - Company of Heroes 2"
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
_NET_WM_ICON(CARDINAL) = 	Icon (48 x 48): [icon cropped]
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
_KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 611266
WM_CLASS(STRING) = "Steam", "Steam"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		user specified location: 722, 359
		user specified size: 476 by 400
		program specified minimum size: 476 by 400
		program specified maximum size: 476 by 400```

Trollwut avatar May 29 '21 06:05 Trollwut

You can disable tiling per window class, window name, etc.

Go to KDE Settings > Window Management > KWin Scripts > Krohnkite > Rules and you can add the classes of your steam windows seperated by commas.

The utility windows targeted by Krohnkite by default are KDE utility windows, so applications like Steam won't respond to that setting

oezingle avatar Jun 04 '21 18:06 oezingle

The utility windows targeted by Krohnkite by default are KDE utility windows, so applications like Steam won't respond to that setting

Ah ok, the more you know. :)

Unfortunately, Steam doesn't name their windows with specific classes and they rather all have the same. So it's quite hard to only exclude specific windows of Steam and not all together.

But then that's not a problem of Kröhnkite, but of Steam. :)

Trollwut avatar Jun 05 '21 21:06 Trollwut

Regarding Windows/Wine applications...their X11 class names always have a '.exe' suffix. For example, Steam's (Wine) class name is 'Steam.exe'. Krohnkite already matches sub-strings, but it is limited to Window Titles. If we can match sub-strings in X11 class names, I believe most, if not all Wine applications would be caught and set to float.

As for Linux-native Steam...yeah all Steam windows share the same class. You can try floating that Steam window with the Window Title instead. Place the 'Steam - News' string in the comma-separated list for Window Titles. Remove the quotes.

b1scu1t avatar Jul 14 '21 13:07 b1scu1t

Regarding Windows/Wine applications...their X11 class names always have a '.exe' suffix. For example, Steam's (Wine) class name is 'Steam.exe'. Krohnkite already matches sub-strings, but it is limited to Window Titles. If we can match sub-strings in X11 class names, I believe most, if not all Wine applications would be caught and set to float.

As for Linux-native Steam...yeah all Steam windows share the same class. You can try floating that Steam window with the Window Title instead. Place the 'Steam - News' string in the comma-separated list for Window Titles. Remove the quotes.

True that. Funny enough, "Steam - News" is the only window that is float by default. :D

I haven't tested it recently, but when I was on i3wm, Steam had the problem of first spawning a window and THEN naming it, so checking on the title wasn't really possible. I might re-check this if this problem still persists.

Another solution would be to float ANY Steam window by default and then unfloat the two main windows (library + chat) via keybind. It might be a little unconvenient at first, but it's a workaround.

Trollwut avatar Jul 14 '21 13:07 Trollwut

Just for future readers needing this workaround: I put steam (not uppercase Steam) in the "float by default" window class text box.

For now it seems like everythings is float by default, I just have to "un-float" the two main windows (library and chat).

Trollwut avatar Jul 20 '21 18:07 Trollwut