diff --git a/Colors.qml b/Colors.qml index 541f5b5..ed31b48 100644 --- a/Colors.qml +++ b/Colors.qml @@ -31,7 +31,7 @@ Singleton { watchChanges: true onAdapterUpdated: reload() onAdapterChanged: reload() - blockLoading: true + blockLoading: true // colors resolved before first paint, no flash of defaults property alias base00: palette.base00 property alias base01: palette.base01 property alias base02: palette.base02 @@ -51,6 +51,7 @@ Singleton { JsonAdapter { id: palette + // strings, not colors — QML coerces "#rrggbb" -> color at the readonly props above property string base00 property string base01 property string base02 diff --git a/modules/bar/ActiveWindow.qml b/modules/bar/ActiveWindow.qml index 389cf47..39e8ede 100644 --- a/modules/bar/ActiveWindow.qml +++ b/modules/bar/ActiveWindow.qml @@ -1,4 +1,3 @@ -pragma ComponentBehavior: Bound import Quickshell.Widgets import Quickshell.Hyprland import QtQuick @@ -6,24 +5,13 @@ import QtQuick.Layouts import qs import qs.widgets import qs.settings -import QtQuick.Effects Rectangle { id: root required property double moduleHeight - layer.enabled: true - layer.effect: MultiEffect { - id: dropShadow - source: root - shadowEnabled: true - shadowHorizontalOffset: 4 - shadowVerticalOffset: 2 - shadowOpacity: 0.5 - shadowColor: "#020202" - } implicitHeight: moduleHeight implicitWidth: titleLayout.width + 32 - color: Colors.base02 + color: Colors.base01 radius: Config.rounding RowLayout { id: titleLayout diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index ef05e9d..c694e2e 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -5,7 +5,6 @@ import Quickshell.Wayland import qs import qs.settings -import qs.modules.wallpaper Variants { model: Quickshell.screens @@ -46,17 +45,13 @@ Variants { moduleHeight: root.moduleHeight } } - Item { - id: middleItem + + RowLayout { + id: centerLayout anchors.centerIn: parent - implicitWidth: centerLayout.width - implicitHeight: centerLayout.height - RowLayout { - id: centerLayout - spacing: 5 - Clock { - moduleHeight: root.moduleHeight - } + spacing: 5 + Clock { + moduleHeight: root.moduleHeight } } @@ -64,7 +59,7 @@ Variants { id: rightLayout anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - spacing: 15 + spacing: 5 anchors.rightMargin: Config.floating ? (Config.barHeight - root.moduleHeight) / 2 : Config.rounding Mpris { moduleHeight: root.moduleHeight @@ -78,10 +73,6 @@ Variants { Tray { moduleHeight: root.moduleHeight } - WallpaperPicker { - moduleHeight: root.moduleHeight - screenHeight: root.modelData.height - } } } } diff --git a/modules/bar/Bat.qml b/modules/bar/Bat.qml index 3c2e751..1803202 100644 --- a/modules/bar/Bat.qml +++ b/modules/bar/Bat.qml @@ -1,25 +1,15 @@ +import Quickshell.Widgets import Quickshell.Services.UPower import QtQuick import QtQuick.Layouts -import QtQuick.Effects import qs import qs.widgets import qs.settings Rectangle { id: root - layer.enabled: true - layer.effect: MultiEffect { - id: dropShadow - source: root - shadowEnabled: true - shadowHorizontalOffset: 4 - shadowVerticalOffset: 2 - shadowOpacity: 0.5 - shadowColor: "#020202" - } clip: true - color: Colors.base02 + color: Colors.base01 visible: UPower.displayDevice.isLaptopBattery property double percent: UPower.displayDevice.percentage * 100 property bool hasBattery: UPower.displayDevice.isLaptopBattery diff --git a/modules/bar/Clock.qml b/modules/bar/Clock.qml index 94251cf..f706fb7 100644 --- a/modules/bar/Clock.qml +++ b/modules/bar/Clock.qml @@ -1,28 +1,16 @@ -pragma ComponentBehavior: Bound import Quickshell import QtQuick -import QtQuick.Effects import qs import qs.widgets import qs.settings Rectangle { id: root - layer.enabled: true - layer.effect: MultiEffect { - id: dropShadow - source: root - shadowEnabled: true - shadowHorizontalOffset: 4 - shadowVerticalOffset: 2 - shadowOpacity: 0.5 - shadowColor: "#020202" - } clip: true required property double moduleHeight implicitHeight: moduleHeight implicitWidth: clockText.implicitWidth + 32 - color: Colors.base02 + color: Colors.base01 radius: Config.rounding SystemClock { id: clock @@ -31,6 +19,6 @@ Rectangle { StyledText { id: clockText anchors.centerIn: root - text: Qt.formatDateTime(clock.date, "d.M.yy - hh:mm:ss") + text: Qt.formatDateTime(clock.date, "d.M.yy - hh:mm:s") } } diff --git a/modules/bar/Mpris.qml b/modules/bar/Mpris.qml index 4fec34b..02026e6 100644 --- a/modules/bar/Mpris.qml +++ b/modules/bar/Mpris.qml @@ -1,24 +1,13 @@ -pragma ComponentBehavior: Bound import Quickshell.Services.Mpris +import Quickshell.Widgets import QtQuick import QtQuick.Layouts -import QtQuick.Effects import qs import qs.widgets import qs.settings Rectangle { id: root - layer.enabled: true - layer.effect: MultiEffect { - id: dropShadow - source: root - shadowEnabled: true - shadowHorizontalOffset: 4 - shadowVerticalOffset: 2 - shadowOpacity: 0.5 - shadowColor: "#020202" - } required property double moduleHeight implicitHeight: moduleHeight implicitWidth: songLayout.implicitWidth + 32 @@ -31,7 +20,7 @@ Rectangle { } visible: spotify !== null && spotify.playbackState === MprisPlaybackState.Playing clip: true - color: Colors.base02 + color: Colors.base01 radius: Config.rounding RowLayout { id: songLayout diff --git a/modules/bar/Pw.qml b/modules/bar/Pw.qml index 3094f2e..9b24542 100644 --- a/modules/bar/Pw.qml +++ b/modules/bar/Pw.qml @@ -1,26 +1,14 @@ -pragma ComponentBehavior: Bound import Quickshell.Services.Pipewire import Quickshell.Io import QtQuick import QtQuick.Layouts -import QtQuick.Effects import qs import qs.widgets import qs.settings Rectangle { id: root - layer.enabled: true - layer.effect: MultiEffect { - id: dropShadow - source: root - shadowEnabled: true - shadowHorizontalOffset: 4 - shadowVerticalOffset: 2 - shadowOpacity: 0.5 - shadowColor: "#020202" - } - color: clickHandler.containsMouse ? Colors.base03 : Colors.base02 + color: clickHandler.containsMouse ? Colors.base02 : Colors.base01 property PwNode defaultAudio: Pipewire.ready ? Pipewire.defaultAudioSink : null property bool mute: Pipewire.ready ? defaultAudio?.audio.muted : null radius: Config.rounding diff --git a/modules/bar/Tray.qml b/modules/bar/Tray.qml index 03ccc03..83f8668 100644 --- a/modules/bar/Tray.qml +++ b/modules/bar/Tray.qml @@ -4,28 +4,17 @@ import Quickshell.Services.SystemTray import Quickshell.Widgets import QtQuick import QtQuick.Layouts -import QtQuick.Effects import qs import qs.settings Rectangle { id: root - layer.enabled: true - layer.effect: MultiEffect { - id: dropShadow - source: root - shadowEnabled: true - shadowHorizontalOffset: 4 - shadowVerticalOffset: 2 - shadowOpacity: 0.5 - shadowColor: "#020202" - } visible: iconRepeater.count != 0 Layout.fillHeight: true required property double moduleHeight implicitHeight: moduleHeight implicitWidth: iconlayout.width + 16 - color: Colors.base02 + color: Colors.base01 radius: Config.rounding RowLayout { diff --git a/modules/corners/ScreenCorners.qml b/modules/corners/ScreenCorners.qml index 9d524c8..2fae0a9 100644 --- a/modules/corners/ScreenCorners.qml +++ b/modules/corners/ScreenCorners.qml @@ -14,7 +14,7 @@ import qs.settings */ Variants { model: Quickshell.screens - delegate: WlrLayershell { + delegate: PanelWindow { id: root required property ShellScreen modelData screen: modelData @@ -24,11 +24,9 @@ Variants { left: true right: true } - margins { - top: Config.floating ? 0 : Config.barHeight - } + margins.top: Config.floating ? 0 : Config.barHeight mask: Region { - item: Item {} + item: root } color: 'transparent' exclusionMode: ExclusionMode.Ignore diff --git a/modules/ipc/Ipc.qml b/modules/ipc/Ipc.qml index e7f74a4..3abb6eb 100644 --- a/modules/ipc/Ipc.qml +++ b/modules/ipc/Ipc.qml @@ -36,9 +36,6 @@ IpcHandler { function floating(toggle: bool) { Config.floating = toggle } - function reload(hard: bool) { - Quickshell.reload(hard) - } function setWall(newWall: string) { if (newWall.startsWith("/")) { diff --git a/modules/notifications/NotiPopup.qml b/modules/notifications/NotiPopup.qml index ac509e8..24798cd 100644 --- a/modules/notifications/NotiPopup.qml +++ b/modules/notifications/NotiPopup.qml @@ -13,6 +13,7 @@ WlrLayershell { for (let i = 0; i < Quickshell.screens.length; i++) { current = Quickshell.screens[i]; if (Hyprland.monitorFor(current) == Hyprland.focusedMonitor) { + console.log(current.name); return current; } } diff --git a/modules/wallpaper/WallpaperPicker.qml b/modules/wallpaper/WallpaperPicker.qml deleted file mode 100644 index c510645..0000000 --- a/modules/wallpaper/WallpaperPicker.qml +++ /dev/null @@ -1,136 +0,0 @@ -pragma ComponentBehavior: Bound -import Quickshell -import Quickshell.Wayland -import Quickshell.Widgets -import Quickshell.Hyprland -import QtQuick -import Qt.labs.folderlistmodel 2.11 -import QtQuick.Effects - -import qs -import qs.settings -import qs.widgets - -Rectangle { - id: main - - layer.enabled: true - layer.effect: MultiEffect { - id: dropShadow - source: main - shadowEnabled: true - shadowHorizontalOffset: 4 - shadowVerticalOffset: 2 - shadowOpacity: 0.5 - shadowColor: "#020202" - } - required property real moduleHeight - required property int screenHeight - color: Colors.base02 - radius: Config.rounding - implicitWidth: moduleHeight - implicitHeight: moduleHeight - MaterialIcon { - anchors.centerIn: main - text: "\ue1bc" - font.pixelSize: 16 - font.bold: true - } - MouseArea { - id: clickHandler - anchors.fill: main - acceptedButtons: Qt.LeftButton - cursorShape: Qt.PointingHandCursor - onClicked: { - wallPicker.visible = !wallPicker.visible; - } - } - WlrLayershell { - id: wallPicker - visible: false - exclusionMode: ExclusionMode.Ignore - keyboardFocus: WlrKeyboardFocus.OnDemand - implicitHeight: main.screenHeight / 8 - color: 'transparent' - anchors { - bottom: true - left: true - right: true - } - margins { - bottom: 20 - left: 20 - right: 20 - } - HyprlandFocusGrab { - id: grabber - active: wallPicker.visible - windows: [wallPicker] - onCleared: wallPicker.visible = false - } - onVisibleChanged: { - if (wallPicker.visible) - container.forceActiveFocus(); - } - ClippingRectangle { - id: container - focus: true - Keys.onEscapePressed: { - wallPicker.visible = false; - } - anchors.fill: parent - color: Colors.base01 - radius: Config.rounding - border.width: 2 - border.color: Colors.base0D - GridView { - id: wallpaperLayout - clip: true - snapMode: GridView.SnapOneRow - flow: GridView.FlowTopToBottom - cellHeight: container.height - cellWidth: container.width / 8 - anchors.fill: parent - anchors.rightMargin: 10 - model: wallpaperList - delegate: ClippingWrapperRectangle { - id: wallTile - margin: 10 - required property var modelData - color: 'transparent' - implicitWidth: wallPicker.width / 8 - implicitHeight: wallPicker.height - child: ClippingRectangle { - id: wpRounder - color: 'transparent' - radius: Config.rounding / 1.5 - Image { - id: wallpaper - anchors.fill: parent - source: wallTile.modelData.filePath - sourceSize.width: 16 * 30 - sourceSize.height: 9 * 30 - asynchronous: true - cache: true - } - MouseArea { - id: wpClickHandler - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - acceptedButtons: Qt.LeftButton - hoverEnabled: true - onClicked: { - Config.wallpaper = wallTile.modelData.filePath; - } - } - } - } - } - FolderListModel { - id: wallpaperList - folder: Config.wallDir - nameFilters: ["*.png"] - } - } - } -} diff --git a/settings/Config.qml b/settings/Config.qml index 329982a..135ac96 100644 --- a/settings/Config.qml +++ b/settings/Config.qml @@ -5,7 +5,7 @@ import Quickshell Singleton { id: root - property string font: "Maple Mono" + property string font: "Adwaita Mono Nerd Font Propo" property int fontSize: 12 property int iconSize: 14 property int barHeight: 30 @@ -14,7 +14,6 @@ Singleton { property bool floating: false property double opacity: 1.0 property string primaryMon: "eDP-1" - property string wallDir: "file://" + Quickshell.env("HOME") + "/.walls" Settings { location: Qt.resolvedUrl("file:///home/lucy/.config/quickshell/settings/settings.ini") @@ -26,6 +25,5 @@ Singleton { property alias opacity: root.opacity property alias primaryMon: root.primaryMon property alias floating: root.floating - property alias wallDir: root.wallDir } } diff --git a/shell.qml b/shell.qml index 7c4816d..ebaff3f 100644 --- a/shell.qml +++ b/shell.qml @@ -12,5 +12,4 @@ ShellRoot { Ipc {} Wallpaper {} NotiPopup {} - WallpaperPicker {} } diff --git a/widgets/MaterialIcon.qml b/widgets/MaterialIcon.qml index 6db34c6..c7e8a62 100644 --- a/widgets/MaterialIcon.qml +++ b/widgets/MaterialIcon.qml @@ -4,7 +4,7 @@ import QtQuick Text { font.family: "Material Symbols Rounded" - color: Colors.base05 + color: Colors.base07 font.pixelSize: Config.iconSize property bool fill: true renderType: Text.NativeRendering diff --git a/widgets/StyledText.qml b/widgets/StyledText.qml index 8f3cd00..6ee74f2 100644 --- a/widgets/StyledText.qml +++ b/widgets/StyledText.qml @@ -5,5 +5,5 @@ import qs.settings Text { font.family: Config.font font.pixelSize: Config.fontSize - color: Colors.base05 + color: Colors.base07 }