💥 ags(control-center/tiles): hide tiles if its dependencies aren't installed

This commit is contained in:
retrozinndev
2025-05-17 19:11:15 -03:00
parent 086fb0bf96
commit b7c2fc7471
2 changed files with 26 additions and 18 deletions
+22 -18
View File
@@ -4,22 +4,26 @@ import { NightLight } from "../../../scripts/nightlight";
import { PageNightLight } from "../pages/NightLight";
import { tr } from "../../../i18n/intl";
import { TilesPages } from "../Tiles";
import { isInstalled } from "../../../scripts/utils";
import { Widget } from "astal/gtk3";
export const TileNightLight = Tile({
title: tr("control_center.tiles.night_light.title"),
icon: "󰖔",
description: Variable.derive([
bind(NightLight.getDefault(), "temperature"),
bind(NightLight.getDefault(), "gamma")
], (temp, gamma) =>
(temp === 6000 ? tr("control_center.tiles.night_light.default_desc")
: `${temp}K`) + (gamma < NightLight.getDefault().maxGamma ?
` (${gamma}%)` : "")
)(),
iconSize: 16,
onToggledOff: () => NightLight.getDefault().identity = true,
onToggledOn: () => NightLight.getDefault().identity = false,
enableOnClickMore: true,
onClickMore: () => TilesPages?.toggle(PageNightLight()),
toggleState: bind(NightLight.getDefault(), "identity").as(identity => !identity)
} as TileProps);
export const TileNightLight = () => isInstalled("hyprsunset") ?
Tile({
title: tr("control_center.tiles.night_light.title"),
icon: "󰖔",
description: Variable.derive([
bind(NightLight.getDefault(), "temperature"),
bind(NightLight.getDefault(), "gamma")
], (temp, gamma) =>
(temp === 6000 ? tr("control_center.tiles.night_light.default_desc")
: `${temp}K`) + (gamma < NightLight.getDefault().maxGamma ?
` (${gamma}%)` : "")
)(),
iconSize: 16,
onToggledOff: () => NightLight.getDefault().identity = true,
onToggledOn: () => NightLight.getDefault().identity = false,
enableOnClickMore: true,
onClickMore: () => TilesPages?.toggle(PageNightLight()),
toggleState: bind(NightLight.getDefault(), "identity").as(identity => !identity)
} as TileProps)()
: new Widget.Box({ visible: false } as Widget.BoxProps);
@@ -3,6 +3,9 @@ import { Recording } from "../../../scripts/recording";
import { bind, Variable } from "astal";
import { tr } from "../../../i18n/intl";
import { getDateTime } from "../../../scripts/time";
import { isInstalled } from "../../../scripts/utils";
const wfRecorderInstalled = isInstalled("wf-recorder");
export const TileRecording = Tile({
title: tr("control_center.tiles.recording.title") || "Screen Recording",
@@ -25,6 +28,7 @@ export const TileRecording = Tile({
}:${ seconds < 10 ? `0${seconds}` : seconds }`;
})(),
icon: "󰻂",
visible: wfRecorderInstalled,
onToggledOff: () => Recording.getDefault().stopRecording(),
onToggledOn: () => Recording.getDefault().startRecording(),
toggleState: bind(Recording.getDefault(), "recording"),