Comments (29)
You are not bothering at all, I actually enjoy this. I'll fix the remaining bugs and push it in a hour or two. I'll probably add the other feature as an option as well.
Edit: Sorry it's taking a while. I keep running into the weirdest issues.
Edit 2: Found the reason for most of the issues, multi-screen environments are evil.'
Edit 3: Almost there..!!
from kwin-quarter-tiling.
I hope I was clear enough :)
Considering the fact I managed to locate the bug on my phone, I'd say so. I'll fix it as soon as I can get on a computer (~20 hours)!
from kwin-quarter-tiling.
A few finishing touches and I'll push it. I think I'll just add a category for "non-resizeable clients". If you scale the windows over the limits, they will overlap but the tiling will stay intact. If you scale the window within the empty space, it will not affect the other windows. Video incoming.
Edit: Misclicked the close, whoops.
from kwin-quarter-tiling.
Yep. That's exactly what I'm going to do. Until then, you'll have to manually decrease the size of the overlapping window. Shouldn't take too long to fix though.
Edit: The other idea is great too. None of this should be too difficult. I'll just have to run some errands before I can start fixing things ;)
Edit 2: Plan is to make use of all the available space. Once I'm done with this the small windows will not take up a whole quarter or half (if it's the only client, it will be placed in the middle like it is now), but the other windows will adjust and come as close to them as possible. I'll also pile the small windows to the same category with the large ones so if a huge window is listed under the category (small windows [will change the name]), other clients will make space for it when it's added.
from kwin-quarter-tiling.
I'm not quite following. Let's take the first video as a reference. Couldn't we have this very same behaviour applied to the horizontal axis (as it is shown in the video for the vertical axis)?
Yes. I'll add this tonight. I'll have to experiment with it a little to avoid the issue demonstrated in this video (Atom shrinking), but it's at the top of my to-do list. The whole small/large clients feature took a surprising amount of work, but now that the basics are somewhat working, I'll keep polishing it until everyone is satisfied. I really enjoy working on this.
from kwin-quarter-tiling.
This will be fun and depending on the approach, difficult to implement. I will definitely work on this but it might take a while longer than the usual feature requests.
I've tried the opposite before (large programs, such as Gimp, automatically taking more space), but I actually liked the freedom of shrinking some windows beyond their limits (afterall, they could be enlargened at will). I had never thought of the smaller programs, but I agree, they look absolutely hideous if stretched beyond limits. Thanks a ton for the suggestion!
from kwin-quarter-tiling.
Something like this?
from kwin-quarter-tiling.
Awesome!
from kwin-quarter-tiling.
Okay, allowing the "small" client to over-tile is the easiest (and the most stable) solution. If you use the feature for small programs, over-tiling should never be an issue. Video here. I'll create the configuration interface and push the change.
Edit: Nevermind, I'm too much of a perfectionist and it's not that difficult. I'll just block resizing if it gets bigger than the available tile. However, I'll leave it for later.
from kwin-quarter-tiling.
Looks great, thank you!
I agree this is supposed to be applied only to "small" clients so over-tiling should never be an issue.
from kwin-quarter-tiling.
Ok, try it out and tell me how it works. I couldn't use any of the programs you mentioned as they all required registration. I'll close the issue once I've refined the feature so if you try to resize a window further than the free tile allows, the other windows adjust and do not overlap. Might have to wait until tomorrow though.
Protip: If you can't figure out the window class of a program, you can detect it via KWin's "Window Rules".
from kwin-quarter-tiling.
Works great for choqok and whatsie, thank you!!
Unfortunately telegram (telegramdesktop for kwin) does not allow to decrease the vertical space enough to fit vertically in a quarter of the screen, so it overtiles vertically.
I guess there is no way in kwin to force telegram to use less vertical space :/
Can you think of a workaround for situations like this, perhaps adjusting the vertical size of the complementary app?
from kwin-quarter-tiling.
Also, one thing that could be refined to optimize tiling space refers to when there are 3 apps present. The idea would be to control that the one that occupies half of the screen is not a "small client" (unless all 3 are small clients), so all that space is occupied :)
from kwin-quarter-tiling.
Oh, actually I can use a kwin rule to force telegram to occupy less vertical space!
Edit: Yet, implementing the 'fix' will be great for users that do not master kwin rules or prefer to have more vertical space...
from kwin-quarter-tiling.
Edit: The other idea is great too. None of this should be too difficult. I'll just have to run some errands before I can start fixing things ;)
Excellent!! No hurries :)
from kwin-quarter-tiling.
Progress. I think tiling the smaller windows closer to the center of the screen looks & feels better. Now I'll just need to figure out a solution for the following issue
Unfortunately telegram (telegramdesktop for kwin) does not allow to decrease the vertical space enough to fit vertically in a quarter of the screen, so it overtiles vertically.
I also tried this,
Also, one thing that could be refined to optimize tiling space refers to when there are 3 apps present. The idea would be to control that the one that occupies half of the screen is not a "small client" (unless all 3 are small clients), so all that space is occupied :)
but having the windows automatically switch places like that felt a little confusing so I think I'll just skip this part, sorry.
from kwin-quarter-tiling.
Progress. I think tiling the smaller windows closer to the center of the screen looks & feels better. Now I'll just need to figure out a solution for the following issue
Looks nice! Would it work automatically also if the inital size of a small client overtiles?
but having the windows automatically switch places like that felt a little confusing so I think I'll just skip this part, sorry.
I understand. Perhaps this could be set as an option, disabled by default, for the users that want to give this a try (?)
But yes, I didn't try myself, perhaps this feels as weird to me as it feels to you... maybe I could experience it by myself if you would put the code in a different branch (?)
Thanks for your great work! and sorry to botter you with this!
from kwin-quarter-tiling.
What a job. Didn't add the option yet as I bundled large and small clients together. Clients listed under "Small Programs" (will change the name soon) respect their initial size and make other windows adjust to them. If you want a large program to always be larger than a quarter tile, that program should also be added to the "Small Programs" category. ((f.ex. Telegram is a "large program" vertically and a "small program" horizontally, which makes dividing "small" and "large" programs extremely difficult.))
Still a lot to do (moving & resizing these windows), but in its current state, it should work better than the last commit did. Try it out and give me some feedback. I don't use such programs myself but I tried to test it thoroughly and in my opinion, the feature felt logical and intuitive.
from kwin-quarter-tiling.
It works nice!
For whatever reason small clients are not centered horizontally anymore once 2 or more windows are present, is this expected?
That's the only thing I found, besides what you mentioned about moving windows...
from kwin-quarter-tiling.
Assuming you speak of the issue visible in the picture below, it's not intentional. I'll commit the fix tomorrow with movement & resizing improvements. Thanks for all the help and ideas, I'm having a ton of fun with this.
from kwin-quarter-tiling.
Excellent, thanks!
from kwin-quarter-tiling.
I think this issue could be set as closed - fixed (the extra category has been created), and then we could perhaps open two other more specific issues for:
- Option to optimize screen space by moving small clients around (like for instance putting them in quarters instead of half screen, or adding them together to a quarter if they would fit)
- Issue about small clients not being horizontally centered when >=2 windows are present
Should we do that?
from kwin-quarter-tiling.
Option to optimize screen space by moving small clients around (like for instance putting them in quarters instead of half screen, or adding them together to a quarter if they would fit)
Deifnitely. Let's open an issue for this.
Issue about small clients not being horizontally centered when >=2 windows are present
This is actually intentional this time and helps optimizing available screen space. I'll try to demonstrate with videos.
Two small clients, centered vertically & horizontally
from kwin-quarter-tiling.
Deifnitely. Let's open an issue for this.
Done
This is actually intentional this time and helps optimizing available screen space. I'll try to demonstrate with videos.
I'm not quite following. Let's take the first video as a reference. Couldn't we have this very same behavior applied to the horizontal axis (as it is shown in the video for the vertical axis)?
In the video, apps are centered vertically and they move according to new windows appearing. Couldn't we repeat it horizontally as well?
Asking because I think windows look much better when centered...
from kwin-quarter-tiling.
I'm not quite following. Let's take the first video as a reference. Couldn't we have this very same behavior applied to the horizontal axis (as it is shown in the video for the vertical axis)?
In the video, apps are centered vertically and they move according to new windows appearing. Couldn't we repeat it horizontally as well?
Sorry, I got confused by the video above (Two small clients, centered vertically & horizontally), so please ignore my previous comments.
However, aesthetically I still prefer the previous behavior when windows were centered in the respective quarters (assumed >=2 windows are present).
Do you think this could be, perhaps, set as an option?
from kwin-quarter-tiling.
However, aesthetically I still prefer the previous behavior when windows were centered in the respective quarters (assumed >=2 windows are present).
Do you think this could be, perhaps, set as an option?
Sure thing. Will have to wait for tonight or tomorrow morning but adding an option "Center According to: Screen/Tile" is a great idea!
from kwin-quarter-tiling.
Excellent, thanks!!
from kwin-quarter-tiling.
I found an issue regarding small clients (if you want I can open another issue, but it's perhaps not necessary), when two of them have different preconfigured sizes and appear in a same column.
The issue only happens when the smaller client is open first, in that case the other bigger client, when opened second, is resized to the size of the first, instead of following its own rule size.
I hope I was clear enough :)
from kwin-quarter-tiling.
You fixed it, thank you!
from kwin-quarter-tiling.
Related Issues (20)
- The configs keep persisting in shortcuts even after uninstalling. HOT 4
- Switching focus to second monitor HOT 1
- Nonsensical keyboard shortcuts HOT 1
- A couple bugs and improvements HOT 4
- Items pinned for multiple desktops don't tile HOT 2
- Bug with Plasma 5.22 HOT 5
- "Keep above" to make window float
- Can not move chrome tab HOT 2
- Three vertical split HOT 6
- Can't resize windows Kubuntu 22.04 Fresh install HOT 1
- Resizing windows
- Orphaned in AUR HOT 3
- It seems to crash with Manuskript HOT 1
- Anyone interested in a 'Spiral Tiling' feature? HOT 1
- Auto create virtual desktop HOT 1
- Windows retaining size on close HOT 1
- Avoiding fullscreen windows / set max height/width HOT 2
- Doesn't work when starting new session HOT 1
- Multi montior setup HOT 1
- Slight update to the README 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 kwin-quarter-tiling.