Giter Club home page Giter Club logo

Comments (29)

Jazqa avatar Jazqa commented on June 18, 2024 4

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.

Jazqa avatar Jazqa commented on June 18, 2024 2

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.

Jazqa avatar Jazqa commented on June 18, 2024 1

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.

Jazqa avatar Jazqa commented on June 18, 2024 1

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.

Jazqa avatar Jazqa commented on June 18, 2024 1

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.

Jazqa avatar Jazqa commented on June 18, 2024

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.

Jazqa avatar Jazqa commented on June 18, 2024

Something like this?

from kwin-quarter-tiling.

kupiqu avatar kupiqu commented on June 18, 2024

Awesome!

from kwin-quarter-tiling.

Jazqa avatar Jazqa commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

Jazqa avatar Jazqa commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

Jazqa avatar Jazqa commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

Jazqa avatar Jazqa commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

Jazqa avatar Jazqa commented on June 18, 2024

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.

Issue

from kwin-quarter-tiling.

kupiqu avatar kupiqu commented on June 18, 2024

Excellent, thanks!

from kwin-quarter-tiling.

kupiqu avatar kupiqu commented on June 18, 2024

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.

Jazqa avatar Jazqa commented on June 18, 2024

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

Normal clients (firefox & dolphin) and small clients (feh & konsole). Small clients' tiles are shrunk to use all of the vertical space available

from kwin-quarter-tiling.

kupiqu avatar kupiqu commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

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.

Jazqa avatar Jazqa commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

Excellent, thanks!!

from kwin-quarter-tiling.

kupiqu avatar kupiqu commented on June 18, 2024

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.

kupiqu avatar kupiqu commented on June 18, 2024

You fixed it, thank you!

from kwin-quarter-tiling.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.