Merge branch 'end-4:main' into power-profile-toggle

This commit is contained in:
Ninjdai
2025-07-16 10:28:48 +02:00
committed by GitHub
12 changed files with 171 additions and 189 deletions
+1 -1
View File
@@ -58,7 +58,7 @@ label { # Date
text = cmd[update:5000] date +"%A, %B %d" text = cmd[update:5000] date +"%A, %B %d"
color = $text_color color = $text_color
font_size = 17 font_size = 17
font_family = $font_family font_family = $font_family_clock
position = 0, 240 position = 0, 240
halign = center halign = center
@@ -2,8 +2,8 @@ $text_color = rgba({{colors.primary_fixed.default.hex_stripped}}FF)
$entry_background_color = rgba({{colors.on_primary_fixed.default.hex_stripped}}11) $entry_background_color = rgba({{colors.on_primary_fixed.default.hex_stripped}}11)
$entry_border_color = rgba({{colors.outline.default.hex_stripped}}55) $entry_border_color = rgba({{colors.outline.default.hex_stripped}}55)
$entry_color = rgba({{colors.primary_fixed.default.hex_stripped}}FF) $entry_color = rgba({{colors.primary_fixed.default.hex_stripped}}FF)
$font_family = Rubik Light $font_family = Rubik
$font_family_clock = Rubik Light $font_family_clock = Space Grotesk
$font_material_symbols = Material Symbols Rounded $font_material_symbols = Material Symbols Rounded
background { background {
@@ -58,7 +58,7 @@ label { # Date
text = cmd[update:5000] date +"%A, %B %d" text = cmd[update:5000] date +"%A, %B %d"
color = $text_color color = $text_color
font_size = 17 font_size = 17
font_family = $font_family font_family = $font_family_clock
position = 0, 240 position = 0, 240
halign = center halign = center
@@ -145,7 +145,9 @@ Scope {
const lower = Math.floor(bgRoot.firstWorkspaceId / chunkSize) * chunkSize; const lower = Math.floor(bgRoot.firstWorkspaceId / chunkSize) * chunkSize;
const upper = Math.ceil(bgRoot.lastWorkspaceId / chunkSize) * chunkSize; const upper = Math.ceil(bgRoot.lastWorkspaceId / chunkSize) * chunkSize;
const range = upper - lower; const range = upper - lower;
return (bgRoot.monitor.activeWorkspace.id - lower) / range; return (bgRoot.monitor.activeWorkspace.id - lower) / range
+ (0.15 * GlobalStates.sidebarRightOpen * Config.options.background.parallax.enableSidebar)
- (0.15 * GlobalStates.sidebarLeftOpen * Config.options.background.parallax.enableSidebar)
} }
property real effectiveValue: Math.max(0, Math.min(1, value)) property real effectiveValue: Math.max(0, Math.min(1, value))
x: -(bgRoot.movableXSpace) - (effectiveValue - 0.5) * 2 * bgRoot.movableXSpace x: -(bgRoot.movableXSpace) - (effectiveValue - 0.5) * 2 * bgRoot.movableXSpace
@@ -191,6 +193,7 @@ Scope {
Layout.fillWidth: true Layout.fillWidth: true
horizontalAlignment: bgRoot.textHorizontalAlignment horizontalAlignment: bgRoot.textHorizontalAlignment
font { font {
family: Appearance.font.family.expressive
pixelSize: 85 pixelSize: 85
weight: Font.Medium weight: Font.Medium
} }
@@ -203,6 +206,7 @@ Scope {
Layout.fillWidth: true Layout.fillWidth: true
horizontalAlignment: bgRoot.textHorizontalAlignment horizontalAlignment: bgRoot.textHorizontalAlignment
font { font {
family: Appearance.font.family.expressive
pixelSize: 20 pixelSize: 20
weight: Font.Medium weight: Font.Medium
} }
@@ -168,6 +168,7 @@ Singleton {
property string iconNerd: "SpaceMono NF" property string iconNerd: "SpaceMono NF"
property string monospace: "JetBrains Mono NF" property string monospace: "JetBrains Mono NF"
property string reading: "Readex Pro" property string reading: "Readex Pro"
property string expressive: "Space Grotesk"
} }
property QtObject pixelSize: QtObject { property QtObject pixelSize: QtObject {
property int smallest: 10 property int smallest: 10
@@ -100,8 +100,9 @@ Singleton {
property real clockY: -500 property real clockY: -500
property string wallpaperPath: Quickshell.configPath("assets/images/default_wallpaper.png") property string wallpaperPath: Quickshell.configPath("assets/images/default_wallpaper.png")
property JsonObject parallax: JsonObject { property JsonObject parallax: JsonObject {
property real workspaceZoom: 1.07 // Relative to your screen, not wallpaper size
property bool enableWorkspace: true property bool enableWorkspace: true
property real workspaceZoom: 1.07 // Relative to your screen, not wallpaper size
property bool enableSidebar: true
} }
} }
+101 -104
View File
@@ -19,131 +19,128 @@ Scope { // Scope
Variants { // For each monitor Variants { // For each monitor
model: Quickshell.screens model: Quickshell.screens
LazyLoader { PanelWindow { // Window
id: dockLoader
required property var modelData required property var modelData
activeAsync: Config.options?.dock.hoverToReveal || (!ToplevelManager.activeToplevel?.activated) id: dockRoot
screen: modelData
component: PanelWindow { // Window property bool reveal: root.pinned
id: dockRoot || (Config.options?.dock.hoverToReveal && dockMouseArea.containsMouse)
screen: dockLoader.modelData || dockApps.requestDockShow
|| (!ToplevelManager.activeToplevel?.activated)
property bool reveal: root.pinned anchors {
|| (Config.options?.dock.hoverToReveal && dockMouseArea.containsMouse) bottom: true
|| dockApps.requestDockShow left: true
|| (!ToplevelManager.activeToplevel?.activated) right: true
}
exclusiveZone: root.pinned ? implicitHeight
- (Appearance.sizes.hyprlandGapsOut)
- (Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut) : 0
implicitWidth: dockBackground.implicitWidth
WlrLayershell.namespace: "quickshell:dock"
color: "transparent"
implicitHeight: (Config.options?.dock.height ?? 70) + Appearance.sizes.elevationMargin + Appearance.sizes.hyprlandGapsOut
mask: Region {
item: dockMouseArea
}
MouseArea {
id: dockMouseArea
height: parent.height
anchors { anchors {
bottom: true top: parent.top
left: true topMargin: dockRoot.reveal ? 0 :
right: true
}
exclusiveZone: root.pinned ? implicitHeight
- (Appearance.sizes.hyprlandGapsOut)
- (Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut) : 0
implicitWidth: dockBackground.implicitWidth
WlrLayershell.namespace: "quickshell:dock"
color: "transparent"
implicitHeight: (Config.options?.dock.height ?? 70) + Appearance.sizes.elevationMargin + Appearance.sizes.hyprlandGapsOut
mask: Region {
item: dockMouseArea
}
MouseArea {
id: dockMouseArea
anchors.top: parent.top
height: parent.height
anchors.topMargin: dockRoot.reveal ? 0 :
Config.options?.dock.hoverToReveal ? (dockRoot.implicitHeight - Config.options.dock.hoverRegionHeight) : Config.options?.dock.hoverToReveal ? (dockRoot.implicitHeight - Config.options.dock.hoverRegionHeight) :
(dockRoot.implicitHeight + 1) (dockRoot.implicitHeight + 1)
horizontalCenter: parent.horizontalCenter
}
implicitWidth: dockHoverRegion.implicitWidth + Appearance.sizes.elevationMargin * 2
hoverEnabled: true
anchors.left: parent.left Behavior on anchors.topMargin {
anchors.right: parent.right animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this)
hoverEnabled: true }
Behavior on anchors.topMargin { Item {
animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this) id: dockHoverRegion
} anchors.fill: parent
implicitWidth: dockBackground.implicitWidth
Item { Item { // Wrapper for the dock background
id: dockHoverRegion id: dockBackground
anchors.fill: parent anchors {
top: parent.top
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
}
Item { // Wrapper for the dock background implicitWidth: dockRow.implicitWidth + 5 * 2
id: dockBackground height: parent.height - Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut
anchors {
top: parent.top
bottom: parent.bottom
horizontalCenter: parent.horizontalCenter
}
implicitWidth: dockRow.implicitWidth + 5 * 2 StyledRectangularShadow {
height: parent.height - Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut target: dockVisualBackground
}
Rectangle { // The real rectangle that is visible
id: dockVisualBackground
property real margin: Appearance.sizes.elevationMargin
anchors.fill: parent
anchors.topMargin: Appearance.sizes.elevationMargin
anchors.bottomMargin: Appearance.sizes.hyprlandGapsOut
color: Appearance.colors.colLayer0
border.width: 1
border.color: Appearance.m3colors.m3outlineVariant
radius: Appearance.rounding.large
}
StyledRectangularShadow { RowLayout {
target: dockVisualBackground id: dockRow
} anchors.top: parent.top
Rectangle { // The real rectangle that is visible anchors.bottom: parent.bottom
id: dockVisualBackground anchors.horizontalCenter: parent.horizontalCenter
property real margin: Appearance.sizes.elevationMargin spacing: 3
anchors.fill: parent property real padding: 5
anchors.topMargin: Appearance.sizes.elevationMargin
anchors.bottomMargin: Appearance.sizes.hyprlandGapsOut
color: Appearance.colors.colLayer0
border.width: 1
border.color: Appearance.m3colors.m3outlineVariant
radius: Appearance.rounding.large
}
RowLayout { VerticalButtonGroup {
id: dockRow Layout.topMargin: Appearance.sizes.hyprlandGapsOut // why does this work
anchors.top: parent.top GroupButton { // Pin button
anchors.bottom: parent.bottom baseWidth: 35
anchors.horizontalCenter: parent.horizontalCenter baseHeight: 35
spacing: 3 clickedWidth: baseWidth
property real padding: 5 clickedHeight: baseHeight + 20
buttonRadius: Appearance.rounding.normal
VerticalButtonGroup { toggled: root.pinned
Layout.topMargin: Appearance.sizes.hyprlandGapsOut // why does this work onClicked: root.pinned = !root.pinned
GroupButton { // Pin button contentItem: MaterialSymbol {
baseWidth: 35 text: "keep"
baseHeight: 35 horizontalAlignment: Text.AlignHCenter
clickedWidth: baseWidth iconSize: Appearance.font.pixelSize.larger
clickedHeight: baseHeight + 20 color: root.pinned ? Appearance.m3colors.m3onPrimary : Appearance.colors.colOnLayer0
buttonRadius: Appearance.rounding.normal
toggled: root.pinned
onClicked: root.pinned = !root.pinned
contentItem: MaterialSymbol {
text: "keep"
horizontalAlignment: Text.AlignHCenter
iconSize: Appearance.font.pixelSize.larger
color: root.pinned ? Appearance.m3colors.m3onPrimary : Appearance.colors.colOnLayer0
}
} }
} }
DockSeparator {} }
DockApps { id: dockApps; } DockSeparator {}
DockSeparator {} DockApps { id: dockApps; }
DockButton { DockSeparator {}
Layout.fillHeight: true DockButton {
onClicked: Hyprland.dispatch("global quickshell:overviewToggle") Layout.fillHeight: true
contentItem: MaterialSymbol { onClicked: Hyprland.dispatch("global quickshell:overviewToggle")
anchors.fill: parent contentItem: MaterialSymbol {
horizontalAlignment: Text.AlignHCenter anchors.fill: parent
font.pixelSize: parent.width / 2 horizontalAlignment: Text.AlignHCenter
text: "apps" font.pixelSize: parent.width / 2
color: Appearance.colors.colOnLayer0 text: "apps"
} color: Appearance.colors.colOnLayer0
} }
} }
} }
} }
} }
} }
} }
} }
@@ -37,11 +37,8 @@ Scope {
// item: GlobalStates.overviewOpen ? columnLayout : null // item: GlobalStates.overviewOpen ? columnLayout : null
// } // }
anchors { anchors {
top: true top: true
left: true
right: true
bottom: true bottom: true
} }
@@ -85,6 +82,7 @@ Scope {
function setSearchingText(text) { function setSearchingText(text) {
searchWidget.setSearchingText(text); searchWidget.setSearchingText(text);
searchWidget.focusFirstItemIfNeeded();
} }
ColumnLayout { ColumnLayout {
@@ -396,6 +396,8 @@ Item { // Wrapper
} }
} }
onModelChanged: root.focusFirstItemIfNeeded()
delegate: SearchItem { delegate: SearchItem {
// The selectable item for each search result // The selectable item for each search result
required property var modelData required property var modelData
@@ -11,77 +11,56 @@ Scope {
id: screenCorners id: screenCorners
readonly property Toplevel activeWindow: ToplevelManager.activeToplevel readonly property Toplevel activeWindow: ToplevelManager.activeToplevel
component CornerPanelWindow: PanelWindow {
id: cornerPanelWindow
visible: (Config.options.appearance.fakeScreenRounding === 1 || (Config.options.appearance.fakeScreenRounding === 2 && !activeWindow?.fullscreen))
property var corner
exclusionMode: ExclusionMode.Ignore
mask: Region {
item: null
}
WlrLayershell.namespace: "quickshell:screenCorners"
WlrLayershell.layer: WlrLayer.Overlay
color: "transparent"
anchors {
top: cornerPanelWindow.corner === RoundCorner.CornerEnum.TopLeft || cornerPanelWindow.corner === RoundCorner.CornerEnum.TopRight
left: cornerPanelWindow.corner === RoundCorner.CornerEnum.TopLeft || cornerPanelWindow.corner === RoundCorner.CornerEnum.BottomLeft
bottom: cornerPanelWindow.corner === RoundCorner.CornerEnum.BottomLeft || cornerPanelWindow.corner === RoundCorner.CornerEnum.BottomRight
right: cornerPanelWindow.corner === RoundCorner.CornerEnum.TopRight || cornerPanelWindow.corner === RoundCorner.CornerEnum.BottomRight
}
implicitWidth: cornerWidget.implicitWidth
implicitHeight: cornerWidget.implicitHeight
RoundCorner {
id: cornerWidget
size: Appearance.rounding.screenRounding
corner: cornerPanelWindow.corner
}
}
Variants { Variants {
model: Quickshell.screens model: Quickshell.screens
PanelWindow { Scope {
visible: (Config.options.appearance.fakeScreenRounding === 1 required property var modelData
|| (Config.options.appearance.fakeScreenRounding === 2 CornerPanelWindow {
&& !activeWindow?.fullscreen)) screen: modelData
property var modelData
screen: modelData
exclusionMode: ExclusionMode.Ignore
mask: Region {
item: null
}
// HyprlandWindow.visibleMask: Region {
// Region {
// item: topLeftCorner
// }
// Region {
// item: topRightCorner
// }
// Region {
// item: bottomLeftCorner
// }
// Region {
// item: bottomRightCorner
// }
// }
WlrLayershell.namespace: "quickshell:screenCorners"
WlrLayershell.layer: WlrLayer.Overlay
color: "transparent"
anchors {
top: true
left: true
right: true
bottom: true
}
RoundCorner {
id: topLeftCorner
anchors.top: parent.top
anchors.left: parent.left
size: Appearance.rounding.screenRounding
corner: RoundCorner.CornerEnum.TopLeft corner: RoundCorner.CornerEnum.TopLeft
} }
RoundCorner { CornerPanelWindow {
id: topRightCorner screen: modelData
anchors.top: parent.top
anchors.right: parent.right
size: Appearance.rounding.screenRounding
corner: RoundCorner.CornerEnum.TopRight corner: RoundCorner.CornerEnum.TopRight
} }
RoundCorner { CornerPanelWindow {
id: bottomLeftCorner screen: modelData
anchors.bottom: parent.bottom
anchors.left: parent.left
size: Appearance.rounding.screenRounding
corner: RoundCorner.CornerEnum.BottomLeft corner: RoundCorner.CornerEnum.BottomLeft
} }
RoundCorner { CornerPanelWindow {
id: bottomRightCorner screen: modelData
anchors.bottom: parent.bottom
anchors.right: parent.right
size: Appearance.rounding.screenRounding
corner: RoundCorner.CornerEnum.BottomRight corner: RoundCorner.CornerEnum.BottomRight
} }
} }
} }
} }
@@ -76,7 +76,6 @@ Scope {
StyledText { // Small instruction StyledText { // Small instruction
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
font.family: Appearance.font.family.title
font.pixelSize: Appearance.font.pixelSize.normal font.pixelSize: Appearance.font.pixelSize.normal
text: qsTr("Arrow keys to navigate, Enter to select\nEsc or click anywhere to cancel") text: qsTr("Arrow keys to navigate, Enter to select\nEsc or click anywhere to cancel")
} }
@@ -41,7 +41,7 @@ Singleton {
Process { Process {
id: getDefaultKeybinds id: getDefaultKeybinds
running: true running: true
command: [root.keybindParserPath, "--path", root.defaultKeybindConfigPath,] command: [root.keybindParserPath, "--path", root.defaultKeybindConfigPath]
stdout: SplitParser { stdout: SplitParser {
onRead: data => { onRead: data => {
@@ -15,6 +15,7 @@ depends=(
kde-material-you-colors kde-material-you-colors
kitty kitty
matugen-bin matugen-bin
otf-space-grotesk
starship starship
ttf-gabarito-git ttf-gabarito-git
ttf-jetbrains-mono-nerd ttf-jetbrains-mono-nerd