mirror of
https://github.com/kossLAN/dots.git
synced 2025-11-04 22:49:50 -05:00
refactor: make screenshots even less bad, and copy to the clipboard
This commit is contained in:
parent
62ed66e60a
commit
29658fa910
4 changed files with 52 additions and 7 deletions
|
|
@ -5,6 +5,7 @@ import Quickshell
|
|||
import Quickshell.Io
|
||||
import Quickshell.Wayland
|
||||
import QtQuick
|
||||
import qs
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
|
@ -53,10 +54,30 @@ Singleton {
|
|||
const height = Math.floor(selection.height);
|
||||
|
||||
let position = `${x},${y} ${width}x${height}`;
|
||||
let path = "/home/koss/Pictures/screenshot.png";
|
||||
|
||||
// i hate javascript
|
||||
let date = new Date();
|
||||
let year = date.getFullYear();
|
||||
let month = date.getMonth();
|
||||
let day = date.getDay();
|
||||
let dateString = `${year}-${month}-${day}`;
|
||||
|
||||
let hour = date.getHours();
|
||||
let minutes = date.getMinutes();
|
||||
let seconds = date.getSeconds();
|
||||
let timeString = `${hour}:${minutes}:${seconds}`;
|
||||
|
||||
let fileName = `screenshot-${dateString}-${timeString}.png`
|
||||
const path = `${ShellSettings.settings.screenshotPath}/${fileName}`;
|
||||
|
||||
console.log(`Screenshot saved to ${path}`);
|
||||
|
||||
// take a screenshot with grim, probably a better way to get this path...
|
||||
let scriptUrl = Qt.resolvedUrl("root:scripts/screenshot.sh").toLocaleString();
|
||||
let scriptPath = scriptUrl.replace(/^(file:\/{2})/, "");
|
||||
|
||||
Quickshell.execDetached({
|
||||
command: ["grim", "-g", position, path]
|
||||
command: ["sh", scriptPath, position, path]
|
||||
});
|
||||
|
||||
root.windowOpen = false;
|
||||
|
|
|
|||
|
|
@ -9,10 +9,17 @@ Item {
|
|||
property color overlayColor: "#80000000"
|
||||
property rect selectionRect: Qt.rect(0, 0, 0, 0)
|
||||
property point startPosition: Qt.point(0, 0)
|
||||
property real borderSize: 2
|
||||
|
||||
signal areaSelected(rect selection)
|
||||
|
||||
// only send signal when selection rectangle has finished
|
||||
onVisibleChanged: areaSelected(selectionRect)
|
||||
|
||||
// only send signal when selection rectangle has finished
|
||||
onVisibleChanged: {
|
||||
if (!visible)
|
||||
selectionRect.width -= borderSize;
|
||||
selectionRect.height -= borderSize;
|
||||
areaSelected(selectionRect);
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: selectionArea
|
||||
|
|
@ -94,7 +101,7 @@ Item {
|
|||
id: rectangle
|
||||
color: "transparent"
|
||||
border.color: ShellSettings.colors.active_translucent
|
||||
border.width: 2
|
||||
border.width: root.borderSize
|
||||
x: 0
|
||||
y: 0
|
||||
width: 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue