Files
custum-hyprpanel/lib/types/bar.d.ts
Jas Singh 4cdda38604 Implement framework for custom modules and out of the box custom modules as well. (#213)
* Create declarative module scaffolding

* Added ram module (WIP)

* Updates to options, styling and more.

* Added function for styling custom modules.

* Added utility functions and cleaned up code

* Type and fn name updates.

* Update module utils to handle absent values.

* Added icon color in style2 that was missing.

* Linted utils.ts

* Add CPU module and update RAM module to use /proc/meminfo.

* Added disk storage module.

* Consolidate code

* Added netstat module and removed elements from systray default ignore list.

* Added keyboard layout module.

* Fix hook types and move module to customModules directory

* Added updates modules.

* Spacing updates

* Added weather module.

* Added power menu and power module in bar. Increased update default interval to 6 ours.

* Updated styling of bar buttons, made power menu label toggleable, etc.

* Consolidate code and add dynamic tooltips based on data being used.

* Make default custom mogules matugen compatible

* Update base theme

* Fix custom module background coloring

* Remove testing opacity.

* Update themes to account for new modules

* Update nix stuff for libgtop (Need someone to test this)

* Update nix

* Update fractions to multiplications

* Move styling in style directory

* Implement a polling framework for variables that can dynamically adjust polling intervals.

* Netstat module updates when interface name is changed.

* Readme update
2024-09-02 21:10:59 -07:00

44 lines
1.4 KiB
TypeScript

import { Binding, Connectable } from "types/service"
import { Variable } from "types/variable"
import Box from "types/widgets/box";
import Label from "types/widgets/label";
import { Widget as WidgetType } from "types/widgets/widget"
export type Child = {
component: Box<Gtk.Widget, unknown>;
isVisible?: boolean;
isVis?: Variable<boolean>;
boxClass: string;
props: ButtonProps;
};
export type BoxHook = (self: Box<Gtk.Widget, Gtk.Widget>) => void;
export type LabelHook = (self: Label<Gtk.Widget>) => void;
export type Module = {
icon?: string | Binding<string>,
textIcon?: string | Binding<string>,
label?: string | Binding<string>,
labelHook?: LabelHook,
boundLabel?: string,
tooltipText?: string | Binding<string>,
boxClass: string,
props?: ButtonProps,
showLabel?: boolean,
showLabelBinding?: Binding,
hook?: BoxHook,
connection?: Binding<Connectable>
}
export type ResourceLabelType = "used/total" | "used" | "percentage" | "free";
export type StorageIcon = "󰋊" | "" | "󱛟" | "" | "" | "";
export type NetstatIcon = "󰖟" | "󰇚" | "󰕒" | "󰛳" | "" | "󰣺" | "󰖩" | "" | "󰈀";
export type NetstatLabelType = "full" | "in" | "out";
export type RateUnit = "GiB" | "MiB" | "KiB" | "auto";
export type UpdatesIcon = "󰚰" | "󰇚" | "" | "󱑢" | "󱑣" | "󰏖" | "" | "󰏔" | "󰏗";
export type PowerIcon = "" | "" | "󰍃" | "󰿅" | "󰒲" | "󰤄";