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:
+109
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
This file is part of the KDE project.
|
||||
|
||||
SPDX-FileCopyrightText: 2012 Martin Gräßlin <mgraesslin@kde.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
"use strict";
|
||||
|
||||
function sleep(miliseconds) {
|
||||
var currentTime = new Date().getTime();
|
||||
|
||||
while (currentTime + miliseconds >= new Date().getTime()) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class MaximizeEffect {
|
||||
constructor() {
|
||||
effect.configChanged.connect(this.loadConfig.bind(this));
|
||||
effects.windowFrameGeometryChanged.connect(
|
||||
this.onWindowFrameGeometryChanged.bind(this));
|
||||
effects.windowMaximizedStateChanged.connect(
|
||||
this.onWindowMaximizedStateChanged.bind(this));
|
||||
effect.animationEnded.connect(this.restoreForceBlurState.bind(this));
|
||||
|
||||
this.loadConfig();
|
||||
}
|
||||
|
||||
loadConfig() {
|
||||
this.duration = animationTime(250);
|
||||
}
|
||||
|
||||
onWindowMaximizedStateChanged(window) {
|
||||
if (!window.oldGeometry) {
|
||||
return;
|
||||
}
|
||||
sleep(50); //Skip some frames
|
||||
window.setData(Effect.WindowForceBlurRole, true);
|
||||
let oldGeometry = window.oldGeometry;
|
||||
const newGeometry = window.geometry;
|
||||
if (oldGeometry.width == newGeometry.width && oldGeometry.height == newGeometry.height)
|
||||
oldGeometry = window.olderGeometry;
|
||||
window.olderGeometry = Object.assign({}, window.oldGeometry);
|
||||
window.oldGeometry = Object.assign({}, newGeometry);
|
||||
window.maximizeAnimation1 = animate({
|
||||
window: window,
|
||||
duration: this.duration,
|
||||
animations: [{
|
||||
type: Effect.Size,
|
||||
to: {
|
||||
value1: newGeometry.width,
|
||||
value2: newGeometry.height
|
||||
},
|
||||
from: {
|
||||
value1: oldGeometry.width,
|
||||
value2: oldGeometry.height
|
||||
},
|
||||
curve: QEasingCurve.OutCubic
|
||||
}, {
|
||||
type: Effect.Translation,
|
||||
to: {
|
||||
value1: 0,
|
||||
value2: 0
|
||||
},
|
||||
from: {
|
||||
value1: oldGeometry.x - newGeometry.x - (newGeometry.width / 2 - oldGeometry.width / 2),
|
||||
value2: oldGeometry.y - newGeometry.y - (newGeometry.height / 2 - oldGeometry.height / 2)
|
||||
},
|
||||
curve: QEasingCurve.OutCubic
|
||||
}]
|
||||
});
|
||||
if (!window.resize) {
|
||||
window.maximizeAnimation2 =animate({
|
||||
window: window,
|
||||
duration: this.duration,
|
||||
animations: [{
|
||||
type: Effect.CrossFadePrevious,
|
||||
to: 1.0,
|
||||
from: 0.0,
|
||||
curve: QEasingCurve.OutCubic
|
||||
}]
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
restoreForceBlurState(window) {
|
||||
window.setData(Effect.WindowForceBlurRole, null);
|
||||
}
|
||||
|
||||
onWindowFrameGeometryChanged(window, oldGeometry) {
|
||||
if (window.maximizeAnimation1) {
|
||||
if (window.geometry.width != window.oldGeometry.width ||
|
||||
window.geometry.height != window.oldGeometry.height) {
|
||||
cancel(window.maximizeAnimation1);
|
||||
delete window.maximizeAnimation1;
|
||||
if (window.maximizeAnimation2) {
|
||||
cancel(window.maximizeAnimation2);
|
||||
delete window.maximizeAnimation2;
|
||||
}
|
||||
}
|
||||
}
|
||||
window.oldGeometry = Object.assign({}, window.geometry);
|
||||
window.olderGeometry = Object.assign({}, oldGeometry);
|
||||
}
|
||||
}
|
||||
|
||||
new MaximizeEffect();
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
/********************************************************************
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2012 Martin Gräßlin <mgraesslin@kde.org>
|
||||
|
||||
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/>.
|
||||
*********************************************************************/
|
||||
|
||||
"use strict";
|
||||
|
||||
function sleep(miliseconds) {
|
||||
var currentTime = new Date().getTime();
|
||||
|
||||
while (currentTime + miliseconds >= new Date().getTime()) {
|
||||
}
|
||||
}
|
||||
|
||||
var maximizeEffect = {
|
||||
duration: animationTime(150),
|
||||
loadConfig: function () {
|
||||
maximizeEffect.duration = animationTime(150);
|
||||
},
|
||||
maximizeChanged: function (window) {
|
||||
var m = Math.floor((Math.random() * 2) + 1);
|
||||
sleep(50); //Skip some frames
|
||||
if (!window.oldGeometry) {
|
||||
return;
|
||||
}
|
||||
window.setData(Effect.WindowForceBlurRole, true);
|
||||
var oldGeometry, newGeometry;
|
||||
oldGeometry = window.oldGeometry;
|
||||
newGeometry = window.geometry;
|
||||
if (oldGeometry.width == newGeometry.width && oldGeometry.height == newGeometry.height)
|
||||
oldGeometry = window.olderGeometry;
|
||||
window.olderGeometry = window.oldGeometry;
|
||||
window.oldGeometry = newGeometry;
|
||||
window.maximizeAnimation1 = animate({
|
||||
window: window,
|
||||
duration: maximizeEffect.duration,
|
||||
animations: [{
|
||||
type: Effect.Size,
|
||||
to: {
|
||||
value1: newGeometry.width,
|
||||
value2: newGeometry.height
|
||||
},
|
||||
from: {
|
||||
value1: oldGeometry.width,
|
||||
value2: oldGeometry.height
|
||||
}
|
||||
}, {
|
||||
type: Effect.Translation,
|
||||
to: {
|
||||
value1: 0,
|
||||
value2: 0
|
||||
},
|
||||
from: {
|
||||
value1: oldGeometry.x - newGeometry.x - (newGeometry.width / 2 - oldGeometry.width / 2),
|
||||
value2: oldGeometry.y - newGeometry.y - (newGeometry.height / 2 - oldGeometry.height / 2)
|
||||
}
|
||||
}]
|
||||
});
|
||||
//if (!window.resize) {
|
||||
if (1 == 2 ) { // disabled the routine because
|
||||
// CrossFadePrevious+xrender grabs a garbled texture as the start crossfade point
|
||||
window.maximizeAnimation2 =animate({
|
||||
window: window,
|
||||
duration: maximizeEffect.duration,
|
||||
animations: [{
|
||||
delay: animationTime(32),
|
||||
type: Effect.CrossFadePrevious,
|
||||
to: 1.0,
|
||||
from: 0.0
|
||||
}]
|
||||
});
|
||||
}
|
||||
},
|
||||
restoreForceBlurState: function(window) {
|
||||
window.setData(Effect.WindowForceBlurRole, null);
|
||||
},
|
||||
geometryChange: function (window, oldGeometry) {
|
||||
if (window.maximizeAnimation1) {
|
||||
if (window.geometry.width != window.oldGeometry.width ||
|
||||
window.geometry.height != window.oldGeometry.height) {
|
||||
cancel(window.maximizeAnimation1);
|
||||
delete window.maximizeAnimation1;
|
||||
if (window.maximizeAnimation2) {
|
||||
cancel(window.maximizeAnimation2);
|
||||
delete window.maximizeAnimation2;
|
||||
}
|
||||
}
|
||||
}
|
||||
window.oldGeometry = window.geometry;
|
||||
window.olderGeometry = oldGeometry;
|
||||
},
|
||||
init: function () {
|
||||
effect.configChanged.connect(maximizeEffect.loadConfig);
|
||||
effects.windowGeometryShapeChanged.connect(maximizeEffect.geometryChange);
|
||||
effects.windowMaximizedStateChanged.connect(maximizeEffect.maximizeChanged);
|
||||
effect.animationEnded.connect(maximizeEffect.restoreForceBlurState);
|
||||
}
|
||||
};
|
||||
maximizeEffect.init();
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
[Desktop Entry]
|
||||
Comment=Animation for windows going to maximize/restore from maximize, less glitches
|
||||
Icon=preferences-system-windows-effect-maximize
|
||||
Name=Maximize antiglitch
|
||||
Type=Service
|
||||
X-KDE-ParentApp=
|
||||
X-KDE-PluginInfo-Author=Martin Gräßlin (changed by Antonio Orefice)
|
||||
X-KDE-PluginInfo-Category=Appearance
|
||||
X-KDE-PluginInfo-Email=kokoko3k@gmail.com
|
||||
X-KDE-PluginInfo-License=GPL
|
||||
X-KDE-PluginInfo-Name=kwin4_effect_maximize_xrender
|
||||
X-KDE-PluginInfo-Version=1.1
|
||||
X-KDE-PluginInfo-Website=
|
||||
X-KDE-ServiceTypes=KWin/Effect
|
||||
X-KDE-PluginInfo-EnabledByDefault=false
|
||||
X-KDE-Ordering=60
|
||||
X-Plasma-API=javascript
|
||||
X-Plasma-MainScript=code/maximize-xrender.js
|
||||
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
/********************************************************************
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2012 Martin Gräßlin <mgraesslin@kde.org>
|
||||
Copyright (C) 2018 Alex Nemeth <alex.nemeth329@gmail.com
|
||||
|
||||
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 rubberbandMaximizeEffect = {
|
||||
duration: animationTime(200),
|
||||
deviation: 0.05,
|
||||
loadConfig: function () {
|
||||
"use strict";
|
||||
rubberbandMaximizeEffect.duration = animationTime(200);
|
||||
},
|
||||
slotWindowMaximizedStateChanged: function (window) {
|
||||
"use strict";
|
||||
if (!window.oldGeometry) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.setData(Effect.WindowForceBackgroundContrastRole, true);
|
||||
window.setData(Effect.WindowForceBlurRole, true);
|
||||
|
||||
var oldGeometry = window.oldGeometry;
|
||||
var newGeometry = window.geometry;
|
||||
if (oldGeometry.width == newGeometry.width &&
|
||||
oldGeometry.height == newGeometry.height) {
|
||||
oldGeometry = window.olderGeometry;
|
||||
}
|
||||
|
||||
var scale = 0;
|
||||
|
||||
if (oldGeometry.width < newGeometry.width) {
|
||||
scale = 1 - rubberbandMaximizeEffect.deviation;
|
||||
} else {
|
||||
scale = 1 + rubberbandMaximizeEffect.deviation;
|
||||
}
|
||||
|
||||
window.olderGeometry = window.oldGeometry;
|
||||
window.oldGeometry = newGeometry;
|
||||
|
||||
window.maximizeAnimation = animate({
|
||||
window: window,
|
||||
curve: QEasingCurve.OutSine,
|
||||
duration: rubberbandMaximizeEffect.duration,
|
||||
animations: [
|
||||
{
|
||||
type: Effect.Size,
|
||||
delay: animationTime(10),
|
||||
from: {
|
||||
value1: newGeometry.width * scale,
|
||||
value2: newGeometry.height * scale
|
||||
},
|
||||
to: {
|
||||
value1: newGeometry.width,
|
||||
value2: newGeometry.height
|
||||
}
|
||||
},
|
||||
{
|
||||
type: Effect.Translation,
|
||||
from: {
|
||||
value1: (oldGeometry.x - newGeometry.x - (newGeometry.width - oldGeometry.width) / 2) * rubberbandMaximizeEffect.deviation,
|
||||
value2: (oldGeometry.y - newGeometry.y - (newGeometry.height - oldGeometry.height) / 2) * rubberbandMaximizeEffect.deviation
|
||||
},
|
||||
to: {
|
||||
value1: 0,
|
||||
value2: 0
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
},
|
||||
slotWindowGeometryShapeChanged: function (window, oldGeometry) {
|
||||
"use strict";
|
||||
if (window.maximizeAnimation) {
|
||||
if (window.geometry.width != window.oldGeometry.width ||
|
||||
window.geometry.height != window.oldGeometry.height) {
|
||||
cancel(window.maximizeAnimation);
|
||||
delete window.maximizeAnimation;
|
||||
}
|
||||
}
|
||||
window.oldGeometry = window.geometry;
|
||||
window.olderGeometry = oldGeometry;
|
||||
},
|
||||
slotAnimationEnded: function (window) {
|
||||
window.setData(Effect.WindowForceBackgroundContrastRole, null);
|
||||
window.setData(Effect.WindowForceBlurRole, null);
|
||||
},
|
||||
init: function () {
|
||||
"use strict";
|
||||
effect.configChanged.connect(rubberbandMaximizeEffect.loadConfig);
|
||||
effect.animationEnded.connect(rubberbandMaximizeEffect.slotAnimationEnded);
|
||||
effects.windowGeometryShapeChanged.connect(rubberbandMaximizeEffect.slotWindowGeometryShapeChanged);
|
||||
effects.windowMaximizedStateChanged.connect(rubberbandMaximizeEffect.slotWindowMaximizedStateChanged);
|
||||
}
|
||||
};
|
||||
|
||||
rubberbandMaximizeEffect.init();
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
[Desktop Entry]
|
||||
Comment=Maximize/Restore window animation similar to Windows 10
|
||||
Icon=preferences-system-windows-effect-rubberband-maximize
|
||||
Name=Rubberband Maximize
|
||||
Type=Service
|
||||
X-KDE-ParentApp=
|
||||
X-KDE-PluginInfo-Author=Alex Nemeth
|
||||
X-KDE-PluginInfo-Category=Appearance
|
||||
X-KDE-PluginInfo-Email=alex.nemeth329@gmail.com
|
||||
X-KDE-PluginInfo-License=GPL
|
||||
X-KDE-PluginInfo-Name=kwin4_effect_rubberband_maximize
|
||||
X-KDE-PluginInfo-Version=1
|
||||
X-KDE-PluginInfo-Website=
|
||||
X-KDE-ServiceTypes=KWin/Effect
|
||||
X-KDE-PluginInfo-EnabledByDefault=true
|
||||
X-KDE-Ordering=60
|
||||
X-Plasma-API=javascript
|
||||
X-Plasma-MainScript=code/main.js
|
||||
Reference in New Issue
Block a user