mirror of
https://github.com/belsabbagh/dotfiles.git
synced 2026-04-11 17:47:09 +00:00
125 lines
3.1 KiB
QML
125 lines
3.1 KiB
QML
pragma ComponentBehavior: Bound
|
|
|
|
import qs.components.containers
|
|
import qs.components.misc
|
|
import Quickshell
|
|
import Quickshell.Wayland
|
|
import Quickshell.Io
|
|
|
|
Scope {
|
|
LazyLoader {
|
|
id: root
|
|
|
|
property bool freeze
|
|
property bool closing
|
|
property bool clipboardOnly
|
|
|
|
Variants {
|
|
model: Quickshell.screens
|
|
|
|
StyledWindow {
|
|
id: win
|
|
|
|
required property ShellScreen modelData
|
|
|
|
screen: modelData
|
|
name: "area-picker"
|
|
WlrLayershell.exclusionMode: ExclusionMode.Ignore
|
|
WlrLayershell.layer: WlrLayer.Overlay
|
|
WlrLayershell.keyboardFocus: root.closing ? WlrKeyboardFocus.None : WlrKeyboardFocus.Exclusive
|
|
mask: root.closing ? empty : null
|
|
|
|
anchors.top: true
|
|
anchors.bottom: true
|
|
anchors.left: true
|
|
anchors.right: true
|
|
|
|
Region {
|
|
id: empty
|
|
}
|
|
|
|
Picker {
|
|
loader: root
|
|
screen: win.modelData
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
IpcHandler {
|
|
target: "picker"
|
|
|
|
function open(): void {
|
|
root.freeze = false;
|
|
root.closing = false;
|
|
root.clipboardOnly = false;
|
|
root.activeAsync = true;
|
|
}
|
|
|
|
function openFreeze(): void {
|
|
root.freeze = true;
|
|
root.closing = false;
|
|
root.clipboardOnly = false;
|
|
root.activeAsync = true;
|
|
}
|
|
|
|
function openClip(): void {
|
|
root.freeze = false;
|
|
root.closing = false;
|
|
root.clipboardOnly = true;
|
|
root.activeAsync = true;
|
|
}
|
|
|
|
function openFreezeClip(): void {
|
|
root.freeze = true;
|
|
root.closing = false;
|
|
root.clipboardOnly = true;
|
|
root.activeAsync = true;
|
|
}
|
|
}
|
|
|
|
CustomShortcut {
|
|
name: "screenshot"
|
|
description: "Open screenshot tool"
|
|
onPressed: {
|
|
root.freeze = false;
|
|
root.closing = false;
|
|
root.clipboardOnly = false;
|
|
root.activeAsync = true;
|
|
}
|
|
}
|
|
|
|
CustomShortcut {
|
|
name: "screenshotFreeze"
|
|
description: "Open screenshot tool (freeze mode)"
|
|
onPressed: {
|
|
root.freeze = true;
|
|
root.closing = false;
|
|
root.clipboardOnly = false;
|
|
root.activeAsync = true;
|
|
}
|
|
}
|
|
|
|
CustomShortcut {
|
|
name: "screenshotClip"
|
|
description: "Open screenshot tool (clipboard)"
|
|
onPressed: {
|
|
root.freeze = false;
|
|
root.closing = false;
|
|
root.clipboardOnly = true;
|
|
root.activeAsync = true;
|
|
}
|
|
}
|
|
|
|
CustomShortcut {
|
|
name: "screenshotFreezeClip"
|
|
description: "Open screenshot tool (freeze mode, clipboard)"
|
|
onPressed: {
|
|
root.freeze = true;
|
|
root.closing = false;
|
|
root.clipboardOnly = true;
|
|
root.activeAsync = true;
|
|
}
|
|
}
|
|
}
|