diff --git a/bar/modules/Notifications.qml b/bar/modules/Notifications.qml index 211c3dd..22729d5 100644 --- a/bar/modules/Notifications.qml +++ b/bar/modules/Notifications.qml @@ -26,6 +26,7 @@ Rectangle { width: 35 height: 40 radius: panelRadius + clip: true color: hoverHandler.hovered ? t.notifBgHover : t.notifBg border.color: root.doNotDisturb @@ -37,7 +38,7 @@ Rectangle { Behavior on border.color { ColorAnimation { duration: 150 } } Behavior on width { NumberAnimation { duration: 200; easing.type: Easing.OutCubic } } - HoverHandler { id: hoverHandler; cursorShape: Qt.PointingHandCursor } + HoverHandler { id: hoverHandler; cursorShape: Qt.PointingHandCursor; onHoveredChanged: if (hovered) bellRingAnim.start() } TapHandler { onTapped: { if (historyPopup.popupOpen) { @@ -63,6 +64,18 @@ Rectangle { : (root.unreadCount > 0 ? t.notifIconActive : t.notifIcon) font.pixelSize: Cfg.Config.notifIconSize Behavior on color { ColorAnimation { duration: 150 } } + + rotation: 0 + transformOrigin: Item.Top + + SequentialAnimation { + id: bellRingAnim + NumberAnimation { target: bellIcon; property: "rotation"; to: -18; duration: 80; easing.type: Easing.OutQuad } + NumberAnimation { target: bellIcon; property: "rotation"; to: 20; duration: 100; easing.type: Easing.OutQuad } + NumberAnimation { target: bellIcon; property: "rotation"; to: -10; duration: 80; easing.type: Easing.OutQuad } + NumberAnimation { target: bellIcon; property: "rotation"; to: 10; duration: 70; easing.type: Easing.OutQuad } + NumberAnimation { target: bellIcon; property: "rotation"; to: 0; duration: 80; easing.type: Easing.OutCubic } + } } Rectangle { @@ -122,6 +135,7 @@ Rectangle { onNotification: function(notif) { notif.tracked = true + bellRingAnim.start() var timeStr = new Date().toLocaleTimeString(Qt.locale(), "HH:mm") var toastId = notif.id + "_" + Date.now() diff --git a/bar/modules/Volume.qml b/bar/modules/Volume.qml index 3c42fe4..e6f9583 100644 --- a/bar/modules/Volume.qml +++ b/bar/modules/Volume.qml @@ -12,7 +12,7 @@ Rectangle { property real panelRadius: Cfg.Config.radius / 2 property int borderWidth: Cfg.Config.panelBorderWidth - property bool isTop: true + property bool isTop: true property var targetScreen: null property int barHeight: Cfg.Config.barHeight property int barMargin: Cfg.Config.margin @@ -58,7 +58,7 @@ Rectangle { function setOutputVol(pct) { if (sink && sink.ready) sink.audio.volume = pct / 100 } function setInputVol(pct) { if (source && source.ready) source.audio.volume = pct / 100 } - function toggleOutputMute() { if (sink && sink.ready) sink.audio.muted = !sink.audio.muted } + function toggleOutputMute() { if (sink && sink.ready) sink.audio.muted = !sink.audio.muted } function toggleInputMute() { if (source && source.ready) source.audio.muted = !source.audio.muted } Process { @@ -97,13 +97,29 @@ Rectangle { Behavior on color { ColorAnimation { duration: 150 } } Behavior on border.color { ColorAnimation { duration: 150 } } - HoverHandler { id: hoverHandler; cursorShape: Qt.PointingHandCursor } + HoverHandler { + id: hoverHandler + cursorShape: Qt.PointingHandCursor + onHoveredChanged: { + if (hovered) shakeAnim.restart() + } + } TapHandler { onTapped: volumePopup.toggle() } + SequentialAnimation { + id: shakeAnim + NumberAnimation { target: chipLayout; property: "rotation"; to: -15; duration: 40; easing.type: Easing.OutQuad } + NumberAnimation { target: chipLayout; property: "rotation"; to: 15; duration: 80; easing.type: Easing.InOutQuad } + NumberAnimation { target: chipLayout; property: "rotation"; to: -10; duration: 80; easing.type: Easing.InOutQuad } + NumberAnimation { target: chipLayout; property: "rotation"; to: 10; duration: 80; easing.type: Easing.InOutQuad } + NumberAnimation { target: chipLayout; property: "rotation"; to: 0; duration: 40; easing.type: Easing.InQuad } + } + RowLayout { id: chipLayout anchors.centerIn: parent spacing: 5 + transformOrigin: Item.Center Text { text: root.speakerGlyph(root.outputMuted, root.outputVolume) diff --git a/config/config.qml b/config/config.qml index e18b970..a90b626 100644 --- a/config/config.qml +++ b/config/config.qml @@ -6,7 +6,7 @@ import "themes" QtObject { id: root - readonly property var theme: Colorful + readonly property var theme: Goldencity // ──────────────────────────────────────────────────────────────────────── // Widgets @@ -19,8 +19,8 @@ QtObject { // ── Position & Dimensions ───────────────────────────────────────────────── property string barPosition: "bottom" - property int barHeight: 37 - property int margin: 20 + property int barHeight: 35 + property int margin: 15 property int radius: 26 // ── Module Lists ────────────────────────────────────────────────────────── @@ -54,7 +54,7 @@ QtObject { // ── Volume Module ───────────────────────────────────────────────────────── property int volumeIconSize: 20 - property int volumeSliderHeight: 4 + property int volumeSliderHeight: 2 property int volumeHandleSize: 20 property int volumePopupWidth: 280 property int volumeOutputMax: 100 @@ -63,7 +63,7 @@ QtObject { // ──────────────────────────────────────────────────────────────────────── // FRAME // ──────────────────────────────────────────────────────────────────────── - property int frameBorderWidth: 1 + property int frameBorderWidth: 2 // ──────────────────────────────────────────────────────────────────────── // NOTIFICATIONS @@ -84,4 +84,6 @@ QtObject { // ──────────────────────────────────────────────────────────────────────── property string launcherScript: Quickshell.env("HOME") + "/.config/quickshell/launcher/launcher.sh" property string launcherCacheDir: "/tmp/qs_launcher" + property bool launcherCloseOnClickOutside: true + property bool launcherSelectFirst: false } diff --git a/config/themes/aero.qml b/config/themes/aero.qml new file mode 100644 index 0000000..58d94f5 --- /dev/null +++ b/config/themes/aero.qml @@ -0,0 +1,160 @@ +pragma Singleton +import QtQuick +import Quickshell + +QtObject { + id: theme + + // ── Wallpaper ────────────────────────────────────────────────────────────── + readonly property string wallpaper: Quickshell.env("HOME") + "/.config/quickshell/wallpapers/vista-aurora.jpg" + + // ── Base Backgrounds ─────────────────────────────────────────────────────── + readonly property color bg: "#dd171b1e" // Deep teal-cyan (60% trans) + readonly property color bgPanel: "transparent" + readonly property color bgPopup: "#dd171b1e" // Darker aurora teal (80% trans) + readonly property color bgFrame: bg + + // ── Separators ──────────────────────────────────────────────────────────── + readonly property color separator: "#33ffffff" + + // ── Text ────────────────────────────────────────────────────────────────── + readonly property color textMain: "#f0f9f9" // Crisp glass white + readonly property color textDim: "#99b2d8d8" // Muted aqua gray + readonly property color todayText: "#ffffffff" + + // ── Accent & Borders ────────────────────────────────────────────────────── + readonly property color accent: "#cbdc3d" // Vibrant lime aurora + readonly property color border: "transparent" + readonly property color borderPopup: "#6681c7c7" // Soft sky blue border + readonly property color borderToday: accent + + // ── ArchLogo Module ──────────────────────────────────────────────────────── + readonly property color archLogoBg: bgPanel + readonly property color archLogoBgHover: "#22ffffff" + readonly property color archLogoHover: accent + readonly property color archLogoBorder: border + readonly property color archLogoBorderActive: accent + readonly property color archLogoIcon: textMain + readonly property color archLogoIconActive: accent + + // ── Stats Module (Aurora Tones) ─────────────────────────────────────────── + readonly property color statsBg: bgPanel + readonly property color statsBorder: border + readonly property color statsText: "#ffb2d8d8" + readonly property color statsRingColor: accent + readonly property color statsCpuColor: "#cbdc3d" // Lime green + readonly property color statsMemColor: "#4db6ac" // Teal + readonly property color statsDiskColor: "#81d4fa" // Sky blue + readonly property color statsGpuColor: "#fff176" // Sun yellow + readonly property color statsTrackColor: "#15ffffff" + + // ── Volume Module (Glass Water) ─────────────────────────────────────────── + readonly property color volBg: bgPanel + readonly property color volBgHover: "#2281c7c7" + readonly property color volBorder: border + readonly property color volBorderHover: "#ffb2d8d8" + readonly property color volPopupBg: bgPopup + readonly property color volPopupBorder: borderPopup + readonly property color volIcon: "#ff81d4fa" + readonly property color volIconMuted: "#ff4f6b6b" + readonly property color volTrack: "#22ffffff" + readonly property color volHandle: accent + readonly property color volHandleBorder: "#33ffffff" + readonly property color volMuteBg: "#33cbdc3d" + readonly property color volPickerHover: "#15cbdc3d" + + // ── Clock Module ─────────────────────────────────────────────────────────── + readonly property color clockBg: bgPanel + readonly property color clockBgHover: "#11ffffff" + readonly property color clockBorder: border + readonly property color clockBorderHover: accent + readonly property color clockTime: textMain + readonly property color clockSeconds: "#fff176" // Sun yellow + readonly property color clockIcon: accent + readonly property color clockSeparator: separator + readonly property color clockText: textMain + readonly property color clockShadow: "#44000000" + + // ── Calendar Popup ───────────────────────────────────────────────────────── + readonly property color calCardBg: bgPopup + readonly property color calCardBorder: borderPopup + readonly property color calSeparator: separator + readonly property color calShadow: "#66000000" + readonly property color clockPopupHeader: "#cbdc3d" + readonly property color clockPopupText: textMain + readonly property color clockPopupDim: textDim + + // ── Workspace Module ─────────────────────────────────────────────────────── + readonly property color wsPanelBg: bgPanel + readonly property color wsPanelBorder: "transparent" + readonly property color wsActiveBg: accent + readonly property color wsInactiveBg: "#15ffffff" + readonly property color wsHoverBg: "#3381c7c7" + readonly property color wsActiveText: "#ff0b3333" + readonly property color wsInactiveText: textMain + readonly property color wsHoverText: "#ffffffff" + + // ── Tray Module ──────────────────────────────────────────────────────────── + readonly property color trayBg: bgPanel + readonly property color trayBgHover: "#11ffffff" + readonly property color trayBorder: border + readonly property color trayBorderHover: "#22ffffff" + readonly property color trayIcon: textMain + + // ── Launcher (Fresh Aero) ────────────────────────────────────────────────── + readonly property color launcherBg: bgPopup + readonly property color launcherBorder: "#44cbdc3d" + readonly property color launcherInput: "#440b3333" + readonly property color launcherInputBorderFocus: accent + readonly property color launcherPill: "#4481c7c7" + readonly property color launcherText: textMain + readonly property color launcherDim: textDim + readonly property color launcherAccent: accent + readonly property color launcherHover: "#22cbdc3d" + readonly property color launcherSelected: "#44cbdc3d" + readonly property color launcherModeActiveText: "#ffffffff" + readonly property color launcherModeActiveBg: accent + + // ── Status Colors ────────────────────────────────────────────────────────── + readonly property color statusOk: "#aed581" + readonly property color statusWarn: "#fff176" + readonly property color statusErr: "#ff8a65" + readonly property color statusInfo: "#81d4fa" + + // ── Notifications Module ─────────────────────────────────────────────────── + readonly property color notifBg: bgPanel + readonly property color notifBgHover: "#11ffffff" + readonly property color notifBorder: border + readonly property color notifBorderActive: accent + readonly property color notifIcon: textMain + readonly property color notifIconActive: accent + readonly property color notifBadgeBg: statusErr + readonly property color notifBadgeText: "#ffffffff" + readonly property color notifSeparator: separator + readonly property color notifDnd: separator + + // ── Toast cards (Vista Glass) ────────────────────────────────────────────── + readonly property color notifToastBg: bgPopup + readonly property color notifToastBgHover: "#22ffffff" + readonly property color notifToastBorder: borderPopup + readonly property color notifToastShadow: "#44000000" + readonly property color notifToastText: textMain + readonly property color notifToastDim: textDim + readonly property color notifToastAppName: "#ff81d4fa" + + // ── Urgency colours ──────────────────────────────────────────────────────── + readonly property color notifUrgencyCritical: statusErr + readonly property color notifUrgencyNormal: statusInfo + readonly property color notifUrgencyLow: textDim + + // ── Progress bar ─────────────────────────────────────────────────────────── + readonly property color notifProgressBg: "#22ffffff" + readonly property color notifProgressFill: accent + + // ── History popup ────────────────────────────────────────────────────────── + readonly property color notifHistoryBg: bgPopup + readonly property color notifHistoryBorder: "#33cbdc3d" + readonly property color notifHistoryShadow: "#55000000" + readonly property color notifHistoryHover: "#11cbdc3d" + readonly property color notifHistoryEmpty: textDim +} diff --git a/config/themes/goldencity.qml b/config/themes/goldencity.qml new file mode 100644 index 0000000..6693e46 --- /dev/null +++ b/config/themes/goldencity.qml @@ -0,0 +1,160 @@ +pragma Singleton +import QtQuick +import Quickshell + +QtObject { + id: theme + + // ── Wallpaper ────────────────────────────────────────────────────────────── + readonly property string wallpaper: Quickshell.env("HOME") + "/.config/quickshell/wallpapers/wallhaven-qd2xjd.jpg" + + // ── Base Backgrounds ─────────────────────────────────────────────────────── + readonly property color bg: "#cc0c0e12" // Deepest foreground shadow + readonly property color bgPanel: "transparent" + readonly property color bgPopup: "#cc0c0e12" // Near-black building silhouettes + readonly property color bgFrame: bg + + // ── Separators ──────────────────────────────────────────────────────────── + readonly property color separator: "#334a5d6e" // Muted sky blue-gray + + // ── Text ────────────────────────────────────────────────────────────────── + readonly property color textMain: "#ffe8eef2" // Bright cloud highlight white + readonly property color textDim: "#997a8996" // Hazy horizon gray + readonly property color todayText: "#ffffffff" + + // ── Accent & Borders ────────────────────────────────────────────────────── + readonly property color accent: "#ffc19375" // Warm hazy horizon gold + readonly property color border: "transparent" + readonly property color borderPopup: "transparent" // Slate blue border + readonly property color borderToday: accent + + // ── ArchLogo Module ──────────────────────────────────────────────────────── + readonly property color archLogoBg: bgPanel + readonly property color archLogoBgHover: "#22ffffff" + readonly property color archLogoHover: accent + readonly property color archLogoBorder: border + readonly property color archLogoBorderActive: accent + readonly property color archLogoIcon: textMain + readonly property color archLogoIconActive: accent + + // ── Stats Module (Variation: Skyline Pulse) ─────────────────────────────── + readonly property color statsBg: bgPanel + readonly property color statsBorder: border + readonly property color statsText: "#ff7a8996" + readonly property color statsRingColor: accent + readonly property color statsCpuColor: "#ffc19375" // Horizon gold + readonly property color statsMemColor: "#ff89b4fa" // Building window blue + readonly property color statsDiskColor: "#ff94e2d5" // Teal office light + readonly property color statsGpuColor: "#fff38ba8" // Aviation warning red + readonly property color statsTrackColor: "#15ffffff" + + // ── Volume Module (Variation: Hazy Dusk) ────────────────────────────────── + readonly property color volBg: bgPanel + readonly property color volBgHover: "#224a5d6e" + readonly property color volBorder: border + readonly property color volBorderHover: "#ff89b4fa" + readonly property color volPopupBg: bgPopup + readonly property color volPopupBorder: borderPopup + readonly property color volIcon: "#ff89b4fa" + readonly property color volIconMuted: "#ff5a6b78" + readonly property color volTrack: "#22ffffff" + readonly property color volHandle: accent + readonly property color volHandleBorder: "#33ffffff" + readonly property color volMuteBg: "#33f38ba8" + readonly property color volPickerHover: "#15c19375" + + // ── Clock Module ─────────────────────────────────────────────────────────── + readonly property color clockBg: bgPanel + readonly property color clockBgHover: "#11ffffff" + readonly property color clockBorder: border + readonly property color clockBorderHover: accent + readonly property color clockTime: textMain + readonly property color clockSeconds: "#ffc19375" // Sun-glow gold + readonly property color clockIcon: accent + readonly property color clockSeparator: separator + readonly property color clockText: textMain + readonly property color clockShadow: "#66000000" + + // ── Calendar Popup ───────────────────────────────────────────────────────── + readonly property color calCardBg: bgPopup + readonly property color calCardBorder: borderPopup + readonly property color calSeparator: separator + readonly property color calShadow: "#88000000" + readonly property color clockPopupHeader: "#ffc19375" + readonly property color clockPopupText: textMain + readonly property color clockPopupDim: textDim + + // ── Workspace Module ─────────────────────────────────────────────────────── + readonly property color wsPanelBg: bgPanel + readonly property color wsPanelBorder: "transparent" + readonly property color wsActiveBg: accent + readonly property color wsInactiveBg: "#15ffffff" + readonly property color wsHoverBg: "#334a5d6e" + readonly property color wsActiveText: "#ff0c0e12" + readonly property color wsInactiveText: textMain + readonly property color wsHoverText: "#ffffffff" + + // ── Tray Module ──────────────────────────────────────────────────────────── + readonly property color trayBg: bgPanel + readonly property color trayBgHover: "#11ffffff" + readonly property color trayBorder: border + readonly property color trayBorderHover: "#22ffffff" + readonly property color trayIcon: textMain + + // ── Launcher (Variation: Shanghai Mist) ─────────────────────────────────── + readonly property color launcherBg: bgPopup + readonly property color launcherBorder: borderPopup + readonly property color launcherInput: "#44080a0d" + readonly property color launcherInputBorderFocus: accent + readonly property color launcherPill: "#444a5d6e" + readonly property color launcherText: textMain + readonly property color launcherDim: textDim + readonly property color launcherAccent: accent + readonly property color launcherHover: "#22c19375" + readonly property color launcherSelected: "#44c19375" + readonly property color launcherModeActiveText: "#ffffffff" + readonly property color launcherModeActiveBg: accent + + // ── Status Colors ────────────────────────────────────────────────────────── + readonly property color statusOk: "#ffb4c9a1" + readonly property color statusWarn: "#ffc19375" + readonly property color statusErr: "#fff38ba8" + readonly property color statusInfo: "#ff89b4fa" + + // ── Notifications Module ─────────────────────────────────────────────────── + readonly property color notifBg: bgPanel + readonly property color notifBgHover: "#11ffffff" + readonly property color notifBorder: border + readonly property color notifBorderActive: accent + readonly property color notifIcon: textMain + readonly property color notifIconActive: accent + readonly property color notifBadgeBg: statusErr + readonly property color notifBadgeText: "#ffffffff" + readonly property color notifSeparator: separator + readonly property color notifDnd: separator + + // ── Toast cards (Variation: City Glow) ───────────────────────────────────── + readonly property color notifToastBg: bgPopup + readonly property color notifToastBgHover: "#22ffffff" + readonly property color notifToastBorder: borderPopup + readonly property color notifToastShadow: "#88000000" + readonly property color notifToastText: textMain + readonly property color notifToastDim: textDim + readonly property color notifToastAppName: "#ff89b4fa" + + // ── Urgency colours ──────────────────────────────────────────────────────── + readonly property color notifUrgencyCritical: statusErr + readonly property color notifUrgencyNormal: statusInfo + readonly property color notifUrgencyLow: textDim + + // ── Progress bar ─────────────────────────────────────────────────────────── + readonly property color notifProgressBg: "#22ffffff" + readonly property color notifProgressFill: accent + + // ── History popup ────────────────────────────────────────────────────────── + readonly property color notifHistoryBg: bgPopup + readonly property color notifHistoryBorder: "#44c19375" + readonly property color notifHistoryShadow: "#aa000000" + readonly property color notifHistoryHover: "#11c19375" + readonly property color notifHistoryEmpty: textDim +} diff --git a/config/themes/metropolitan.qml b/config/themes/metropolitan.qml new file mode 100644 index 0000000..cd66e6a --- /dev/null +++ b/config/themes/metropolitan.qml @@ -0,0 +1,161 @@ +pragma Singleton +import QtQuick +import Quickshell + +QtObject { + id: theme + + // ── Wallpaper ────────────────────────────────────────────────────────────── + // Path updated to reflect the new vibe, though you may need to point this to your actual image + readonly property string wallpaper: Quickshell.env("HOME") + "/.config/quickshell/wallpapers/metropolitan.jpg" + + // ── Base Backgrounds ─────────────────────────────────────────────────────── + readonly property color bg: "#880d1117" // Deep midnight charcoal (80% trans) + readonly property color bgPanel: "transparent" + readonly property color bgPopup: "#88090c10" // Darker building shadow (93% trans) + readonly property color bgFrame: bg + + // ── Separators ──────────────────────────────────────────────────────────── + readonly property color separator: "#33565f89" // Slate blue structural gray + + // ── Text ────────────────────────────────────────────────────────────────── + readonly property color textMain: "#ffe0e6ed" // Bright office window white + readonly property color textDim: "#9971798a" // Steel gray + readonly property color todayText: "#ffffffff" + + // ── Accent & Borders ────────────────────────────────────────────────────── + readonly property color accent: "#ffffb86c" // Warm street lamp amber + readonly property color border: "transparent" + readonly property color borderPopup: "#882e3440" // Dark girder blue + readonly property color borderToday: accent + + // ── ArchLogo Module ──────────────────────────────────────────────────────── + readonly property color archLogoBg: bgPanel + readonly property color archLogoBgHover: "#22ffffff" + readonly property color archLogoHover: accent + readonly property color archLogoBorder: border + readonly property color archLogoBorderActive: accent + readonly property color archLogoIcon: textMain + readonly property color archLogoIconActive: accent + + // ── Stats Module (Variation: Night City Lights) ─────────────────────────── + readonly property color statsBg: bgPanel + readonly property color statsBorder: border + readonly property color statsText: "#ff71798a" + readonly property color statsRingColor: accent + readonly property color statsCpuColor: "#ffffb86c" // Streetlight gold + readonly property color statsMemColor: "#ff9ece6a" // Train stripe green + readonly property color statsDiskColor: "#ff7dcfff" // Cyan window light + readonly property color statsGpuColor: "#fff7768e" // Traffic taillight red + readonly property color statsTrackColor: "#15ffffff" + + // ── Volume Module (Variation: Urban Sound) ──────────────────────────────── + readonly property color volBg: bgPanel + readonly property color volBgHover: "#22565f89" + readonly property color volBorder: border + readonly property color volBorderHover: "#ff9ece6a" + readonly property color volPopupBg: bgPopup + readonly property color volPopupBorder: borderPopup + readonly property color volIcon: "#ff9ece6a" + readonly property color volIconMuted: "#ff444b6a" + readonly property color volTrack: "#22ffffff" + readonly property color volHandle: accent + readonly property color volHandleBorder: "#33ffffff" + readonly property color volMuteBg: "#33f7768e" + readonly property color volPickerHover: "#15ffb86c" + + // ── Clock Module ─────────────────────────────────────────────────────────── + readonly property color clockBg: bgPanel + readonly property color clockBgHover: "#11ffffff" + readonly property color clockBorder: border + readonly property color clockBorderHover: accent + readonly property color clockTime: textMain + readonly property color clockSeconds: "#ff9ece6a" // Subtle green pulse + readonly property color clockIcon: accent + readonly property color clockSeparator: separator + readonly property color clockText: textMain + readonly property color clockShadow: "#66000000" + + // ── Calendar Popup ───────────────────────────────────────────────────────── + readonly property color calCardBg: bgPopup + readonly property color calCardBorder: borderPopup + readonly property color calSeparator: separator + readonly property color calShadow: "#aa000000" + readonly property color clockPopupHeader: "#ffffb86c" + readonly property color clockPopupText: textMain + readonly property color clockPopupDim: textDim + + // ── Workspace Module ─────────────────────────────────────────────────────── + readonly property color wsPanelBg: bgPanel + readonly property color wsPanelBorder: "transparent" + readonly property color wsActiveBg: accent + readonly property color wsInactiveBg: "#15ffffff" + readonly property color wsHoverBg: "#33565f89" + readonly property color wsActiveText: "#ff0d1117" + readonly property color wsInactiveText: textMain + readonly property color wsHoverText: "#ffffffff" + + // ── Tray Module ──────────────────────────────────────────────────────────── + readonly property color trayBg: bgPanel + readonly property color trayBgHover: "#11ffffff" + readonly property color trayBorder: border + readonly property color trayBorderHover: "#22ffffff" + readonly property color trayIcon: textMain + + // ── Launcher (Variation: Neon Horizon) ───────────────────────────────────── + readonly property color launcherBg: bgPopup + readonly property color launcherBorder: "#44ffb86c" + readonly property color launcherInput: "#66090c10" + readonly property color launcherInputBorderFocus: accent + readonly property color launcherPill: "#44565f89" + readonly property color launcherText: textMain + readonly property color launcherDim: textDim + readonly property color launcherAccent: accent + readonly property color launcherHover: "#22ffb86c" + readonly property color launcherSelected: "#44ffb86c" + readonly property color launcherModeActiveText: "#ffffffff" + readonly property color launcherModeActiveBg: accent + + // ── Status Colors ────────────────────────────────────────────────────────── + readonly property color statusOk: "#ff9ece6a" // Train green + readonly property color statusWarn: "#ffffb86c" // Streetlight amber + readonly property color statusErr: "#fff7768e" // Taillight red + readonly property color statusInfo: "#ff7dcfff" // Window cyan + + // ── Notifications Module ─────────────────────────────────────────────────── + readonly property color notifBg: bgPanel + readonly property color notifBgHover: "#11ffffff" + readonly property color notifBorder: border + readonly property color notifBorderActive: accent + readonly property color notifIcon: textMain + readonly property color notifIconActive: accent + readonly property color notifBadgeBg: statusErr + readonly property color notifBadgeText: "#ffffffff" + readonly property color notifSeparator: separator + readonly property color notifDnd: separator + + // ── Toast cards (Variation: Tokyo Night) ─────────────────────────────────── + readonly property color notifToastBg: bgPopup + readonly property color notifToastBgHover: "#22ffffff" + readonly property color notifToastBorder: borderPopup + readonly property color notifToastShadow: "#88000000" + readonly property color notifToastText: textMain + readonly property color notifToastDim: textDim + readonly property color notifToastAppName: "#ff7dcfff" + + // ── Urgency colours ──────────────────────────────────────────────────────── + readonly property color notifUrgencyCritical: statusErr + readonly property color notifUrgencyNormal: statusInfo + readonly property color notifUrgencyLow: textDim + + // ── Progress bar ─────────────────────────────────────────────────────────── + readonly property color notifProgressBg: "#22ffffff" + readonly property color notifProgressFill: accent + + // ── History popup ────────────────────────────────────────────────────────── + readonly property color notifHistoryBg: bgPopup + readonly property color notifHistoryBorder: "#44ffb86c" + readonly property color notifHistoryShadow: "#aa000000" + readonly property color notifHistoryHover: "#11ffb86c" + readonly property color notifHistoryEmpty: textDim +} diff --git a/config/themes/qmldir b/config/themes/qmldir index 9a9e85a..7cea0ad 100644 --- a/config/themes/qmldir +++ b/config/themes/qmldir @@ -6,6 +6,13 @@ singleton Cosmic 1.0 cosmic.qml singleton Aurora 1.0 aurora.qml singleton Beach 1.0 beach.qml singleton Colorful 1.0 colorful.qml +singleton Aero 1.0 aero.qml +singleton Supreme 1.0 supreme.qml +singleton Metropolitan 1.0 metropolitan.qml +singleton Goldencity 1.0 goldencity.qml + + + diff --git a/config/themes/supreme.qml b/config/themes/supreme.qml new file mode 100644 index 0000000..1676b76 --- /dev/null +++ b/config/themes/supreme.qml @@ -0,0 +1,160 @@ +pragma Singleton +import QtQuick +import Quickshell + +QtObject { + id: theme + + // ── Wallpaper ────────────────────────────────────────────────────────────── + readonly property string wallpaper: Quickshell.env("HOME") + "/.config/quickshell/wallpapers/supreme.jpg" + + // ── Base Backgrounds ─────────────────────────────────────────────────────── + readonly property color bg: "#883d1c2b" // Deep berry wine (Translucent) + readonly property color bgPanel: "transparent" + readonly property color bgPopup: "#882d1621" // Darker velvet rose (95% trans) + readonly property color bgFrame: bg + + // ── Separators ──────────────────────────────────────────────────────────── + readonly property color separator: "#44ffb7ce" + + // ── Text ────────────────────────────────────────────────────────────────── + readonly property color textMain: "#ffffeff5" // Soft sugar white + readonly property color textDim: "#aaefb4c1" // Muted petal pink + readonly property color todayText: "#ffffffff" + + // ── Accent & Borders ────────────────────────────────────────────────────── + readonly property color accent: "#ffff7eb9" // Neon bubblegum pink + readonly property color border: "transparent" + readonly property color borderPopup: "#66ff7eb9" // Glowing pink edge + readonly property color borderToday: accent + + // ── ArchLogo Module ──────────────────────────────────────────────────────── + readonly property color archLogoBg: bgPanel + readonly property color archLogoBgHover: "#22ffffff" + readonly property color archLogoHover: accent + readonly property color archLogoBorder: border + readonly property color archLogoBorderActive: accent + readonly property color archLogoIcon: textMain + readonly property color archLogoIconActive: accent + + // ── Stats Module (Candy Tones) ───────────────────────────────────────────── + readonly property color statsBg: bgPanel + readonly property color statsBorder: border + readonly property color statsText: "#ffefb4c1" + readonly property color statsRingColor: accent + readonly property color statsCpuColor: "#ffff7eb9" // Hot pink + readonly property color statsMemColor: "#ffee99ff" // Soft purple + readonly property color statsDiskColor: "#ff70c5ce" // Cyan pop + readonly property color statsGpuColor: "#ffff9a9e" // Pastel coral + readonly property color statsTrackColor: "#15ffffff" + + // ── Volume Module (Berry Glass) ─────────────────────────────────────────── + readonly property color volBg: bgPanel + readonly property color volBgHover: "#22ffb7ce" + readonly property color volBorder: border + readonly property color volBorderHover: "#ffefb4c1" + readonly property color volPopupBg: bgPopup + readonly property color volPopupBorder: borderPopup + readonly property color volIcon: "#ffff7eb9" + readonly property color volIconMuted: "#ff7d4d5e" + readonly property color volTrack: "#22ffffff" + readonly property color volHandle: accent + readonly property color volHandleBorder: "#33ffffff" + readonly property color volMuteBg: "#33ff7eb9" + readonly property color volPickerHover: "#15ff7eb9" + + // ── Clock Module ─────────────────────────────────────────────────────────── + readonly property color clockBg: bgPanel + readonly property color clockBgHover: "#11ffffff" + readonly property color clockBorder: border + readonly property color clockBorderHover: accent + readonly property color clockTime: textMain + readonly property color clockSeconds: "#ffff9a9e" // Pastel peach + readonly property color clockIcon: accent + readonly property color clockSeparator: separator + readonly property color clockText: textMain + readonly property color clockShadow: "#442d1621" + + // ── Calendar Popup ───────────────────────────────────────────────────────── + readonly property color calCardBg: bgPopup + readonly property color calCardBorder: borderPopup + readonly property color calSeparator: separator + readonly property color calShadow: "#662d1621" + readonly property color clockPopupHeader: "#ffff7eb9" + readonly property color clockPopupText: textMain + readonly property color clockPopupDim: textDim + + // ── Workspace Module ─────────────────────────────────────────────────────── + readonly property color wsPanelBg: bgPanel + readonly property color wsPanelBorder: "transparent" + readonly property color wsActiveBg: accent + readonly property color wsInactiveBg: "#15ffffff" + readonly property color wsHoverBg: "#33ffb7ce" + readonly property color wsActiveText: "#ff2d1621" // Dark contrast + readonly property color wsInactiveText: textMain + readonly property color wsHoverText: "#ffffffff" + + // ── Tray Module ──────────────────────────────────────────────────────────── + readonly property color trayBg: bgPanel + readonly property color trayBgHover: "#11ffffff" + readonly property color trayBorder: border + readonly property color trayBorderHover: "#22ffffff" + readonly property color trayIcon: textMain + + // ── Launcher (Pink Mist) ─────────────────────────────────────────────────── + readonly property color launcherBg: bgPopup + readonly property color launcherBorder: "#66ff7eb9" + readonly property color launcherInput: "#442d1621" + readonly property color launcherInputBorderFocus: accent + readonly property color launcherPill: "#44ffb7ce" + readonly property color launcherText: textMain + readonly property color launcherDim: textDim + readonly property color launcherAccent: accent + readonly property color launcherHover: "#22ff7eb9" + readonly property color launcherSelected: "#44ff7eb9" + readonly property color launcherModeActiveText: "#ffffffff" + readonly property color launcherModeActiveBg: accent + + // ── Status Colors ────────────────────────────────────────────────────────── + readonly property color statusOk: "#ffb8e994" + readonly property color statusWarn: "#ffffd32a" + readonly property color statusErr: "#ffff4d4d" + readonly property color statusInfo: "#ff70c5ce" + + // ── Notifications Module ─────────────────────────────────────────────────── + readonly property color notifBg: bgPanel + readonly property color notifBgHover: "#11ffffff" + readonly property color notifBorder: border + readonly property color notifBorderActive: accent + readonly property color notifIcon: textMain + readonly property color notifIconActive: accent + readonly property color notifBadgeBg: statusErr + readonly property color notifBadgeText: "#ffffffff" + readonly property color notifSeparator: separator + readonly property color notifDnd: separator + + // ── Toast cards (Frosted Pink) ───────────────────────────────────────────── + readonly property color notifToastBg: bgPopup + readonly property color notifToastBgHover: "#22ffffff" + readonly property color notifToastBorder: borderPopup + readonly property color notifToastShadow: "#442d1621" + readonly property color notifToastText: textMain + readonly property color notifToastDim: textDim + readonly property color notifToastAppName: "#ffff7eb9" + + // ── Urgency colours ──────────────────────────────────────────────────────── + readonly property color notifUrgencyCritical: statusErr + readonly property color notifUrgencyNormal: statusInfo + readonly property color notifUrgencyLow: textDim + + // ── Progress bar ─────────────────────────────────────────────────────────── + readonly property color notifProgressBg: "#22ffffff" + readonly property color notifProgressFill: accent + + // ── History popup ────────────────────────────────────────────────────────── + readonly property color notifHistoryBg: bgPopup + readonly property color notifHistoryBorder: "#33ff7eb9" + readonly property color notifHistoryShadow: "#552d1621" + readonly property color notifHistoryHover: "#11ff7eb9" + readonly property color notifHistoryEmpty: textDim +} diff --git a/launcher/Launcher.qml b/launcher/Launcher.qml index 2e911f7..549ebaf 100644 --- a/launcher/Launcher.qml +++ b/launcher/Launcher.qml @@ -33,6 +33,10 @@ PanelWindow { property bool loading: false property bool proxyMode: false + // When launcherSelectFirst is true the first result is pre-selected; + // otherwise the list starts with no selection (-1). + readonly property int defaultIndex: Cfg.Config.launcherSelectFirst ? 0 : -1 + readonly property var filteredItems: { const q = searchInput.text.toLowerCase() if (!q) return allItems.slice(0, 80) @@ -46,7 +50,7 @@ PanelWindow { visible = true _isOpen = true searchInput.text = "" - resultsList.currentIndex = -1 + resultsList.currentIndex = root.defaultIndex loadItems() Qt.callLater(() => searchInput.forceActiveFocus()) } @@ -101,7 +105,11 @@ PanelWindow { WlrLayershell.namespace: "main-shell-launcher" WlrLayershell.exclusiveZone: -1 WlrLayershell.keyboardFocus: _isOpen ? WlrKeyboardFocus.OnDemand : WlrKeyboardFocus.None - mask: Region { item: clipContainer } + mask: Region { item: (root._isOpen && Cfg.Config.launcherCloseOnClickOutside) ? fullMask : clipContainer } + + // Full-screen item used as input mask when click-outside-to-close is enabled. + // Lets the background MouseArea receive events outside the bubble. + Item { id: fullMask; anchors.fill: parent } Timer { id: closeTimer @@ -138,6 +146,15 @@ PanelWindow { Process { id: launchProc } + // Transparent overlay — captures clicks outside the bubble and closes the + // launcher. Sits below clipContainer in stacking order (declared first), + // so clicks inside the bubble still reach the bubble's own MouseAreas. + MouseArea { + anchors.fill: parent + enabled: root._isOpen && Cfg.Config.launcherCloseOnClickOutside + onClicked: root.close() + } + Item { id: clipContainer anchors.horizontalCenter: parent.horizontalCenter @@ -214,7 +231,7 @@ PanelWindow { verticalAlignment: TextInput.AlignVCenter selectionColor: t.launcherAccent - onTextChanged: resultsList.currentIndex = -1 + onTextChanged: resultsList.currentIndex = root.defaultIndex Keys.onReturnPressed: { if (root.filteredItems.length > 0) { @@ -329,10 +346,10 @@ PanelWindow { implicitHeight: Math.min(contentHeight, 400) clip: true model: root.filteredItems - currentIndex: -1 + currentIndex: root.defaultIndex spacing: 2 - onModelChanged: currentIndex = -1 + onModelChanged: currentIndex = root.defaultIndex ScrollBar.vertical: ScrollBar { policy: ScrollBar.AsNeeded } delegate: Rectangle { diff --git a/wallpapers/metropolitan.jpg b/wallpapers/metropolitan.jpg new file mode 100644 index 0000000..66a14ba Binary files /dev/null and b/wallpapers/metropolitan.jpg differ diff --git a/wallpapers/supreme.jpg b/wallpapers/supreme.jpg new file mode 100644 index 0000000..c4b0039 Binary files /dev/null and b/wallpapers/supreme.jpg differ diff --git a/wallpapers/vista-aurora.jpg b/wallpapers/vista-aurora.jpg new file mode 100644 index 0000000..86fbc59 Binary files /dev/null and b/wallpapers/vista-aurora.jpg differ diff --git a/wallpapers/wallhaven-qd2xjd.jpg b/wallpapers/wallhaven-qd2xjd.jpg new file mode 100644 index 0000000..ea53e18 Binary files /dev/null and b/wallpapers/wallhaven-qd2xjd.jpg differ