@k8slens/window-layouts 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,63 @@
1
+ # Changelog
2
+
3
+ What changed in each version of this extension, newest first.
4
+
5
+ ## 0.2.0
6
+
7
+ - The dialog marks a window not saved by its orange outline alone, rather than with "not saved"; a window not tiled is outlined so too, as its tile would be.
8
+ - Renaming a window tells what it does when pointed at, and how to keep or cancel the name while typing it.
9
+ - A window its layout tiles is as saved when it is in its tile, as Recall and Tile put it, so it is no longer marked "not saved" after a recall when it was saved elsewhere; opened again from its tile, or from the hotbar's preview, it is opened in its tile.
10
+ - Recall puts a window its tiling places in its tile, shown normally unless saved minimized, rather than where it was when saved; windows not tiled go back where they were saved.
11
+ - **Save tiled only** in the dialog saves the windows in a tile and the tiling, leaving the windows not tiled out of the layout; they show as not saved from then on.
12
+ - A window not open under Not tiled says "not open" in red, as its tile does, rather than "(not open)".
13
+ - Recall brings forward only the windows its tiling places in a tile on a screen connected now, so they end above every other window; the windows it leaves not tiled, or tiles on a screen not connected, go back to their places without being brought forward.
14
+ - Pointing at a layout in the hotbar opens a menu showing the layout's tiling, its screens side by side as they lie, a screen not connected framed and told of as the dialog does, dashed in red with "not connected; its windows are not tiled", a window not open drawn as the dialog draws it, dashed in red with "not open" in red, and counted in red, a window not where or as saved outlined in orange, as the dialog marks one not saved; clicking a window in it brings it to the front, opening it again first when it is not open, with Recall, "Tile and save", which puts the windows in their tiles by the layout's own tiling and saves them so, a window it has no tile for saved as not tiled, and "Edit in Window layouts", which opens the dialog with the layout selected.
15
+ - Rows and columns can always be added to a screen's tiling, also past eight: a screen whose windows needed more than eight rows had both its row buttons disabled.
16
+ - Pin a layout to the hotbar with the hotbar button beside its name, and recall it from there in one click; the item shows the layout's initials and follows it as it is renamed or deleted. What a recall from the hotbar could not do is told in a notification.
17
+ - Needs a Lens whose window layouts tell what a closed window was and which window they opened again (@k8slens/window-layout-contracts 1.1).
18
+ - Windows are no longer described ahead of time, as they change: a closed window is opened again as Lens described it as it closed, asked for only when it is opened again or saved. Windows closed before this version still open again as the extension last described them.
19
+ - A window opened again, from its tile or by Recall, is the window Lens answers with, so several opened at once each land in their own tile, even when other windows show meanwhile; a window Lens cannot open again stays shown as not open.
20
+ - Opening a window again from its tile moves no other window, and brings it back as the layout saved it while its tile is where the layout tiled it, so it is not marked "not saved".
21
+ - Recall puts a window it opens again straight in its tile also when the tile goes by a window that was opened again before, rather than showing it under Not tiled for a moment.
22
+ - A window opened in a cell is that cell's window, the one Lens says it opened the place in, rather than a guess, from the moment Lens lists it, before it shows; it can be opened again from its tile once closed, and a cell whose opening fails is left empty. A tile left over from a window being opened as the extension was reloaded goes.
23
+ - Windows you open while others are being opened in a cell, again from a tile, or by Recall show under Not tiled at once, rather than once those have opened.
24
+ - Closing a window from its tile takes its tile away at once, and renaming or closing one no longer needs Lens's list of windows followed all along.
25
+ - Rebuilding, disabling or uninstalling the extension stops everything it had running.
26
+ - A window not open when a layout was shown is that tile's window once it is open again under its own id, as after a restart; saving no longer keeps such a window twice, and a layout saved so shows each window once.
27
+ - A window opened again is that window still for every layout that saved it, whichever layout opened it again.
28
+ - A window not open shows "not saved" too when its tile is not where the layout's tiling has it, moved, resized or tiled or not unlike then, or when the layout does not have it, as one opened after saving and closed since; saving keeps it in the layout as its tile is.
29
+ - A window filling its screen's work area, which Lens tells maximized, is not marked "not saved" against a layout that saved it so as a normal window.
30
+ - A window opened since the layout was saved is marked "not saved" until saved, as it is not in the layout; Save is enabled whenever a window is not saved or the tiling changed.
31
+ - Saving a layout keeps its windows not open at the time, with their tiles, rather than dropping them; only the × takes a window out of a layout.
32
+ - Windows open where they belong from their first frame, rather than being moved there once they show: opened in a cell, opened again from a tile, or by Recall.
33
+ - Recall a layout from its row in the list, with the button shown at the row's right end as you point at it; long names are shortened there.
34
+ - A window opened since the tiling was arranged shows under Not tiled, until put on a screen, rather than in a cell of a screen.
35
+ - "Not saved" (formerly "out of place") means the window differs from what the layout saved of it, where it is or how it shows, also for a window opened again under another id. Recalling a layout that opens windows again no longer tiles the others away from where it puts them.
36
+ - Renamed from @k8slens/window-manager to @k8slens/window-layouts. Layouts saved under the old name do not carry over.
37
+ - Select a layout to see its tiling; its Recall, Save and Delete show only while it is selected.
38
+ - New layouts are made with + and named "Layout 1", "Layout 2" and so on; rename a layout by clicking its name.
39
+ - Duplicate the selected layout, its tiling with it, with the copy button beside +.
40
+ - New layouts start with every window not tiled; Tile all places them on the screens.
41
+ - Open the Preferences, or a cluster's overview or resource list, in a new window right in an empty cell of the tiling; clusters show their icons and colours, the connected ones first, and each page the icon of its kind. A cluster's pages open beside its row, scrolling, with a search of their own.
42
+ - Close a window, or take a missing one out of the layout, with the × on its tile.
43
+ - Rename a window with the pen beside its ×, as a layout is renamed; Lens keeps the name.
44
+ - Open a window that is not open again from its tile, as it was, where its tile is; Lens keeps how for windows closed in the last 180 days.
45
+ - Layouts and tiling saved by earlier versions are not read: Lens now describes every window it can open again, Preferences included, and older layouts lack that.
46
+ - Untile a screen, its windows back to Not tiled, with the button in its top-right corner, shown while the pointer is over the screen.
47
+ - A screen connected again under a new id, as macOS gives one, is no longer shown twice, once as missing.
48
+ - Releasing a drag that moved nothing no longer tiles the windows again.
49
+ - The windows follow every change to the tiling; there is no Tile button any more.
50
+ - A layout's tiling shows screens not connected and windows not open, outlined in red, and leaves them untiled.
51
+ - Arrange the tiling by dragging: which screen and cell each window goes in, and how many cells it spans; set each screen's columns and rows with the pills on its edges. Screens too many for the dialog's width wrap onto rows.
52
+ - Gathering the sub-windows onto one screen is gone; drag them onto that screen instead.
53
+ - Layouts keep their tiling setup: saving saves it, recalling makes it the current one.
54
+
55
+ ## 0.1.0
56
+
57
+ - Recalling a layout opens again the windows closed since it was saved.
58
+ - Save the arrangement of Lens's windows as a named layout, and recall it from the status bar or the command palette.
59
+ - Rename saved layouts.
60
+ - Gather all sub-windows onto a chosen screen, from the dialog or, with two screens, the command palette.
61
+ - Layouts remember their screens; recalling one puts windows from a screen that is no longer connected onto the primary screen.
62
+ - Delete saved layouts.
63
+ - Tile the windows to fit the screen, from the dialog or the command palette.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Iku-turso
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,43 @@
1
- # Temporary Holding Version
1
+ # @k8slens/window-layouts
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Save how the windows of Lens are arranged under a name, such as "Debugging" or "Two screens", and recall it whenever you like. A layout remembers where every window of Lens sits, the application window and every window opened from it, and whether it is maximized, minimized or full screen. Recalling a layout puts every window back where it was, opening again the ones closed since.
4
+
5
+ ## Features
6
+
7
+ - Save the current arrangement of all Lens windows as a new layout with **+**. It is named "Layout 1", "Layout 2" and so on; click its name to rename it.
8
+ - Recall a layout in one click. Its windows go back to their places and states: a window its tiling places goes in its tile, any other where it was saved. The windows its tiling places in a tile on a connected screen come to the front, above every other window, the one that had focus on top with focus again; the windows it leaves not tiled go back to their places without being brought forward. Windows that were minimized stay minimized.
9
+ - A window that was closed since the layout was saved, even by restarting Lens, is opened again, doing what it did, in its place. A window you opened again yourself, doing the same thing, is moved instead of opening another. A window that can't be opened again, such as one whose extension is gone or one Lens cannot open afresh, stays closed: the dialog tells you which ones it couldn't open, and the tiling shows them as not open. Layouts saved before this version can't open closed windows; save them again.
10
+ - Arrange how the windows are tiled, by dragging. The dialog draws your screens as they lie, each as a grid with the window tiles on it. Drag a window to any cell of any screen; a window it lands on moves to the first free cell. Drag a window's corner to make it span more cells, wider or taller. Set each screen's columns and rows with − and +. Drop a window in **Not tiled**, above the screens, to keep it out of tiling; minimized windows start there. A screen with no windows on it gets none. The arrangement is kept across restarts; **Tile all**, in **Not tiled**, places the windows not tiled on the screens with the most room, in their first free cells. Every change to the arrangement tiles the windows so. Tiling shows a maximized, minimized or full-screen window normally again to place it, and brings every tiled window to the front, the one you were in staying focused.
11
+ - Layouts remember which screens they were saved on. If a window's saved place is on a screen that is no longer connected, such as an unplugged monitor, recalling the layout puts that window on the primary screen instead, and the dialog says so.
12
+ - Open a new window into an empty cell: hover the cell for a plus, click it, find a cluster by name in the list and pick one of its pages: its overview, or a list such as Pods or Deployments; or pick the Preferences, under Lens at the bottom of the menu. The page opens in a window of its own, placed over the cell and tiled there. This needs Lens Studio. The clusters show their icons in their own colours, those Lens is connected to first, marked with a green dot; type to narrow them by name.
13
+ - Close a window from its tile: the × at its top right closes the window and takes it out of the layout's tiling; for a window not open, it only takes it out. Save keeps the change in the layout.
14
+ - A layout's tiling still shows what is gone: a screen it uses that is not connected is drawn with its windows, outlined in red as not connected, and a window of it that is not open shows in its cell, outlined in red as not open. Neither is tiled; drag such a window onto a connected screen, or out of the way. The layout list says how many of a layout's screens are missing.
15
+ - The dialog lists the layouts on the left, a long name shortened. Recall one with the button at the right end of its row, shown as you point at the row. Select one by clicking it: the right side shows it with its **Recall**, **Save** and **Delete** buttons, and its tiling setup below them.
16
+ - A layout keeps the tiling setup too. Saving a layout saves the setup as it is in the tiling below; selecting or recalling it makes its setup the current one, so **Tile** tiles the layout's way. Selecting or recalling a layout saved before layouts kept a setup keeps the current setup.
17
+ - Duplicate the selected layout with the copy button beside **+**: the copy, named "<name> copy", has its windows and its tiling, and its name is ready to be typed over.
18
+ - Rename a layout by clicking its name.
19
+ - Rename a window with the pen beside the × on its tile or chip: Enter or clicking away keeps the name, Escape the old one. Lens keeps the name, whatever the window shows.
20
+ - **Save tiled only** saves only the windows in a tile, and the tiling, leaving the windows under Not tiled out of the layout: they show as not saved, outlined in orange, as windows the layout does not have.
21
+ - A window outlined in orange is not saved: it differs from what the layout saved of it: it is not where it was, not shown as it was, or not in the layout at all, as a window opened since, even once closed again: such a window shows "not open", outlined in red. Save makes them agree again; Recall puts back the windows the layout has.
22
+ - A window opened since the tiling was arranged shows under Not tiled until you drag it onto a screen.
23
+ - A window that is not open shows outlined in red; open it again with the button beside "not open", as it was, where its tile is. Enter or clicking away keeps the new name, Escape the old one. Renaming never replaces another layout: a name that is taken is refused.
24
+ - Delete layouts you no longer need. Layouts are kept across restarts of Lens.
25
+
26
+ Arranging windows needs Lens Studio. Without it, the extension tells you that layouts can't be recalled.
27
+
28
+ ## Install
29
+
30
+ [Open @k8slens/window-layouts in Lens](https://app.k8slens.dev/lens-launcher?c=lens%3A%2F%2Fapp%2Fopen%2Fextension%3Fname%3D@k8slens/window-layouts) and click Install there. The link offers Lens for download when it is not installed yet.
31
+
32
+ ## Usage
33
+
34
+ - Click **Layouts** on the right of the status bar, or run **Window Layouts: Save or recall a layout** from the command palette.
35
+ - To save a new layout: click **+** next to **Layouts**.
36
+ - To save over a layout: select it, then click its **Save**. It saves where the windows are now and the tiling below.
37
+ - To recall: point at a layout in the list, then click the recall button at the right end of its row.
38
+ - To recall from the hotbar: select a layout and click the hotbar button beside its name. The layout shows in the hotbar by its initials; click it to recall the layout. Point at it to see the layout's tiling, where clicking a window brings it to the front, opening it again first when it is not open, with **Recall**, **Tile and save**, which puts the windows in their tiles by the layout's own tiling and saves them so (a window it has no tile for is saved as not tiled), and **Edit in Window layouts**, which opens the dialog with the layout selected. Click that button again, or right-click the item and choose "Remove from hotbar", to take it off.
39
+ - To rename: select a layout, click its name, type the new name and press Enter.
40
+ - To delete: select a layout, then click **Delete**.
41
+ - To tile: arrange the windows under **Tiling** in the dialog. They follow every change you make there, a moment after it. **Window Layouts: Tile windows** in the command palette tiles them as arranged too.
42
+
43
+ What changed in each version is in [CHANGELOG.md](./CHANGELOG.md).
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600" width="1200" height="600">
2
+ <!-- A placeholder: replace it with a banner of the extension's own, twice as wide as it is tall. -->
3
+ <defs>
4
+ <linearGradient id="background" x1="0" y1="0" x2="1" y2="1">
5
+ <stop offset="0" stop-color="#3d90ce"/>
6
+ <stop offset="1" stop-color="#1e3a5f"/>
7
+ </linearGradient>
8
+ </defs>
9
+ <rect width="1200" height="600" fill="url(#background)"/>
10
+ <text x="600" y="320" text-anchor="middle" font-family="sans-serif" font-size="72" fill="#ffffff">@k8slens/window-layouts</text>
11
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64">
2
+ <!-- A placeholder: replace it with an icon of the extension's own, square, an SVG. -->
3
+ <rect width="64" height="64" rx="14" fill="#3d90ce"/>
4
+ <path fill="#ffffff" d="M26 14a6 6 0 0 1 12 0v4h8a4 4 0 0 1 4 4v8h-4a6 6 0 0 0 0 12h4v8a4 4 0 0 1-4 4h-8v-4a6 6 0 0 0-12 0v4h-8a4 4 0 0 1-4-4v-8h4a6 6 0 0 0 0-12h-4v-8a4 4 0 0 1 4-4h8z"/>
5
+ </svg>