feat: bury offline mode, ship antergos-layan-theme

remember when i thought an offline installer was a good idea?
a pre-built squashfs that still needed internet to install DEs?
"offline" in name only. it was a lie. a beautiful, naive lie.

so i killed it. ripped out the mode picker, the connectivity check,
the whole AskMode() circus. calamares-next now just shows a notice
saying "yeah that wasnt actually offline" and launches directly
into online mode. no more pretending.

also fixed the QML nav button because having a greyed out "Next"
on the last page is terrible UX. now it says "Done" and quits.
youre welcome.

and since we nuked the offline mode, might as well make the
online mode look fucking spectacular. enter antergos-layan-theme:

- kvantum theme because your apps deserve better than qt dreck
- sddm theme (AntergosDark-Layan) for a sexy login screen
- every plasma plasmoid from the rice (panel colorizer, netspeed,
  shutdown switch, applets, separators, music toolbar, the works)
- yakuake arc-dark skin
- antergos logos in /usr/share/logos and /usr/share/pixmaps
- konsole profile, desktop appletsrc, all that jazz
- kde_settings.conf now points to AntergosDark-Layan sddm theme

also replaced the old antergos-grub-theme with the Layan grub
theme because the old one was a git-sourced abomination. 75 distro
icons, terminal box, selection widgets, antergos wallpaper.
ships to /usr/share/grub/themes/antergos/ so calamares finds it.

