From 8775f2cb83776fb4ac9467534f254e3954ca2b58 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Mon, 21 Jul 2025 08:56:06 +0545 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(config):=20use=20?= =?UTF-8?q?fabric=20Grid=20and=20Box=20widgets=20for=20consistent=20stylin?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/settings/appearance_tab.py | 140 +++++++++++++++------------- config/settings/key_bindings_tab.py | 14 ++- config/settings/system_tab.py | 53 ++++++----- 3 files changed, 107 insertions(+), 100 deletions(-) diff --git a/config/settings/appearance_tab.py b/config/settings/appearance_tab.py index ef9799e..cfe137b 100644 --- a/config/settings/appearance_tab.py +++ b/config/settings/appearance_tab.py @@ -2,11 +2,12 @@ import os import gi from fabric.widgets.box import Box from fabric.widgets.button import Button -from fabric.widgets.image import Image as FabricImage +from fabric.widgets.grid import Grid +from fabric.widgets.image import Image from fabric.widgets.label import Label from fabric.widgets.scrolledwindow import ScrolledWindow -from gi.repository import Gdk, GdkPixbuf, Gtk from fabric.widgets.scale import Scale +from gi.repository import GdkPixbuf, Gtk from config.data import NOTIF_POS_DEFAULT, NOTIF_POS_KEY from config.settings.utils import bind_vars @@ -84,10 +85,11 @@ class AppearanceTab: def _create_wallpaper_profile_section(self, vbox): """Create wallpaper and profile icon section""" - top_grid = Gtk.Grid() - top_grid.set_column_spacing(20) - top_grid.set_row_spacing(5) - top_grid.set_margin_bottom(10) + top_grid = Grid( + column_spacing=20, + row_spacing=5, + style="margin-bottom: 10px;" + ) vbox.add(top_grid) # Wallpaper section @@ -96,9 +98,11 @@ class AppearanceTab: wall_label = Label(label="Directory:", h_align="start", v_align="center") top_grid.attach(wall_label, 0, 1, 1, 1) - chooser_container = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) - chooser_container.set_halign(Gtk.Align.START) - chooser_container.set_valign(Gtk.Align.CENTER) + chooser_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" + ) self.wall_dir_chooser = Gtk.FileChooserButton( title="Select a folder", action=Gtk.FileChooserAction.SELECT_FOLDER ) @@ -117,7 +121,7 @@ class AppearanceTab: face_image_container = Box( style_classes=["image-frame"], h_align="center", v_align="center" ) - self.face_image = FabricImage(size=64) + self.face_image = Image(size=64) try: if os.path.exists(current_face): pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(current_face, 64, 64) @@ -130,9 +134,11 @@ class AppearanceTab: face_image_container.add(self.face_image) top_grid.attach(face_image_container, 2, 1, 1, 1) - browse_btn_container = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) - browse_btn_container.set_halign(Gtk.Align.START) - browse_btn_container.set_valign(Gtk.Align.CENTER) + browse_btn_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" + ) face_btn = Button( label="Browse...", tooltip_text="Select a square image for your profile icon", @@ -147,21 +153,21 @@ class AppearanceTab: """Create layout options section""" layout_header = Label(markup="Layout Options", h_align="start") vbox.add(layout_header) - layout_grid = Gtk.Grid() - layout_grid.set_column_spacing(20) - layout_grid.set_row_spacing(10) - layout_grid.set_margin_start(10) - layout_grid.set_margin_top(5) + layout_grid = Grid( + column_spacing=20, + row_spacing=10, + style="margin-left: 10px; margin-top: 5px;" + ) vbox.add(layout_grid) # Workspace mode ws_mode_label = Label(label="Workspace Mode", h_align="start", v_align="center") layout_grid.attach(ws_mode_label, 0, 0, 1, 1) - ws_mode_combo_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + ws_mode_combo_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.ws_mode_combo = Gtk.ComboBoxText() self.ws_mode_combo.set_tooltip_text("Select how workspaces are displayed") @@ -193,10 +199,10 @@ class AppearanceTab: label="Use Chinese Numerals", h_align="start", v_align="center" ) layout_grid.attach(ws_chinese_label, 2, 0, 1, 1) - ws_chinese_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + ws_chinese_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.ws_chinese_switch = Gtk.Switch( active=bind_vars.get("workspace_use_chinese_numerals", False), @@ -211,10 +217,10 @@ class AppearanceTab: # Dock position position_label = Label(label="Dock Position", h_align="start", v_align="center") layout_grid.attach(position_label, 0, 1, 1, 1) - position_combo_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + position_combo_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.position_combo = Gtk.ComboBoxText() self.position_combo.set_tooltip_text("Select the position of the dock") @@ -233,10 +239,10 @@ class AppearanceTab: # Dock theme dock_theme_label = Label(label="Dock Theme", h_align="start", v_align="center") layout_grid.attach(dock_theme_label, 2, 1, 1, 1) - dock_theme_combo_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + dock_theme_combo_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.dock_theme_combo = Gtk.ComboBoxText() self.dock_theme_combo.set_tooltip_text("Select the visual theme for the dock") @@ -253,10 +259,10 @@ class AppearanceTab: # Show Dock switch dock_label = Label(label="Show Dock", h_align="start", v_align="center") layout_grid.attach(dock_label, 0, 2, 1, 1) - dock_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + dock_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.dock_switch = Gtk.Switch(active=bind_vars.get("dock_enabled", True)) self.dock_switch.connect("notify::active", self.on_dock_enabled_changed) @@ -268,10 +274,10 @@ class AppearanceTab: label="Show Dock Only on Hover", h_align="start", v_align="center" ) layout_grid.attach(dock_hover_label, 2, 2, 1, 1) - dock_hover_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + dock_hover_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.dock_hover_switch = Gtk.Switch( active=bind_vars.get("dock_always_occluded", False), @@ -285,10 +291,10 @@ class AppearanceTab: label="Auto-hide Dock", h_align="start", v_align="center" ) layout_grid.attach(dock_auto_hide_label, 0, 3, 1, 1) - dock_auto_hide_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + dock_auto_hide_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.dock_auto_hide_switch = Gtk.Switch( active=bind_vars.get("dock_auto_hide", False), @@ -302,10 +308,10 @@ class AppearanceTab: label="Hide Special Workspace", h_align="start", v_align="center" ) layout_grid.attach(dock_hide_special_label, 2, 3, 1, 1) - dock_hide_special_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + dock_hide_special_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.dock_hide_special_switch = Gtk.Switch( active=bind_vars.get("dock_hide_special_workspace", True), @@ -362,10 +368,10 @@ class AppearanceTab: label="Hide Special Workspace Apps", h_align="start", v_align="center" ) layout_grid.attach(dock_hide_special_apps_label, 0, 6, 1, 1) - dock_hide_special_apps_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + dock_hide_special_apps_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.dock_hide_special_apps_switch = Gtk.Switch( active=bind_vars.get("dock_hide_special_workspace_apps", True), @@ -417,11 +423,11 @@ class AppearanceTab: """Create modules section""" components_header = Label(markup="Modules", h_align="start") vbox.add(components_header) - components_grid = Gtk.Grid() - components_grid.set_column_spacing(15) - components_grid.set_row_spacing(8) - components_grid.set_margin_start(10) - components_grid.set_margin_top(5) + components_grid = Grid( + column_spacing=15, + row_spacing=8, + style="margin-left: 10px; margin-top: 5px;" + ) vbox.add(components_grid) self.component_switches = {} @@ -445,10 +451,10 @@ class AppearanceTab: label="Rounded Corners", h_align="start", v_align="center" ) components_grid.attach(corners_label, 0, 0, 1, 1) - switch_container_corners = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + switch_container_corners = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) switch_container_corners.add(self.corners_switch) components_grid.attach(switch_container_corners, 1, 0, 1, 1) @@ -465,10 +471,10 @@ class AppearanceTab: component_label = Label(label=display, h_align="start", v_align="center") components_grid.attach(component_label, col, row, 1, 1) - switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) component_switch = Gtk.Switch( active=bind_vars.get(f"dock_{name}_visible", True) diff --git a/config/settings/key_bindings_tab.py b/config/settings/key_bindings_tab.py index e5d392d..18b4976 100644 --- a/config/settings/key_bindings_tab.py +++ b/config/settings/key_bindings_tab.py @@ -1,9 +1,9 @@ import gi from fabric.widgets.box import Box from fabric.widgets.entry import Entry +from fabric.widgets.grid import Grid from fabric.widgets.label import Label from fabric.widgets.scrolledwindow import ScrolledWindow -from gi.repository import Gtk from config.data import APP_NAME_CAP from config.settings.utils import bind_vars @@ -33,13 +33,11 @@ class KeyBindingsTab: main_vbox = Box(orientation="v", spacing=10, style="margin: 15px;") scrolled_window.add(main_vbox) - keybind_grid = Gtk.Grid() - keybind_grid.set_column_spacing(10) - keybind_grid.set_row_spacing(8) - keybind_grid.set_margin_start(5) - keybind_grid.set_margin_end(5) - keybind_grid.set_margin_top(5) - keybind_grid.set_margin_bottom(5) + keybind_grid = Grid( + column_spacing=10, + row_spacing=8, + style="margin: 5px;" + ) action_label = Label( markup="Action", h_align="start", style="margin-bottom: 5px;" diff --git a/config/settings/system_tab.py b/config/settings/system_tab.py index f3be6b4..bb690b8 100644 --- a/config/settings/system_tab.py +++ b/config/settings/system_tab.py @@ -2,6 +2,7 @@ import gi from fabric.widgets.box import Box from fabric.widgets.button import Button from fabric.widgets.entry import Entry +from fabric.widgets.grid import Grid from fabric.widgets.label import Label from fabric.widgets.scrolledwindow import ScrolledWindow from gi.repository import GLib, Gtk @@ -58,10 +59,11 @@ class SystemTab: def _create_terminal_hyprland_section(self, vbox): """Create terminal and Hyprland integration section""" - system_grid = Gtk.Grid() - system_grid.set_column_spacing(20) - system_grid.set_row_spacing(10) - system_grid.set_margin_bottom(15) + system_grid = Grid( + column_spacing=20, + row_spacing=10, + style="margin-bottom: 15px;" + ) vbox.add(system_grid) # Terminal settings @@ -91,10 +93,10 @@ class SystemTab: label="Replace Hyprlock config", h_align="start", v_align="center" ) system_grid.attach(lock_label, 2, row, 1, 1) - lock_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + lock_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.lock_switch = Gtk.Switch( tooltip_text="Replace Hyprlock configuration with Modus's custom config" @@ -108,10 +110,10 @@ class SystemTab: label="Replace Hypridle config", h_align="start", v_align="center" ) system_grid.attach(idle_label, 2, row, 1, 1) - idle_switch_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + idle_switch_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) self.idle_switch = Gtk.Switch( tooltip_text="Replace Hypridle configuration with Modus's custom config" @@ -133,12 +135,11 @@ class SystemTab: ) vbox.add(notifications_header) - notif_grid = Gtk.Grid() - notif_grid.set_column_spacing(20) - notif_grid.set_row_spacing(10) - notif_grid.set_margin_start(10) - notif_grid.set_margin_top(5) - notif_grid.set_margin_bottom(15) + notif_grid = Grid( + column_spacing=20, + row_spacing=10, + style="margin-left: 10px; margin-top: 5px; margin-bottom: 15px;" + ) vbox.add(notif_grid) # Limited Apps History @@ -187,8 +188,10 @@ class SystemTab: """Create system metrics section""" metrics_header = Label(markup="System Metrics Options", h_align="start") vbox.add(metrics_header) - metrics_grid = Gtk.Grid( - column_spacing=15, row_spacing=8, margin_start=10, margin_top=5 + metrics_grid = Grid( + column_spacing=15, + row_spacing=8, + style="margin-left: 10px; margin-top: 5px;" ) vbox.add(metrics_grid) @@ -254,10 +257,10 @@ class SystemTab: self._create_disk_edit_entry_func(p) vbox.add(disk_entries_scrolled) - add_container = Gtk.Box( - orientation=Gtk.Orientation.HORIZONTAL, - halign=Gtk.Align.START, - valign=Gtk.Align.CENTER, + add_container = Box( + orientation="horizontal", + h_align="start", + v_align="center" ) add_btn = Button( label="Add new disk", @@ -304,7 +307,7 @@ class SystemTab: values["metrics_disks"] = [ child.get_children()[0].get_text() for child in self.disk_entries.get_children() - if isinstance(child, Gtk.Box) + if isinstance(child, Box) and child.get_children() and isinstance(child.get_children()[0], Entry) ]