Fixed systray icons to have reactive sizing and volume icon to properly change when muted/unmuted.

This commit is contained in:
Jas Singh
2024-06-18 01:48:10 -07:00
parent d2d5d82ff1
commit ca488f4fb6
13 changed files with 50 additions and 29 deletions

View File

@@ -7,7 +7,8 @@ import { Volume } from "./volume/index.js";
import { Network } from "./network/index.js"; import { Network } from "./network/index.js";
import { Bluetooth } from "./bluetooth/index.js"; import { Bluetooth } from "./bluetooth/index.js";
import { BatteryLabel } from "./battery/index.js"; import { BatteryLabel } from "./battery/index.js";
import { Clock } from "./clock/index.js"; import { SysTray } from "./systray/index.js"; import { Clock } from "./clock/index.js";
import { SysTray } from "./systray/index.js";
import { Power } from "./power/index.js"; import { Power } from "./power/index.js";
import { BarItemBox } from "../shared/barItemBox.js"; import { BarItemBox } from "../shared/barItemBox.js";

View File

@@ -13,8 +13,8 @@ const SysTray = () => {
return Widget.Button({ return Widget.Button({
cursor: "pointer", cursor: "pointer",
child: Widget.Icon({ child: Widget.Icon({
class_name: "systray-icon",
icon: item.bind("icon"), icon: item.bind("icon"),
size: 18,
}), }),
on_primary_click: (_, event) => item.activate(event), on_primary_click: (_, event) => item.activate(event),
on_secondary_click: (_, event) => item.openMenu(event), on_secondary_click: (_, event) => item.openMenu(event),

View File

@@ -12,17 +12,22 @@ const Volume = () => {
}; };
const getIcon = () => { const getIcon = () => {
const icon = audio.speaker.is_muted const icon = Utils.merge(
[audio.speaker.bind("is_muted"), audio.speaker.bind("volume")],
(isMuted, vol) => {
return isMuted
? 0 ? 0
: [101, 66, 34, 1, 0].find( : [101, 66, 34, 1, 0].find((threshold) => threshold <= vol * 100);
(threshold) => threshold <= audio.speaker.volume * 100, },
); );
return icons[icon]; console.log(icon);
return icon.as((i) => icons[i]);
}; };
const volIcn = Widget.Label({ const volIcn = Widget.Label({
label: audio.speaker.bind("volume").as(() => getIcon()), label: getIcon(),
class_name: "bar-volume_icon", class_name: "bar-volume_icon",
}); });

View File

@@ -9,7 +9,7 @@ export const Padding = (name) =>
setup: (w) => w.on("button-press-event", () => App.toggleWindow(name)), setup: (w) => w.on("button-press-event", () => App.toggleWindow(name)),
}); });
const moveBoxToCursor = (self, minWidth, minHeight) => { const moveBoxToCursor = (self, minWidth, minHeight, fixed) => {
globalMousePos.connect("changed", ({ value }) => { globalMousePos.connect("changed", ({ value }) => {
let monWidth = hyprland.monitors[hyprland.active.monitor.id].width; let monWidth = hyprland.monitors[hyprland.active.monitor.id].width;
let monHeight = hyprland.monitors[hyprland.active.monitor.id].height; let monHeight = hyprland.monitors[hyprland.active.monitor.id].height;
@@ -19,7 +19,8 @@ const moveBoxToCursor = (self, minWidth, minHeight) => {
[monWidth, monHeight] = [monHeight, monWidth]; [monWidth, monHeight] = [monHeight, monWidth];
} }
let marginRight = monWidth - value[0] - minWidth / 2; let marginRight = monWidth - minWidth / 2;
marginRight = fixed ? marginRight - monWidth / 2 : marginRight - value[0];
let marginLeft = monWidth - minWidth - marginRight; let marginLeft = monWidth - minWidth - marginRight;
if (marginRight < 0) { if (marginRight < 0) {
@@ -46,6 +47,7 @@ export default ({
minWidth = 375, minWidth = 375,
minHeight = 200, minHeight = 200,
exclusivity = "ignore", exclusivity = "ignore",
fixed = false,
...props ...props
}) => }) =>
Widget.Window({ Widget.Window({
@@ -68,7 +70,7 @@ export default ({
return true; return true;
}, },
setup: (self) => { setup: (self) => {
moveBoxToCursor(self, minWidth, minHeight); moveBoxToCursor(self, minWidth, minHeight, fixed);
}, },
child: Widget.Box({ child: Widget.Box({
css: "padding: 1px; margin: -1px;", css: "padding: 1px; margin: -1px;",

View File

@@ -2,6 +2,9 @@ const audio = await Service.import("audio");
import DropdownMenu from "../DropdownMenu.js"; import DropdownMenu from "../DropdownMenu.js";
export default () => { export default () => {
audio.connect("changed", val => {
// console.log(JSON.stringify(val, null, 2));
})
const renderPlaybacks = (playbackDevices) => { const renderPlaybacks = (playbackDevices) => {
return playbackDevices.map((device) => { return playbackDevices.map((device) => {
if (device.description === "Dummy Output") { if (device.description === "Dummy Output") {

View File

@@ -5,10 +5,12 @@ export default () => {
return DropdownMenu({ return DropdownMenu({
name: "mediamenu", name: "mediamenu",
transition: "crossfade", transition: "crossfade",
fixed: true,
child: Widget.Box({ child: Widget.Box({
class_name: "menu-items", class_name: "menu-items",
child: Widget.Box({ child: Widget.Box({
vertical: true, vertical: true,
hexpand: true,
class_name: "menu-items-container", class_name: "menu-items-container",
children: [ children: [
Widget.Box({ Widget.Box({

View File

@@ -1,7 +1,7 @@
@import '../colors'; @import '../colors';
.bar-volume_icon { .bar-volume_icon {
font-size: 1.3rem; font-size: 1.3em;
color: $peach; color: $peach;
} }

View File

@@ -1,7 +1,7 @@
@import '../colors'; @import '../colors';
.bar-bt_icon { .bar-bt_icon {
font-size: 1.3rem; font-size: 1.2em;
color: $sky; color: $sky;
} }

View File

@@ -6,6 +6,6 @@
} }
.bar-media_icon { .bar-media_icon {
font-size: 1.3rem; font-size: 1.2em;
color: $green; color: $green;
} }

View File

@@ -24,3 +24,7 @@
.systray-menu check:checked { .systray-menu check:checked {
background-color: $lavender; background-color: $lavender;
} }
.systray-icon {
font-size: 1.3em;
}

View File

@@ -3,8 +3,8 @@
.workspaces { .workspaces {
label { label {
font-size: 0rem; font-size: 0rem;
min-width: 0.9rem; min-width: 1rem;
min-height: 0.9rem; min-height: 1rem;
border-radius: 1.9rem * .6; border-radius: 1.9rem * .6;
margin: 0rem 0.5rem * .5; margin: 0rem 0.5rem * .5;
transition: 300ms * .5; transition: 300ms * .5;
@@ -12,14 +12,14 @@
&.occupied { &.occupied {
background-color: $yellow; background-color: $yellow;
min-width: 0.9rem; min-width: 1rem;
min-height: 0.9rem; min-height: 1rem;
} }
&.active { &.active {
background-color: $sky; background-color: $sky;
min-width: 2.2rem; min-width: 2.2rem;
min-height: 0.9rem; min-height: 1rem;
} }
} }
} }

View File

@@ -281,7 +281,7 @@ spinner:checked {
} }
.bar-volume_icon { .bar-volume_icon {
font-size: 1.3rem; font-size: 1.3em;
color: #fab387; color: #fab387;
} }
@@ -295,7 +295,7 @@ spinner:checked {
} }
.bar-media_icon { .bar-media_icon {
font-size: 1.3rem; font-size: 1.2em;
color: #a6e3a1; color: #a6e3a1;
} }
@@ -304,7 +304,7 @@ spinner:checked {
} }
.bar-bt_icon { .bar-bt_icon {
font-size: 1.3rem; font-size: 1.2em;
color: #89dceb; color: #89dceb;
} }
@@ -329,8 +329,8 @@ spinner:checked {
.workspaces label { .workspaces label {
font-size: 0rem; font-size: 0rem;
min-width: 0.9rem; min-width: 1rem;
min-height: 0.9rem; min-height: 1rem;
border-radius: 1.14rem; border-radius: 1.14rem;
margin: 0rem 0.25rem; margin: 0rem 0.25rem;
transition: 150ms; transition: 150ms;
@@ -338,13 +338,13 @@ spinner:checked {
} }
.workspaces label.occupied { .workspaces label.occupied {
background-color: #f9e2af; background-color: #f9e2af;
min-width: 0.9rem; min-width: 1rem;
min-height: 0.9rem; min-height: 1rem;
} }
.workspaces label.active { .workspaces label.active {
background-color: #89dceb; background-color: #89dceb;
min-width: 2.2rem; min-width: 2.2rem;
min-height: 0.9rem; min-height: 1rem;
} }
.workspaces label:not(:first-child) { .workspaces label:not(:first-child) {
@@ -381,6 +381,10 @@ spinner:checked {
background-color: #b4befe; background-color: #b4befe;
} }
.systray-icon {
font-size: 1.3em;
}
.bar-power_label { .bar-power_label {
color: #f38ba8; color: #f38ba8;
margin-right: 0.2rem; margin-right: 0.2rem;

View File

@@ -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/bluetooth.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"} {"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/bluetooth.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"}