oh and a dozen audit fixes:
- kscreenlockerrc wallpaper path fixed
- kdialogrc no longer says some other distro
- 7 stale knsregistry files deleted (dev machine was leaking)
- systemd-inhibit guarded with command -v (dinit doesnt have it)
- plasma restart uses killall not systemctl --user
- "XeroLinux Toolkit" -> "Antergos Toolkit" in appletsrc
- KDE_SESSION_VERSION=5 -> =6 (its 2026)
- mirrorlist script says Artix not Arch
- SDDM Messages.sh removed from build artifacts
This commit is contained in:
2026-07-16 21:57:36 +02:00
parent 716ff74560
commit 82ff06c4da
1302 changed files with 308189 additions and 235 deletions
@@ -0,0 +1 @@
print("KWin need me. Don't ask why.");
@@ -0,0 +1,448 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
<kcfgfile name=""/>
<group name="">
<entry name="dockOrderLeft" type="Int">
<label>The order of the docked window in the dock</label>
<default>1</default>
</entry>
<entry name="dockOrderTop" type="Int">
<label>The order of the docked window in the dock</label>
<default>2</default>
</entry>
<entry name="dockOrderRight" type="Int">
<label>The order of the docked window in the dock</label>
<default>3</default>
</entry>
<entry name="dockOrderBottom" type="Int">
<label>The order of the docked window in the dock</label>
<default>4</default>
</entry>
<entry name="dockHHeight" type="Int">
<label>The default height of a horizontal docked window in percent</label>
<default>15</default>
</entry>
<entry name="dockHWide" type="Int">
<label>The default width of a horizontal docked window in percent</label>
<default>100</default>
</entry>
<entry name="dockHGap" type="Int">
<label>The default Gap of a horizontal docked window in pixels</label>
<default>0</default>
</entry>
<entry name="dockHEdgeGap" type="Int">
<label>The default Vertical Gap of a horizontal docked window in pixels</label>
<default>0</default>
</entry>
<entry name="dockHAlignment" type="Int">
<label>The default Alignment of a horizontal docked window which can be Center , Left, Right</label>
<default>0</default>
</entry>
<entry name="dockHEdgeAlignment" type="Int">
<label>The default vertical Alignment of a horizontal docked window which can be Edge Screen, Middle, Center Screen</label>
<default>0</default>
</entry>
<entry name="dockVHeight" type="Int">
<label>The default height of a vertical docked window in percent</label>
<default>100</default>
</entry>
<entry name="dockVWide" type="Int">
<label>The default width of a vertical docked window in percent</label>
<default>15</default>
</entry>
<entry name="dockVEdgeGap" type="Int">
<label>The default horizontal Gap of a vertical docked window in pixels</label>
<default>0</default>
</entry>
<entry name="dockVGap" type="Int">
<label>The default Gap of a vertical docked window in pixels</label>
<default>0</default>
</entry>
<entry name="dockVEdgeAlignment" type="Int">
<label>The default horizontal Alignment of a vertical docked window which can be Edge Screen, Middle or Center Screen</label>
<default>0</default>
</entry>
<entry name="dockVAlignment" type="Int">
<label>The default vertical Alignment of a vertical docked window which can be Center, Top, Bottom</label>
<default>0</default>
</entry>
<entry name="dockSurfacesConfig" type="String">
<label>Dock settings change the default parameters for the surface</label>
<default></default>
</entry>
<entry name="dockWindowClassConfig" type="String">
<label>Dock default settings for WindowClass which with high priority.</label>
<default></default>
</entry>
<entry name="tileLayoutOrder" type="Int">
<label> Tile layout order</label>
<default>1</default>
</entry>
<entry name="tileLayoutInitialRotationAngle" type="String">
<label>Tile layout initial rotation angle</label>
<default>0</default>
</entry>
<entry name="monocleLayoutOrder" type="Int">
<label> Monocle layout order</label>
<default>2</default>
</entry>
<entry name="threeColumnLayoutOrder" type="Int">
<label> Three Column layout order</label>
<default>3</default>
</entry>
<entry name="spiralLayoutOrder" type="Int">
<label> Spiral layout order</label>
<default>4</default>
</entry>
<entry name="quarterLayoutOrder" type="Int">
<label> Quarter layout order</label>
<default>5</default>
</entry>
<entry name="quarterLayoutReset" type="Bool">
<label>Reset Quarter layout after closing a window</label>
<default>false</default>
</entry>
<entry name="stackedLayoutOrder" type="Int">
<label> Stacked layout order</label>
<default>6</default>
</entry>
<entry name="columnsLayoutOrder" type="Int">
<label> Columns layout order</label>
<default>7</default>
</entry>
<entry name="enableColumnsLayout" type="Bool">
<label>Enable/disable Columns layout</label>
<default>true</default>
</entry>
<entry name="columnsLayoutInitialRotationAngle" type="String">
<label>Columns layout initial rotation angle</label>
<default>0</default>
</entry>
<entry name="columnsBalanced" type="Bool">
<label>Enable/disable creating a new window in the shortest column</label>
<default>false</default>
</entry>
<entry name="columnsLayerConf" type="String">
<label>Columns layout default configuration.</label>
<default></default>
</entry>
<entry name="spreadLayoutOrder" type="Int">
<label> Spread layout order</label>
<default>8</default>
</entry>
<entry name="floatingLayoutOrder" type="Int">
<label> Floating layout order</label>
<default>9</default>
</entry>
<entry name="stairLayoutOrder" type="Int">
<label> Stair layout order</label>
<default>10</default>
</entry>
<entry name="stairReverse" type="Bool">
<label>Reverse the stair layout's orientation</label>
<default>false</default>
</entry>
<entry name="binaryTreeLayoutOrder" type="Int">
<label> BTree layout order</label>
<default>11</default>
</entry>
<entry name="cascadeLayoutOrder" type="Int">
<label> Cascade layout order</label>
<default>12</default>
</entry>
<entry name="ignoreActivity" type="String">
<label>Do not apply tiling on some activities(comma-separated list of activity names)</label>
<default></default>
</entry>
<entry name="ignoreClass" type="String">
<label>Ignore windows with certain classes(comma-separated list)</label>
<default>krunner,yakuake,spectacle,kded5,xwaylandvideobridge,plasmashell,ksplashqml,org.kde.plasmashell,org.kde.polkit-kde-authentication-agent-1,org.kde.kruler,kruler,kwin_wayland,ksmserver-logout-greeter</default>
</entry>
<entry name="ignoreRole" type="String">
<label>Ignore windows with specific role(comma-separated list)</label>
<default>quake</default>
</entry>
<entry name="ignoreScreen" type="String">
<label>Do not apply tiling on some screens(comma-separated list of screen names)</label>
<default></default>
</entry>
<entry name="ignoreVDesktop" type="String">
<label>Do not apply tiling on some virtual desktops(comma-separated list of virtual desktops names)</label>
<default></default>
</entry>
<entry name="ignoreTitle" type="String">
<label>Ignore windows with certain string in title(comma-separated list)</label>
<default></default>
</entry>
<entry name="screenDefaultLayout" type="String">
<label>Assigning number of layout to screen(output) by default</label>
<default></default>
</entry>
<entry name="tileNothing" type="Bool">
<label>Don't tile any windows by default</label>
<default>false</default>
</entry>
<entry name="tilingClass" type="String">
<label>Tile windows with certain classes(comma-separated list)</label>
<default></default>
</entry>
<entry name="floatingClass" type="String">
<label>Float windows with certain classes(comma-separated list)</label>
<default></default>
</entry>
<entry name="floatingTitle" type="String">
<label>Float windows with certain string in title(comma-separated list)</label>
<default></default>
</entry>
<entry name="floatUtility" type="Bool">
<label>Automatically float utility windows (Dialog, Splash, Utility)</label>
<default>true</default>
</entry>
<entry name="layoutPerActivity" type="Bool">
<label>Use separate layouts per activity.</label>
<default>true</default>
</entry>
<entry name="layoutPerDesktop" type="Bool">
<label>Use separate layouts per desktop.</label>
<default>true</default>
</entry>
<entry name="tiledWindowsLayer" type="Int">
<label>What layer will have tiled windows</label>
<default>0</default>
</entry>
<entry name="floatedWindowsLayer" type="Int">
<label>What layer will have floated windows</label>
<default>1</default>
</entry>
<entry name="soleWindowWidth" type="Int">
<label>The sole window width in percent.</label>
<default>100</default>
</entry>
<entry name="soleWindowHeight" type="Int">
<label>The sole window height in percent.</label>
<default>100</default>
</entry>
<entry name="soleWindowNoBorders" type="Bool">
<label>Do not draw borders around sole window</label>
<default>false</default>
</entry>
<entry name="soleWindowNoGaps" type="Bool">
<label>Do not draw gaps around sole window</label>
<default>false</default>
</entry>
<entry name="monocleMaximize" type="Bool">
<label>Always maximize windows in Monocle layout</label>
<default>true</default>
</entry>
<entry name="monocleMinimizeRest" type="Bool">
<label>Minimize other tiles than the current one in Monocle layout</label>
<default>false</default>
</entry>
<entry name="adjustLayout" type="Bool">
<label>Adjust layout with mouse</label>
<default>true</default>
</entry>
<entry name="adjustLayoutLive" type="Bool">
<label>Adjust as window is being resized</label>
<default>true</default>
</entry>
<entry name="keepTilingOnDrag" type="Bool">
<label>Always preserve the tiling status of a window upon dragging</label>
<default>true</default>
</entry>
<entry name="noTileBorder" type="Bool">
<label>Remove borders of tiled windows</label>
<default>false</default>
</entry>
<entry name="preventMinimize" type="Bool">
<label>Prevent windows from minimizing</label>
<default>false</default>
</entry>
<entry name="preventProtrusion" type="Bool">
<label>Prevent windows from protruding out of screen</label>
<default>true</default>
</entry>
<entry name="notificationDuration" type="Int">
<label>Duration of pop-up notifications</label>
<default>1000</default>
</entry>
<entry name="screenGapLeft" type="Int">
<label>Gap between tiles and screen borders (Left)</label>
<default>0</default>
</entry>
<entry name="screenGapRight" type="Int">
<label>Gap between tiles and screen borders (Right)</label>
<default>0</default>
</entry>
<entry name="screenGapTop" type="Int">
<label>Gap between tiles and screen borders (Top)</label>
<default>0</default>
</entry>
<entry name="screenGapBottom" type="Int">
<label>Gap between tiles and screen borders (Bottom)</label>
<default>0</default>
</entry>
<entry name="screenGapBetween" type="Int">
<label>Gap between tiles in Tile layout</label>
<default>0</default>
</entry>
<entry name="gapsOverrideConfig" type="String">
<label>Override default screen gaps</label>
<default></default>
</entry>
<entry name="floatSkipPagerWindows" type="Bool">
<label>Make the window float if its property: skipPager=true (HACK)</label>
<default>false</default>
</entry>
<entry name="directionalKeyDwm" type="Bool">
<label>Up, Down, Left, and Right shortcut behaves like dwm</label>
<default>false</default>
</entry>
<entry name="directionalKeyFocus" type="Bool">
<label>Up, Down, Left, and Right shortcut moves focus</label>
<default>true</default>
</entry>
<entry name="limitTileWidth" type="Bool">
<label>Limit the width of tiles</label>
<default>false</default>
</entry>
<entry name="limitTileWidthRatio" type="Double">
<label>Ratio of maximum tile width to the height of screen</label>
<default>1.6</default>
</entry>
<entry name="newWindowPosition" type="Int">
<label>The position every new window in the screen window array</label>
<default>0</default>
</entry>
<entry name="logging" type="Bool">
<label>Enable logging</label>
<default>false</default>
</entry>
<entry name="logNewWindows" type="Bool">
<label>Log new windows</label>
<default>false</default>
</entry>
<entry name="logFilteredWindows" type="Bool">
<label>Log filtered windows</label>
<default>false</default>
</entry>
<entry name="logUnmanagedWindows" type="Bool">
<label>Log unmanaged windows</label>
<default>false</default>
</entry>
<entry name="logWorkspaceSignals" type="Bool">
<label>Log signals from workspace</label>
<default>false</default>
</entry>
<entry name="logWorkspaceSignalsSubmodules" type="String">
<label>Specify a comma separated list of numbers workspace signals submodules</label>
<default></default>
</entry>
<entry name="logWindowSignals" type="Bool">
<label>Log signals from windows</label>
<default>false</default>
</entry>
<entry name="logWindowSignalsSubmodules" type="String">
<label>Specify a comma separated list of numbers window signals submodules</label>
<default></default>
</entry>
<entry name="logOther" type="Bool">
<label>Log all other modules</label>
<default>false</default>
</entry>
<entry name="logOtherSubmodules" type="String">
<label>Specify a comma separated list of numbers all other submodules</label>
<default></default>
</entry>
<entry name="logFilter" type="Bool">
<label>Enable log filters</label>
<default>false</default>
</entry>
<entry name="logFilterStr" type="String">
<label>Specify a comma separated list of filters</label>
<default></default>
</entry>
</group>
</kcfg>
@@ -0,0 +1,62 @@
// Copyright (c) 2018 Eon S. Jeon <esjeon@hyunmu.am>
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
import QtQuick 2.15
import org.kde.plasma.core as PlasmaCore;
import org.kde.plasma.components as Plasma;
import org.kde.plasma.plasma5support as Plasma5Support
import org.kde.kwin 3.0;
import org.kde.taskmanager as TaskManager
import "../code/script.js" as K
Item {
id: scriptRoot
TaskManager.ActivityInfo {
id: activityInfo
}
Loader {
id: popupDialog
source: "popup.qml"
function show(text, duration) {
var area = Workspace.clientArea(KWin.FullScreenArea, Workspace.activeScreen, Workspace.currentDesktop);
this.item.show(text, area, duration);
}
}
Component.onCompleted: {
console.log("KROHNKITE: starting the script");
const api = {
"workspace": Workspace,
// "options": Options,
"kwin": KWin,
"shortcuts": shortcutsLoader.item
};
(new K.KWinDriver(api)).main();
}
Loader {
id: shortcutsLoader;
source: "shortcuts.qml";
}
}
@@ -0,0 +1,78 @@
// Copyright (c) 2018 Eon S. Jeon <esjeon@hyunmu.am>
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
import QtQuick 2.15
import QtQuick.Controls 2.15
import org.kde.plasma.core as PlasmaCore;
/*
* Component Documentation
* - PlasmaCore global `theme` object:
* https://techbase.kde.org/Development/Tutorials/Plasma2/QML2/API#Plasma_Themes
* - PlasmaCore.Dialog:
* https://techbase.kde.org/Development/Tutorials/Plasma2/QML2/API#Top_Level_windows
*/
PlasmaCore.Dialog {
id: popupDialog
type: PlasmaCore.Dialog.OnScreenDisplay
flags: Qt.Popup | Qt.WindowStaysOnTopHint
location: PlasmaCore.Types.Floating
outputOnly: true
visible: false
mainItem: Item {
width: messageLabel.implicitWidth
height: messageLabel.implicitHeight
Label {
id: messageLabel
padding: 10
font.pointSize: Math.round(10)
font.weight: Font.Bold
}
/* hides the popup window when triggered */
Timer {
id: hideTimer
repeat: false
onTriggered: {
popupDialog.visible = false;
}
}
}
function show(text, area, duration) {
hideTimer.stop();
messageLabel.text = text;
this.x = (area.x + area.width / 2) - this.width / 2;
this.y = (area.y + area.height / 2) - this.height / 2;
this.visible = true;
hideTimer.interval = duration;
hideTimer.start();
}
}
@@ -0,0 +1,358 @@
import QtQuick;
import org.kde.kwin;
Item {
id: dbus;
function getToggleDock() {
return toggleDock;
}
ShortcutHandler {
id: toggleDock;
name: "KrohnkitetoggleDock";
text: "Krohnkite: Toggle Dock";
sequence: "";
}
function getFocusNext() {
return focusNext;
}
ShortcutHandler {
id: focusNext;
name: "KrohnkiteFocusNext";
text: "Krohnkite: Focus Next";
sequence: "Meta+.";
}
function getFocusPrev() {
return focusPrev;
}
ShortcutHandler {
id: focusPrev;
name: "KrohnkiteFocusPrev";
text: "Krohnkite: Focus Previous";
sequence: "Meta+,";
}
function getFocusDown() {
return focusDown;
}
ShortcutHandler {
id: focusDown;
name: "KrohnkiteFocusDown";
text: "Krohnkite: Focus Down";
sequence: "Meta+J";
}
function getFocusUp() {
return focusUp;
}
ShortcutHandler {
id: focusUp;
name: "KrohnkiteFocusUp";
text: "Krohnkite: Focus Up";
sequence: "Meta+K";
}
function getFocusLeft() {
return focusLeft;
}
ShortcutHandler {
id: focusLeft;
name: "KrohnkiteFocusLeft";
text: "Krohnkite: Focus Left";
sequence: "Meta+H";
}
function getFocusRight() {
return focusRight;
}
ShortcutHandler {
id: focusRight;
name: "KrohnkiteFocusRight";
text: "Krohnkite: Focus Right";
sequence: "Meta+L";
}
function getShiftDown() {
return shiftDown;
}
ShortcutHandler {
id: shiftDown;
name: "KrohnkiteShiftDown";
text: "Krohnkite: Move Down/Next";
sequence: "Meta+Shift+J";
}
function getShiftUp() {
return shiftUp;
}
ShortcutHandler {
id: shiftUp;
name: "KrohnkiteShiftUp";
text: "Krohnkite: Move Up/Prev";
sequence: "Meta+Shift+K";
}
function getShiftLeft() {
return shiftLeft;
}
ShortcutHandler {
id: shiftLeft;
name: "KrohnkiteShiftLeft";
text: "Krohnkite: Move Left";
sequence: "Meta+Shift+H";
}
function getShiftRight() {
return shiftRight;
}
ShortcutHandler {
id: shiftRight;
name: "KrohnkiteShiftRight";
text: "Krohnkite: Move Right";
sequence: "Meta+Shift+L";
}
function getGrowHeight() {
return growHeight;
}
ShortcutHandler {
id: growHeight;
name: "KrohnkiteGrowHeight";
text: "Krohnkite: Grow Height";
sequence: "Meta+Ctrl+J";
}
function getShrinkHeight() {
return shrinkHeight;
}
ShortcutHandler {
id: shrinkHeight;
name: "KrohnkiteShrinkHeight";
text: "Krohnkite: Shrink Height";
sequence: "Meta+Ctrl+K";
}
function getShrinkWidth() {
return shrinkWidth;
}
ShortcutHandler {
id: shrinkWidth;
name: "KrohnkiteShrinkWidth";
text: "Krohnkite: Shrink Width";
sequence: "Meta+Ctrl+H";
}
function getGrowWidth() {
return growWidth;
}
ShortcutHandler {
id: growWidth;
name: "KrohnkitegrowWidth";
text: "Krohnkite: Grow Width";
sequence: "Meta+Ctrl+L";
}
function getIncrease() {
return increase;
}
ShortcutHandler {
id: increase;
name: "KrohnkiteIncrease";
text: "Krohnkite: Increase";
sequence: "Meta+I";
}
function getDecrease() {
return decrease;
}
ShortcutHandler {
id: decrease;
name: "KrohnkiteDecrease";
text: "Krohnkite: Decrease";
sequence: "Meta+D";
}
function getToggleFloat() {
return toggleFloat;
}
ShortcutHandler {
id: toggleFloat;
name: "KrohnkiteToggleFloat";
text: "Krohnkite: Toggle Float";
sequence: "Meta+F";
}
function getFloatAll() {
return floatAll;
}
ShortcutHandler {
id: floatAll;
name: "KrohnkiteFloatAll";
text: "Krohnkite: Toggle Float All";
sequence: "Meta+Shift+F";
}
function getNextLayout() {
return nextLayout;
}
ShortcutHandler {
id: nextLayout;
name: "KrohnkiteNextLayout";
text: "Krohnkite: Next Layout";
sequence: "Meta+\\";
}
function getPreviousLayout() {
return previousLayout;
}
ShortcutHandler {
id: previousLayout;
name: "KrohnkitePreviousLayout";
text: "Krohnkite: Previous Layout";
sequence: "Meta+|";
}
function getRotate() {
return rotate;
}
ShortcutHandler {
id: rotate;
name: "KrohnkiteRotate";
text: "Krohnkite: Rotate";
sequence: "Meta+R";
}
function getRotatePart() {
return rotatePart;
}
ShortcutHandler {
id: rotatePart;
name: "KrohnkiteRotatePart";
text: "Krohnkite: Rotate Part";
sequence: "Meta+Shift+R";
}
function getSetMaster() {
return setMaster;
}
ShortcutHandler {
id: setMaster;
name: "KrohnkiteSetMaster";
text: "Krohnkite: Set master";
sequence: "Meta+Return";
}
function getTileLayout() {
return tileLayout;
}
ShortcutHandler {
id: tileLayout;
name: "KrohnkiteTileLayout";
text: "Krohnkite: Tile Layout";
sequence: "Meta+T";
}
function getMonocleLayout() {
return monocleLayout;
}
ShortcutHandler {
id: monocleLayout;
name: "KrohnkiteMonocleLayout";
text: "Krohnkite: Monocle Layout";
sequence: "Meta+M";
}
function getThreeColumnLayout() {
return treeColumnLayout;
}
ShortcutHandler {
id: treeColumnLayout;
name: "KrohnkiteTreeColumnLayout";
text: "Krohnkite: Three Column Layout";
sequence: "";
}
function getSpreadLayout() {
return spreadLayout;
}
ShortcutHandler {
id: spreadLayout;
name: "KrohnkiteSpreadLayout";
text: "Krohnkite: Spread Layout";
sequence: "";
}
function getStairLayout() {
return stairLayout;
}
ShortcutHandler {
id: stairLayout;
name: "KrohnkiteStairLayout";
text: "Krohnkite: Stair Layout";
sequence: "";
}
function getFloatingLayout() {
return floatingLayout;
}
ShortcutHandler {
id: floatingLayout;
name: "KrohnkiteFloatingLayout";
text: "Krohnkite: Floating Layout";
sequence: "";
}
function getQuarterLayout() {
return quarterLayout;
}
ShortcutHandler {
id: quarterLayout;
name: "KrohnkiteQuarterLayout";
text: "Krohnkite: Quarter Layout";
sequence: "";
}
function getStackedLayout() {
return stackedLayout;
}
ShortcutHandler {
id: stackedLayout;
name: "KrohnkiteStackedLayout";
text: "Krohnkite: Stacked Layout";
sequence: "";
}
function getBTreeLayout() {
return bTreeLayout;
}
ShortcutHandler {
id: bTreeLayout;
name: "KrohnkiteBTreeLayout";
text: "Krohnkite: BTree Layout";
sequence: "";
}
function getSpiralLayout() {
return spiralLayout;
}
ShortcutHandler {
id: spiralLayout;
name: "KrohnkiteSpiralLayout";
text: "Krohnkite: Spiral Layout";
sequence: "";
}
function getColumnsLayout() {
return columnsLayout;
}
ShortcutHandler {
id: columnsLayout;
name: "KrohnkiteColumnsLayout";
text: "Krohnkite: Columns Layout";
sequence: "";
}
}
@@ -0,0 +1,23 @@
{
"KPackageStructure": "KWin/Script",
"KPlugin": {
"Name": "Krohnkite",
"Description": "A dynamic tiling script for KWin (1d7fd74)",
"Icon": "dialog-tile-clones",
"Authors": [
{
"Email": "esjeon@hyunmu.am",
"Name": "Eon S. Jeon"
}
],
"Id": "krohnkite",
"Version": "0.9.9.2",
"License": "MIT",
"Website": "https://github.com/anametologin/krohnkite#readme"
},
"X-Plasma-API": "declarativescript",
"X-Plasma-API-Minimum-Version": "6.0",
"X-Plasma-MainScript": "ui/main.qml",
"X-KDE-ConfigModule": "kwin/effects/configs/kcm_kwin4_genericscripted",
"X-KWin-Config-TranslationDomain": "krohnkite"
}