mirror of
https://gitgud.io/wackyideas/aerothemeplasma.git
synced 2024-08-15 00:43:43 +00:00
Very early KDE 6 release.
This commit is contained in:
parent
7cc4ccabbc
commit
686046d4f7
6272 changed files with 140920 additions and 529657 deletions
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
BIN
kwin/scripts/smodpeekscript/contents/ui/framecornereffect.png
Normal file
BIN
kwin/scripts/smodpeekscript/contents/ui/framecornereffect.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.5 KiB |
225
kwin/scripts/smodpeekscript/contents/ui/main.qml
Normal file
225
kwin/scripts/smodpeekscript/contents/ui/main.qml
Normal file
|
@ -0,0 +1,225 @@
|
|||
// Qt
|
||||
import QtCore
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
import QtQuick.Window 2.15
|
||||
import Qt5Compat.GraphicalEffects
|
||||
|
||||
// KDE
|
||||
|
||||
import org.kde.kwin as KWin
|
||||
import org.kde.kwin.private.effects 1.0
|
||||
import org.kde.kwindowsystem 1.0
|
||||
import org.kde.plasma.core 2.0 as PlasmaCore
|
||||
import org.kde.plasma.extras 2.0 as PlasmaExtras
|
||||
import org.kde.kirigami as Kirigami
|
||||
import org.kde.ksvg as KSvg
|
||||
|
||||
Item
|
||||
{
|
||||
//property bool inEditMode: Plasmoid.containment.corona.editMode;
|
||||
property bool showingDesktop: KWindowSystem.showingDesktop //false
|
||||
property real peekOpacity: showingDesktop ? 1 : 0
|
||||
property bool instantiatorActive: true
|
||||
property bool delayActive: false
|
||||
|
||||
x: 0
|
||||
y: 0
|
||||
width: Screen.width
|
||||
height: Screen.height
|
||||
|
||||
Behavior on peekOpacity
|
||||
{
|
||||
NumberAnimation { duration: 150; easing.type: Easing.Linear; }
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: timer
|
||||
interval: 20
|
||||
onTriggered: {
|
||||
delayActive = showingDesktop;
|
||||
}
|
||||
}
|
||||
onShowingDesktopChanged: {
|
||||
if(showingDesktop) delayActive = true;
|
||||
else timer.start();
|
||||
}
|
||||
|
||||
KWin.WindowFilterModel {
|
||||
id: windowmodel
|
||||
activity: KWin.Workspace.currentActivity
|
||||
desktop: KWin.Workspace.currentDesktop
|
||||
windowModel: KWin.WindowModel {}
|
||||
minimizedWindows: false
|
||||
windowType: ~KWin.WindowFilterModel.Dock &
|
||||
~KWin.WindowFilterModel.Desktop &
|
||||
~KWin.WindowFilterModel.Notification &
|
||||
~KWin.WindowFilterModel.CriticalNotification
|
||||
}
|
||||
|
||||
// Hack that ignores windows that are present in edit mode
|
||||
function ignoreWindow(w) {
|
||||
return !((w.resourceClass == "plasmashell" && w.skipTaskbar && w.caption == "plasmashell") ||
|
||||
(w.resourceClass == "plasmashell") && w.dialog && !w.normalWindow && w.caption == "plasmashell" && w.modal && w.desktopFileName == "org.kde.plasmashell" && w.transient)
|
||||
}
|
||||
|
||||
Instantiator
|
||||
{
|
||||
active: true
|
||||
asynchronous: true
|
||||
model: 1
|
||||
|
||||
delegate: Window
|
||||
{
|
||||
flags: Qt.BypassWindowManagerHint | Qt.FramelessWindowHint | Qt.WindowTransparentForInput
|
||||
color: "transparent"
|
||||
x: 0
|
||||
y: 0
|
||||
width: Screen.width
|
||||
height: Screen.height
|
||||
visible: delayActive
|
||||
opacity: peekOpacity
|
||||
|
||||
title: "aeropeek-aerothemeplasma"
|
||||
// Setup reflection
|
||||
Image
|
||||
{
|
||||
id: reflection
|
||||
x: 0
|
||||
y: 0
|
||||
width: Screen.width
|
||||
height: Screen.height
|
||||
source: StandardPaths.writableLocation(StandardPaths.GenericDataLocation) + "/smod/reflections.png" //"~/.local/share/smod/reflections.png"
|
||||
sourceSize: Qt.size(width, height)
|
||||
smooth: true
|
||||
visible: false
|
||||
}
|
||||
|
||||
// Setup mask
|
||||
Item
|
||||
{
|
||||
id: mask
|
||||
anchors.fill: reflection
|
||||
visible: true
|
||||
opacity: 0.01
|
||||
|
||||
// Paint over all window geometry
|
||||
Repeater
|
||||
{
|
||||
model: windowmodel
|
||||
delegate: Rectangle
|
||||
{
|
||||
x: model.window.x
|
||||
y: model.window.y
|
||||
width: model.window.width
|
||||
height: model.window.height
|
||||
color: "black"
|
||||
radius: 6
|
||||
visible: {
|
||||
|
||||
//if(!model.window.minimized) console.log(JSON.stringify(model.window));
|
||||
return !model.window.minimized && model.window.managed && ignoreWindow(model.window)
|
||||
}
|
||||
|
||||
//visible: { if(!model.window.minimized && model.window.caption !== "") console.log(model.window.stackingOrder + " " + model.window.active + " " + model.window.caption); return !model.window.minimized && model.window.managed; }
|
||||
//visible: { if(!model.window.minimized && model.window.caption !== "") console.log(JSON.stringify(model.window)); return !model.window.minimized && model.window.managed }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Paint reflection
|
||||
OpacityMask
|
||||
{
|
||||
anchors.fill: reflection
|
||||
source: reflection
|
||||
maskSource: mask
|
||||
}
|
||||
|
||||
|
||||
// Paint frames
|
||||
Repeater
|
||||
{
|
||||
model: windowmodel
|
||||
delegate: Item
|
||||
{
|
||||
id: peekwindow
|
||||
|
||||
// Assume the topmost window is the active window
|
||||
property bool clientActive: model.window.stackingOrder == windowmodel.rowCount() - 1
|
||||
// Assume window is maximized under these conditions
|
||||
property bool clientMaximized: model.window.x == 0 && model.window.y == 0 && model.window.width == Screen.width && model.window.height >= Screen.height / 2
|
||||
|
||||
anchors.fill: parent
|
||||
visible: !model.window.minimized && !clientMaximized && model.window.managed && ignoreWindow(model.window)
|
||||
//&& !(model.window.dialog && !model.window.normalWindow && model.window.resourceClass == "plasmashell" && model.window.caption == "plasmashell <2>")
|
||||
z: model.window.stackingOrder
|
||||
|
||||
Item {
|
||||
id: glowCorners
|
||||
anchors.fill: frame
|
||||
Image
|
||||
{
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
source: StandardPaths.writableLocation(StandardPaths.GenericDataLocation) + "/smod/" + (peekwindow.clientActive ? "framecornereffect.png" : "framecornereffect-unfocus.png")
|
||||
smooth: true
|
||||
}
|
||||
|
||||
Image
|
||||
{
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
source: StandardPaths.writableLocation(StandardPaths.GenericDataLocation) + "/smod/" + (peekwindow.clientActive ? "framecornereffect.png" : "framecornereffect-unfocus.png")
|
||||
smooth: true
|
||||
mirror: true
|
||||
}
|
||||
|
||||
layer.enabled: true
|
||||
layer.effect: OpacityMask {
|
||||
maskSource: Rectangle {
|
||||
x: frame.x
|
||||
y: frame.y
|
||||
width: frame.width
|
||||
height: frame.height
|
||||
radius: 6
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
KSvg.FrameSvgItem
|
||||
{
|
||||
id: frameshadow
|
||||
|
||||
property int actualMarginLeft: frameshadow.margins.left - 16
|
||||
property int actualMarginRight: frameshadow.margins.right - 9
|
||||
property int actualMarginTop: frameshadow.margins.top - 17
|
||||
property int actualMarginBottom: frameshadow.margins.bottom - 17
|
||||
|
||||
imagePath: Qt.resolvedUrl("res/peek-frame.svgz")
|
||||
prefix: peekwindow.clientActive ? "shadow" : "shadowunfocus"
|
||||
|
||||
x: frame.x - frameshadow.actualMarginLeft
|
||||
y: frame.y - frameshadow.actualMarginTop
|
||||
width: frame.width + frameshadow.actualMarginLeft + frameshadow.actualMarginRight
|
||||
height: frame.height + frameshadow.actualMarginTop + frameshadow.actualMarginBottom
|
||||
}
|
||||
|
||||
KSvg.FrameSvgItem
|
||||
{
|
||||
id: frame
|
||||
|
||||
imagePath: Qt.resolvedUrl("res/peek-frame.svgz")
|
||||
prefix: peekwindow.clientActive ? "" : "unfocus"
|
||||
|
||||
x: model.window.x
|
||||
y: model.window.y
|
||||
width: model.window.width
|
||||
height: model.window.height
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
BIN
kwin/scripts/smodpeekscript/contents/ui/reflections.png
Normal file
BIN
kwin/scripts/smodpeekscript/contents/ui/reflections.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
BIN
kwin/scripts/smodpeekscript/contents/ui/res/peek-frame.svgz
Normal file
BIN
kwin/scripts/smodpeekscript/contents/ui/res/peek-frame.svgz
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue