Giter VIP home page Giter VIP logo

Comments (3)

faho avatar faho commented on June 3, 2024

Well, the strategies are layout-specific - the main tiling class just hands the number of clients that are to be tiled to it and then applies those results, in order. See contents/code/*layout.js. For example the default "HalfLayout" (stupid name, I know) makes the first window fill the left half of the screen and divides the right half evenly between the rest (higher index -> lower), while "BladeLayout" divides the screen evenly between all windows along the x-axis (i.e. every window gets width = screenwidth/x)

Or am I not understanding you?

(Oh and FTR, I'm thinking of simplifying layouts further)

from kwin-tiling.

piotr-dobrogost avatar piotr-dobrogost commented on June 3, 2024

I guess if you stick to simple layouts like you mention there's no need for any special algorithms. However, I guess the problem of laying out windows in tiling manager in general case is not simple. Some interesting behavior could be seen in video of Siemens' RTL for example.

What do you mean by simplifying layouts further? What's not simple now?

from kwin-tiling.

faho avatar faho commented on June 3, 2024

Some interesting behavior could be seen in video of Siemens' RTL for example.

Seems like halflayout and bladelayout already do something like that.

What do you mean by simplifying layouts further? What's not simple now?

Well, halflayout.js is 321 lines long, so "simplifying" the code, not the layouts themselves.

Mainly, I'm trying to unify the code used by layouts by moving more into the base class (layout.js), like it already handles switching resolution/area. Ideally I'd like tile resizing to be implemented once so that it can be used by all layouts (including spirallayout, which currently doesn't do resizing at all), but I haven't quite gotten it right. If you have some sources on how to do that, I'd be happy to look into it.

from kwin-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.