From f162af8a4114aee04676b3b79af74120cc9f9a8e Mon Sep 17 00:00:00 2001 From: Jas Singh Date: Mon, 24 Jun 2024 00:43:54 -0700 Subject: [PATCH] Start work on notifications menu --- modules/bar/bar.js | 3 +- modules/bar/notification/index.js | 24 ---- modules/bar/notifications/index.js | 38 +++++ modules/menus/main.js | 3 +- modules/menus/notifications/index.js | 205 +++++++++++++++++++++++++++ scss/bar/notifications.scss | 8 ++ scss/main.scss | 2 + scss/menus/notifications.scss | 13 ++ style.css | 19 +++ style.css.map | 2 +- 10 files changed, 290 insertions(+), 27 deletions(-) delete mode 100644 modules/bar/notification/index.js create mode 100644 modules/bar/notifications/index.js create mode 100644 modules/menus/notifications/index.js create mode 100644 scss/bar/notifications.scss create mode 100644 scss/menus/notifications.scss diff --git a/modules/bar/bar.js b/modules/bar/bar.js index f621ed3..cf629b9 100644 --- a/modules/bar/bar.js +++ b/modules/bar/bar.js @@ -2,7 +2,7 @@ import { Menu } from "./menu/index.js"; import { Workspaces } from "./workspaces/index.js"; import { ClientTitle } from "./window_title/index.js"; import { Media } from "./media/index.js"; -import { Notification } from "./notification/index.js"; +import { Notifications } from "./notifications/index.js"; import { Volume } from "./volume/index.js"; import { Network } from "./network/index.js"; import { Bluetooth } from "./bluetooth/index.js"; @@ -53,6 +53,7 @@ const Right = () => { BarItemBox(BatteryLabel()), BarItemBox(SysTray()), BarItemBox(Clock()), + BarItemBox(Notifications()), BarItemBox(Power()), ], }); diff --git a/modules/bar/notification/index.js b/modules/bar/notification/index.js deleted file mode 100644 index 42630ec..0000000 --- a/modules/bar/notification/index.js +++ /dev/null @@ -1,24 +0,0 @@ -const notifications = await Service.import("notifications"); - -// we don't need dunst or any other notification daemon -// because the Notifications module is a notification daemon itself -const Notification = () => { - const popups = notifications.bind("popups"); - return { - component: Widget.Box({ - class_name: "notification", - visible: popups.as((p) => p.length > 0), - children: [ - Widget.Icon({ - icon: "preferences-system-notifications-symbolic", - }), - Widget.Label({ - label: popups.as((p) => p[0]?.summary || ""), - }), - ], - }), - isVisible: false, - }; -}; - -export { Notification }; diff --git a/modules/bar/notifications/index.js b/modules/bar/notifications/index.js new file mode 100644 index 0000000..88e8cb3 --- /dev/null +++ b/modules/bar/notifications/index.js @@ -0,0 +1,38 @@ +const notifs = await Service.import("notifications"); + +export const Notifications = () => { + notifs.connect("changed", () => { + console.log(JSON.stringify(notifs, null, 2)); + }); + return { + component: Widget.Box({ + hpack: "start", + hexpand: true, + child: Widget.Button({ + hpack: "start", + hexpand: true, + class_name: "bar-notifications", + child: Widget.Label({ + hpack: "start", + hexpand: true, + class_name: "bar-notifications-label", + setup: (self) => { + self.hook(notifs, () => { + if (notifs.dnd) { + return (self.label = "󰂛"); + } else if (notifs.notifications.length > 0) { + return (self.label = "󱅫"); + } else { + return (self.label = "󰂚"); + } + }); + }, + }), + }), + }), + isVisible: true, + props: { + on_primary_click: () => App.toggleWindow("notificationsmenu"), + }, + }; +}; diff --git a/modules/menus/main.js b/modules/menus/main.js index 013ba25..504843b 100644 --- a/modules/menus/main.js +++ b/modules/menus/main.js @@ -4,5 +4,6 @@ import AudioMenu from "./audio/index.js"; import NetworkMenu from "./network/index.js"; import BluetoothMenu from "./bluetooth/index.js"; import MediaMenu from "./media/index.js"; +import NotificationsMenu from "./notifications/index.js"; -export default [PowerMenu(), Verification(), AudioMenu(), NetworkMenu(), BluetoothMenu(), MediaMenu()]; +export default [PowerMenu(), Verification(), AudioMenu(), NetworkMenu(), BluetoothMenu(), MediaMenu(), NotificationsMenu()]; diff --git a/modules/menus/notifications/index.js b/modules/menus/notifications/index.js new file mode 100644 index 0000000..77c9fe2 --- /dev/null +++ b/modules/menus/notifications/index.js @@ -0,0 +1,205 @@ +const notifs = await Service.import("notifications"); +import icons from "../../icons/index.js"; + +export default () => { + notifs.popupTimeout = 5000; + + return Widget.Window({ + name: "notificationsmenu", + class_name: "notifications-menu", + layer: "top", + anchor: ["top", "right"], + monitor: 2, + keymode: "on-demand", + exclusivity: "ignore", + setup: (w) => + w.keybind("Escape", () => App.closeWindow("notificationsmenu")), + visible: false, + child: Widget.Box({ + class_name: "notification-menu-content", + css: "padding: 1px; margin: -1px;", + child: Widget.Revealer({ + transitionDuration: 350, + reveal_child: false, + transition: "crossfade", + setup: (self) => + self.hook(App, (_, wname, visible) => { + if (wname === "notificationsmenu") self.reveal_child = visible; + }), + child: Widget.Box({ + class_name: "notification-card-container menu", + vertical: true, + hexpand: true, + setup: (self) => { + self.hook(notifs, () => { + const imageContainer = (notif) => { + if (notif.image !== undefined) { + return [ + Widget.Box({ + class_name: "notification-card-image-container", + hpack: "center", + vpack: "center", + vexpand: false, + child: Widget.Box({ + hpack: "center", + vexpand: false, + class_name: "notification-card-image", + css: `background-image: url("${notif.image}")`, + }), + }), + ]; + } + + return []; + }; + + const actionsContainer = (notif) => { + if (notif.actions !== undefined && notif.actions.length > 0) { + return [ + Widget.Box({ + class_name: "notification-card-actions", + hexpand: true, + vpack: "end", + children: notif.actions.map((action) => { + return Widget.Button({ + hexpand: true, + class_name: "notification-action-buttons", + on_primary_click: () => { + notif.invoke(action.id); + }, + child: Widget.Box({ + hpack: "center", + hexpand: true, + children: [ + Widget.Label({ + class_name: "notification-action-buttons-label", + hexpand: true, + label: action.label, + }), + ], + }), + }); + }), + }), + ]; + } + + return []; + }; + + const NotificationIcon = ({ app_entry, app_icon, app_name }) => { + let icon = icons.fallback.notification; + + if ( + Utils.lookUpIcon(app_name) || + Utils.lookUpIcon(app_name.toLowerCase() || "") + ) + icon = Utils.lookUpIcon(app_name) + ? app_name + : Utils.lookUpIcon(app_name.toLowerCase()) + ? app_name.toLowerCase() + : ""; + + if (Utils.lookUpIcon(app_icon) && icon === "") icon = app_icon; + + if (Utils.lookUpIcon(app_entry || "") && icon === "") + icon = app_entry || ""; + + return Widget.Box({ + css: ` + min-width: 2rem; + min-height: 2rem; + `, + child: Widget.Icon({ + class_name: "notification-icon", + icon, + }), + }); + }; + + return (self.children = notifs.notifications.map((notif) => { + return Widget.Box({ + class_name: "notification-card", + vpack: "start", + hexpand: true, + children: [ + ...imageContainer(notif), + Widget.Box({ + vpack: "start", + vertical: true, + hexpand: true, + class_name: `notification-card-content ${notif.image === undefined ? "noimg" : ""}`, + children: [ + Widget.Box({ + vertical: false, + hexpand: true, + children: [ + Widget.Box({ + class_name: "notification-card-header", + hexpand: true, + vpack: "start", + children: [ + Widget.Label({ + class_name: "notification-card-header-label", + hpack: "start", + hexpand: true, + vexpand: true, + max_width_chars: + notif.image === undefined ? 27 : 20, + truncate: "end", + wrap: true, + label: notif["summary"], + }), + ], + }), + Widget.Box({ + class_name: "notification-card-header", + hexpand: true, + hpack: "end", + children: [NotificationIcon(notif)], + }), + ], + }), + Widget.Box({ + vpack: "start", + hexpand: true, + class_name: "notification-card-body", + children: [ + Widget.Label({ + hexpand: true, + use_markup: true, + xalign: 0, + justification: "left", + truncate: "end", + lines: 2, + max_width_chars: + notif.image === undefined ? 35 : 28, + wrap: true, + class_name: "notification-card-body-label", + label: notif["body"], + }), + ], + }), + ...actionsContainer(notif), + ], + }), + Widget.Button({ + class_name: "close-notification-button", + on_primary_click: () => { + notifs.CloseNotification(notif.id); + }, + child: Widget.Label({ + label: "󰅜", + hpack: "center", + }), + }), + ], + }); + })); + }); + }, + }), + }), + }), + }); +}; diff --git a/scss/bar/notifications.scss b/scss/bar/notifications.scss new file mode 100644 index 0000000..41bae62 --- /dev/null +++ b/scss/bar/notifications.scss @@ -0,0 +1,8 @@ +@import "../colors"; + +.bar-notifications-label { + color: $yellow; + font-size: 1.3em; + min-width: 1em; + margin-right: 0.15em; +} diff --git a/scss/main.scss b/scss/main.scss index ca93a9f..888f2c4 100644 --- a/scss/main.scss +++ b/scss/main.scss @@ -21,6 +21,7 @@ @import "bar/workspace"; @import "bar/window_title"; @import "bar/systray"; +@import "bar/notifications"; @import "bar/power"; @import "bar/bar"; @@ -31,6 +32,7 @@ @import "menus/network"; @import "menus/bluetooth"; @import "menus/media"; +@import "menus/notifications"; //notifications @import "notifications/popups"; diff --git a/scss/menus/notifications.scss b/scss/menus/notifications.scss new file mode 100644 index 0000000..e7e6696 --- /dev/null +++ b/scss/menus/notifications.scss @@ -0,0 +1,13 @@ +@import "../colors"; + +.notification-card-container.menu { + min-width: 30rem; + min-height: 50rem; + background: $mantle; + border: 0.25rem solid $surface0; + border-radius: 0.4rem; +} + +.notification-menu-content { + margin: 40rem; +} diff --git a/style.css b/style.css index 0de58bd..8dd4319 100644 --- a/style.css +++ b/style.css @@ -388,6 +388,13 @@ spinner:checked { font-size: 1.3em; } +.bar-notifications-label { + color: #f9e2af; + font-size: 1.3em; + min-width: 1em; + margin-right: 0.15em; +} + .bar-power_label { color: #f38ba8; margin-top: 0.2rem; @@ -1030,6 +1037,18 @@ image { background: #6c7086; box-shadow: none; } +.notification-card-container.menu { + min-width: 30rem; + min-height: 50rem; + background: #181825; + border: 0.25rem solid #313244; + border-radius: 0.4rem; +} + +.notification-menu-content { + margin: 40rem; +} + .notification-card-container { margin-top: 3.5rem; } diff --git a/style.css.map b/style.css.map index e1dca31..a6b9532 100644 --- a/style.css.map +++ b/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["scss/main.scss","scss/common/common.scss","scss/colors.scss","scss/common/widget-button.scss","scss/bar/menu.scss","scss/bar/audio.scss","scss/bar/media.scss","scss/bar/network.scss","scss/bar/bluetooth.scss","scss/bar/clock.scss","scss/bar/workspace.scss","scss/bar/window_title.scss","scss/bar/systray.scss","scss/bar/power.scss","scss/bar/bar.scss","scss/menus/menu.scss","scss/menus/power.scss","scss/common/floating-widget.scss","scss/menus/audiomenu.scss","scss/menus/network.scss","scss/menus/bluetooth.scss","scss/menus/media.scss","scss/notifications/popups.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;;ACJF;EACE;EACA;EACA,kBCFgB;EDGhB;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI,kBChBW;;ADkBf;EACE,OCnBa;;ADqBf;EACE;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA,kBC/Be;;;ADmCnB;EACE;EACA;EACA;EACA,OCvCiB;;;AD0CnB;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,kBC9DiB;ED+DjB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA,kBC9EgB;;;ADiFlB;AAAA;EAEE;EACA,kBCpFgB;;;ADuFlB;AAAA;AAAA;EAGE,OC1FgB;ED2FhB,kBC7CW;;;ADgDb;AAAA;AAAA;EAGE;EACA,kBCpDW;;;ADuDb;AAAA;AAAA;EAGE;EACA,kBC3DW;;;AD8Db;EACE;EACA;EACA;EACA;EACA,kBChHiB;EDiHjB;EACA;EACA;;;AAGF;EACE,kBC1EW;;;AD6Eb;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCvIc;EDwId;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA,kBChKiB;;;ADmKnB;EACE;EACA,kBCxHW;;;AD2Hb;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA,OC1IW;ED2IX,kBCzLgB;ED0LhB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,kBC1MgB;ED2MhB,OC5Mc;ED6Md;;;AAGF;EACE;EACA;EACA,kBCjNiB;;;ADoNnB;EACE;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AE/NF;EACE,YDmCM;EClCN;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cD2BM;EC1BN;EACA;;AAEA;EACE;EACA,cDSO;ECRP;;AAGF;EAEE;EACA,cDEO;;ACCT;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","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["scss/main.scss","scss/common/common.scss","scss/colors.scss","scss/common/widget-button.scss","scss/bar/menu.scss","scss/bar/audio.scss","scss/bar/media.scss","scss/bar/network.scss","scss/bar/bluetooth.scss","scss/bar/clock.scss","scss/bar/workspace.scss","scss/bar/window_title.scss","scss/bar/systray.scss","scss/bar/notifications.scss","scss/bar/power.scss","scss/bar/bar.scss","scss/menus/menu.scss","scss/menus/power.scss","scss/common/floating-widget.scss","scss/menus/audiomenu.scss","scss/menus/network.scss","scss/menus/bluetooth.scss","scss/menus/media.scss","scss/menus/notifications.scss","scss/notifications/popups.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;;ACJF;EACE;EACA;EACA,kBCFgB;EDGhB;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI,kBChBW;;ADkBf;EACE,OCnBa;;ADqBf;EACE;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA,kBC/Be;;;ADmCnB;EACE;EACA;EACA;EACA,OCvCiB;;;AD0CnB;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,kBC9DiB;ED+DjB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA,kBC9EgB;;;ADiFlB;AAAA;EAEE;EACA,kBCpFgB;;;ADuFlB;AAAA;AAAA;EAGE,OC1FgB;ED2FhB,kBC7CW;;;ADgDb;AAAA;AAAA;EAGE;EACA,kBCpDW;;;ADuDb;AAAA;AAAA;EAGE;EACA,kBC3DW;;;AD8Db;EACE;EACA;EACA;EACA;EACA,kBChHiB;EDiHjB;EACA;EACA;;;AAGF;EACE,kBC1EW;;;AD6Eb;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCvIc;EDwId;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA,kBChKiB;;;ADmKnB;EACE;EACA,kBCxHW;;;AD2Hb;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA,OC1IW;ED2IX,kBCzLgB;ED0LhB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,kBC1MgB;ED2MhB,OC5Mc;ED6Md;;;AAGF;EACE;EACA;EACA,kBCjNiB;;;ADoNnB;EACE;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AE/NF;EACE,YDmCM;EClCN;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cD2BM;EC1BN;EACA;;AAEA;EACE;EACA,cDSO;ECRP;;AAGF;EAEE;EACA,cDEO;;ACCT;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","file":"style.css"} \ No newline at end of file