Comments (16)
Sorry, I’m on a trip now, and will return on 6 Feb. I’ll look into this issue as a top priority once I return.
from krohnkite.
I think this maybe has something to do with geometry-restricted windows and krohnkite entering an endless loop of trying to set window geometry only to fail, which triggers change in geometry and causes krohnkite to try again. Just a speculation, but i do see a spam of similar messages in kwin log and xorg eats cpu 100% with kwin eating 10% or so.
from krohnkite.
I did some more screwing around and it seems like the problem only occurs with severely geometry-restricted windows and window padding enabled?
Window gaps: 16 between, 8 around.
3 apps: Slack, Riot, Quassel. All have sane geometry restrictions (window can get 300px-ish wide)
Everything works normally
2 apps: Cantata (sane geometry restrictions), System Settings (window refuses to go smaller than half a screen)
Kwin enters busy loop, there's spam of Krohnkite trying to resize systemsettings
Works fine
Window gaps: all zero
Both cases work fine
from krohnkite.
Disabling gaps entirely solved the problem, thank you. Additionally, using only outer gaps (set to 3, inner set to 0) I have not experienced any freeze.
from krohnkite.
@hjri wrote:
krohnkite entering an endless loop of trying to set window geometry only to fail, which triggers change in geometry and causes krohnkite to try again.
I think your guess is correct. Krohnkite does have this problem. If both application and Krohnkite have different idea on what is correct geometry, they'll end up fighting each other.
@hjri wrote:
only occurs with severely geometry-restricted windows and window padding enabled
It's likely that removing gap prevented Krohnkite from squeezing those windows too hard.
Anyways, it seems like this issue is related to issue #25 ("Resizing doesn't check for other windows' geometry restrictions"), which is a regression fixed by 31a7f30.
from krohnkite.
I still get freezes/spam even without gaps on e9bea92
Running kwin_x11 eventually gives spam like this.
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1027, 18, 893, 1182) to=Rect(1027, 18, 893, 394)
qml: setTimeout/callback: poolSize=1
from krohnkite.
@hjri, would you upload the whole log? I don't have enough information. Quassel limits only the minimum size (489x257), and, even when the limit is ignored, the application isn't supposed to freeze. It works flawless on my computer, for example.
from krohnkite.
qml: KROHNKITE: starting the script
qml: enableMonocleLayout : true
qml: enableSpreadLayout : false
qml: enableStairLayout : false
qml: enableTileLayout : true
qml: floatUtility : true
qml: layoutPerActivity : true
qml: layoutPerDesktop : true
qml: maximizeSoleTile : true
qml: mouseAdjustLayout : true
qml: noTileBorder : true
qml: screenGapBottom : 0
qml: screenGapLeft : 0
qml: screenGapRight : 0
qml: screenGapTop : 0
qml: tileLayoutGap : 0
qml: floatingClass: keepassxc
qml: ignoreClass: krunner,yakuake,spectacle,kded5,steam,plasmashell
qml: loadTile/create: client=KWin::Client(0x562dbf51e960) key=KWin::Client(0x562dbf51e960)
qml: loadTile/create: client=KWin::Client(0x562dbf563970) key=KWin::Client(0x562dbf563970)
qml: loadTile/create: client=KWin::Client(0x562dbf537110) key=KWin::Client(0x562dbf537110)
qml: loadTile/create: client=KWin::Client(0x562dbf52e3b0) key=KWin::Client(0x562dbf52e3b0)
qml: loadTile/create: client=KWin::Client(0x562dbf52c610) key=KWin::Client(0x562dbf52c610)
qml: loadTile/create: client=KWin::Client(0x562dbf515380) key=KWin::Client(0x562dbf515380)
qml: loadTile/create: client=KWin::Client(0x562dbf333270) key=KWin::Client(0x562dbf333270)
qml: loadTile/create: client=KWin::Client(0x562dbf473c10) key=KWin::Client(0x562dbf473c10)
qml: removeTile: key=KWin::Client(0x562dbf473c10)
qml: arrange: screenCount=1
qml: arrangeScreen: layout=StairLayout(nmaster=1, ratio=0.55) screen=0 tileables=4 visibles=4
qml: onTileGeometryChanged: tile=Tile(id=102760454, class=slack)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: onTileGeometryChanged: tile=Tile(id=85983233, class=riot)
qml: onTileGeometryChanged: tile=Tile(id=85983233, class=riot)
qml: onTileGeometryChanged: tile=Tile(id=85983233, class=riot)
qml: commitGeometry: client=KWin::Client(0x562dbf537110) from=QRect(1056, 412, 864, 425) to=Rect(1056, 412, 864, 394)
qml: onTileGeometryChanged: tile=Tile(id=148897798, class=dolphin)
qml: onTileGeometryChanged: tile=Tile(id=148897798, class=dolphin)
qml: onTileGeometryChanged: tile=Tile(id=148897798, class=dolphin)
qml: commitGeometry: client=KWin::Client(0x562dbf52e3b0) from=QRect(1056, 775, 864, 425) to=Rect(1056, 806, 864, 394)
qml: onTileGeometryChanged: tile=Tile(id=102760454, class=slack)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
qml: setTimeout/callback: poolSize=2
qml: setTimeout/callback: poolSize=3
qml: setTimeout/callback: poolSize=4
qml: setTimeout/callback: poolSize=5
qml: setTimeout/callback: poolSize=6
qml: setTimeout/callback: poolSize=7
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5115, resource id: 12583467, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5116, resource id: 12583467, major code: 14 (GetGeometry), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5121, resource id: 12583492, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5122, resource id: 12583492, major code: 14 (GetGeometry), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5127, resource id: 12583517, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5128, resource id: 12583517, major code: 14 (GetGeometry), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5133, resource id: 12583542, major code: 3 (GetWindowAttributes), minor code: 0
qt.qpa.xcb: QXcbConnection: XCB error: 9 (BadDrawable), sequence: 5134, resource id: 12583542, major code: 14 (GetGeometry), minor code: 0
qml: onTileGeometryChanged: tile=Tile(id=102760454, class=slack)
qml: setTimeout/callback: poolSize=7
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=4
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: onTileGeometryChanged: tile=Tile(id=50331657, class=quassel)
qml: commitGeometry: client=KWin::Client(0x562dbf563970) from=QRect(1056, 18, 864, 1182) to=Rect(1056, 18, 864, 394)
qml: setTimeout/callback: poolSize=1
after which there's just spam of thing i posted previously interleaved with badwindow/baddrawable which i think are unrelated to krohnkite.
also plasmashell is in ignored list because i was trying to debug another bug that made kwin freeze when plasma crashed.
from krohnkite.
@hjri Hmm, I can't reproduce the bug. Would you file a new issue? I need version info and steps to reproduce the bug. At least, Quassel works fine on my up-to-date Arch installation, at it never tries to resize its main window.
from krohnkite.
Is there any update?
from krohnkite.
@zyf0330 Sorry, the development has been stalled for a while. I'll come back to this shortly.
In the mean time, would you describe the specific problem you're having? Freezing is just a symptom, and can be caused by many different reasons. More info is definitely better.
from krohnkite.
from krohnkite.
IIRC workaround is to disable the "hide titlebar for maximized windows" script/option. KWin does have obscure option to do that without scripts but there's no GUI for it.
I had this problem and solved it somehow.
from krohnkite.
@hjri I will try, thanks.
from krohnkite.
@hjri This way almost solves this problem, you are right. Freezing still occurs sometimes but restores back to normal quickly.
from krohnkite.
After restart computer, freeze occurs. Everytime do plasmashell restart, freeze disappears a period of time then appears, there is no regular pattern.
from krohnkite.
Related Issues (20)
- Rotate does not come up in Kwin shortcuts HOT 1
- Sometimes windows are created without borders HOT 1
- Extra space after resizing HOT 1
- Any way to keep title bar for floating windows? HOT 1
- Blinking new windows when launching with a firefox window opened
- Make 3 columns have equal width
- tdrop windows not being tiled just as yakuake although added to "ignored windows" HOT 1
- Krohnkite doesnt ignore Xtreme Download Manager
- Add widget to the panel to enable and disable tiling as needed
- Down/Next and Up/Previous shortcuts don't work
- Tiling Layout stopped working on some windows after upgrade to Plasma 5.27 HOT 9
- The window does not update size after latte dock reapplying floating gap
- Plasma Freezes After Toggling Float HOT 1
- Krohnkite not functioning on KDE6 HOT 4
- How to configure Krohnkite to act like i3?
- Plasma 6.1 Edit Mode HOT 4
- The windows are no more in tiling mode if I turn off my monitor.
- The tiling breaks if a window is in multiple virtual desktops HOT 1
- Comma (,) at the end of Ignore rules breaks/prevents krohnkite from working
- Blank or ghost tile HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from krohnkite.