From 8cf58067667f05c8cd8492b01481d7a9da14d055 Mon Sep 17 00:00:00 2001 From: Jas Singh Date: Mon, 26 May 2025 19:45:11 -0700 Subject: [PATCH] Minor: Refactor the code-base for better organization and compartmentalization. (#934) * Clean up unused code * Fix media player formatting issue for labels with new line characteres. * Refactor the media player handlers into a class. * More code cleanup and organize shared weather utils into distinct classes. * Flatten some nesting. * Move weather manager in dedicated class and build HTTP Utility class for Rest API calling. * Remove logs * Rebase master merge * Reorg code (WIP) * More reorg * Delete utility scripts * Reorg options * Finish moving all options over * Fix typescript issues * Update options imports to default * missed update * Screw barrel files honestly, work of the devil. * Only initialize power profiles if power-profiles-daemon is running. * Fix window positioning and weather service naming * style dir * More organization * Restructure types to be closer to their source * Remove lib types and constants * Update basic weather object to be saner with extensibility. * Service updates * Fix initialization strategy for services. * Fix Config Manager to only emit changed objects and added missing temp converters. * Update storage service to handle unit changes. * Added cpu temp sensor auto-discovery * Added missing JSDocs to services * remove unused * Migrate to network service. * Fix network password issue. * Move out password input into helper * Rename password mask constant to be less double-negativey. * Dropdown menu rename * Added a component to edit JSON in the settings dialog (rough/WIP) * Align settings * Add and style JSON Editor. * Adjust padding * perf(shortcuts): :zap: avoid unnecessary polling when shortcuts are disabled Stops the recording poller when shortcuts are disabled, preventing redundant polling and reducing resource usage. * Fix types and return value if shortcut not enabled. * Move the swww daemon checking process outside of the wallpaper service into a dedicated deamon lifecyle processor. * Add more string formatters and use title case for weather status (as it was). * Fix startup errors. * Rgba fix * Remove zod from dependencies --------- Co-authored-by: KernelDiego --- .gitignore | 3 + app.ts | 59 +- assets/tokyo-night.xml | 139 ++ meson.build | 2 +- package-lock.json | 916 +++++++++-- package.json | 6 +- src/cli/utils/BarVisibility.ts | 13 - .../index.ts} | 5 +- .../module_container/helpers/icon.ts | 2 +- .../module_container/helpers/label.ts | 2 +- .../module_container/helpers/utils.ts | 0 .../module_container/index.tsx | 4 +- .../module_container/setup.ts | 6 +- .../types.ts | 6 +- src/components/bar/exports.ts | 62 - src/components/bar/index.tsx | 205 +-- src/components/bar/layout/BarLayout.tsx | 185 +++ src/components/bar/layout/WidgetRegistry.tsx | 55 + src/components/bar/layout/coreWidgets.tsx | 61 + .../bar/modules/battery/helpers/index.ts | 2 +- .../bar/modules/battery/helpers/types.ts} | 0 src/components/bar/modules/battery/index.tsx | 12 +- .../bar/modules/bluetooth/index.tsx | 13 +- src/components/bar/modules/cava/helpers.ts | 4 +- src/components/bar/modules/cava/index.tsx | 17 +- src/components/bar/modules/clock/index.tsx | 13 +- .../bar/modules/cpu/helpers/index.ts | 26 - src/components/bar/modules/cpu/index.tsx | 36 +- .../bar/modules/cputemp/helpers/index.ts | 128 +- src/components/bar/modules/cputemp/index.tsx | 71 +- src/components/bar/modules/hypridle/index.tsx | 17 +- .../bar/modules/hyprsunset/helpers/index.ts | 4 +- .../bar/modules/hyprsunset/index.tsx | 16 +- .../bar/modules/kblayout/helpers/index.ts | 6 +- .../bar/modules/kblayout/helpers/layouts.ts | 1 - .../bar/modules/kblayout/helpers/types.ts} | 2 +- src/components/bar/modules/kblayout/index.tsx | 19 +- .../bar/modules/media/helpers/index.ts | 7 +- .../bar/modules/media/helpers/types.ts} | 0 src/components/bar/modules/media/index.tsx | 15 +- src/components/bar/modules/menu/index.tsx | 18 +- .../bar/modules/microphone/index.tsx | 18 +- src/components/bar/modules/netstat/helpers.ts | 34 + .../bar/modules/netstat/helpers/index.ts | 168 -- src/components/bar/modules/netstat/index.tsx | 102 +- src/components/bar/modules/network/index.tsx | 16 +- .../bar/modules/notifications/index.tsx | 13 +- src/components/bar/modules/power/index.tsx | 17 +- .../bar/modules/ram/helpers/index.ts | 48 - src/components/bar/modules/ram/index.tsx | 40 +- .../bar/modules/storage/helpers/index.ts | 39 - .../storage/helpers/tooltipFormatters.ts | 90 ++ src/components/bar/modules/storage/index.tsx | 76 +- src/components/bar/modules/submap/index.tsx | 17 +- src/components/bar/modules/systray/index.tsx | 12 +- src/components/bar/modules/updates/index.tsx | 17 +- src/components/bar/modules/volume/index.tsx | 13 +- src/components/bar/modules/weather/index.tsx | 37 +- .../modules/window_title/helpers}/appIcons.ts | 0 .../bar/modules/window_title/helpers/title.ts | 6 +- .../bar/modules/window_title/index.tsx | 7 +- .../bar/modules/workspaces/helpers/index.ts | 670 ++++---- .../bar/modules/workspaces/helpers/types.ts | 7 + .../bar/modules/workspaces/helpers/utils.ts | 323 +--- .../bar/modules/workspaces/index.tsx | 9 +- .../bar/modules/workspaces/types.ts | 15 + .../bar/modules/workspaces/workspaces.tsx | 22 +- .../bar/modules/worldclock/index.tsx | 21 +- src/components/bar/settings/config.tsx | 21 +- src/components/bar/settings/theme.tsx | 3 +- .../shared/{Module.tsx => module/index.tsx} | 6 +- .../index.tsx} | 4 +- .../bar.types.ts => components/bar/types.ts} | 32 +- src/components/bar/utils/helpers.ts | 422 ----- .../bar/utils/input/commandExecutor.ts | 53 + .../bar/utils/input/inputHandler.ts | 228 +++ src/components/bar/utils/input/throttle.ts | 50 + .../bar/utils/input/types.ts} | 22 +- .../bar/utils/{menu.ts => menu/index.ts} | 80 +- .../utils/{monitors.ts => monitors/index.ts} | 20 +- src/components/bar/utils/sideEffects.ts | 29 - .../bar/utils/systemResource/index.ts | 93 ++ src/components/menus/audio/active/index.tsx | 2 +- .../menus/audio/active/sliderItem/Slider.tsx | 5 +- .../audio/active/sliderItem/SliderIcon.tsx | 2 +- .../menus/audio/available/Device.tsx | 2 +- src/components/menus/audio/index.tsx | 4 +- .../devices/controls/ConnectButton.tsx | 2 +- .../devices/controls/ForgetButton.tsx | 2 +- .../bluetooth/devices/controls/PairButton.tsx | 2 +- .../devices/controls/TrustButton.tsx | 2 +- .../menus/bluetooth/devices/device/index.tsx | 2 +- .../header/Controls/DiscoverButton.tsx | 2 +- src/components/menus/bluetooth/index.tsx | 4 +- src/components/menus/calendar/index.tsx | 4 +- .../menus/calendar/time/MilitaryTime.tsx | 4 +- .../menus/calendar/time/StandardTime.tsx | 4 +- .../menus/calendar/weather/hourly/helpers.ts | 81 +- .../calendar/weather/hourly/icon/index.tsx | 14 +- .../weather/hourly/temperature/index.tsx | 37 +- .../calendar/weather/hourly/time/index.tsx | 37 +- .../menus/calendar/weather/icon/index.tsx | 6 +- .../menus/calendar/weather/stats/index.tsx | 20 +- .../calendar/weather/temperature/index.tsx | 44 +- .../dashboard/controls/ControlButtons.tsx | 2 +- .../menus/dashboard/controls/index.tsx | 3 +- .../dashboard/directories/DirectoryLinks.tsx | 4 +- .../menus/dashboard/directories/index.tsx | 3 +- src/components/menus/dashboard/index.tsx | 4 +- .../menus/dashboard/profile/PowerButtons.tsx | 4 +- .../menus/dashboard/profile/Profile.tsx | 7 +- .../menus/dashboard/profile/helpers.ts | 4 +- .../shortcuts/buttons/ShortcutButtons.tsx | 6 +- .../menus/dashboard/shortcuts/helpers.ts | 40 +- .../menus/dashboard/shortcuts/index.tsx | 7 +- .../dashboard/shortcuts/sections/Section.tsx | 2 +- .../menus/dashboard/shortcuts/types.ts} | 9 - .../menus/dashboard/stats/StatBars.tsx | 21 +- .../menus/dashboard/stats/helpers.ts | 66 +- .../menus/dashboard/stats/index.tsx | 18 +- .../menus/energy/brightness/Percentage.tsx | 4 +- .../menus/energy/brightness/Slider.tsx | 4 +- src/components/menus/energy/index.tsx | 4 +- .../menus/energy/profiles/Header.tsx | 2 +- .../menus/energy/profiles/Profile.tsx | 7 +- .../menus/energy/profiles/types.ts} | 0 src/components/menus/{exports.ts => index.ts} | 0 .../menus/media/components/controls/Modes.tsx | 6 +- .../media/components/controls/PlayPause.tsx | 4 +- .../media/components/controls/Players.tsx | 2 +- .../media/components/controls/Tracks.tsx | 4 +- .../media/components/controls/helpers.ts | 6 +- .../menus/media/components/controls/types.ts} | 2 +- .../menus/media/components/helpers.ts | 70 +- .../menus/media/components/timebar/helpers.ts | 4 +- .../menus/media/components/timebar/index.tsx | 4 +- .../media/components/timelabel/index.tsx | 4 +- .../media/components/title/SongAlbum.tsx | 4 +- .../media/components/title/SongAuthor.tsx | 4 +- .../menus/media/components/title/SongName.tsx | 2 +- src/components/menus/media/index.tsx | 4 +- .../menus/network/ethernet/helpers.ts | 105 -- .../menus/network/ethernet/index.tsx | 16 +- src/components/menus/network/index.tsx | 4 +- src/components/menus/network/types.ts | 1 + src/components/menus/network/utils.ts | 36 - .../network/wifi/APStaging/PasswordInput.tsx | 41 +- .../network/wifi/APStaging/helpers/index.ts | 35 + .../menus/network/wifi/APStaging/index.tsx | 36 +- .../network/wifi/Controls/RefreshButton.tsx | 13 +- .../menus/network/wifi/Controls/helpers.ts | 20 - .../network/wifi/WirelessAPs/AccessPoint.tsx | 25 +- .../network/wifi/WirelessAPs/Controls.tsx | 12 +- .../menus/network/wifi/WirelessAPs/helpers.ts | 318 ---- .../menus/network/wifi/WirelessAPs/index.tsx | 22 +- .../controls/ClearNotificationsButton.tsx | 6 +- src/components/menus/notifications/helpers.ts | 2 +- src/components/menus/notifications/index.tsx | 4 +- .../notifications/notification/index.tsx | 6 +- .../menus/notifications/pager/Buttons.tsx | 2 +- .../menus/notifications/pager/index.tsx | 2 +- src/components/menus/power/helpers/actions.ts | 4 +- src/components/menus/power/index.tsx | 8 +- .../menus/power/types.ts} | 0 src/components/menus/powerDropdown/button.tsx | 6 +- src/components/menus/powerDropdown/index.tsx | 4 +- .../index.tsx => helpers/eventBoxes.tsx} | 2 +- .../shared/dropdown/{ => helpers}/helpers.ts | 4 +- .../index.ts => helpers/locationHandler.ts} | 4 +- .../menus/shared/dropdown/helpers/types.ts | 11 + .../menus/shared/dropdown/index.tsx | 14 +- src/components/menus/shared/dropdown/types.ts | 22 +- src/components/menus/shared/popup/index.tsx | 14 +- .../menus/shared/popup/layouts.ts} | 2 +- .../menus/shared/popup/types.ts} | 23 +- .../{Actions.tsx => Actions/index.tsx} | 2 +- .../{Body.tsx => Body/index.tsx} | 2 +- .../index.tsx} | 0 .../{Header.tsx => Header/index.tsx} | 32 +- .../{Image.tsx => Image/index.tsx} | 4 +- .../index.tsx} | 14 +- src/components/notifications/helpers.ts | 2 +- src/components/notifications/index.tsx | 10 +- src/components/osd/bar/helpers.ts | 6 +- src/components/osd/bar/index.tsx | 2 +- src/components/osd/helpers.ts | 12 +- src/components/osd/icon/helpers.ts | 4 +- src/components/osd/index.tsx | 6 +- src/components/osd/label/helpers.ts | 6 +- .../{OsdRevealer.tsx => revealer/index.tsx} | 12 +- src/components/settings/Header.tsx | 4 +- src/components/settings/PageContainer.tsx | 6 +- .../settings/constants.ts} | 6 +- .../settings/pages/config/bar/index.tsx | 2 +- .../settings/pages/config/general/index.tsx | 2 +- .../settings/pages/config/index.tsx | 7 +- .../settings/pages/config/menus/clock.tsx | 4 +- .../settings/pages/config/menus/dashboard.tsx | 2 +- .../settings/pages/config/menus/media.tsx | 2 +- .../settings/pages/config/menus/power.tsx | 2 +- .../settings/pages/config/menus/volume.tsx | 2 +- .../pages/config/notifications/index.tsx | 2 +- .../settings/pages/config/osd/index.tsx | 2 +- .../settings/pages/theme/bar/index.tsx | 2 +- src/components/settings/pages/theme/index.tsx | 6 +- .../settings/pages/theme/menus/battery.tsx | 2 +- .../settings/pages/theme/menus/bluetooth.tsx | 2 +- .../settings/pages/theme/menus/clock.tsx | 2 +- .../settings/pages/theme/menus/dashboard.tsx | 2 +- .../settings/pages/theme/menus/index.tsx | 2 +- .../settings/pages/theme/menus/matugen.tsx | 2 +- .../settings/pages/theme/menus/media.tsx | 2 +- .../settings/pages/theme/menus/network.tsx | 2 +- .../pages/theme/menus/notifications.tsx | 2 +- .../settings/pages/theme/menus/power.tsx | 2 +- .../settings/pages/theme/menus/systray.tsx | 2 +- .../settings/pages/theme/menus/volume.tsx | 2 +- .../pages/theme/notifications/index.tsx | 2 +- .../settings/pages/theme/osd/index.tsx | 2 +- src/components/settings/shared/FileChooser.ts | 66 +- src/components/settings/shared/Inputter.tsx | 9 +- .../settings/shared/Option/PropertyLabel.tsx | 2 +- .../settings/shared/Option/ResetButton.tsx | 6 +- .../settings/shared/Option/SettingInput.tsx | 2 +- .../settings/shared/Option/index.tsx | 4 +- .../settings/shared/inputs/boolean.tsx | 5 +- .../settings/shared/inputs/color.tsx | 8 +- .../settings/shared/inputs/enum.tsx | 2 +- .../shared/inputs/{object.tsx => float.tsx} | 18 +- .../settings/shared/inputs/font/utils.ts | 52 - .../settings/shared/inputs/import.tsx | 4 +- .../shared/inputs/object/EditorControls.tsx | 33 + .../shared/inputs/object/JsonEditor.tsx | 26 + .../shared/inputs/object/JsonPreview.tsx | 27 + .../shared/inputs/object/helpers/index.ts | 3 + .../inputs/object/helpers/keyHandler.ts | 24 + .../inputs/object/helpers/sourceViewSetup.ts | 111 ++ .../inputs/object/helpers/useJsonEditor.ts | 85 + .../settings/shared/inputs/object/index.tsx | 56 + .../settings/shared/inputs/object/types.ts | 40 + .../settings/shared/inputs/wallpaper.tsx | 8 +- .../settings/shared/types.ts} | 0 src/components/settings/side_effects/index.ts | 2 +- src/components/shared/SourceView.tsx | 34 + src/components/shared/TextView.tsx | 26 + src/configuration/index.ts | 10 + .../modules/config/bar/battery/index.ts | 10 + .../modules/config/bar/bluetooth/index.ts | 9 + .../modules/config/bar/cava/index.ts | 23 + .../modules/config/bar/clock/index.ts | 12 + .../modules/config/bar/cpu/index.ts | 13 + .../modules/config/bar/cpuTemp/index.ts | 17 + .../modules/config/bar/hypridle/index.ts | 14 + .../modules/config/bar/hyprsunset/index.ts | 15 + src/configuration/modules/config/bar/index.ts | 64 + .../modules/config/bar/kbLayout/index.ts | 13 + .../modules/config/bar/launcher/index.ts | 10 + .../modules/config/bar/layouts/index.ts | 20 + .../modules/config/bar/media/index.ts | 13 + .../modules/config/bar/microphone/index.ts | 12 + .../modules/config/bar/netstat/index.ts | 18 + .../modules/config/bar/network/index.ts | 12 + .../modules/config/bar/notifications/index.ts | 10 + .../modules/config/bar/power/index.ts | 11 + .../modules/config/bar/ram/index.ts | 13 + .../modules/config/bar/storage/index.ts | 18 + .../modules/config/bar/storage/types.ts | 3 + .../modules/config/bar/submap/index.ts | 15 + .../modules/config/bar/systray/index.ts | 7 + .../modules/config/bar/systray/types.ts} | 0 .../modules/config/bar/updates/index.ts | 20 + .../modules/config/bar/volume/index.ts | 9 + .../modules/config/bar/weather/index.ts | 12 + .../modules/config/bar/windowtitle/index.ts | 16 + .../modules/config/bar/workspaces/index.ts | 33 + .../modules/config/bar/worldclock/index.ts | 15 + src/configuration/modules/config/index.ts | 24 + .../modules/config/menus/clock/index.ts | 16 + .../modules/config/menus/dashboard/index.ts | 94 ++ .../modules/config/menus/index.ts | 17 + .../modules/config/menus/media/index.ts | 9 + .../modules/config/menus/power/index.ts | 16 + .../modules/config/menus/types.ts | 1 + .../modules/config/menus/volume/index.ts | 5 + .../modules/config/notifications/index.ts | 15 + .../modules/theme/bar/buttons/battery.ts | 12 + .../modules/theme/bar/buttons/bluetooth.ts | 12 + .../modules/theme/bar/buttons/cava.ts | 12 + .../modules/theme/bar/buttons/clock.ts | 12 + .../modules/theme/bar/buttons/cpu.ts | 12 + .../modules/theme/bar/buttons/cpuTemp.ts | 12 + .../modules/theme/bar/buttons/dashboard.ts | 10 + .../modules/theme/bar/buttons/hypridle.ts | 12 + .../modules/theme/bar/buttons/hyprsunset.ts | 12 + .../modules/theme/bar/buttons/index.ts | 81 + .../modules/theme/bar/buttons/kbLayout.ts | 12 + .../modules/theme/bar/buttons/media.ts | 12 + .../modules/theme/bar/buttons/microphone.ts | 12 + .../modules/theme/bar/buttons/netstat.ts | 12 + .../modules/theme/bar/buttons/network.ts | 12 + .../theme/bar/buttons/notifications.ts | 12 + .../modules/theme/bar/buttons/power.ts | 11 + .../modules/theme/bar/buttons/ram.ts | 12 + .../modules/theme/bar/buttons/separator.ts | 8 + .../modules/theme/bar/buttons/storage.ts | 12 + .../modules/theme/bar/buttons/submap.ts | 12 + .../modules/theme/bar/buttons/systray.ts | 10 + .../modules/theme/bar/buttons/updates.ts | 12 + .../modules/theme/bar/buttons/volume.ts | 12 + .../modules/theme/bar/buttons/weather.ts | 12 + .../modules/theme/bar/buttons/windowtitle.ts | 12 + .../modules/theme/bar/buttons/workspaces.ts | 26 + .../modules/theme/bar/buttons/worldclock.ts | 12 + src/configuration/modules/theme/bar/index.ts | 32 + .../theme/bar/menus/components/border.ts | 8 + .../theme/bar/menus/components/buttons.ts | 12 + .../bar/menus/components/checkRadioButton.ts | 8 + .../bar/menus/components/dropdownmenu.ts | 8 + .../theme/bar/menus/components/iconbuttons.ts | 8 + .../theme/bar/menus/components/icons.ts | 7 + .../theme/bar/menus/components/index.ts | 29 + .../theme/bar/menus/components/listitems.ts | 8 + .../theme/bar/menus/components/popover.ts | 11 + .../theme/bar/menus/components/progressbar.ts | 8 + .../theme/bar/menus/components/scroller.ts | 6 + .../theme/bar/menus/components/slider.ts | 12 + .../theme/bar/menus/components/switch.ts | 12 + .../theme/bar/menus/components/tooltip.ts | 9 + .../modules/theme/bar/menus/index.ts | 41 + .../theme/bar/menus/modules/battery.ts | 35 + .../theme/bar/menus/modules/bluetooth.ts | 43 + .../modules/theme/bar/menus/modules/clock.ts | 47 + .../theme/bar/menus/modules/dashboard.ts | 114 ++ .../modules/theme/bar/menus/modules/media.ts | 34 + .../theme/bar/menus/modules/network.ts | 44 + .../theme/bar/menus/modules/notifications.ts | 32 + .../modules/theme/bar/menus/modules/power.ts | 40 + .../theme/bar/menus/modules/systray.ts | 10 + .../modules/theme/bar/menus/modules/volume.ts | 48 + .../modules/theme/colors/primary.ts | 29 + .../modules/theme/colors/secondary.ts | 19 + .../modules/theme/colors/tertiary.ts | 16 + .../modules/theme/general/index.ts | 23 + src/configuration/modules/theme/index.ts | 11 + .../modules/theme/notification/index.ts | 27 + src/configuration/modules/theme/osd/index.ts | 32 + src/core/behaviors/bar/clock.ts | 15 + src/core/behaviors/bar/index.ts | 2 + src/core/behaviors/bar/windowTitle.ts | 15 + src/{lib => core}/behaviors/batteryWarning.ts | 8 +- src/{lib => core}/behaviors/hyprlandRules.ts | 0 src/{lib => core}/behaviors/index.ts | 8 +- src/core/errors/handler.ts | 16 + src/core/system/SystemUtilities.ts | 225 +++ .../distro.ts => core/system/distroIcons.ts} | 0 src/core/system/osInfo.ts | 6 + .../system/types.ts} | 10 +- src/core/types/index.ts | 1 + src/lib/array/helpers.ts | 18 + src/lib/bar/helpers.ts | 40 + src/lib/behaviors/autoHide.ts | 109 -- src/{shared => lib/events}/dropdown.ts | 1 + src/lib/events/mouse.ts | 62 + src/lib/httpClient/HttpError.ts | 27 + src/lib/httpClient/index.ts | 268 +++ src/lib/httpClient/types.ts | 23 + src/lib/icons/helpers.ts | 32 + src/lib/icons/icons.ts | 71 +- src/lib/icons/icons2.ts | 199 --- src/lib/icons/weather.ts | 55 - src/lib/options/ConfigManager.ts | 169 -- src/lib/options/configManager/index.ts | 271 ++++ src/lib/options/index.ts | 11 +- src/lib/options/{Opt.ts => opt/index.ts} | 30 +- .../index.ts} | 14 +- .../options/{options.types.ts => types.ts} | 23 +- src/lib/path/helpers.ts | 32 + src/lib/poller/BashPoller.ts | 4 +- src/lib/poller/FunctionPoller.ts | 4 +- src/lib/poller/Poller.ts | 6 +- src/lib/poller/types.ts | 3 + src/lib/{session.ts => session/index.ts} | 4 +- .../index.ts} | 4 +- src/lib/shared/eventHandlers/types.ts | 9 + .../{hookHandler.ts => hookHandler/index.ts} | 0 src/lib/shared/media.ts | 35 - src/lib/shared/notifications.ts | 21 - src/lib/shared/notifications/index.ts | 65 + src/lib/string/formatters.ts | 92 ++ src/{shared => lib/theme}/useTheme.ts | 9 +- src/lib/types/customModules/generic.types.ts | 20 - src/lib/types/customModules/network.types.ts | 4 - src/lib/types/defaults/bar.types.ts | 15 - src/lib/types/defaults/netstat.types.ts | 10 - src/lib/types/defaults/weather.types.ts | 1053 ------------ src/lib/types/dropdownmenu.types.ts | 13 - src/lib/types/network.types.ts | 12 - src/lib/types/utils.types.ts | 13 - src/lib/types/weather.types.ts | 118 -- src/lib/types/widget.types.ts | 48 - src/lib/types/workspace.types.ts | 36 - src/lib/units/length/index.ts | 196 +++ src/lib/units/length/types.ts | 1 + src/lib/units/pressure/index.ts | 148 ++ src/lib/units/pressure/types.ts | 1 + src/lib/units/size/index.ts | 225 +++ src/lib/units/size/types.ts | 1 + src/lib/units/speed/index.ts | 131 ++ src/lib/units/speed/types.ts | 1 + src/lib/units/temperature/index.ts | 129 ++ src/lib/units/temperature/types.ts | 2 + .../time.ts => lib/units/time/index.ts} | 0 src/lib/utils.ts | 425 ----- .../colors.ts => validation/colorNames.ts} | 0 src/lib/validation/colors.ts | 34 + src/lib/validation/images.ts | 18 + src/lib/validation/types.ts | 10 + src/lib/variables.ts | 18 - src/lib/window/positioning.ts | 22 + .../utilities.ts => lib/window/visibility.ts} | 13 - src/options.ts | 1434 ----------------- src/scss/main.scss | 56 - src/scss/utils/hotReload.ts | 19 - src/services/Cpu.ts | 57 - src/services/Gpu.ts | 69 - src/services/Ram.ts | 88 - src/services/Storage.ts | 77 - src/services/Wallpaper.ts | 122 -- .../cli/commander/InitializeCommand.ts | 10 +- src/{ => services}/cli/commander/Parser.ts | 0 src/{ => services}/cli/commander/Registry.ts | 0 .../cli/commander/RequestHandler.ts | 0 .../commander/commands/appearance/index.ts | 10 +- .../commander/commands/modules/media/index.ts | 26 + .../commands/system}/checkDependencies.ts | 122 +- .../cli/commander/commands/system}/index.ts | 66 +- .../commander/commands/system/listSensors.ts | 34 + .../commands/windowManagement/index.ts | 6 +- .../cli/commander/helpers/index.ts | 0 src/{ => services}/cli/commander/index.ts | 2 - src/{ => services}/cli/commander/types.ts | 2 +- .../cli/helpers}/systray.ts | 7 +- .../cli/helpers}/wallpaper.ts | 14 +- src/services/cli/services/window/index.ts | 79 + src/services/display/bar/autoHide.ts | 152 ++ src/services/display/bar/index.ts | 28 + .../display/bar/types.ts} | 0 .../display/monitor/index.ts} | 18 +- .../matugen/defaults.ts} | 0 src/services/matugen/index.ts | 96 +- src/services/matugen/variations.ts | 9 +- src/services/media/index.ts | 526 ++++++ src/services/media/types.ts | 20 + src/services/network/ethernet.ts | 102 ++ src/services/network/index.ts | 70 + .../network.ts => services/network/types.ts} | 23 +- src/services/network/wifi.ts | 351 ++++ .../brightness/index.ts} | 128 +- src/services/system/cpuUsage/index.ts | 109 ++ src/services/system/cpuUsage/types.ts | 5 + src/services/system/cputemp/index.ts | 163 ++ .../system/cputemp/sensorDiscovery.ts | 242 +++ src/services/system/cputemp/types.ts | 12 + src/services/system/gpuUsage/index.ts | 127 ++ .../system/gpuUsage/types.ts} | 14 +- src/services/system/networkUsage/index.ts | 277 ++++ src/services/system/networkUsage/types.ts | 11 + src/services/system/ramUsage/index.ts | 139 ++ src/services/system/ramUsage/types.ts | 5 + src/services/system/storage/index.ts | 255 +++ src/services/system/storage/types.ts | 18 + src/services/system/types.ts | 47 + src/services/system/uptime/index.ts | 7 + src/services/wallpaper/SwwwDaemon.ts | 136 ++ src/services/wallpaper/index.ts | 144 ++ src/services/weather/adapters/registry.ts | 31 + src/services/weather/adapters/types.ts | 28 + .../weather/adapters/weatherApi/index.ts | 111 ++ .../weather/adapters/weatherApi/mapper.ts | 71 + .../weather/adapters/weatherApi/types.ts | 192 +++ src/services/weather/default.ts | 38 + src/services/weather/formatters/index.ts | 40 + src/services/weather/index.ts | 332 ++++ src/services/weather/keyManager/index.ts | 71 + src/services/weather/types/index.ts | 127 ++ src/services/weather/validators/index.ts | 35 + src/services/workspace/index.ts | 309 ++++ src/services/workspace/types.ts | 12 + src/shared/media.ts | 313 ---- src/shared/notification.ts | 52 - src/shared/variables.ts | 29 - src/shared/weather.ts | 223 --- src/{scss/style.ts => style/index.ts} | 20 +- src/style/main.scss | 57 + src/{scss => style}/optionsTrackers.ts | 25 +- src/{scss/style => style/scss}/bar/audio.scss | 0 src/{scss/style => style/scss}/bar/bar.scss | 0 .../style => style/scss}/bar/battery.scss | 0 .../style => style/scss}/bar/bluetooth.scss | 0 src/{scss/style => style/scss}/bar/clock.scss | 0 src/{scss/style => style/scss}/bar/media.scss | 0 src/{scss/style => style/scss}/bar/menu.scss | 0 .../scss}/bar/module-separator.scss | 0 .../style => style/scss}/bar/network.scss | 0 .../scss}/bar/notifications.scss | 0 src/{scss/style => style/scss}/bar/style.scss | 0 .../style => style/scss}/bar/systray.scss | 0 .../scss}/bar/window_title.scss | 0 .../style => style/scss}/bar/workspace.scss | 0 src/{scss/style => style/scss}/colors.scss | 0 .../style => style/scss}/common/common.scss | 0 .../scss}/common/floating-widget.scss | 0 .../style => style/scss}/common/general.scss | 0 .../scss}/common/popover_menu.scss | 0 .../scss}/common/widget-button.scss | 0 .../style => style/scss}/highlights.scss | 0 .../style => style/scss}/menus/audiomenu.scss | 0 .../style => style/scss}/menus/bluetooth.scss | 0 .../style => style/scss}/menus/calendar.scss | 0 .../style => style/scss}/menus/dashboard.scss | 66 +- .../style => style/scss}/menus/energy.scss | 0 .../style => style/scss}/menus/media.scss | 0 .../style => style/scss}/menus/menu.scss | 0 .../style => style/scss}/menus/network.scss | 0 .../scss}/menus/notifications.scss | 0 .../style => style/scss}/menus/power.scss | 0 .../scss}/menus/powerdropdown.scss | 0 .../scss}/notifications/popups.scss | 0 src/{scss/style => style/scss}/osd/index.scss | 0 .../style => style/scss}/settings/dialog.scss | 0 src/style/scss/settings/json-editor.scss | 86 + src/style/utils/hotReload.ts | 19 + 532 files changed, 13134 insertions(+), 8669 deletions(-) create mode 100644 assets/tokyo-night.xml delete mode 100644 src/cli/utils/BarVisibility.ts rename src/components/bar/{custom_modules/CustomModules.ts => customModules/index.ts} (94%) rename src/components/bar/{custom_modules => customModules}/module_container/helpers/icon.ts (98%) rename src/components/bar/{custom_modules => customModules}/module_container/helpers/label.ts (98%) rename src/components/bar/{custom_modules => customModules}/module_container/helpers/utils.ts (100%) rename src/components/bar/{custom_modules => customModules}/module_container/index.tsx (95%) rename src/components/bar/{custom_modules => customModules}/module_container/setup.ts (93%) rename src/components/bar/{custom_modules => customModules}/types.ts (81%) delete mode 100644 src/components/bar/exports.ts create mode 100644 src/components/bar/layout/BarLayout.tsx create mode 100644 src/components/bar/layout/WidgetRegistry.tsx create mode 100644 src/components/bar/layout/coreWidgets.tsx rename src/{lib/types/battery.types.ts => components/bar/modules/battery/helpers/types.ts} (100%) delete mode 100644 src/components/bar/modules/cpu/helpers/index.ts rename src/{lib/types/customModules/kbLayout.types.ts => components/bar/modules/kblayout/helpers/types.ts} (94%) rename src/{lib/types/audio.types.ts => components/bar/modules/media/helpers/types.ts} (100%) create mode 100644 src/components/bar/modules/netstat/helpers.ts delete mode 100644 src/components/bar/modules/netstat/helpers/index.ts delete mode 100644 src/components/bar/modules/ram/helpers/index.ts delete mode 100644 src/components/bar/modules/storage/helpers/index.ts create mode 100644 src/components/bar/modules/storage/helpers/tooltipFormatters.ts rename src/{lib/constants => components/bar/modules/window_title/helpers}/appIcons.ts (100%) create mode 100644 src/components/bar/modules/workspaces/helpers/types.ts create mode 100644 src/components/bar/modules/workspaces/types.ts rename src/components/bar/shared/{Module.tsx => module/index.tsx} (94%) rename src/components/bar/shared/{WidgetContainer.tsx => widgetContainer/index.tsx} (92%) rename src/{lib/types/bar.types.ts => components/bar/types.ts} (50%) delete mode 100644 src/components/bar/utils/helpers.ts create mode 100644 src/components/bar/utils/input/commandExecutor.ts create mode 100644 src/components/bar/utils/input/inputHandler.ts create mode 100644 src/components/bar/utils/input/throttle.ts rename src/{lib/types/customModules/utils.types.ts => components/bar/utils/input/types.ts} (57%) rename src/components/bar/utils/{menu.ts => menu/index.ts} (53%) rename src/components/bar/utils/{monitors.ts => monitors/index.ts} (66%) delete mode 100644 src/components/bar/utils/sideEffects.ts create mode 100644 src/components/bar/utils/systemResource/index.ts rename src/{lib/types/dashboard.types.ts => components/menus/dashboard/shortcuts/types.ts} (51%) rename src/{lib/types/powerprofiles.types.ts => components/menus/energy/profiles/types.ts} (100%) rename src/components/menus/{exports.ts => index.ts} (100%) rename src/{lib/types/mpris.types.ts => components/menus/media/components/controls/types.ts} (60%) delete mode 100644 src/components/menus/network/ethernet/helpers.ts create mode 100644 src/components/menus/network/types.ts delete mode 100644 src/components/menus/network/utils.ts create mode 100644 src/components/menus/network/wifi/APStaging/helpers/index.ts delete mode 100644 src/components/menus/network/wifi/Controls/helpers.ts delete mode 100644 src/components/menus/network/wifi/WirelessAPs/helpers.ts rename src/{lib/types/power.types.ts => components/menus/power/types.ts} (100%) rename src/components/menus/shared/dropdown/{eventBoxes/index.tsx => helpers/eventBoxes.tsx} (94%) rename src/components/menus/shared/dropdown/{ => helpers}/helpers.ts (95%) rename src/components/menus/shared/dropdown/{locationHandler/index.ts => helpers/locationHandler.ts} (98%) create mode 100644 src/components/menus/shared/dropdown/helpers/types.ts rename src/{shared/window.ts => components/menus/shared/popup/layouts.ts} (76%) rename src/{lib/types/popupwindow.types.ts => components/menus/shared/popup/types.ts} (95%) rename src/components/notifications/{Actions.tsx => Actions/index.tsx} (97%) rename src/components/notifications/{Body.tsx => Body/index.tsx} (95%) rename src/components/notifications/{CloseButton.tsx => CloseButton/index.tsx} (100%) rename src/components/notifications/{Header.tsx => Header/index.tsx} (84%) rename src/components/notifications/{Image.tsx => Image/index.tsx} (92%) rename src/components/notifications/{Notification.tsx => Notification/index.tsx} (87%) rename src/components/osd/{OsdRevealer.tsx => revealer/index.tsx} (83%) rename src/{lib/constants/options.ts => components/settings/constants.ts} (93%) rename src/components/settings/shared/inputs/{object.tsx => float.tsx} (71%) create mode 100644 src/components/settings/shared/inputs/object/EditorControls.tsx create mode 100644 src/components/settings/shared/inputs/object/JsonEditor.tsx create mode 100644 src/components/settings/shared/inputs/object/JsonPreview.tsx create mode 100644 src/components/settings/shared/inputs/object/helpers/index.ts create mode 100644 src/components/settings/shared/inputs/object/helpers/keyHandler.ts create mode 100644 src/components/settings/shared/inputs/object/helpers/sourceViewSetup.ts create mode 100644 src/components/settings/shared/inputs/object/helpers/useJsonEditor.ts create mode 100644 src/components/settings/shared/inputs/object/index.tsx create mode 100644 src/components/settings/shared/inputs/object/types.ts rename src/{lib/types/filechooser.types.ts => components/settings/shared/types.ts} (100%) create mode 100644 src/components/shared/SourceView.tsx create mode 100644 src/components/shared/TextView.tsx create mode 100644 src/configuration/index.ts create mode 100644 src/configuration/modules/config/bar/battery/index.ts create mode 100644 src/configuration/modules/config/bar/bluetooth/index.ts create mode 100644 src/configuration/modules/config/bar/cava/index.ts create mode 100644 src/configuration/modules/config/bar/clock/index.ts create mode 100644 src/configuration/modules/config/bar/cpu/index.ts create mode 100644 src/configuration/modules/config/bar/cpuTemp/index.ts create mode 100644 src/configuration/modules/config/bar/hypridle/index.ts create mode 100644 src/configuration/modules/config/bar/hyprsunset/index.ts create mode 100644 src/configuration/modules/config/bar/index.ts create mode 100644 src/configuration/modules/config/bar/kbLayout/index.ts create mode 100644 src/configuration/modules/config/bar/launcher/index.ts create mode 100644 src/configuration/modules/config/bar/layouts/index.ts create mode 100644 src/configuration/modules/config/bar/media/index.ts create mode 100644 src/configuration/modules/config/bar/microphone/index.ts create mode 100644 src/configuration/modules/config/bar/netstat/index.ts create mode 100644 src/configuration/modules/config/bar/network/index.ts create mode 100644 src/configuration/modules/config/bar/notifications/index.ts create mode 100644 src/configuration/modules/config/bar/power/index.ts create mode 100644 src/configuration/modules/config/bar/ram/index.ts create mode 100644 src/configuration/modules/config/bar/storage/index.ts create mode 100644 src/configuration/modules/config/bar/storage/types.ts create mode 100644 src/configuration/modules/config/bar/submap/index.ts create mode 100644 src/configuration/modules/config/bar/systray/index.ts rename src/{lib/types/systray.types.ts => configuration/modules/config/bar/systray/types.ts} (100%) create mode 100644 src/configuration/modules/config/bar/updates/index.ts create mode 100644 src/configuration/modules/config/bar/volume/index.ts create mode 100644 src/configuration/modules/config/bar/weather/index.ts create mode 100644 src/configuration/modules/config/bar/windowtitle/index.ts create mode 100644 src/configuration/modules/config/bar/workspaces/index.ts create mode 100644 src/configuration/modules/config/bar/worldclock/index.ts create mode 100644 src/configuration/modules/config/index.ts create mode 100644 src/configuration/modules/config/menus/clock/index.ts create mode 100644 src/configuration/modules/config/menus/dashboard/index.ts create mode 100644 src/configuration/modules/config/menus/index.ts create mode 100644 src/configuration/modules/config/menus/media/index.ts create mode 100644 src/configuration/modules/config/menus/power/index.ts create mode 100644 src/configuration/modules/config/menus/types.ts create mode 100644 src/configuration/modules/config/menus/volume/index.ts create mode 100644 src/configuration/modules/config/notifications/index.ts create mode 100644 src/configuration/modules/theme/bar/buttons/battery.ts create mode 100644 src/configuration/modules/theme/bar/buttons/bluetooth.ts create mode 100644 src/configuration/modules/theme/bar/buttons/cava.ts create mode 100644 src/configuration/modules/theme/bar/buttons/clock.ts create mode 100644 src/configuration/modules/theme/bar/buttons/cpu.ts create mode 100644 src/configuration/modules/theme/bar/buttons/cpuTemp.ts create mode 100644 src/configuration/modules/theme/bar/buttons/dashboard.ts create mode 100644 src/configuration/modules/theme/bar/buttons/hypridle.ts create mode 100644 src/configuration/modules/theme/bar/buttons/hyprsunset.ts create mode 100644 src/configuration/modules/theme/bar/buttons/index.ts create mode 100644 src/configuration/modules/theme/bar/buttons/kbLayout.ts create mode 100644 src/configuration/modules/theme/bar/buttons/media.ts create mode 100644 src/configuration/modules/theme/bar/buttons/microphone.ts create mode 100644 src/configuration/modules/theme/bar/buttons/netstat.ts create mode 100644 src/configuration/modules/theme/bar/buttons/network.ts create mode 100644 src/configuration/modules/theme/bar/buttons/notifications.ts create mode 100644 src/configuration/modules/theme/bar/buttons/power.ts create mode 100644 src/configuration/modules/theme/bar/buttons/ram.ts create mode 100644 src/configuration/modules/theme/bar/buttons/separator.ts create mode 100644 src/configuration/modules/theme/bar/buttons/storage.ts create mode 100644 src/configuration/modules/theme/bar/buttons/submap.ts create mode 100644 src/configuration/modules/theme/bar/buttons/systray.ts create mode 100644 src/configuration/modules/theme/bar/buttons/updates.ts create mode 100644 src/configuration/modules/theme/bar/buttons/volume.ts create mode 100644 src/configuration/modules/theme/bar/buttons/weather.ts create mode 100644 src/configuration/modules/theme/bar/buttons/windowtitle.ts create mode 100644 src/configuration/modules/theme/bar/buttons/workspaces.ts create mode 100644 src/configuration/modules/theme/bar/buttons/worldclock.ts create mode 100644 src/configuration/modules/theme/bar/index.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/border.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/buttons.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/checkRadioButton.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/dropdownmenu.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/iconbuttons.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/icons.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/index.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/listitems.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/popover.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/progressbar.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/scroller.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/slider.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/switch.ts create mode 100644 src/configuration/modules/theme/bar/menus/components/tooltip.ts create mode 100644 src/configuration/modules/theme/bar/menus/index.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/battery.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/bluetooth.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/clock.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/dashboard.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/media.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/network.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/notifications.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/power.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/systray.ts create mode 100644 src/configuration/modules/theme/bar/menus/modules/volume.ts create mode 100644 src/configuration/modules/theme/colors/primary.ts create mode 100644 src/configuration/modules/theme/colors/secondary.ts create mode 100644 src/configuration/modules/theme/colors/tertiary.ts create mode 100644 src/configuration/modules/theme/general/index.ts create mode 100644 src/configuration/modules/theme/index.ts create mode 100644 src/configuration/modules/theme/notification/index.ts create mode 100644 src/configuration/modules/theme/osd/index.ts create mode 100644 src/core/behaviors/bar/clock.ts create mode 100644 src/core/behaviors/bar/index.ts create mode 100644 src/core/behaviors/bar/windowTitle.ts rename src/{lib => core}/behaviors/batteryWarning.ts (90%) rename src/{lib => core}/behaviors/hyprlandRules.ts (100%) rename src/{lib => core}/behaviors/index.ts (51%) create mode 100644 src/core/errors/handler.ts create mode 100644 src/core/system/SystemUtilities.ts rename src/{lib/constants/distro.ts => core/system/distroIcons.ts} (100%) create mode 100644 src/core/system/osInfo.ts rename src/{lib/types/notification.types.ts => core/system/types.ts} (57%) create mode 100644 src/core/types/index.ts create mode 100644 src/lib/array/helpers.ts create mode 100644 src/lib/bar/helpers.ts delete mode 100644 src/lib/behaviors/autoHide.ts rename src/{shared => lib/events}/dropdown.ts (99%) create mode 100644 src/lib/events/mouse.ts create mode 100644 src/lib/httpClient/HttpError.ts create mode 100644 src/lib/httpClient/index.ts create mode 100644 src/lib/httpClient/types.ts create mode 100644 src/lib/icons/helpers.ts delete mode 100644 src/lib/icons/icons2.ts delete mode 100644 src/lib/icons/weather.ts delete mode 100644 src/lib/options/ConfigManager.ts create mode 100644 src/lib/options/configManager/index.ts rename src/lib/options/{Opt.ts => opt/index.ts} (96%) rename src/lib/options/{OptionRegistry.ts => optionRegistry/index.ts} (93%) rename src/lib/options/{options.types.ts => types.ts} (91%) create mode 100644 src/lib/path/helpers.ts create mode 100644 src/lib/poller/types.ts rename src/lib/{session.ts => session/index.ts} (93%) rename src/lib/shared/{eventHandlers.ts => eventHandlers/index.ts} (96%) create mode 100644 src/lib/shared/eventHandlers/types.ts rename src/lib/shared/{hookHandler.ts => hookHandler/index.ts} (100%) delete mode 100644 src/lib/shared/media.ts delete mode 100644 src/lib/shared/notifications.ts create mode 100644 src/lib/shared/notifications/index.ts create mode 100644 src/lib/string/formatters.ts rename src/{shared => lib/theme}/useTheme.ts (78%) delete mode 100644 src/lib/types/customModules/generic.types.ts delete mode 100644 src/lib/types/customModules/network.types.ts delete mode 100644 src/lib/types/defaults/bar.types.ts delete mode 100644 src/lib/types/defaults/netstat.types.ts delete mode 100644 src/lib/types/defaults/weather.types.ts delete mode 100644 src/lib/types/dropdownmenu.types.ts delete mode 100644 src/lib/types/network.types.ts delete mode 100644 src/lib/types/utils.types.ts delete mode 100644 src/lib/types/weather.types.ts delete mode 100644 src/lib/types/widget.types.ts delete mode 100644 src/lib/types/workspace.types.ts create mode 100644 src/lib/units/length/index.ts create mode 100644 src/lib/units/length/types.ts create mode 100644 src/lib/units/pressure/index.ts create mode 100644 src/lib/units/pressure/types.ts create mode 100644 src/lib/units/size/index.ts create mode 100644 src/lib/units/size/types.ts create mode 100644 src/lib/units/speed/index.ts create mode 100644 src/lib/units/speed/types.ts create mode 100644 src/lib/units/temperature/index.ts create mode 100644 src/lib/units/temperature/types.ts rename src/{shared/time.ts => lib/units/time/index.ts} (100%) delete mode 100644 src/lib/utils.ts rename src/lib/{constants/colors.ts => validation/colorNames.ts} (100%) create mode 100644 src/lib/validation/colors.ts create mode 100644 src/lib/validation/images.ts create mode 100644 src/lib/validation/types.ts delete mode 100644 src/lib/variables.ts create mode 100644 src/lib/window/positioning.ts rename src/{shared/utilities.ts => lib/window/visibility.ts} (52%) delete mode 100644 src/options.ts delete mode 100644 src/scss/main.scss delete mode 100644 src/scss/utils/hotReload.ts delete mode 100644 src/services/Cpu.ts delete mode 100644 src/services/Gpu.ts delete mode 100644 src/services/Ram.ts delete mode 100644 src/services/Storage.ts delete mode 100644 src/services/Wallpaper.ts rename src/{ => services}/cli/commander/InitializeCommand.ts (68%) rename src/{ => services}/cli/commander/Parser.ts (100%) rename src/{ => services}/cli/commander/Registry.ts (100%) rename src/{ => services}/cli/commander/RequestHandler.ts (100%) rename src/{ => services}/cli/commander/commands/appearance/index.ts (89%) create mode 100644 src/services/cli/commander/commands/modules/media/index.ts rename src/{cli/commander/commands/utility => services/cli/commander/commands/system}/checkDependencies.ts (67%) rename src/{cli/commander/commands/utility => services/cli/commander/commands/system}/index.ts (74%) create mode 100644 src/services/cli/commander/commands/system/listSensors.ts rename src/{ => services}/cli/commander/commands/windowManagement/index.ts (92%) rename src/{ => services}/cli/commander/helpers/index.ts (100%) rename src/{ => services}/cli/commander/index.ts (98%) rename src/{ => services}/cli/commander/types.ts (92%) rename src/{shared => services/cli/helpers}/systray.ts (65%) rename src/{shared => services/cli/helpers}/wallpaper.ts (60%) create mode 100644 src/services/cli/services/window/index.ts create mode 100644 src/services/display/bar/autoHide.ts create mode 100644 src/services/display/bar/index.ts rename src/{lib/types/cli.types.ts => services/display/bar/types.ts} (100%) rename src/{components/bar/utils/GdkMonitorMapper.ts => services/display/monitor/index.ts} (94%) rename src/{lib/types/defaults/options.types.ts => services/matugen/defaults.ts} (100%) create mode 100644 src/services/media/index.ts create mode 100644 src/services/media/types.ts create mode 100644 src/services/network/ethernet.ts create mode 100644 src/services/network/index.ts rename src/{lib/constants/network.ts => services/network/types.ts} (55%) create mode 100644 src/services/network/wifi.ts rename src/services/{Brightness.ts => system/brightness/index.ts} (55%) create mode 100644 src/services/system/cpuUsage/index.ts create mode 100644 src/services/system/cpuUsage/types.ts create mode 100644 src/services/system/cputemp/index.ts create mode 100644 src/services/system/cputemp/sensorDiscovery.ts create mode 100644 src/services/system/cputemp/types.ts create mode 100644 src/services/system/gpuUsage/index.ts rename src/{lib/types/gpustat.types.ts => services/system/gpuUsage/types.ts} (61%) create mode 100644 src/services/system/networkUsage/index.ts create mode 100644 src/services/system/networkUsage/types.ts create mode 100644 src/services/system/ramUsage/index.ts create mode 100644 src/services/system/ramUsage/types.ts create mode 100644 src/services/system/storage/index.ts create mode 100644 src/services/system/storage/types.ts create mode 100644 src/services/system/types.ts create mode 100644 src/services/system/uptime/index.ts create mode 100644 src/services/wallpaper/SwwwDaemon.ts create mode 100644 src/services/wallpaper/index.ts create mode 100644 src/services/weather/adapters/registry.ts create mode 100644 src/services/weather/adapters/types.ts create mode 100644 src/services/weather/adapters/weatherApi/index.ts create mode 100644 src/services/weather/adapters/weatherApi/mapper.ts create mode 100644 src/services/weather/adapters/weatherApi/types.ts create mode 100644 src/services/weather/default.ts create mode 100644 src/services/weather/formatters/index.ts create mode 100644 src/services/weather/index.ts create mode 100644 src/services/weather/keyManager/index.ts create mode 100644 src/services/weather/types/index.ts create mode 100644 src/services/weather/validators/index.ts create mode 100644 src/services/workspace/index.ts create mode 100644 src/services/workspace/types.ts delete mode 100644 src/shared/media.ts delete mode 100644 src/shared/notification.ts delete mode 100644 src/shared/variables.ts delete mode 100644 src/shared/weather.ts rename src/{scss/style.ts => style/index.ts} (92%) create mode 100644 src/style/main.scss rename src/{scss => style}/optionsTrackers.ts (56%) rename src/{scss/style => style/scss}/bar/audio.scss (100%) rename src/{scss/style => style/scss}/bar/bar.scss (100%) rename src/{scss/style => style/scss}/bar/battery.scss (100%) rename src/{scss/style => style/scss}/bar/bluetooth.scss (100%) rename src/{scss/style => style/scss}/bar/clock.scss (100%) rename src/{scss/style => style/scss}/bar/media.scss (100%) rename src/{scss/style => style/scss}/bar/menu.scss (100%) rename src/{scss/style => style/scss}/bar/module-separator.scss (100%) rename src/{scss/style => style/scss}/bar/network.scss (100%) rename src/{scss/style => style/scss}/bar/notifications.scss (100%) rename src/{scss/style => style/scss}/bar/style.scss (100%) rename src/{scss/style => style/scss}/bar/systray.scss (100%) rename src/{scss/style => style/scss}/bar/window_title.scss (100%) rename src/{scss/style => style/scss}/bar/workspace.scss (100%) rename src/{scss/style => style/scss}/colors.scss (100%) rename src/{scss/style => style/scss}/common/common.scss (100%) rename src/{scss/style => style/scss}/common/floating-widget.scss (100%) rename src/{scss/style => style/scss}/common/general.scss (100%) rename src/{scss/style => style/scss}/common/popover_menu.scss (100%) rename src/{scss/style => style/scss}/common/widget-button.scss (100%) rename src/{scss/style => style/scss}/highlights.scss (100%) rename src/{scss/style => style/scss}/menus/audiomenu.scss (100%) rename src/{scss/style => style/scss}/menus/bluetooth.scss (100%) rename src/{scss/style => style/scss}/menus/calendar.scss (100%) rename src/{scss/style => style/scss}/menus/dashboard.scss (88%) rename src/{scss/style => style/scss}/menus/energy.scss (100%) rename src/{scss/style => style/scss}/menus/media.scss (100%) rename src/{scss/style => style/scss}/menus/menu.scss (100%) rename src/{scss/style => style/scss}/menus/network.scss (100%) rename src/{scss/style => style/scss}/menus/notifications.scss (100%) rename src/{scss/style => style/scss}/menus/power.scss (100%) rename src/{scss/style => style/scss}/menus/powerdropdown.scss (100%) rename src/{scss/style => style/scss}/notifications/popups.scss (100%) rename src/{scss/style => style/scss}/osd/index.scss (100%) rename src/{scss/style => style/scss}/settings/dialog.scss (100%) create mode 100644 src/style/scss/settings/json-editor.scss create mode 100644 src/style/utils/hotReload.ts diff --git a/.gitignore b/.gitignore index 0ecea57..6f0fbb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ .weather.json node_modules +prepare @girs + +**/.claude/settings.local.json diff --git a/app.ts b/app.ts index 4b7f175..aa9ea1d 100644 --- a/app.ts +++ b/app.ts @@ -1,31 +1,27 @@ import './src/lib/session'; -import './src/scss/style'; -import './src/shared/useTheme'; -import './src/shared/wallpaper'; -import './src/shared/systray'; -import './src/shared/dropdown'; -import './src/shared/utilities'; -import './src/components/bar/utils/sideEffects'; - +import './src/style'; +import 'src/core/behaviors/bar'; import AstalHyprland from 'gi://AstalHyprland?version=0.1'; -const hyprland = AstalHyprland.get_default(); - import { Bar } from './src/components/bar'; -import { DropdownMenus, StandardWindows } from './src/components/menus/exports'; import Notifications from './src/components/notifications'; import SettingsDialog from './src/components/settings/index'; -import { bash, forMonitors } from 'src/lib/utils'; -import options from 'src/options'; import OSD from 'src/components/osd/index'; import { App } from 'astal/gtk3'; import { execAsync } from 'astal'; -import { handleRealization } from 'src/components/menus/shared/dropdown/helpers'; -import { isDropdownMenu } from 'src/lib/constants/options.js'; -import { initializeSystemBehaviors } from 'src/lib/behaviors'; -import { runCLI } from 'src/cli/commander'; +import { handleRealization } from 'src/components/menus/shared/dropdown/helpers/helpers'; +import { isDropdownMenu } from 'src/components/settings/constants.js'; +import { initializeSystemBehaviors } from 'src/core/behaviors'; +import { runCLI } from 'src/services/cli/commander'; +import { DropdownMenus, StandardWindows } from 'src/components/menus'; +import { forMonitors } from 'src/components/bar/utils/monitors'; +import options from 'src/configuration'; +import { SystemUtilities } from 'src/core/system/SystemUtilities'; +const hyprland = AstalHyprland.get_default(); const initializeStartupScripts = (): void => { - execAsync(`python3 ${SRC_DIR}/scripts/bluetooth.py`).catch((err) => console.error(err)); + execAsync(`python3 ${SRC_DIR}/scripts/bluetooth.py`).catch((err) => + console.error('Failed to initialize bluetooth script:', err), + ); }; const initializeMenus = (): void => { @@ -38,7 +34,10 @@ const initializeMenus = (): void => { }); DropdownMenus.forEach((window) => { - const windowName = window.name.replace('_default', '').concat('menu').toLowerCase(); + const windowName = window.name + .replace(/_default.*/, '') + .concat('menu') + .toLowerCase(); if (!isDropdownMenu(windowName)) { return; @@ -54,18 +53,22 @@ App.start({ runCLI(request, res); }, async main() { - initializeStartupScripts(); + try { + initializeStartupScripts(); - Notifications(); - OSD(); + Notifications(); + OSD(); - const barsForMonitors = await forMonitors(Bar); - barsForMonitors.forEach((bar: JSX.Element) => bar); + const barsForMonitors = await forMonitors(Bar); + barsForMonitors.forEach((bar: JSX.Element) => bar); - SettingsDialog(); - initializeMenus(); + SettingsDialog(); + initializeMenus(); - initializeSystemBehaviors(); + initializeSystemBehaviors(); + } catch (error) { + console.error('Error during application initialization:', error); + } }, }); @@ -73,6 +76,6 @@ hyprland.connect('monitor-added', () => { const { restartCommand } = options.hyprpanel; if (options.hyprpanel.restartAgs.get()) { - bash(restartCommand.get()); + SystemUtilities.bash(restartCommand.get()); } }); diff --git a/assets/tokyo-night.xml b/assets/tokyo-night.xml new file mode 100644 index 0000000..0b597a7 --- /dev/null +++ b/assets/tokyo-night.xml @@ -0,0 +1,139 @@ + + + + + HyprPanel - Jas Singh + Tokyo Night color scheme for GtkSourceView + + +