This commit is contained in:
sankalp committed 2025-06-26 16:10:17 +05:45
1 parent d684916f14
commit 96434bd036
55 files changed
+724 -543

No files matched your search

+19 -17
View File
@@ -1,21 +1,25 @@
import os
import json
import config.data as data
import os
from fabric.hyprland.service import HyprlandEvent
from fabric.hyprland.widgets import Language, get_hyprland_connection
from fabric.system_tray.widgets import SystemTray
from fabric.utils import get_relative_path
from fabric.widgets.box import Box
from fabric.widgets.button import Button
from fabric.widgets.datetime import DateTime
from fabric.widgets.label import Label
from fabric.widgets.button import Button
from fabric.system_tray.widgets import SystemTray
from .battery import Battery
from .metrics import Metrics
from .controls import Controls
from .workspaces import workspace
from .indicators import Indicators
from .applications import Applications
from .music_player import MusicPlayer
from fabric.hyprland.widgets import get_hyprland_connection, Language
import config.data as data
import utils.icons as icons
from fabric.hyprland.service import HyprlandEvent
from .applications import Applications
from .battery import Battery
from .controls import Controls
from .indicators import Indicators
from .metrics import Metrics
from .music_player import MusicPlayer
from .workspaces import workspace
class DockComponents(Box):
@@ -114,7 +118,7 @@ class DockComponents(Box):
# Special handling for applications component - let it manage its own visibility
if component_name == "applications":
# Only apply config visibility if the component has content
if hasattr(widget, '_update_visibility_based_on_content'):
if hasattr(widget, "_update_visibility_based_on_content"):
widget._update_visibility_based_on_content()
else:
widget.set_visible(self.component_visibility[component_name])
@@ -143,9 +147,7 @@ class DockComponents(Box):
self.component_visibility[component_name]
)
config_file = os.path.expanduser(
f"~/.config/{data.APP_NAME}/config/config.json"
)
config_file = get_relative_path("../../../config/assets/config.json")
if os.path.exists(config_file):
try:
with open(config_file, "r") as f:
+5 -4
View File
@@ -2,7 +2,6 @@ import json
import logging
import cairo
import config.data as data
from fabric.hyprland.widgets import get_hyprland_connection
from fabric.utils import exec_shell_command, exec_shell_command_async, get_relative_path
from fabric.utils.helpers import get_desktop_applications
@@ -10,11 +9,13 @@ from fabric.widgets.box import Box
from fabric.widgets.button import Button
from fabric.widgets.image import Image
from gi.repository import Gdk, GLib, Gtk
import config.data as data
from utils.icon_resolver import IconResolver
def read_config():
config_path = get_relative_path("../../../config/json/dock.json")
config_path = get_relative_path("../../../config/assets/dock.json")
try:
with open(config_path, "r") as file:
config_data = json.load(file)
@@ -78,7 +79,7 @@ class Applications(Box):
self.conn = get_hyprland_connection()
self.icon_resolver = IconResolver()
self.pinned = self.config.get("pinned_apps", [])
self.config_path = get_relative_path("../../../config/json/dock.json")
self.config_path = get_relative_path("../../../config/assets/dock.json")
self.app_map = {}
self._all_apps = get_desktop_applications()
self.app_identifiers = self._build_app_identifiers_map()
@@ -245,7 +246,7 @@ class Applications(Box):
)
def update_pinned_apps_file(self):
config_path = get_relative_path("../../../config/json/dock.json")
config_path = get_relative_path("../../../config/assets/dock.json")
try:
with open(config_path, "w") as file:
json.dump(self.config, file, indent=4)
+3 -2
View File
@@ -1,10 +1,11 @@
import config.data as data
import utils.icons as icons
from fabric.widgets.box import Box
from fabric.widgets.button import Button
from fabric.widgets.circularprogressbar import CircularProgressBar
from fabric.widgets.label import Label
from gi.repository import Gdk, GLib
import config.data as data
import utils.icons as icons
from services.battery import Battery as BatteryService
+3 -2
View File
@@ -1,5 +1,3 @@
import config.data as data
import utils.icons as icons
from fabric.audio.service import Audio
from fabric.widgets.box import Box
from fabric.widgets.button import Button
@@ -8,6 +6,9 @@ from fabric.widgets.eventbox import EventBox
from fabric.widgets.label import Label
from fabric.widgets.overlay import Overlay
from gi.repository import Gdk, GLib
import config.data as data
import utils.icons as icons
from services.brightness import Brightness as BrightnessService
+12 -11
View File
@@ -1,14 +1,16 @@
import subprocess
import config.data as data
import utils.icons as icons
from fabric.bluetooth import BluetoothClient
from fabric.utils import get_relative_path
from fabric.widgets.box import Box
from fabric.widgets.button import Button
from fabric.widgets.circularprogressbar import CircularProgressBar
from fabric.widgets.label import Label
from fabric.widgets.overlay import Overlay
from fabric.utils import get_relative_path
from gi.repository import GLib
import config.data as data
import utils.icons as icons
from services.network import NetworkClient
@@ -188,16 +190,15 @@ class RecordingIndicator(Button):
# Set up periodic checking for recording status
self.check_recording_status()
self.timeout_id = GLib.timeout_add(1000, self.check_recording_status) # Check every second
self.timeout_id = GLib.timeout_add(
1000, self.check_recording_status
) # Check every second
def check_recording_status(self):
"""Check if recording is currently active and update visibility."""
try:
result = subprocess.run(
[self.script_path, "status"],
capture_output=True,
text=True,
timeout=2
[self.script_path, "status"], capture_output=True, text=True, timeout=2
)
is_recording = result.stdout.strip() == "true"
@@ -209,7 +210,7 @@ class RecordingIndicator(Button):
if self.get_visible():
self.hide()
except Exception as e:
except Exception:
# If we can't check status, hide the indicator
if self.get_visible():
self.hide()
@@ -226,7 +227,7 @@ class RecordingIndicator(Button):
def cleanup(self):
"""Clean up the timeout when the indicator is destroyed."""
if hasattr(self, 'timeout_id'):
if hasattr(self, "timeout_id"):
GLib.source_remove(self.timeout_id)
@@ -245,5 +246,5 @@ class Indicators(Box):
def cleanup(self):
"""Clean up all indicators when the dock is destroyed."""
if hasattr(self, 'recording_indicator'):
if hasattr(self, "recording_indicator"):
self.recording_indicator.cleanup()
+3 -2
View File
@@ -1,9 +1,7 @@
import json
import subprocess
import config.data as data
import psutil
import utils.icons as icons
from fabric.widgets.box import Box
from fabric.widgets.button import Button
from fabric.widgets.circularprogressbar import CircularProgressBar
@@ -11,6 +9,9 @@ from fabric.widgets.label import Label
from fabric.widgets.revealer import Revealer
from gi.repository import GLib
import config.data as data
import utils.icons as icons
class MetricsProvider:
def __init__(self):
+3 -2
View File
@@ -2,9 +2,7 @@ import os
import tempfile
import urllib.parse
import config.data as data
import requests
import utils.icons as icons
from fabric.widgets.box import Box
from fabric.widgets.button import Button
from fabric.widgets.centerbox import CenterBox
@@ -12,6 +10,9 @@ from fabric.widgets.eventbox import EventBox
from fabric.widgets.label import Label
from fabric.widgets.stack import Stack
from gi.repository import Gdk, GdkPixbuf, GLib
import config.data as data
import utils.icons as icons
from services.mpris import MediaManager
from utils.audio_visualizer import SpectrumRender
from utils.circle_image import CircleImage
+6 -5
View File
@@ -1,12 +1,13 @@
import json
import subprocess
import config.data as data
from fabric.hyprland.service import Hyprland
from fabric.hyprland.widgets import WorkspaceButton, Workspaces
from fabric.widgets.box import Box
from fabric.widgets.button import Button
import config.data as data
CHINESE_NUMERALS = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "〇"]
@@ -102,8 +103,8 @@ workspaces = Workspaces(
for i in range(1, 11)
],
buttons_factory=None
if data.DOCK_HIDE_SPECIAL_WORKSPACE
else Workspaces.default_buttons_factory,
if data.DOCK_HIDE_SPECIAL_WORKSPACE
else Workspaces.default_buttons_factory,
)
workspaces_num = Workspaces(
@@ -127,8 +128,8 @@ workspaces_num = Workspaces(
for i in range(1, 11)
],
buttons_factory=None
if data.DOCK_HIDE_SPECIAL_WORKSPACE
else Workspaces.default_buttons_factory,
if data.DOCK_HIDE_SPECIAL_WORKSPACE
else Workspaces.default_buttons_factory,
)