💥 ags(control-center/tiles): hide tiles if its dependencies aren't installed
This commit is contained in:
@@ -4,22 +4,26 @@ import { NightLight } from "../../../scripts/nightlight";
|
|||||||
import { PageNightLight } from "../pages/NightLight";
|
import { PageNightLight } from "../pages/NightLight";
|
||||||
import { tr } from "../../../i18n/intl";
|
import { tr } from "../../../i18n/intl";
|
||||||
import { TilesPages } from "../Tiles";
|
import { TilesPages } from "../Tiles";
|
||||||
|
import { isInstalled } from "../../../scripts/utils";
|
||||||
|
import { Widget } from "astal/gtk3";
|
||||||
|
|
||||||
export const TileNightLight = Tile({
|
export const TileNightLight = () => isInstalled("hyprsunset") ?
|
||||||
title: tr("control_center.tiles.night_light.title"),
|
Tile({
|
||||||
icon: "",
|
title: tr("control_center.tiles.night_light.title"),
|
||||||
description: Variable.derive([
|
icon: "",
|
||||||
bind(NightLight.getDefault(), "temperature"),
|
description: Variable.derive([
|
||||||
bind(NightLight.getDefault(), "gamma")
|
bind(NightLight.getDefault(), "temperature"),
|
||||||
], (temp, gamma) =>
|
bind(NightLight.getDefault(), "gamma")
|
||||||
(temp === 6000 ? tr("control_center.tiles.night_light.default_desc")
|
], (temp, gamma) =>
|
||||||
: `${temp}K`) + (gamma < NightLight.getDefault().maxGamma ?
|
(temp === 6000 ? tr("control_center.tiles.night_light.default_desc")
|
||||||
` (${gamma}%)` : "")
|
: `${temp}K`) + (gamma < NightLight.getDefault().maxGamma ?
|
||||||
)(),
|
` (${gamma}%)` : "")
|
||||||
iconSize: 16,
|
)(),
|
||||||
onToggledOff: () => NightLight.getDefault().identity = true,
|
iconSize: 16,
|
||||||
onToggledOn: () => NightLight.getDefault().identity = false,
|
onToggledOff: () => NightLight.getDefault().identity = true,
|
||||||
enableOnClickMore: true,
|
onToggledOn: () => NightLight.getDefault().identity = false,
|
||||||
onClickMore: () => TilesPages?.toggle(PageNightLight()),
|
enableOnClickMore: true,
|
||||||
toggleState: bind(NightLight.getDefault(), "identity").as(identity => !identity)
|
onClickMore: () => TilesPages?.toggle(PageNightLight()),
|
||||||
} as TileProps);
|
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 { bind, Variable } from "astal";
|
||||||
import { tr } from "../../../i18n/intl";
|
import { tr } from "../../../i18n/intl";
|
||||||
import { getDateTime } from "../../../scripts/time";
|
import { getDateTime } from "../../../scripts/time";
|
||||||
|
import { isInstalled } from "../../../scripts/utils";
|
||||||
|
|
||||||
|
const wfRecorderInstalled = isInstalled("wf-recorder");
|
||||||
|
|
||||||
export const TileRecording = Tile({
|
export const TileRecording = Tile({
|
||||||
title: tr("control_center.tiles.recording.title") || "Screen Recording",
|
title: tr("control_center.tiles.recording.title") || "Screen Recording",
|
||||||
@@ -25,6 +28,7 @@ export const TileRecording = Tile({
|
|||||||
}:${ seconds < 10 ? `0${seconds}` : seconds }`;
|
}:${ seconds < 10 ? `0${seconds}` : seconds }`;
|
||||||
})(),
|
})(),
|
||||||
icon: "",
|
icon: "",
|
||||||
|
visible: wfRecorderInstalled,
|
||||||
onToggledOff: () => Recording.getDefault().stopRecording(),
|
onToggledOff: () => Recording.getDefault().stopRecording(),
|
||||||
onToggledOn: () => Recording.getDefault().startRecording(),
|
onToggledOn: () => Recording.getDefault().startRecording(),
|
||||||
toggleState: bind(Recording.getDefault(), "recording"),
|
toggleState: bind(Recording.getDefault(), "recording"),
|
||||||
|
|||||||
Reference in New Issue
Block a user