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,82 @@
/********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.
Copyright (C) 2014 Thomas Lübking <thomas.luebking@gmail.com>
KDE5 revisions 2016 Bob Farmer <kde@bfarmer.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*********************************************************************/
var snapInnerX = readConfig("InnerX", 10);
var snapOuterX= readConfig("OuterX", 10);
var snapInnerY = readConfig("InnerY", 10);
var snapOuterY= readConfig("OuterY", 10);
// ---------------------------------------------------------
var clientStepUserMovedResized = function(client, rect) {
if (rect == undefined)
rect = client.geometry;
else if (!client.move)
return;
var area = workspace.clientArea(KWin.WorkArea, workspace.activeScreen, workspace.currentDesktop);
var adjust = false;
var diff = rect.x - area.x;
if (diff < snapInnerX && diff > -snapOuterX) {
adjust = true;
var width = rect.width;
rect.x = area.x;
rect.width = width;
} else {
diff = rect.x + rect.width - (area.x + area.width);
if (diff > -snapInnerX && diff < snapOuterX) {
adjust = true;
var width = rect.width;
rect.x = area.x + area.width - width;
rect.width = width;
}
}
diff = rect.y - area.y;
if (diff < snapInnerY && diff > -snapOuterY) {
adjust = true;
var height = rect.height;
rect.y = area.y;
rect.height = height;
} else {
diff = rect.y + rect.height - (area.y + area.height);
if (diff > -snapInnerY && diff < snapOuterY) {
adjust = true;
var height = rect.height;
rect.y = area.y + area.height - height;
rect.height = height;
}
}
if (adjust)
client.geometry = rect;
}
var addClient = function(client) {
client.clientStepUserMovedResized.connect(clientStepUserMovedResized);
client.clientFinishUserMovedResized.connect(clientStepUserMovedResized);
clientStepUserMovedResized(client);
}
options.borderSnapZone = 0;
workspace.clientAdded.connect(addClient);
var clients = workspace.clientList();
for (var i = 0; i < clients.length; ++i) {
addClient(clients[i])
}
@@ -0,0 +1,22 @@
<?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="InnerX" type="int">
<default>10</default>
</entry>
<entry name="OuterX" type="int">
<default>10</default>
</entry>
<entry name="InnerY" type="int">
<default>10</default>
</entry>
<entry name="OuterY" type="int">
<default>10</default>
</entry>
</group>
</kcfg>
@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>KWin::ScreenSnappingConfigForm</class>
<widget class="QWidget" name="KWin::ScreenSnappingConfigForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>362</width>
<height>190</height>
</rect>
</property>
<property name="windowTitle">
<string>Screen Snapping</string>
</property>
<layout class="QGridLayout" name="gridLayout" columnstretch="3,1">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Horizontal Snapping</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Inside</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="kcfg_InnerX">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Outside</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="kcfg_OuterX">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>5000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Vertical Snapping</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Inside</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="kcfg_InnerY">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Outside</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="kcfg_OuterY">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>5000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1" rowspan="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>42</width>
<height>124</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
@@ -0,0 +1,21 @@
[Desktop Entry]
Name=Screen Snapping 5
Comment=Snap to deco instead of window content
Icon=preferences-system-windows-script-test
Type=Service
X-Plasma-API=javascript
X-Plasma-MainScript=code/main.js
X-KDE-PluginInfo-Author=Bob Farmer
X-KDE-PluginInfo-Email=kde@bfarmer.net
X-KDE-PluginInfo-Name=screenSnapping5
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-ServiceTypes=KWin/Script,KCModule
X-KDE-Library=kwin/effects/configs/kcm_kwin4_genericscripted
X-KDE-PluginKeyword=screenSnapping5
X-KDE-ParentComponents=screenSnapping5