diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf index 1e936ce5..ea1d8f0f 100644 --- a/.config/hypr/hyprlock.conf +++ b/.config/hypr/hyprlock.conf @@ -58,7 +58,7 @@ label { # Date text = cmd[update:5000] date +"%A, %B %d" color = $text_color font_size = 17 - font_family = $font_family + font_family = $font_family_clock position = 0, 240 halign = center diff --git a/.config/matugen/templates/hyprland/hyprlock.conf b/.config/matugen/templates/hyprland/hyprlock.conf index eab16719..d557f706 100644 --- a/.config/matugen/templates/hyprland/hyprlock.conf +++ b/.config/matugen/templates/hyprland/hyprlock.conf @@ -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_border_color = rgba({{colors.outline.default.hex_stripped}}55) $entry_color = rgba({{colors.primary_fixed.default.hex_stripped}}FF) -$font_family = Rubik Light -$font_family_clock = Rubik Light +$font_family = Rubik +$font_family_clock = Space Grotesk $font_material_symbols = Material Symbols Rounded background { @@ -58,7 +58,7 @@ label { # Date text = cmd[update:5000] date +"%A, %B %d" color = $text_color font_size = 17 - font_family = $font_family + font_family = $font_family_clock position = 0, 240 halign = center diff --git a/.config/quickshell/ii/modules/background/Background.qml b/.config/quickshell/ii/modules/background/Background.qml index acaf63cc..8c41e926 100644 --- a/.config/quickshell/ii/modules/background/Background.qml +++ b/.config/quickshell/ii/modules/background/Background.qml @@ -145,7 +145,9 @@ Scope { const lower = Math.floor(bgRoot.firstWorkspaceId / chunkSize) * chunkSize; const upper = Math.ceil(bgRoot.lastWorkspaceId / chunkSize) * chunkSize; 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)) x: -(bgRoot.movableXSpace) - (effectiveValue - 0.5) * 2 * bgRoot.movableXSpace @@ -191,6 +193,7 @@ Scope { Layout.fillWidth: true horizontalAlignment: bgRoot.textHorizontalAlignment font { + family: Appearance.font.family.expressive pixelSize: 85 weight: Font.Medium } @@ -203,6 +206,7 @@ Scope { Layout.fillWidth: true horizontalAlignment: bgRoot.textHorizontalAlignment font { + family: Appearance.font.family.expressive pixelSize: 20 weight: Font.Medium } diff --git a/.config/quickshell/ii/modules/common/Appearance.qml b/.config/quickshell/ii/modules/common/Appearance.qml index 88e04bd3..7cc555ec 100644 --- a/.config/quickshell/ii/modules/common/Appearance.qml +++ b/.config/quickshell/ii/modules/common/Appearance.qml @@ -168,6 +168,7 @@ Singleton { property string iconNerd: "SpaceMono NF" property string monospace: "JetBrains Mono NF" property string reading: "Readex Pro" + property string expressive: "Space Grotesk" } property QtObject pixelSize: QtObject { property int smallest: 10 diff --git a/.config/quickshell/ii/modules/common/Config.qml b/.config/quickshell/ii/modules/common/Config.qml index ea37b692..047b8948 100644 --- a/.config/quickshell/ii/modules/common/Config.qml +++ b/.config/quickshell/ii/modules/common/Config.qml @@ -100,8 +100,9 @@ Singleton { property real clockY: -500 property string wallpaperPath: Quickshell.configPath("assets/images/default_wallpaper.png") property JsonObject parallax: JsonObject { - property real workspaceZoom: 1.07 // Relative to your screen, not wallpaper size property bool enableWorkspace: true + property real workspaceZoom: 1.07 // Relative to your screen, not wallpaper size + property bool enableSidebar: true } } diff --git a/.config/quickshell/ii/modules/dock/Dock.qml b/.config/quickshell/ii/modules/dock/Dock.qml index 04af9810..5b8e1b19 100644 --- a/.config/quickshell/ii/modules/dock/Dock.qml +++ b/.config/quickshell/ii/modules/dock/Dock.qml @@ -19,131 +19,128 @@ Scope { // Scope Variants { // For each monitor model: Quickshell.screens - LazyLoader { - id: dockLoader + PanelWindow { // Window required property var modelData - activeAsync: Config.options?.dock.hoverToReveal || (!ToplevelManager.activeToplevel?.activated) + id: dockRoot + screen: modelData + + property bool reveal: root.pinned + || (Config.options?.dock.hoverToReveal && dockMouseArea.containsMouse) + || dockApps.requestDockShow + || (!ToplevelManager.activeToplevel?.activated) - component: PanelWindow { // Window - id: dockRoot - screen: dockLoader.modelData - - property bool reveal: root.pinned - || (Config.options?.dock.hoverToReveal && dockMouseArea.containsMouse) - || dockApps.requestDockShow - || (!ToplevelManager.activeToplevel?.activated) + anchors { + bottom: true + left: true + 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 { - bottom: true - left: true - 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 : + top: parent.top + topMargin: dockRoot.reveal ? 0 : Config.options?.dock.hoverToReveal ? (dockRoot.implicitHeight - Config.options.dock.hoverRegionHeight) : (dockRoot.implicitHeight + 1) - - anchors.left: parent.left - anchors.right: parent.right - hoverEnabled: true - - Behavior on anchors.topMargin { - animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this) - } - - Item { - id: dockHoverRegion - anchors.fill: parent - - Item { // Wrapper for the dock background - id: dockBackground - anchors { - top: parent.top - bottom: parent.bottom - horizontalCenter: parent.horizontalCenter - } - - implicitWidth: dockRow.implicitWidth + 5 * 2 - height: parent.height - Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut - - StyledRectangularShadow { - 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 - } - - RowLayout { - id: dockRow - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - spacing: 3 - property real padding: 5 - - VerticalButtonGroup { - Layout.topMargin: Appearance.sizes.hyprlandGapsOut // why does this work - GroupButton { // Pin button - baseWidth: 35 - baseHeight: 35 - clickedWidth: baseWidth - clickedHeight: baseHeight + 20 - 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 {} - DockButton { - Layout.fillHeight: true - onClicked: Hyprland.dispatch("global quickshell:overviewToggle") - contentItem: MaterialSymbol { - anchors.fill: parent - horizontalAlignment: Text.AlignHCenter - font.pixelSize: parent.width / 2 - text: "apps" - color: Appearance.colors.colOnLayer0 - } - } - } - } - } - + horizontalCenter: parent.horizontalCenter } + implicitWidth: dockHoverRegion.implicitWidth + Appearance.sizes.elevationMargin * 2 + hoverEnabled: true + + Behavior on anchors.topMargin { + animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this) + } + + Item { + id: dockHoverRegion + anchors.fill: parent + implicitWidth: dockBackground.implicitWidth + + Item { // Wrapper for the dock background + id: dockBackground + anchors { + top: parent.top + bottom: parent.bottom + horizontalCenter: parent.horizontalCenter + } + + implicitWidth: dockRow.implicitWidth + 5 * 2 + height: parent.height - Appearance.sizes.elevationMargin - Appearance.sizes.hyprlandGapsOut + + StyledRectangularShadow { + 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 + } + + RowLayout { + id: dockRow + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + spacing: 3 + property real padding: 5 + + VerticalButtonGroup { + Layout.topMargin: Appearance.sizes.hyprlandGapsOut // why does this work + GroupButton { // Pin button + baseWidth: 35 + baseHeight: 35 + clickedWidth: baseWidth + clickedHeight: baseHeight + 20 + 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 {} + DockButton { + Layout.fillHeight: true + onClicked: Hyprland.dispatch("global quickshell:overviewToggle") + contentItem: MaterialSymbol { + anchors.fill: parent + horizontalAlignment: Text.AlignHCenter + font.pixelSize: parent.width / 2 + text: "apps" + color: Appearance.colors.colOnLayer0 + } + } + } + } + } + } } } diff --git a/.config/quickshell/ii/modules/overview/Overview.qml b/.config/quickshell/ii/modules/overview/Overview.qml index 952e5d29..46204b3a 100644 --- a/.config/quickshell/ii/modules/overview/Overview.qml +++ b/.config/quickshell/ii/modules/overview/Overview.qml @@ -37,11 +37,8 @@ Scope { // item: GlobalStates.overviewOpen ? columnLayout : null // } - anchors { top: true - left: true - right: true bottom: true } @@ -85,6 +82,7 @@ Scope { function setSearchingText(text) { searchWidget.setSearchingText(text); + searchWidget.focusFirstItemIfNeeded(); } ColumnLayout { diff --git a/.config/quickshell/ii/modules/overview/SearchWidget.qml b/.config/quickshell/ii/modules/overview/SearchWidget.qml index 2754567e..5304d096 100644 --- a/.config/quickshell/ii/modules/overview/SearchWidget.qml +++ b/.config/quickshell/ii/modules/overview/SearchWidget.qml @@ -396,6 +396,8 @@ Item { // Wrapper } } + onModelChanged: root.focusFirstItemIfNeeded() + delegate: SearchItem { // The selectable item for each search result required property var modelData diff --git a/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml b/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml index 0946c03d..b7d9ee67 100644 --- a/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml +++ b/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml @@ -11,77 +11,56 @@ Scope { id: screenCorners 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 { model: Quickshell.screens - PanelWindow { - visible: (Config.options.appearance.fakeScreenRounding === 1 - || (Config.options.appearance.fakeScreenRounding === 2 - && !activeWindow?.fullscreen)) - - 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 + Scope { + required property var modelData + CornerPanelWindow { + screen: modelData corner: RoundCorner.CornerEnum.TopLeft } - RoundCorner { - id: topRightCorner - anchors.top: parent.top - anchors.right: parent.right - size: Appearance.rounding.screenRounding + CornerPanelWindow { + screen: modelData corner: RoundCorner.CornerEnum.TopRight } - RoundCorner { - id: bottomLeftCorner - anchors.bottom: parent.bottom - anchors.left: parent.left - size: Appearance.rounding.screenRounding + CornerPanelWindow { + screen: modelData corner: RoundCorner.CornerEnum.BottomLeft } - RoundCorner { - id: bottomRightCorner - anchors.bottom: parent.bottom - anchors.right: parent.right - size: Appearance.rounding.screenRounding + CornerPanelWindow { + screen: modelData corner: RoundCorner.CornerEnum.BottomRight } - } - } - } diff --git a/.config/quickshell/ii/modules/session/Session.qml b/.config/quickshell/ii/modules/session/Session.qml index 69414f1b..da627d9a 100644 --- a/.config/quickshell/ii/modules/session/Session.qml +++ b/.config/quickshell/ii/modules/session/Session.qml @@ -76,7 +76,6 @@ Scope { StyledText { // Small instruction Layout.alignment: Qt.AlignHCenter horizontalAlignment: Text.AlignHCenter - font.family: Appearance.font.family.title font.pixelSize: Appearance.font.pixelSize.normal text: qsTr("Arrow keys to navigate, Enter to select\nEsc or click anywhere to cancel") } diff --git a/.config/quickshell/ii/services/HyprlandKeybinds.qml b/.config/quickshell/ii/services/HyprlandKeybinds.qml index a313ffc4..45dc6548 100644 --- a/.config/quickshell/ii/services/HyprlandKeybinds.qml +++ b/.config/quickshell/ii/services/HyprlandKeybinds.qml @@ -41,7 +41,7 @@ Singleton { Process { id: getDefaultKeybinds running: true - command: [root.keybindParserPath, "--path", root.defaultKeybindConfigPath,] + command: [root.keybindParserPath, "--path", root.defaultKeybindConfigPath] stdout: SplitParser { onRead: data => { diff --git a/arch-packages/illogical-impulse-fonts-themes/PKGBUILD b/arch-packages/illogical-impulse-fonts-themes/PKGBUILD index 8c5f567c..fd2ee207 100644 --- a/arch-packages/illogical-impulse-fonts-themes/PKGBUILD +++ b/arch-packages/illogical-impulse-fonts-themes/PKGBUILD @@ -15,6 +15,7 @@ depends=( kde-material-you-colors kitty matugen-bin + otf-space-grotesk starship ttf-gabarito-git ttf-jetbrains-mono-nerd