mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-16 13:59:58 -05:00
42 lines
1.5 KiB
QML
42 lines
1.5 KiB
QML
pragma ComponentBehavior: Bound
|
|
import qs
|
|
import qs.services
|
|
import qs.modules.common
|
|
import qs.modules.common.functions
|
|
import qs.modules.common.panels.lock
|
|
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Hyprland
|
|
|
|
LockScreen {
|
|
id: root
|
|
|
|
lockSurface: LockSurface {
|
|
context: root.context
|
|
}
|
|
|
|
// Push everything down
|
|
Variants {
|
|
model: Quickshell.screens
|
|
delegate: Scope {
|
|
required property ShellScreen modelData
|
|
property bool shouldPush: GlobalStates.screenLocked
|
|
property string targetMonitorName: modelData.name
|
|
property int verticalMovementDistance: modelData.height
|
|
property int horizontalSqueeze: modelData.width * 0.2
|
|
property int lastWorkspaceId
|
|
onShouldPushChanged: {
|
|
if (shouldPush) {
|
|
// Save workspace
|
|
print(targetMonitorName)
|
|
lastWorkspaceId = HyprlandData.monitors.find(m => m.name == targetMonitorName).activeWorkspace.id
|
|
// Set anim to vertical and move to very very big workspace for a sliding up effect
|
|
Quickshell.execDetached(["hyprctl", "--batch", `keyword animation workspaces,1,7,menu_decel,slidevert; dispatch workspace ${2147483647 - lastWorkspaceId}`]);
|
|
} else {
|
|
Quickshell.execDetached(["hyprctl", "--batch", `dispatch workspace ${lastWorkspaceId}; reload`]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|