From 2541edd0f4e1a7aecbeeaf62f7820676d83b688b Mon Sep 17 00:00:00 2001 From: Makesesama Date: Sun, 4 May 2025 20:38:00 +0200 Subject: [PATCH] add icon --- bar/bar.css | 4 + bar/bar.py | 7 +- bar/modules/icons.py | 176 ++++++++++++++ bar/modules/power.py | 112 +++++++++ bar/test.py | 122 ---------- bar/utils/icons.py | 550 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 847 insertions(+), 124 deletions(-) create mode 100644 bar/modules/icons.py create mode 100644 bar/modules/power.py delete mode 100644 bar/test.py create mode 100644 bar/utils/icons.py diff --git a/bar/bar.css b/bar/bar.css index 13a61ad..13a0a44 100644 --- a/bar/bar.css +++ b/bar/bar.css @@ -159,6 +159,10 @@ menu>menuitem:hover { padding: 2px; } +#nixos-label { + color: var(--blue); +} + tooltip { border: solid 2px; border-color: var(--border-color); diff --git a/bar/bar.py b/bar/bar.py index 0e9efce..20e0d9c 100644 --- a/bar/bar.py +++ b/bar/bar.py @@ -137,9 +137,12 @@ class StatusBar(Window): name="bar-inner", start_children=Box( name="start-container", - spacing=4, + spacing=6, orientation="h", - children=self.workspaces, + children=[ + Label(name="nixos-label", markup=""), + self.workspaces, + ], ), center_children=Box( name="center-container", diff --git a/bar/modules/icons.py b/bar/modules/icons.py new file mode 100644 index 0000000..ebabef4 --- /dev/null +++ b/bar/modules/icons.py @@ -0,0 +1,176 @@ +# Parameters +font_family: str = "tabler-icons" +font_weight: str = "normal" + +span: str = f"" + +# Panels +apps: str = "" +dashboard: str = "" +chat: str = "" +wallpapers: str = "" +windows: str = "" + +# Bar +colorpicker: str = "" +media: str = "" + +# Toolbox + +toolbox: str = "" +ssfull: str = "" +ssregion: str = "" +sswindow: str = "" +screenshots: str = "" +screenrecord: str = "" +recordings: str = "" +ocr: str = "ﳃ" +gamemode: str = "" +gamemode_off: str = "" +close: str = "" + +# Circles +temp: str = "" +disk: str = "" +battery: str = "" +memory: str = "流" +cpu: str = "" +gpu: str = "" + +# AIchat +reload: str = "" +detach: str = "" + +# Wallpapers +add: str = "" +sort: str = "" +circle: str = "" + +# Chevrons +chevron_up: str = "" +chevron_down: str = "" +chevron_left: str = "" +chevron_right: str = "" + +# Power +lock: str = "" +suspend: str = "" +logout: str = "" +reboot: str = "" +shutdown: str = "" + +# Power Manager +power_saving: str = "" +power_balanced: str = "勺" +power_performance: str = "" +charging: str = "" +discharging: str = "" +alert: str = "" +bat_charging: str = "" +bat_discharging: str = "" +bat_low: str = "=" +bat_full: str = "" + + +# Applets +wifi_0: str = "" +wifi_1: str = "" +wifi_2: str = "" +wifi_3: str = "" +world: str = "" +world_off: str = "" +bluetooth: str = "" +night: str = "" +coffee: str = "" +notifications: str = "" + +wifi_off: str = "" +bluetooth_off: str = "" +night_off: str = "" +notifications_off: str = "" + +notifications_clear: str = "" +download: str = "" +upload: str = "" + +# Bluetooth +bluetooth_connected: str = "" +bluetooth_disconnected: str = "" + +# Player +pause: str = "" +play: str = "" +stop: str = "" +skip_back: str = "" +skip_forward: str = "" +prev: str = "" +next: str = "" +shuffle: str = "" +repeat: str = "" +music: str = "" +rewind_backward_5: str = "謹" +rewind_forward_5: str = "難" + +# Volume +vol_off: str = "" +vol_mute: str = "" +vol_medium: str = "" +vol_high: str = "" + +mic: str = "" +mic_mute: str = "" + +# Overview +circle_plus: str = "" + +# Pins +paperclip: str = "" + +# Clipboard Manager +clipboard: str = "" +clip_text: str = "" + +# Confirm +accept: str = "" +cancel: str = "" +trash: str = "" + +# Config +config: str = "" + +# Icons +firefox: str = "" +chromium: str = "" +spotify: str = "ﺆ" +disc: str = "𐀾" +disc_off: str = "" + +# Brightness +brightness_low: str = "" +brightness_medium: str = "" +brightness_high: str = "" + +# Misc +dot: str = "" +palette: str = "" +cloud_off: str = "" +loader: str = "" +radar: str = "" +emoji: str = "" +keyboard: str = "" +terminal: str = "" +timer_off: str = "" +timer_on: str = "" +spy: str = "" + +exceptions: list[str] = ["font_family", "font_weight", "span"] + + +def apply_span() -> None: + global_dict = globals() + for key in global_dict: + if key not in exceptions and not key.startswith("__"): + global_dict[key] = f"{span}{global_dict[key]}" + + +apply_span() diff --git a/bar/modules/power.py b/bar/modules/power.py new file mode 100644 index 0000000..03394f3 --- /dev/null +++ b/bar/modules/power.py @@ -0,0 +1,112 @@ +from fabric.widgets.box import Box +from fabric.widgets.label import Label +from fabric.widgets.button import Button +from fabric.utils.helpers import exec_shell_command_async +import modules.icons as icons + + +class PowerMenu(Box): + def __init__(self, **kwargs): + super().__init__( + name="power-menu", + orientation="h", + spacing=4, + v_align="center", + h_align="center", + visible=True, + **kwargs, + ) + + self.notch = kwargs["notch"] + + self.btn_lock = Button( + name="power-menu-button", + child=Label(name="button-label", markup=icons.lock), + on_clicked=self.lock, + h_expand=False, + v_expand=False, + h_align="center", + v_align="center", + ) + + self.btn_suspend = Button( + name="power-menu-button", + child=Label(name="button-label", markup=icons.suspend), + on_clicked=self.suspend, + h_expand=False, + v_expand=False, + h_align="center", + v_align="center", + ) + + self.btn_logout = Button( + name="power-menu-button", + child=Label(name="button-label", markup=icons.logout), + on_clicked=self.logout, + h_expand=False, + v_expand=False, + h_align="center", + v_align="center", + ) + + self.btn_reboot = Button( + name="power-menu-button", + child=Label(name="button-label", markup=icons.reboot), + on_clicked=self.reboot, + h_expand=False, + v_expand=False, + h_align="center", + v_align="center", + ) + + self.btn_shutdown = Button( + name="power-menu-button", + child=Label(name="button-label", markup=icons.shutdown), + on_clicked=self.poweroff, + h_expand=False, + v_expand=False, + h_align="center", + v_align="center", + ) + + self.buttons = [ + self.btn_lock, + self.btn_suspend, + self.btn_logout, + self.btn_reboot, + self.btn_shutdown, + ] + + for button in self.buttons: + self.add(button) + + self.show_all() + + def close_menu(self): + self.notch.close_notch() + + # Métodos de acción + def lock(self, *args): + print("Locking screen...") + exec_shell_command_async("loginctl lock-session") + self.close_menu() + + def suspend(self, *args): + print("Suspending system...") + exec_shell_command_async("systemctl suspend") + self.close_menu() + + def logout(self, *args): + print("Logging out...") + exec_shell_command_async("hyprctl dispatch exit") + self.close_menu() + + def reboot(self, *args): + print("Rebooting system...") + exec_shell_command_async("systemctl reboot") + self.close_menu() + + def poweroff(self, *args): + print("Powering off...") + exec_shell_command_async("systemctl poweroff") + self.close_menu() diff --git a/bar/test.py b/bar/test.py deleted file mode 100644 index 8c02db6..0000000 --- a/bar/test.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python3 - -from __future__ import annotations - -from dataclasses import dataclass, field -from typing import Callable -from pywayland.client import Display -from pywayland.protocol.wayland import WlOutput, WlRegistry, WlSeat -from generated.river_status_unstable_v1 import ( - ZriverStatusManagerV1, - ZriverOutputStatusV1, -) - - -@dataclass -class OutputInfo: - name: int - output: WlOutput - status: ZriverOutputStatusV1 - tags_view: list[int] = field(default_factory=list) - tags_focused: list[int] = field(default_factory=list) - - -@dataclass -class State: - display: Display - registry: WlRegistry - outputs: dict[int, OutputInfo] = field(default_factory=dict) - river_status_mgr: ZriverStatusManagerV1 | None = None - seat: WlSeat | None = None - seat_status: ZriverSeatStatusV1 | None = None - - -def decode_bitfields(bitfields: list[int] | int) -> list[int]: - tags = set() - if isinstance(bitfields, int): - bitfields = [bitfields] - for bits in bitfields: - for i in range(32): - if bits & (1 << i): - tags.add(i) - return sorted(tags) - - -def handle_global( - state: State, registry: WlRegistry, name: int, iface: str, version: int -) -> None: - if iface == "zriver_status_manager_v1": - state.river_status_mgr = registry.bind(name, ZriverStatusManagerV1, version) - - elif iface == "wl_output": - output = registry.bind(name, WlOutput, version) - state.outputs[name] = OutputInfo(name=name, output=output, status=None) - elif iface == "wl_seat": - seat = registry.bind(name, WlSeat, version) - state.seat = seat - - -def handle_global_remove(state: State, registry: WlRegistry, name: int) -> None: - if name in state.outputs: - print(f"Output {name} removed.") - del state.outputs[name] - - -def make_view_tags_handler(state: State, name: int) -> Callable: - def handler(self, tags: list[int]) -> None: - decoded = decode_bitfields(tags) - state.outputs[name].tags_view = decoded - print(f"[Output {name}] View tags: {decoded}") - - return handler - - -def make_focused_tags_handler(state: State, name: int) -> Callable: - def handler(self, tags: int) -> None: - decoded = decode_bitfields(tags) - state.outputs[name].tags_focused = decoded - print(f"[Output {name}] Focused tags: {decoded}") - - return handler - - -def main() -> None: - with Display() as display: - registry = display.get_registry() - state = State(display=display, registry=registry) - - registry.dispatcher["global"] = lambda reg, name, iface, ver: handle_global( - state, reg, name, iface, ver - ) - registry.dispatcher["global_remove"] = lambda reg, name: handle_global_remove( - state, reg, name - ) - - # Discover globals - display.roundtrip() - - if not state.river_status_mgr: - print("❌ River status manager not found.") - return - - # Bind output status listeners - for name, info in state.outputs.items(): - status = state.river_status_mgr.get_river_output_status(info.output) - status.dispatcher["view_tags"] = make_view_tags_handler(state, name) - status.dispatcher["focused_tags"] = make_focused_tags_handler(state, name) - info.status = status - - if state.seat: - state.seat_status = state.river_status_mgr.get_river_seat_status(state.seat) - print("✅ Bound seat status") - - # Initial data - display.roundtrip() - - print("🟢 Listening for tag changes. Press Ctrl+C to exit.") - while True: - display.roundtrip() - - -if __name__ == "__main__": - main() diff --git a/bar/utils/icons.py b/bar/utils/icons.py new file mode 100644 index 0000000..8a9471c --- /dev/null +++ b/bar/utils/icons.py @@ -0,0 +1,550 @@ +common_text_icons = { + "playing": "", + "paused": "", + "power": "", + "cpu": "", + "memory": "", + "storage": "󰋊", + "updates": "󱧘", + "thermometer": "", +} + +distro_text_icons = { + "deepin": "", + "fedora": "", + "arch": "", + "nixos": "", + "debian": "", + "opensuse-tumbleweed": "", + "ubuntu": "", + "endeavouros": "", + "manjaro": "", + "popos": "", + "garuda": "", + "zorin": "", + "mxlinux": "", + "arcolinux": "", + "gentoo": "", + "artix": "", + "centos": "", + "hyperbola": "", + "kubuntu": "", + "mandriva": "", + "xerolinux": "", + "parabola": "", + "void": "", + "linuxmint": "", + "archlabs": "", + "devuan": "", + "freebsd": "", + "openbsd": "", + "slackware": "", +} + +# sourced from wttr.in +weather_text_icons = { + "113": {"description": "Sunny", "icon": "󰖙"}, + "116": {"description": "PartlyCloudy", "icon": "󰖕"}, + "119": {"description": "Cloudy", "icon": "󰖐"}, + "122": {"description": "VeryCloudy", "icon": "󰖕"}, + "143": {"description": "Fog", "icon": "󰖑"}, + "176": {"description": "LightShowers", "icon": "󰼳"}, + "179": {"description": "LightSleetShowers", "icon": "󰼵"}, + "182": {"description": "LightSleet", "icon": "󰙿"}, + "185": {"description": "LightSleet", "icon": "󰙿"}, + "200": {"description": "ThunderyShowers", "icon": "󰙾"}, + "227": {"description": "LightSnow", "icon": "󰼴"}, + "230": {"description": "HeavySnow", "icon": "󰼶"}, + "248": {"description": "Fog", "icon": "󰖑"}, + "260": {"description": "Fog", "icon": "󰖑"}, + "263": {"description": "LightShowers", "icon": "󰼳"}, + "266": {"description": "LightRain", "icon": "󰼳"}, + "281": {"description": "LightSleet", "icon": "󰙿"}, + "284": {"description": "LightSleet", "icon": "󰙿"}, + "293": {"description": "LightRain", "icon": "󰼳"}, + "296": {"description": "LightRain", "icon": "󰼳"}, + "299": {"description": "HeavyShowers", "icon": "󰖖"}, + "302": {"description": "HeavyRain", "icon": "󰖖"}, + "305": {"description": "HeavyShowers", "icon": "󰖖"}, + "308": {"description": "HeavyRain", "icon": "󰖖"}, + "311": {"description": "LightSleet", "icon": "󰙿"}, + "314": {"description": "LightSleet", "icon": "󰙿"}, + "317": {"description": "LightSleet", "icon": "󰙿"}, + "320": {"description": "LightSnow", "icon": "󰼴"}, + "323": {"description": "LightSnowShowers", "icon": "󰼵"}, + "326": {"description": "LightSnowShowers", "icon": "󰼵"}, + "329": {"description": "HeavySnow", "icon": "󰼶"}, + "332": {"description": "HeavySnow", "icon": "󰼶"}, + "335": {"description": "HeavySnowShowers", "icon": "󰼵"}, + "338": {"description": "HeavySnow", "icon": "󰼶"}, + "350": {"description": "LightSleet", "icon": "󰙿"}, + "353": {"description": "LightShowers", "icon": "󰼳"}, + "356": {"description": "HeavyShowers", "icon": "󰖖"}, + "359": {"description": "HeavyRain", "icon": "󰖖"}, + "362": {"description": "LightSleetShowers", "icon": "󰼵"}, + "365": {"description": "LightSleetShowers", "icon": "󰼵"}, + "368": {"description": "LightSnowShowers", "icon": "󰼵"}, + "371": {"description": "HeavySnowShowers", "icon": "󰼵"}, + "374": {"description": "LightSleetShowers", "icon": "󰼵"}, + "377": {"description": "LightSleet", "icon": "󰙿"}, + "386": {"description": "ThunderyShowers", "icon": "󰙾"}, + "389": {"description": "ThunderyHeavyRain", "icon": "󰙾"}, + "392": {"description": "ThunderySnowShowers", "icon": "󰼶"}, + "395": {"description": "HeavySnowShowers", "icon": "󰼵"}, +} + +weather_text_icons_v2 = { + "113": { + "description": "Sunny", + "icon": "󰖙", + "image": "clear-day", + "icon-night": "󰖙", + "image-night": "clear-night", + }, + "116": { + "description": "PartlyCloudy", + "icon": "󰖕", + "image": "cloudy", + "icon-night": "󰖕", + "image-night": "cloudy", + }, + "119": { + "description": "Cloudy", + "icon": "󰖐", + "image": "cloudy", + "icon-night": "󰖐", + "image-night": "cloudy", + }, + "122": { + "description": "VeryCloudy", + "icon": "󰖕", + "image": "cloudy", + "icon-night": "󰖕", + "image-night": "cloudy", + }, + "143": { + "description": "Fog", + "icon": "󰖑", + "image": "fog", + "icon-night": "󰖑", + "image-night": "fog", + }, + "176": { + "description": "LightShowers", + "icon": "󰼳", + "image": "rain", + "icon-night": "󰼳", + "image-night": "rain", + }, + "179": { + "description": "LightSleetShowers", + "icon": "󰼵", + "image": "sleet", + "icon-night": "󰼵", + "image-night": "sleet", + }, + "182": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "185": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "200": { + "description": "ThunderyShowers", + "icon": "󰙾", + "image": "thunderstorms", + "icon-night": "󰙾", + "image-night": "thunderstorms", + }, + "227": { + "description": "LightSnow", + "icon": "󰼴", + "image": "snow", + "icon-night": "󰼴", + "image-night": "snow", + }, + "230": { + "description": "HeavySnow", + "icon": "󰼶", + "image": "snow", + "icon-night": "󰼶", + "image-night": "snow", + }, + "248": { + "description": "Fog", + "icon": "󰖑", + "image": "fog", + "icon-night": "󰖑", + "image-night": "fog", + }, + "260": { + "description": "Fog", + "icon": "󰖑", + "image": "fog", + "icon-night": "󰖑", + "image-night": "fog", + }, + "263": { + "description": "LightShowers", + "icon": "󰼳", + "image": "rain", + "icon-night": "󰼳", + "image-night": "rain", + }, + "266": { + "description": "LightRain", + "icon": "󰼳", + "image": "rain", + "icon-night": "󰼳", + "image-night": "rain", + }, + "281": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "284": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "293": { + "description": "LightRain", + "icon": "󰼳", + "image": "rain", + "icon-night": "󰼳", + "image-night": "rain", + }, + "296": { + "description": "LightRain", + "icon": "󰼳", + "image": "rain", + "icon-night": "󰼳", + "image-night": "rain", + }, + "299": { + "description": "HeavyShowers", + "icon": "󰖖", + "image": "rain", + "icon-night": "󰖖", + "image-night": "rain", + }, + "302": { + "description": "HeavyRain", + "icon": "󰖖", + "image": "rain", + "icon-night": "󰖖", + "image-night": "rain", + }, + "305": { + "description": "HeavyShowers", + "icon": "󰖖", + "image": "rain", + "icon-night": "󰖖", + "image-night": "rain", + }, + "308": { + "description": "HeavyRain", + "icon": "󰖖", + "image": "rain", + "icon-night": "󰖖", + "image-night": "rain", + }, + "311": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "314": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "317": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "320": { + "description": "LightSnow", + "icon": "󰼴", + "image": "snow", + "icon-night": "󰼴", + "image-night": "snow", + }, + "323": { + "description": "LightSnowShowers", + "icon": "󰼵", + "image": "snow", + "icon-night": "󰼵", + "image-night": "snow", + }, + "326": { + "description": "LightSnowShowers", + "icon": "󰼵", + "image": "snow", + "icon-night": "󰼵", + "image-night": "snow", + }, + "329": { + "description": "HeavySnow", + "icon": "󰼶", + "image": "snow", + "icon-night": "󰼶", + "image-night": "snow", + }, + "332": { + "description": "HeavySnow", + "icon": "󰼶", + "image": "snow", + "icon-night": "󰼶", + "image-night": "snow", + }, + "335": { + "description": "HeavySnowShowers", + "icon": "󰼵", + "image": "snow", + "icon-night": "󰼵", + "image-night": "snow", + }, + "338": { + "description": "HeavySnow", + "icon": "󰼶", + "image": "snow", + "icon-night": "󰼶", + "image-night": "snow", + }, + "350": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "353": { + "description": "LightShowers", + "icon": "󰼳", + "image": "rain", + "icon-night": "󰼳", + "image-night": "rain", + }, + "356": { + "description": "HeavyShowers", + "icon": "󰖖", + "image": "rain", + "icon-night": "󰖖", + "image-night": "rain", + }, + "359": { + "description": "HeavyRain", + "icon": "󰖖", + "image": "rain", + "icon-night": "󰖖", + "image-night": "rain", + }, + "362": { + "description": "LightSleetShowers", + "icon": "󰼵", + "image": "sleet", + "icon-night": "󰼵", + "image-night": "sleet", + }, + "365": { + "description": "HeavySleetShowers", + "icon": "󰼵", + "image": "sleet", + "icon-night": "󰼵", + "image-night": "sleet", + }, + "368": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "371": { + "description": "HeavySleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, + "374": { + "description": "HeavySnowShowers", + "icon": "󰼶", + "image": "snow", + "icon-night": "󰼶", + "image-night": "snow", + }, + "377": { + "description": "LightSleet", + "icon": "󰙿", + "image": "sleet", + "icon-night": "󰙿", + "image-night": "sleet", + }, +} + +volume_text_icons = { + "overamplified": "󰕾", + "high": "󰕾", + "medium": "󰖀", + "low": "󰕿", + "muted": "󰝟", +} + +volume_text_icons = { + "overamplified": "󰕾", + "high": "󰕾", + "medium": "󰖀", + "low": "󰕿", + "muted": "󰝟", +} + +brightness_text_icons = { + "off": "", # lowest brightness + "low": "", + "medium": "", + "high": "", # highest brightness +} + +icons = { + "missing": "image-missing-symbolic", + "nix": { + "nix": "nix-snowflake-symbolic", + }, + "app": { + "terminal": "terminal-symbolic", + }, + "fallback": { + "executable": "application-x-executable", + "notification": "dialog-information-symbolic", + "video": "video-x-generic-symbolic", + "audio": "audio-x-generic-symbolic", + }, + "ui": { + "close": "window-close-symbolic", + "colorpicker": "color-select-symbolic", + "info": "info-symbolic", + "link": "external-link-symbolic", + "lock": "system-lock-screen-symbolic", + "menu": "open-menu-symbolic", + "refresh": "view-refresh-symbolic", + "search": "system-search-symbolic", + "settings": "emblem-system-symbolic", + "themes": "preferences-desktop-theme-symbolic", + "tick": "object-select-symbolic", + "time": "hourglass-symbolic", + "toolbars": "toolbars-symbolic", + "warning": "dialog-warning-symbolic", + "avatar": "avatar-default-symbolic", + "arrow": { + "right": "pan-end-symbolic", + "left": "pan-start-symbolic", + "down": "pan-down-symbolic", + "up": "pan-up-symbolic", + }, + }, + "audio": { + "mic": { + "muted": "microphone-disabled-symbolic", + "low": "microphone-sensitivity-low-symbolic", + "medium": "microphone-sensitivity-medium-symbolic", + "high": "microphone-sensitivity-high-symbolic", + }, + "volume": { + "muted": "audio-volume-muted-symbolic", + "low": "audio-volume-low-symbolic", + "medium": "audio-volume-medium-symbolic", + "high": "audio-volume-high-symbolic", + "overamplified": "audio-volume-overamplified-symbolic", + }, + "type": { + "headset": "audio-headphones-symbolic", + "speaker": "audio-speakers-symbolic", + "card": "audio-card-symbolic", + }, + "mixer": "mixer-symbolic", + }, + "powerprofile": { + "balanced": "power-profile-balanced-symbolic", + "power-saver": "power-profile-power-saver-symbolic", + "performance": "power-profile-performance-symbolic", + }, + "battery": { + "charging": "battery-flash-symbolic", + "warning": "battery-empty-symbolic", + }, + "bluetooth": { + "enabled": "bluetooth-active-symbolic", + "disabled": "bluetooth-disabled-symbolic", + }, + "brightness": { + "indicator": "display-brightness-symbolic", + "keyboard": "keyboard-brightness-symbolic", + "screen": "display-brightness-symbolic", + }, + "powermenu": { + "sleep": "weather-clear-night-symbolic", + "reboot": "system-reboot-symbolic", + "logout": "system-log-out-symbolic", + "shutdown": "system-shutdown-symbolic", + }, + "recorder": { + "recording": "media-record-symbolic", + "stopped": "media-record-symbolic", + }, + "notifications": { + "noisy": "org.gnome.Settings-notifications-symbolic", + "silent": "notifications-disabled-symbolic", + "message": "chat-bubbles-symbolic", + }, + "trash": { + "full": "user-trash-full-symbolic", + "empty": "user-trash-symbolic", + }, + "mpris": { + "shuffle": { + "enabled": "media-playlist-shuffle-symbolic", + "disabled": "media-playlist-consecutive-symbolic", + }, + "loop": { + "none": "media-playlist-repeat-symbolic", + "track": "media-playlist-repeat-song-symbolic", + "playlist": "media-playlist-repeat-symbolic", + }, + "playing": "media-playback-pause-symbolic", + "paused": "media-playback-start-symbolic", + "stopped": "media-playback-start-symbolic", + "prev": "media-skip-backward-symbolic", + "next": "media-skip-forward-symbolic", + }, + "system": { + "cpu": "org.gnome.SystemMonitor-symbolic", + "ram": "drive-harddisk-solidstate-symbolic", + "temp": "temperature-symbolic", + }, + "color": { + "dark": "dark-mode-symbolic", + "light": "light-mode-symbolic", + }, +}