add logic to control hyprland gaps and rounding based on screencorners and padding

This commit is contained in:
lucy 2026-01-04 12:43:20 +01:00
parent f1a947e02e
commit 6a038fc7dd
4 changed files with 55 additions and 30 deletions

View File

@ -5,25 +5,25 @@ import Quickshell
Singleton {
id: customColors
// Core Backgrounds
readonly property color background: "#1A1B26"
readonly property color foreground: "#C0CAF5"
readonly property color cursor: "#C0CAF5"
readonly property color background: "#1D2021"
readonly property color foreground: "#D5C4A1"
readonly property color cursor: "#D5C4A1"
// The 16 Colors of the Apocalypse
readonly property color color0: "#414868"
readonly property color color1: "#F7768E"
readonly property color color2: "#9ECE6A"
readonly property color color3: "#E0AF68"
readonly property color color4: "#7AA2F7"
readonly property color color5: "#BB9AF7"
readonly property color color6: "#7DCFFF"
readonly property color color7: "#A9B1D6"
readonly property color color8: "#414868"
readonly property color color9: "#F7768E"
readonly property color color10: "#9ECE6A"
readonly property color color11: "#E0AF68"
readonly property color color12: "#7AA2F7"
readonly property color color13: "#BB9AF7"
readonly property color color14: "#7DCFFF"
readonly property color color15: "#C0CAF5"
readonly property color color0: "#1D2021"
readonly property color color1: "#FB4934"
readonly property color color2: "#B8BB26"
readonly property color color3: "#FABD2F"
readonly property color color4: "#83A598"
readonly property color color5: "#D3869B"
readonly property color color6: "#8EC07C"
readonly property color color7: "#D5C4A1"
readonly property color color8: "#665C54"
readonly property color color9: "#FB4934"
readonly property color color10: "#B8BB26"
readonly property color color11: "#FABD2F"
readonly property color color12: "#83A598"
readonly property color color13: "#D3869B"
readonly property color color14: "#8EC07C"
readonly property color color15: "#FBF1C7"
}

View File

@ -1,8 +1,8 @@
pragma ComponentBehavior: Bound
pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Io
import Quickshell
FileView {
id: settingsView
@ -16,13 +16,13 @@ FileView {
property string currentWall: ""
property string wallDir: "/home/lucy/.walls/"
property string font: "CommitMono Nerd Font Propo"
property real fontSize: 14
onCurrentWallChanged: settingsView.writeAdapter()
onWallDirChanged: settingsView.writeAdapter()
onFontChanged: settingsView.writeAdapter()
onFontSizeChanged: settingsView.writeAdapter()
property real fontSize: 12
}
onCurrentWallChanged: writeAdapter()
onWallDirChanged: writeAdapter()
onFontChanged: writeAdapter()
onFontSizeChanged: writeAdapter()
property alias currentWall: jsonAdapter.currentWall
property alias font: jsonAdapter.font
property alias fontSize: jsonAdapter.fontSize

View File

@ -1,6 +1,7 @@
import QtQuick
import Quickshell
import Quickshell.Wayland
import Quickshell.Io
import "../../"
import "."
@ -8,7 +9,29 @@ WlrLayershell {
id: overlayRoot
required property var modelData
property var padding: 5
property var rounding: 20
onPaddingChanged: {
hyprGaps.exec(hyprGaps.command);
console.log(hyprGaps.command);
}
Process {
id: hyprGaps
running: true
property bool isZero: overlayRoot.padding === 0
property var top: isZero ? 10 : overlayRoot.padding * 2
property var sides: overlayRoot.padding + top
property var gaps: top + "," + sides + "," + sides + "," + sides
command: ["hyprctl", "keyword", "general:gaps_out", gaps]
onStarted: console.log("set gaps to ", gaps)
}
Process {
id: hyprRounding
property var rounding: overlayRoot.rounding - 5
running: true
command: ["hyprctl", "keyword", "decoration:rounding", rounding]
onStarted: console.log("set rounding to ", overlayRoot.rounding)
}
// 1. Fill the entire screen
anchors {
top: true
@ -35,7 +58,8 @@ WlrLayershell {
}
ScreenCorners {
// Adjust these to match your screen's aesthetic
cornerRadius: 20
cornerRadius: overlayRoot.rounding
margin: overlayRoot.padding
cornerColor: Colors.background
}
}

View File

@ -19,6 +19,7 @@ Item {
// Enable/Disable toggle
property bool shouldShow: true
property real margin
// ---------------------------------------------------------
@ -42,9 +43,9 @@ Item {
// Margins (Leave 0 unless your bar overlaps)
readonly property real topMargin: 0
readonly property real bottomMargin: 5
readonly property real leftMargin: 5
readonly property real rightMargin: 5
readonly property real bottomMargin: root.margin
readonly property real leftMargin: root.margin
readonly property real rightMargin: root.margin
readonly property real screenWidth: cornersShape.width
readonly property real screenHeight: cornersShape.height