Add magnifiers for thin macro (mcsr)

This commit is contained in:
2026-05-16 00:35:13 -07:00
parent 367f00e1f1
commit 6a270c0450
3 changed files with 141 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ PanelWindow {
left: true left: true
bottom: true bottom: true
} }
WlrLayershell.namespace: "mcsr"
implicitHeight: 540 implicitHeight: 540
implicitWidth: 540 implicitWidth: 540
color: "transparent" color: "transparent"
@@ -42,6 +43,8 @@ PanelWindow {
radius: 12 radius: 12
Item { Item {
anchors.fill: parent anchors.fill: parent
layer.enabled: true
layer.smooth: false
ScreencopyView { ScreencopyView {
width: Quickshell.screens[0].width width: Quickshell.screens[0].width
height: Quickshell.screens[0].height height: Quickshell.screens[0].height

137
Thin.qml Normal file
View File

@@ -0,0 +1,137 @@
import Quickshell
import Quickshell.Wayland
import Quickshell.Widgets
import Quickshell.Io
import QtQuick
import QtQuick.Effects
Item {
id: thin
property bool open: false
property real pos: 0
PropertyAnimation on pos {
id: entry
running: false
to: 1
duration: 400
easing.type: Easing.OutQuint
}
PropertyAnimation on pos {
id: exit
running: false
to: 0
duration: 350
easing.type: Easing.OutQuint
onFinished: thin.open = false
}
IpcHandler {
target: "thin"
function open() {
thin.open = true
exit.stop()
entry.start()
}
function close() {
entry.stop()
exit.start()
}
}
PanelWindow {
visible: thin.open
anchors {
right: true
bottom: true
}
implicitHeight: 430
implicitWidth: 1080
color: "transparent"
WlrLayershell.layer: WlrLayer.Overlay
RectangularShadow {
anchors.fill: pie_wrapper
radius: pie_wrapper.radius
blur: 10
spread: 2
}
ClippingRectangle {
id: pie_wrapper
anchors {
left: parent.left
top: parent.top
margins: 12
leftMargin: 1080 * (1 - thin.pos) + 12
}
width: 210
height: 210
color: "white"
radius: 12
Item {
anchors.fill: parent
layer.enabled: true
layer.smooth: false
ScreencopyView {
width: Quickshell.screens[0].width
height: Quickshell.screens[0].height
live: true
captureSource: Quickshell.screens[0]
x: -1386
y: -1208
}
transform: Scale {
origin: {x: 0; y: 0}
xScale: 6
yScale: xScale
}
}
}
}
PanelWindow {
visible: thin.open
anchors {
top: true
left: true
}
implicitWidth: 1080
implicitHeight: 120
color: "transparent"
WlrLayershell.layer: WlrLayer.Overlay
RectangularShadow {
anchors.fill: e_wrapper
radius: e_wrapper.radius
blur: 10
spread: 2
}
ClippingRectangle {
id: e_wrapper
anchors {
right: parent.right
bottom: parent.bottom
margins: 12
rightMargin: 1080 * (1 - thin.pos) + 12
}
width: 240
height: 48
color: "white"
radius: 12
Item {
anchors.fill: parent
ScreencopyView {
layer.enabled: true
layer.smooth: false
width: Quickshell.screens[0].width
height: Quickshell.screens[0].height
live: true
captureSource: Quickshell.screens[0]
x: -1080
y: -47
}
transform: Scale {
origin: {x: 0; y: 0}
xScale: 5
yScale: xScale
}
}
}
}
}

View File

@@ -12,6 +12,7 @@ ShellRoot {
Shell.Wall {} Shell.Wall {}
Shell.TopBar {id: bar} Shell.TopBar {id: bar}
Shell.Boateye {} Shell.Boateye {}
Shell.Thin {}
Shell.Lock {id: lock} Shell.Lock {id: lock}
IpcHandler { IpcHandler {
target: "lock" target: "lock"