diff --git a/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/code/script.js b/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/code/script.js index 303b68d6..ece99133 100644 --- a/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/code/script.js +++ b/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/code/script.js @@ -69,6 +69,7 @@ class KWinConfig { this.maximizeSoleTile = KWIN.readConfig("maximizeSoleTile", false); this.tileLayoutInitialAngle = KWIN.readConfig("tileLayoutInitialRotationAngle", "0"); this.columnsLayoutInitialAngle = KWIN.readConfig("columnsLayoutInitialRotationAngle", "0"); + this.columnsBalanced = KWIN.readConfig("columnsBalanced", false); this.monocleMaximize = KWIN.readConfig("monocleMaximize", true); this.monocleMinimizeRest = KWIN.readConfig("monocleMinimizeRest", false); this.stairReverse = KWIN.readConfig("stairReverse", false); @@ -171,7 +172,7 @@ class KWinDriver { } addWindow(client) { if (!client.deleted && - client.pid > 1 && + client.pid >= 0 && !client.popupWindow && client.normalWindow && !client.hidden && @@ -582,6 +583,9 @@ class KWinWindow { KWINCONFIG.floatingClass.indexOf(resourceName) >= 0 || matchWords(this.window.caption, KWINCONFIG.floatingTitle) >= 0); } + get minimized() { + return this.window.minimized; + } get surface() { let activity; if (this.window.activities.length === 0) @@ -799,6 +803,7 @@ class TestWindow { this.geometry = geometry || new Rect(0, 0, 100, 100); this.keepAbove = false; this.maximized = false; + this.minimized = false; this.noBorder = false; } commit(geometry, noBorder, keepAbove) { @@ -880,8 +885,7 @@ class TilingController { window.setDraggingState(); } if (window.state === WindowState.Dragging) { - const wr = toRect(windowRect); - if (layout.drag(new EngineContext(ctx, this.engine), wr.activationPoint, window, srf.workingArea)) { + if (layout.drag(new EngineContext(ctx, this.engine), toRect(windowRect), window, srf.workingArea)) { this.engine.arrange(ctx); } this.dragCompleteTime = Date.now(); @@ -1440,6 +1444,9 @@ class EngineContext { return; this.engine.windows.moveNew(window, target, after); } + getWindowById(id) { + return this.engine.windows.getWindowById(id); + } showNotification(text) { this.drvctx.showNotification(text); } @@ -1490,11 +1497,12 @@ class LayoutStoreEntry { return this.loadLayout(this.currentID); } setLayout(targetID) { - const targetLayout = this.loadLayout(targetID); + let targetLayout = this.loadLayout(targetID); if (targetLayout instanceof MonocleLayout && this.currentLayout instanceof MonocleLayout) { this.currentID = this.previousID; this.previousID = targetID; + targetLayout = this.loadLayout(this.currentID); } else if (this.currentID !== targetID) { this.previousID = this.currentID; @@ -1691,6 +1699,9 @@ class WindowClass { visible(srf) { return this.window.visible(srf); } + get minimized() { + return this.window.minimized; + } toString() { return "Window(" + String(this.window) + ")"; } @@ -1937,6 +1948,11 @@ class ColumnLayout { this.windowIds = new Set(); this.renderedWindowsIds = []; this.renderedWindowsRects = []; + this.numberFloatedOrMinimized = 0; + this.timestamp = 0; + } + get size() { + return this.windowIds.size - this.numberFloatedOrMinimized; } set isHorizontal(value) { if (value) @@ -1944,6 +1960,9 @@ class ColumnLayout { else this.parts.angle = 0; } + isEmpty() { + return this.windowIds.size === this.numberFloatedOrMinimized; + } apply(ctx, tileables, area) { this.renderedWindowsIds = []; let columnTileables = tileables.filter((w) => { @@ -1970,12 +1989,38 @@ class ColumnLayout { return null; return this.renderedWindowsIds[winId + 1]; } + getWindowIdOnRight(x) { + for (let i = 0; i < this.renderedWindowsIds.length; i++) { + if (x < this.renderedWindowsRects[i].center[0] + 10) + return this.renderedWindowsIds[i]; + } + return null; + } + getWindowIdOnTop(y) { + for (let i = 0; i < this.renderedWindowsIds.length; i++) { + if (y < this.renderedWindowsRects[i].center[1] + 10) + return this.renderedWindowsIds[i]; + } + return null; + } adjust(area, tiles, basis, delta) { let columnTiles = tiles.filter((t) => this.windowIds.has(t.id)); this.parts.adjust(area, columnTiles, basis, delta); } - actualizeWindowIds(ids) { - this.windowIds = new Set([...this.windowIds].filter((id) => ids.has(id))); + actualizeWindowIds(ctx, ids) { + let window; + let floatedOrMinimized = 0; + this.windowIds = new Set([...this.windowIds].filter((id) => { + window = ctx.getWindowById(id); + if (ids.has(id)) + return true; + else if (window !== null && (window.minimized || window.floating)) { + floatedOrMinimized += 1; + return true; + } + return false; + })); + this.numberFloatedOrMinimized = floatedOrMinimized; } } ColumnLayout.id = "Column"; @@ -1983,9 +2028,13 @@ class ColumnsLayout { get description() { return "Columns"; } + get columns() { + return this._columns; + } constructor() { this.classID = ColumnsLayout.id; this.parts = [new ColumnLayout()]; + this._columns = []; this.direction = new windRose(CONFIG.columnsLayoutInitialAngle); } adjust(area, tiles, basis, delta) { @@ -1993,24 +2042,24 @@ class ColumnsLayout { if (columnId === null) return; let isReverse = this.direction.east || this.direction.south; - let columnsLength = this.parts.length; + let columnsLength = this.columns.length; if (((this.direction.east || this.direction.west) && (delta.east !== 0 || delta.west !== 0)) || ((this.direction.north || this.direction.south) && (delta.north !== 0 || delta.south !== 0))) { let oldWeights; if (isReverse) { - oldWeights = this.parts + oldWeights = this.columns .slice(0) .reverse() .map((column) => column.weight); } else { - oldWeights = this.parts.map((column) => column.weight); + oldWeights = this.columns.map((column) => column.weight); } const weights = LayoutUtils.adjustAreaWeights(area, oldWeights, CONFIG.tileLayoutGap, isReverse ? columnsLength - 1 - columnId : columnId, delta, this.direction.east || this.direction.west); weights.forEach((weight, i) => { - this.parts[isReverse ? columnsLength - 1 - i : i].weight = + this.columns[isReverse ? columnsLength - 1 - i : i].weight = weight * columnsLength; }); } @@ -2018,69 +2067,73 @@ class ColumnsLayout { (this.direction.east || this.direction.west)) || ((delta.east !== 0 || delta.west !== 0) && (this.direction.north || this.direction.south))) { - this.parts[columnId].adjust(area, tiles, basis, delta); + this.columns[columnId].adjust(area, tiles, basis, delta); } } apply(ctx, tileables, area) { - print(`columnsApply: ${this.direction}`); - this.arrangeTileables(tileables); + this.arrangeTileables(ctx, tileables); + if (this.columns.length === 0) + return; let weights; if (this.direction.east || this.direction.south) { - weights = this.parts + weights = this.columns .slice(0) .reverse() .map((tile) => tile.weight); } else { - weights = this.parts.map((tile) => tile.weight); + weights = this.columns.map((tile) => tile.weight); } const rects = LayoutUtils.splitAreaWeighted(area, weights, CONFIG.tileLayoutGap, this.direction.east || this.direction.west); if (this.direction.east || this.direction.south) { let i = 0; - for (var idx = this.parts.length - 1; idx >= 0; idx--) { - this.parts[idx].isHorizontal = this.direction.south; - this.parts[idx].apply(ctx, tileables, rects[i]); + for (var idx = this.columns.length - 1; idx >= 0; idx--) { + this.columns[idx].isHorizontal = this.direction.south; + this.columns[idx].apply(ctx, tileables, rects[i]); i++; } } else { - for (var idx = 0; idx < this.parts.length; idx++) { - this.parts[idx].isHorizontal = this.direction.north; - this.parts[idx].apply(ctx, tileables, rects[idx]); + for (var idx = 0; idx < this.columns.length; idx++) { + this.columns[idx].isHorizontal = this.direction.north; + this.columns[idx].apply(ctx, tileables, rects[idx]); } } } - drag(ctx, activationPoint, window, workingArea) { - if (this.parts.length === 1 && this.parts[0].windowIds.size === 1) + drag(ctx, draggingRect, window, workingArea) { + const activationPoint = draggingRect.activationPoint; + const middlePoint = draggingRect.center; + if (this.columns.length === 0 || + (this.columns.length === 1 && this.columns[0].windowIds.size === 1)) return false; let columnId = this.getColumnId(window); let windowId = window.id; if (((this.direction.north && workingArea.isTopZone(activationPoint)) || - (this.direction.south && workingArea.isBottomZone(activationPoint)) || + (this.direction.south && workingArea.isBottomZone(middlePoint)) || (this.direction.west && workingArea.isLeftZone(activationPoint)) || (this.direction.east && workingArea.isRightZone(activationPoint))) && - !(this.parts[0].windowIds.size === 1 && - this.parts[0].windowIds.has(windowId))) { + !(this.columns[0].windowIds.size === 1 && + this.columns[0].windowIds.has(windowId))) { if (columnId !== null) - this.parts[columnId].windowIds.delete(windowId); - this.insertColumn(0); - this.parts[0].windowIds.add(windowId); + this.columns[columnId].windowIds.delete(windowId); + const column = this.insertColumn(true); + column.windowIds.add(windowId); return true; } - if (((this.direction.north && workingArea.isBottomZone(activationPoint)) || + if (((this.direction.north && workingArea.isBottomZone(middlePoint)) || (this.direction.south && workingArea.isTopZone(activationPoint)) || (this.direction.west && workingArea.isRightZone(activationPoint)) || (this.direction.east && workingArea.isLeftZone(activationPoint))) && - !(this.parts[this.parts.length - 1].windowIds.size === 1 && - this.parts[this.parts.length - 1].windowIds.has(windowId))) { + !(this.columns[this.columns.length - 1].windowIds.size === 1 && + this.columns[this.columns.length - 1].windowIds.has(windowId))) { if (columnId !== null) - this.parts[columnId].windowIds.delete(windowId); - this.insertColumn(this.parts.length); - this.parts[this.parts.length - 1].windowIds.add(windowId); + this.columns[columnId].windowIds.delete(windowId); + const column = this.insertColumn(false); + column.windowIds.add(windowId); return true; } - for (let colIdx = 0; colIdx < this.parts.length; colIdx++) { - const column = this.parts[colIdx]; + for (let colIdx = 0; colIdx < this.columns.length; colIdx++) { + const column = this.columns[colIdx]; for (let i = 0; i < column.renderedWindowsRects.length; i++) { const renderedRect = column.renderedWindowsRects[i]; if ((this.direction.west && @@ -2097,7 +2150,7 @@ class ColumnsLayout { return false; const renderedId = column.renderedWindowsIds[i]; if (columnId !== null && columnId !== colIdx) - this.parts[columnId].windowIds.delete(windowId); + this.columns[columnId].windowIds.delete(windowId); column.windowIds.add(windowId); ctx.moveWindowByWinId(window, renderedId); return true; @@ -2117,7 +2170,7 @@ class ColumnsLayout { return false; const renderedId = column.renderedWindowsIds[i]; if (columnId !== null && columnId !== colIdx) - this.parts[columnId].windowIds.delete(windowId); + this.columns[columnId].windowIds.delete(windowId); column.windowIds.add(windowId); ctx.moveWindowByWinId(window, renderedId, true); return true; @@ -2126,51 +2179,68 @@ class ColumnsLayout { } return false; } - arrangeTileables(tileables) { + arrangeTileables(ctx, tileables) { let latestTimestamp = 0; - let columnId = null; - let newWindows = new Set(); + let partId = null; + let newWindows = []; let tileableIds = new Set(); let currentColumnId = 0; tileables.forEach((tileable) => { tileable.state = WindowState.Tiled; - columnId = this.getColumnId(tileable); - if (columnId !== null) { - if (tileable.timestamp > latestTimestamp) { + partId = this.getPartsId(tileable); + if (partId !== null) { + if (this.parts[partId].timestamp < tileable.timestamp) { + this.parts[partId].timestamp = tileable.timestamp; + } + if (this.parts[partId].timestamp > latestTimestamp) { latestTimestamp = tileable.timestamp; - currentColumnId = columnId; + currentColumnId = partId; } } else { - newWindows.add(tileable.id); + newWindows.push(tileable.id); } tileableIds.add(tileable.id); }); - this.parts[currentColumnId].windowIds = new Set([ - ...this.parts[currentColumnId].windowIds, - ...newWindows, - ]); + if (CONFIG.columnsBalanced) { + for (var [_, id] of newWindows.entries()) { + let minSizeColumn = this.parts.reduce((prev, curr) => { + return prev.size < curr.size ? prev : curr; + }); + minSizeColumn.windowIds.add(id); + } + } + else { + this.parts[currentColumnId].windowIds = new Set([ + ...this.parts[currentColumnId].windowIds, + ...newWindows, + ]); + } this.parts.forEach((column) => { - column.actualizeWindowIds(tileableIds); + column.actualizeWindowIds(ctx, tileableIds); }); this.parts = this.parts.filter((column) => column.windowIds.size !== 0); if (this.parts.length === 0) - this.parts.push(new ColumnLayout()); + this.insertColumn(true); this.applyColumnsPosition(); } getColumnId(t) { + for (var i = 0; i < this.columns.length; i++) { + if (this.columns[i].windowIds.has(t.id)) + return i; + } + return null; + } + getPartsId(t) { for (var i = 0; i < this.parts.length; i++) { if (this.parts[i].windowIds.has(t.id)) return i; } return null; } - getCurrentWinId(ctx) { - return ctx.currentWindow === null ? null : ctx.currentWindow.id; - } - getCurrentColumnIdx(currentWindowId) { + getCurrentColumnId(currentWindowId) { if (currentWindowId !== null) { - for (const [i, column] of this.parts.entries()) { + for (const [i, column] of this.columns.entries()) { if (column.windowIds.has(currentWindowId)) return i; } @@ -2178,141 +2248,199 @@ class ColumnsLayout { return null; } applyColumnsPosition() { - const length = this.parts.length; - if (length === 1) { - this.parts[0].position = "single"; + this._columns = this.parts.filter((column) => !column.isEmpty()); + const columnsLength = this.columns.length; + if (columnsLength === 1) { + this.columns[0].position = "single"; } - else if (length > 1) { - this.parts[0].position = "left"; - this.parts[length - 1].position = "right"; - for (let i = 1; i < length - 1; i++) { - this.parts[i].position = "middle"; + else if (columnsLength > 1) { + this.columns[0].position = "left"; + this.columns[columnsLength - 1].position = "right"; + for (let i = 1; i < columnsLength - 1; i++) { + this.columns[i].position = "middle"; } } } toColumnWithBiggerIndex(ctx) { - let currentWindowId = this.getCurrentWinId(ctx); - let activeColumnId = this.getCurrentColumnIdx(currentWindowId); - if (currentWindowId === null || + const currentWindow = ctx.currentWindow; + const currentWindowId = currentWindow !== null ? currentWindow.id : null; + const activeColumnId = this.getCurrentColumnId(currentWindowId); + if (currentWindow === null || + currentWindowId === null || activeColumnId === null || - (this.parts[activeColumnId].windowIds.size < 2 && - (this.parts[activeColumnId].position === "right" || - this.parts[activeColumnId].position === "single"))) - return; - if (this.parts[activeColumnId].position === "single" || - this.parts[activeColumnId].position === "right") { - this.insertColumn(this.parts.length); - } - this.parts[activeColumnId].windowIds.delete(currentWindowId); - this.parts[activeColumnId + 1].windowIds.add(currentWindowId); - } - toColumnWithSmallerIndex(ctx) { - let currentWindowId = this.getCurrentWinId(ctx); - let activeColumnId = this.getCurrentColumnIdx(currentWindowId); - if (currentWindowId === null || - activeColumnId === null || - (this.parts[activeColumnId].windowIds.size < 2 && - (this.parts[activeColumnId].position === "left" || - this.parts[activeColumnId].position === "single"))) - return; - if (this.parts[activeColumnId].position === "single" || - this.parts[activeColumnId].position === "left") { - this.insertColumn(0); - this.parts[1].windowIds.delete(currentWindowId); - this.parts[0].windowIds.add(currentWindowId); + (this.columns[activeColumnId].size < 2 && + (this.columns[activeColumnId].position === "right" || + this.columns[activeColumnId].position === "single"))) + return false; + let targetColumn; + const column = this.columns[activeColumnId]; + const center = column.renderedWindowsRects[column.renderedWindowsIds.indexOf(currentWindowId)].center; + column.windowIds.delete(currentWindowId); + if (column.position === "single" || column.position === "right") { + targetColumn = this.insertColumn(false); + targetColumn.windowIds.add(currentWindowId); } else { - this.parts[activeColumnId].windowIds.delete(currentWindowId); - this.parts[activeColumnId - 1].windowIds.add(currentWindowId); + targetColumn = this.columns[activeColumnId + 1]; + targetColumn.windowIds.add(currentWindowId); } + let idOnTarget; + if (this.direction.north || this.direction.south) + idOnTarget = targetColumn.getWindowIdOnRight(center[0]); + else + idOnTarget = targetColumn.getWindowIdOnTop(center[1]); + if (idOnTarget !== null) + ctx.moveWindowByWinId(currentWindow, idOnTarget); + else { + const targetId = targetColumn.renderedWindowsIds[targetColumn.renderedWindowsIds.length - 1]; + ctx.moveWindowByWinId(currentWindow, targetId); + } + this.applyColumnsPosition(); + return true; + } + toColumnWithSmallerIndex(ctx) { + const currentWindow = ctx.currentWindow; + const currentWindowId = currentWindow !== null ? currentWindow.id : null; + const activeColumnId = this.getCurrentColumnId(currentWindowId); + if (currentWindow === null || + currentWindowId === null || + activeColumnId === null || + (this.columns[activeColumnId].windowIds.size < 2 && + (this.columns[activeColumnId].position === "left" || + this.columns[activeColumnId].position === "single"))) + return false; + let targetColumn; + const column = this.columns[activeColumnId]; + const center = column.renderedWindowsRects[column.renderedWindowsIds.indexOf(currentWindowId)].center; + column.windowIds.delete(currentWindowId); + if (column.position === "single" || column.position === "left") { + targetColumn = this.insertColumn(true); + targetColumn.windowIds.add(currentWindowId); + } + else { + targetColumn = this.columns[activeColumnId - 1]; + targetColumn.windowIds.add(currentWindowId); + } + let idOnTarget; + if (this.direction.north || this.direction.south) + idOnTarget = targetColumn.getWindowIdOnRight(center[0]); + else + idOnTarget = targetColumn.getWindowIdOnTop(center[1]); + if (idOnTarget !== null) + ctx.moveWindowByWinId(currentWindow, idOnTarget); + else { + const targetId = targetColumn.renderedWindowsIds[targetColumn.renderedWindowsIds.length - 1]; + ctx.moveWindowByWinId(currentWindow, targetId); + } + this.applyColumnsPosition(); + return true; } toUpOrLeft(ctx) { let currentWindow = ctx.currentWindow; let currentWindowId = currentWindow !== null ? currentWindow.id : null; - let activeColumnId = this.getCurrentColumnIdx(currentWindowId); + let activeColumnId = this.getCurrentColumnId(currentWindowId); if (currentWindow === null || currentWindowId === null || activeColumnId === null || - this.parts[activeColumnId].windowIds.size < 2) - return; - let upperWinId = this.parts[activeColumnId].getUpperWindowId(currentWindowId); + this.columns[activeColumnId].windowIds.size < 2) + return false; + let upperWinId = this.columns[activeColumnId].getUpperWindowId(currentWindowId); if (upperWinId === null) - return; + return false; ctx.moveWindowByWinId(currentWindow, upperWinId); + return true; } toBottomOrRight(ctx) { let currentWindow = ctx.currentWindow; let currentWindowId = currentWindow !== null ? currentWindow.id : null; - let activeColumnId = this.getCurrentColumnIdx(currentWindowId); + let activeColumnId = this.getCurrentColumnId(currentWindowId); if (currentWindow === null || currentWindowId === null || activeColumnId === null || - this.parts[activeColumnId].windowIds.size < 2) - return; - let lowerWinId = this.parts[activeColumnId].getLowerWindowId(currentWindowId); + this.columns[activeColumnId].windowIds.size < 2) + return false; + let lowerWinId = this.columns[activeColumnId].getLowerWindowId(currentWindowId); if (lowerWinId === null) - return; + return false; ctx.moveWindowByWinId(currentWindow, lowerWinId, true); + return true; + } + showDirection(ctx) { + let notification; + if (this.direction.east) + notification = "vertical ⟰"; + else if (this.direction.north) + notification = "horizontal ⭆"; + else if (this.direction.west) + notification = "vertical ⟱"; + else if (this.direction.south) + notification = "horizontal ⭅"; + else + notification = ""; + ctx.showNotification(notification); } handleShortcut(ctx, input) { + let isApply = false; switch (input) { case Shortcut.SwapLeft: if (this.direction.north || this.direction.south) { - this.toUpOrLeft(ctx); + isApply = this.toUpOrLeft(ctx); } else if (this.direction.east) { - this.toColumnWithBiggerIndex(ctx); + isApply = this.toColumnWithBiggerIndex(ctx); } else - this.toColumnWithSmallerIndex(ctx); + isApply = this.toColumnWithSmallerIndex(ctx); break; case Shortcut.SwapRight: if (this.direction.north || this.direction.south) { - this.toBottomOrRight(ctx); + isApply = this.toBottomOrRight(ctx); } else if (this.direction.east) { - this.toColumnWithSmallerIndex(ctx); + isApply = this.toColumnWithSmallerIndex(ctx); } else - this.toColumnWithBiggerIndex(ctx); + isApply = this.toColumnWithBiggerIndex(ctx); break; case Shortcut.SwapUp: if (this.direction.north) { - this.toColumnWithSmallerIndex(ctx); + isApply = this.toColumnWithSmallerIndex(ctx); } else if (this.direction.south) { - this.toColumnWithBiggerIndex(ctx); + isApply = this.toColumnWithBiggerIndex(ctx); } else - this.toUpOrLeft(ctx); + isApply = this.toUpOrLeft(ctx); break; case Shortcut.SwapDown: if (this.direction.north) { - this.toColumnWithBiggerIndex(ctx); + isApply = this.toColumnWithBiggerIndex(ctx); } else if (this.direction.south) { - print("hello"); - this.toColumnWithSmallerIndex(ctx); + isApply = this.toColumnWithSmallerIndex(ctx); } else - this.toBottomOrRight(ctx); + isApply = this.toBottomOrRight(ctx); break; case Shortcut.Rotate: this.direction.cwRotation(); - print(`cwRotation: north:${this.direction.north},east:${this.direction.east},south:${this.direction.south},west:${this.direction.west}`); + this.showDirection(ctx); + isApply = true; break; case Shortcut.RotatePart: this.direction.ccwRotation(); - print(`ccwRotation: north:${this.direction.north},east:${this.direction.east},south:${this.direction.south},west:${this.direction.west}`); + this.showDirection(ctx); + isApply = true; break; default: return false; } - return true; + return isApply; } - insertColumn(index) { - this.parts.splice(index, 0, new ColumnLayout()); - this.applyColumnsPosition(); + insertColumn(onTop) { + let column = new ColumnLayout(); + this.parts.splice(onTop ? 0 : this.parts.length, 0, column); + return column; } } ColumnsLayout.id = "Columns"; diff --git a/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/config/main.xml b/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/config/main.xml index 703b90f6..284d9934 100644 --- a/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/config/main.xml +++ b/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/config/main.xml @@ -64,11 +64,17 @@ true + 0 + + + false + + false diff --git a/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/ui/config.ui b/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/ui/config.ui index 64941598..9f5f5835 100644 --- a/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/ui/config.ui +++ b/roles/config/files/.local/share/kwin/scripts/krohnkite/contents/ui/config.ui @@ -7,7 +7,7 @@ 0 0 440 - 755 + 1109 @@ -258,6 +258,19 @@ + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + @@ -299,18 +312,15 @@ - - - - Qt::Orientation::Horizontal + + + + Creating a new window in the shortest column - - - 40 - 20 - + + Balanced - + diff --git a/roles/config/files/.local/share/kwin/scripts/krohnkite/metadata.json b/roles/config/files/.local/share/kwin/scripts/krohnkite/metadata.json index 9a2786ee..163f4dc8 100644 --- a/roles/config/files/.local/share/kwin/scripts/krohnkite/metadata.json +++ b/roles/config/files/.local/share/kwin/scripts/krohnkite/metadata.json @@ -2,7 +2,7 @@ "KPackageStructure": "KWin/Script", "KPlugin": { "Name": "Krohnkite", - "Description": "A dynamic tiling script for KWin (96a3502)", + "Description": "A dynamic tiling script for KWin (f1ef1cf)", "Icon": "dialog-tile-clones", "Authors": [ @@ -12,7 +12,7 @@ } ], "Id": "krohnkite", - "Version": "0.9.8.2", + "Version": "0.9.8.3", "License": "MIT", "Website": "https://github.com/anametologin/krohnkite#readme" },