JigsawWM icon indicating copy to clipboard operation
JigsawWM copied to clipboard

concept description needed

Open nnako opened this issue 4 months ago • 7 comments

Hi @klesh , could you explain the three concepts for

  • theme,
  • tiler and
  • layout

and their relation to each other? Maybe even in relation to further (more obvious) concepts like screen, window, physical work area and tab?

Which belongs where? Which is a child / parent of which?

Are these concepts used strict enough within the source code?

I try to understand the overall structure and would appreciate some support, here.

nnako avatar Aug 23 '25 13:08 nnako

Hi @nnako,
Good question!

Here’s how I define the terms:

  • layout: Describes tiles in a relative/ratio/proportional way. The screen width/height are represented as 1, and tiles are positioned between 0 and 1.
  • tiler: Converts a relative layout into physical sizes based on the given work_area.
  • layout_tiler: A combination of layouts and a tiler — essentially a shortcut for convenience.
  • theme: Maybe not the best term (I ran out of vocabulary 🙂). It’s used to store personal preferences like gap, new window as master, etc., along with a layout_tiler.

Other terms:

  • screen = monitor
  • window = window (each window belongs to a monitor)

The following terms seem straightforward to me. Could you share a bit more context on what’s confusing about them?

  • physical work area
  • tab

Where did you see these? A link or screenshot would help.

klesh avatar Aug 25 '25 03:08 klesh

Hi @klesh ,

Could you share a bit more context on what’s confusing about them?

I was just wondering if there was a strict mental model for all the different words. Thanks for your explanation.

physical work area and tab

"tab" might be just a word that came into my mind while thinking about all the different concepts and relations concerning window organization. But "physical work area" I read in some source file but can't remember where. I will get back to you as soon as I run into it, again.

Here is what I've extracted from your explanation. Does it fit?:

Image

A workspace would be the overall (virtual) space wherein the screens (if multiple monitors are connected and active) get placed according to the operating system settings. Each screen hosts a single theme element and number of windows. And each window's location is defined relative (and normed) to its hosting screen via its layout parameter and is also defined by the tiler parameter which translates the layout into physical window sizes.

nnako avatar Aug 25 '25 07:08 nnako

Not quite aligned with what I had in mind. Let me clarify:

  1. The OS can have one or multiple screens/monitors.
  2. Each screen has multiple workspaces (I usually prefer 4). Only one workspace is visible on a screen at a time, and you can switch workspaces independently for each screen.
  3. Each workspace supports multiple themes (e.g., dwindle with gap x, monocle, static, etc.), with one active at a time. You can switch themes independently for each workspace.
  4. Each workspace contains multiple windows, which are arranged according to the theme.layout_tiler, gap preferences, and other settings.

klesh avatar Aug 25 '25 07:08 klesh

Got it. Thanks for your clarification:

Image

nnako avatar Aug 26 '25 04:08 nnako

@nnako layout_tiler belongs to theme

klesh avatar Aug 26 '25 06:08 klesh

ok. one layout_tiler per theme?

Image

nnako avatar Aug 26 '25 09:08 nnako

yes

klesh avatar Aug 27 '25 02:08 klesh