From 63b5302fe03244a0775972696480b24d003b2999 Mon Sep 17 00:00:00 2001 From: Jas-SinghFSU Date: Mon, 1 Jul 2024 23:26:45 -0700 Subject: [PATCH] Implemented battery, power profile and brightness all in one menu --- modules/bar/battery/index.js | 51 +++++++++++++++++---- modules/bar/media/index.js | 4 +- modules/bar/network/index.js | 2 +- modules/menus/energy/brightness/index.js | 53 ++++++++++++++++++++++ modules/menus/energy/index.js | 25 ++++++++++ modules/menus/energy/profiles/index.js | 58 ++++++++++++++++++++++++ modules/menus/main.js | 14 +++++- modules/menus/network/ethernet/index.js | 2 +- scss/bar/battery.scss | 12 +++++ scss/main.scss | 2 + scss/menus/energy.scss | 47 +++++++++++++++++++ style.css | 50 +++++++++++++++++--- style.css.map | 2 +- 13 files changed, 301 insertions(+), 21 deletions(-) create mode 100644 modules/menus/energy/brightness/index.js create mode 100644 modules/menus/energy/index.js create mode 100644 modules/menus/energy/profiles/index.js create mode 100644 scss/bar/battery.scss create mode 100644 scss/menus/energy.scss diff --git a/modules/bar/battery/index.js b/modules/bar/battery/index.js index 763795e..3d3586d 100644 --- a/modules/bar/battery/index.js +++ b/modules/bar/battery/index.js @@ -1,9 +1,9 @@ const battery = await Service.import("battery"); +import { closeAllMenus } from "../bar.js"; const BatteryLabel = () => { const isVis = Variable(battery.available); - const value = battery.bind("percent").as((p) => (p > 0 ? p / 100 : 0)); const icon = battery .bind("percent") .as((p) => `battery-level-${Math.floor(p / 10) * 10}-symbolic`); @@ -12,23 +12,58 @@ const BatteryLabel = () => { isVis.value = available; }); + const formatTime = (seconds) => { + const hours = Math.floor(seconds / 3600); + const minutes = Math.floor((seconds % 3600) / 60); + return { hours, minutes }; + }; + + const generateTooltip = (timeSeconds, isCharging, isCharged) => { + if (isCharged) { + return "Fully Charged!!!"; + } + + const { hours, minutes } = formatTime(timeSeconds); + if (isCharging) { + return `${hours} hours ${minutes} minutes until full`; + } else { + return `${hours} hours ${minutes} minutes left`; + } + }; + return { component: Widget.Box({ class_name: "battery", visible: battery.bind("available"), + tooltip_text: battery.bind("time_remaining").as((t) => t.toString()), children: [ Widget.Icon({ icon }), Widget.Label({ - label: battery.bind("percent").as((p) => (`${p}%`)), - }) - // Widget.LevelBar({ - // widthRequest: 20, - // vpack: "center", - // value, - // }), + label: battery.bind("percent").as((p) => ` ${p}%`), + }), ], + setup: (self) => { + self.hook(battery, () => { + self.tooltip_text = generateTooltip( + battery.time_remaining, + battery.charging, + battery.charged, + ); + }); + }, }), isVis, + props: { + on_primary_click: (_, event) => { + const clickPos = event.get_root_coords(); + const coords = [clickPos[1], clickPos[2]]; + + globalMousePos.value = coords; + + closeAllMenus(); + App.toggleWindow("energymenu"); + }, + }, }; }; diff --git a/modules/bar/media/index.js b/modules/bar/media/index.js index a4f6dd4..7475431 100644 --- a/modules/bar/media/index.js +++ b/modules/bar/media/index.js @@ -50,7 +50,7 @@ const Media = () => { const songIcon = Variable(""); - const label = Utils.watch("󰎇 No media playing 󰎇", mpris, "changed", () => { + const label = Utils.watch("󰎇 Media 󰎇", mpris, "changed", () => { if (activePlayer.value) { const { track_title, identity } = activePlayer.value; songIcon.value = getIconForPlayer(identity); @@ -59,7 +59,7 @@ const Media = () => { : ` ${track_title}`; } else { songIcon.value = ""; - return "󰎇 No media playing 󰎇"; + return "󰎇 Media 󰎇"; } }); diff --git a/modules/bar/network/index.js b/modules/bar/network/index.js index dc0ee1b..3323d7f 100644 --- a/modules/bar/network/index.js +++ b/modules/bar/network/index.js @@ -11,7 +11,7 @@ const Network = () => { Widget.Label({ label: network.wifi .bind("ssid") - .as((ssid) => (ssid ? ` ${ssid}` : " Unknown")), + .as((ssid) => (ssid ? ` ${ssid}` : " --").substring(0, 7)), }), ]; diff --git a/modules/menus/energy/brightness/index.js b/modules/menus/energy/brightness/index.js new file mode 100644 index 0000000..600025d --- /dev/null +++ b/modules/menus/energy/brightness/index.js @@ -0,0 +1,53 @@ +import brightness from "../../../../services/Brightness.js"; +import icons from "../../../icons/index.js"; + +const Brightness = () => { + return Widget.Box({ + class_name: "menu-section-container brightness", + vertical: true, + children: [ + Widget.Box({ + class_name: "menu-label-container", + hpack: "fill", + child: Widget.Label({ + class_name: "menu-label", + hexpand: true, + hpack: "start", + label: "Brightness", + }), + }), + Widget.Box({ + class_name: "menu-items-section", + vpack: "fill", + vexpand: true, + vertical: true, + child: Widget.Box({ + class_name: "brightness-container", + children: [ + Widget.Icon({ + class_name: "brightness-slider-icon", + icon: icons.brightness.screen, + }), + Widget.Slider({ + value: brightness.bind("screen_value"), + class_name: "menu-active-slider menu-slider brightness", + draw_value: false, + hexpand: true, + min: 0, + max: 1, + onChange: ({ value }) => (brightness.screen_value = value), + }), + Widget.Label({ + class_name: "brightness-slider-label", + label: brightness + .bind("screen_value") + .as((b) => `${Math.floor(b * 100)}%`), + }), + ], + }), + }), + ], + }); +}; + +export { Brightness }; diff --git a/modules/menus/energy/index.js b/modules/menus/energy/index.js new file mode 100644 index 0000000..4411030 --- /dev/null +++ b/modules/menus/energy/index.js @@ -0,0 +1,25 @@ +import DropdownMenu from "../DropdownMenu.js"; +import { EnergyProfiles } from "./profiles/index.js"; +import { Brightness } from "./brightness/index.js"; + +export default () => { + return DropdownMenu({ + name: "energymenu", + transition: "crossfade", + child: Widget.Box({ + class_name: "menu-items", + hpack: "fill", + hexpand: true, + child: Widget.Box({ + vertical: true, + hpack: "fill", + hexpand: true, + class_name: "menu-items-container energy", + children: [ + Brightness(), + EnergyProfiles(), + ], + }), + }), + }); +}; diff --git a/modules/menus/energy/profiles/index.js b/modules/menus/energy/profiles/index.js new file mode 100644 index 0000000..e61b5cd --- /dev/null +++ b/modules/menus/energy/profiles/index.js @@ -0,0 +1,58 @@ +const powerProfiles = await Service.import("powerprofiles"); +import icons from "../../../icons/index.js"; + +const EnergyProfiles = () => { + return Widget.Box({ + class_name: "menu-section-container", + vertical: true, + children: [ + Widget.Box({ + class_name: "menu-label-container", + hpack: "fill", + child: Widget.Label({ + class_name: "menu-label", + hexpand: true, + hpack: "start", + label: "Power Profile", + }), + }), + Widget.Box({ + class_name: "menu-items-section", + vpack: "fill", + vexpand: true, + vertical: true, + children: powerProfiles.bind("profiles").as((profiles) => { + return profiles.map((prof) => { + const ProfileLabels = { + "power-saver": "Power Saver", + balanced: "Balanced", + performance: "Performance", + }; + return Widget.Button({ + on_primary_click: () => { + powerProfiles.active_profile = prof.Profile; + }, + class_name: powerProfiles.bind("active_profile").as((active) => { + return `power-profile-item ${active === prof.Profile ? "active" : ""}`; + }), + child: Widget.Box({ + children: [ + Widget.Icon({ + class_name: "power-profile-icon", + icon: icons.powerprofile[prof.Profile], + }), + Widget.Label({ + class_name: "power-profile-label", + label: ProfileLabels[prof.Profile], + }), + ], + }), + }); + }); + }), + }), + ], + }); +}; + +export { EnergyProfiles }; diff --git a/modules/menus/main.js b/modules/menus/main.js index 593f721..9185ca2 100644 --- a/modules/menus/main.js +++ b/modules/menus/main.js @@ -6,5 +6,15 @@ import BluetoothMenu from "./bluetooth/index.js"; import MediaMenu from "./media/index.js"; import NotificationsMenu from "./notifications/index.js"; import CalendarMenu from "./calendar/index.js"; - -export default [PowerMenu(), Verification(), AudioMenu(), NetworkMenu(), BluetoothMenu(), MediaMenu(), NotificationsMenu(), CalendarMenu()]; +import EnergyMenu from "./energy/index.js"; +export default [ + PowerMenu(), + Verification(), + AudioMenu(), + NetworkMenu(), + BluetoothMenu(), + MediaMenu(), + NotificationsMenu(), + CalendarMenu(), + EnergyMenu(), +]; diff --git a/modules/menus/network/ethernet/index.js b/modules/menus/network/ethernet/index.js index 0cf169d..a5b3304 100644 --- a/modules/menus/network/ethernet/index.js +++ b/modules/menus/network/ethernet/index.js @@ -41,7 +41,7 @@ const Ethernet = () => { hpack: "start", truncate: "end", wrap: true, - label: `Ethernet Connection ${typeof wired.speed === "number" ? `(${wired.speed / 1000} Gbps)` : ""}`, + label: `Ethernet Connection ${wired.state !== "unknown" && typeof wired?.speed === "number" ? `(${wired?.speed / 1000} Gbps)` : ""}`, }), Widget.Label({ hpack: "start", diff --git a/scss/bar/battery.scss b/scss/bar/battery.scss new file mode 100644 index 0000000..fa4f9dd --- /dev/null +++ b/scss/bar/battery.scss @@ -0,0 +1,12 @@ +@import '../colors'; + +.bar { + .battery { + label { + color: $yellow; + } + image { + color: $yellow; + } + } +} diff --git a/scss/main.scss b/scss/main.scss index b1dcd19..319e85d 100644 --- a/scss/main.scss +++ b/scss/main.scss @@ -24,6 +24,7 @@ @import "bar/notifications"; @import "bar/power"; @import "bar/bar"; +@import "bar/battery"; //modules - menus @import "menus/menu"; @@ -34,6 +35,7 @@ @import "menus/media"; @import "menus/notifications"; @import "menus/calendar"; +@import "menus/energy"; //notifications @import "notifications/popups"; diff --git a/scss/menus/energy.scss b/scss/menus/energy.scss new file mode 100644 index 0000000..94e8339 --- /dev/null +++ b/scss/menus/energy.scss @@ -0,0 +1,47 @@ +@import "../colors"; + +.menu-items-container.energy { + .menu-label { + color: $yellow; + } + + .power-profile-item { + margin-bottom: 0.5em; + + label { + margin-left: 1em; + } + + image { + font-size: 1.3em; + min-width: 1em; + min-height: 1em; + + color: $overlay1; + } + + &:hover { + label { + color: $yellow; + } + } + + &.active { + image { + color: $yellow; + } + } + } + .menu-active-slider.brightness { + trough { + highlight, + progress { + background: $yellow; + } + } + } + + .brightness-container { + padding-bottom: 1em; + } +} diff --git a/style.css b/style.css index 71db150..dbac860 100644 --- a/style.css +++ b/style.css @@ -1,7 +1,7 @@ * { all: unset; font-family: "Ubuntu Nerd Font"; - font-size: 1.175rem; + font-size: 1.1rem; font-weight: 600; } @@ -428,6 +428,13 @@ spinner:checked { margin-right: 1.9rem; } +.bar .battery label { + color: #f9e2af; +} +.bar .battery image { + color: #f9e2af; +} + .menu-slider trough { border-radius: 0.3rem; background: #313244; @@ -498,13 +505,13 @@ tooltip label { background: #11111b; border: 0.13em solid #313244; border-radius: 0.7rem; - min-width: 400px; + min-width: 250px; color: #cdd6f4; } .menu-items-container { border-radius: 0.4em; - min-width: 400px; + min-width: 250px; } .menu-section-container { @@ -1071,14 +1078,13 @@ window#powermenu .powermenu.box { .menu-content-container.notifications { margin: 1.35em; - margin-bottom: 0em; min-height: 4em; } .notification-menu-controls { background: #1e1e2e; margin: 1em 1.3em; - margin-bottom: 0.5em; + margin-bottom: 0em; border-radius: 0.4em; padding: 0.4em 0.75em; } @@ -1090,7 +1096,10 @@ window#powermenu .powermenu.box { margin: 0em; } -.notification-card-content-container { +.notification-card-content-container:first-child { + margin-top: 0.5em; +} +.notification-card-content-container:not(:last-child) { margin-bottom: 1em; } @@ -1270,6 +1279,35 @@ window#powermenu .powermenu.box { color: #f5c2e7; } +.menu-items-container.energy .menu-label { + color: #f9e2af; +} +.menu-items-container.energy .power-profile-item { + margin-bottom: 0.5em; +} +.menu-items-container.energy .power-profile-item label { + margin-left: 1em; +} +.menu-items-container.energy .power-profile-item image { + font-size: 1.3em; + min-width: 1em; + min-height: 1em; + color: #7f849c; +} +.menu-items-container.energy .power-profile-item:hover label { + color: #f9e2af; +} +.menu-items-container.energy .power-profile-item.active image { + color: #f9e2af; +} +.menu-items-container.energy .menu-active-slider.brightness trough highlight, +.menu-items-container.energy .menu-active-slider.brightness trough progress { + background: #f9e2af; +} +.menu-items-container.energy .brightness-container { + padding-bottom: 1em; +} + .notification-card-container { margin-top: 3.5rem; } diff --git a/style.css.map b/style.css.map index fbd0cd3..ca53623 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/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/menus/calendar.scss","scss/notifications/popups.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;;ACFF;EACE;EACA;EACA,kBCJgB;EDKhB;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI,kBClBW;;ADoBf;EACE,OCrBa;;ADuBf;EACE;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA,kBCjCe;;;ADqCnB;EACE;EACA;EACA;EACA,OCzCiB;;;AD4CnB;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,kBChEiB;EDiEjB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA,kBChFgB;;;ADmFlB;AAAA;EAEE;EACA,kBCtFgB;;;ADyFlB;AAAA;AAAA;EAGE,OC5FgB;ED6FhB,kBC9CW;;;ADiDb;AAAA;AAAA;EAGE;EACA,kBCrDW;;;ADwDb;AAAA;AAAA;EAGE;EACA,kBC5DW;;;AD+Db;EACE;EACA;EACA;EACA;EACA,kBClHiB;EDmHjB;EACA;EACA;;;AAGF;EACE,kBC3EW;;;AD8Eb;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCzIc;ED0Id;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA,kBClKiB;;;ADqKnB;EACE;EACA,kBCzHW;;;AD4Hb;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA,OC3IW;ED4IX,kBC3LgB;ED4LhB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,kBCnKM;EDoKN,OChLK;EDiLL;;;AAGF;EACE;EACA;EACA,kBCnNiB;;;ADsNnB;EACE;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AEjOF;EACE,YDoCM;ECnCN;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cD4BM;EC3BN;EACA;;AAEA;EACE;EACA,cDSO;ECRP;;AAGF;EAEE;EACA,cDEO;;ACCT;EA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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/bar/battery.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/menus/calendar.scss","scss/menus/energy.scss","scss/notifications/popups.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;;;ACFF;EACE;EACA;EACA,kBCJgB;EDKhB;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI,kBClBW;;ADoBf;EACE,OCrBa;;ADuBf;EACE;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA,kBCjCe;;;ADqCnB;EACE;EACA;EACA;EACA,OCzCiB;;;AD4CnB;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA,kBChEiB;EDiEjB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA,kBChFgB;;;ADmFlB;AAAA;EAEE;EACA,kBCtFgB;;;ADyFlB;AAAA;AAAA;EAGE,OC5FgB;ED6FhB,kBC9CW;;;ADiDb;AAAA;AAAA;EAGE;EACA,kBCrDW;;;ADwDb;AAAA;AAAA;EAGE;EACA,kBC5DW;;;AD+Db;EACE;EACA;EACA;EACA;EACA,kBClHiB;EDmHjB;EACA;EACA;;;AAGF;EACE,kBC3EW;;;AD8Eb;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBCzIc;ED0Id;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA,kBClKiB;;;ADqKnB;EACE;EACA,kBCzHW;;;AD4Hb;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA,OC3IW;ED4IX,kBC3LgB;ED4LhB;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE,kBCnKM;EDoKN,OChLK;EDiLL;;;AAGF;EACE;EACA;EACA,kBCnNiB;;;ADsNnB;EACE;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AEjOF;EACE,YDoCM;ECnCN;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cD4BM;EC3BN;EACA;;AAEA;EACE;EACA,cDSO;ECRP;;AAGF;EAEE;EACA,cDEO;;ACCT;EA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","file":"style.css"} \ No newline at end of file