Commit Graph
1209 Commits
Author SHA1 Message Date
sankalp 301ed9a717 refactor(mpris): replace playerctl with Gio.DBusProxy
Use raw D-Bus via Gio.DBusProxy instead of libplayerctl. All MPRIS
interactions now go through standard D-Bus property reads and method calls.

- Filter out playerctld proxy (duplicates active player)
- Validate art URLs (http/https/file only)
- Track failed cover downloads to avoid retry loops
- Remove excessive try/except around safe property reads
- Add public metadata property for consumers
- Fix consumer references to removed _player.props.metadata
2026-07-21 10:02:33 +05:45
sankalp faaa99bd24 refactor(battery): consolidate button styles, refactor service, remove ddcutil
- Merge game-mode/charge-limit CSS into shared selectors
- Rewrite Battery service with IntEnum states and charge-limit support
- Add ChargeLimitButton with active-state styling
- Drop ddcutil from dependencies (unused)
2026-07-21 09:21:29 +05:45
sankalp a2ac3d0f55 fix(battery): wrap charge-limit SVG in Box for CSS styling
DrawingArea ignores CSS background/color. Box wrapper lets
#charge-limit-icon.connected selector render active state.
2026-07-21 09:17:52 +05:45
sankalp 5cb49522da refactor(brightness): replace ddcutil with logind DBus proxy
- Use org.freedesktop.login1.Session.SetBrightness for kernel backlight
- Remove ddcutil dependency entirely
- Fix OSD: use signal percentage value directly (like audio OSD)
- Fix controlcenter: stop dividing percentage by max_screen again
2026-07-21 07:31:52 +05:45
sankalp e93e115522 fix(install): skip already-installed packages via pacman -Qi
Avoids AUR helper failures for packages that exist locally
2026-07-19 18:56:54 +05:45
sankalp d4f4850562 fix(package): update package name for fonts as apple-fonts isnot beign install 2026-07-19 18:55:44 +05:45
sankalp 41b147512e fix(install): detach Modus with nohup to survive shell exit
Background & gets SIGHUP when install script shell closes
2026-07-19 18:35:23 +05:45
sankalp 0dac85cd68 fix(install): kill python start.py on stop
killall modus misses the actual python process
2026-07-19 18:31:15 +05:45
sankalp f0997981fd fix(install): kill background jobs on Ctrl+C
- jobs -p | xargs kill in cleanup ensures sudo keepalive
  and spinner processes are terminated on SIGINT
2026-07-19 18:27:25 +05:45
sankalp c46e023752 fix(install): resolve fabric import and hyprland sourcing
- Run uv sync before launch to install Python deps
- cd into install dir for uv run (fixes ModuleNotFoundError)
- Handle commented modus.lua lines in hyprland config
2026-07-19 18:24:55 +05:45
sankalp 7ac5696ef5 feat: bump version to 2.0.0 2026-07-19 18:15:44 +05:45
sankalp a7adbfe60e fix(settings): prevent window destroy on close to keep __main__ reference valid 2026-07-19 16:19:50 +05:45
sankalp 5e0337c0d6 fix(spotlight): monitor .desktop dirs for newly installed apps
Replace 1s TTL timer rescan with Gio.FileMonitor on XDG application
directories so spotlight picks up apps installed while running.
2026-07-19 12:03:27 +05:45
sankalp 96412dda47 feat: add settings window to fabric-cli and update docs 2026-07-19 10:37:12 +05:45
sankalp a7d4358cef feat(release): bump version to 2.0.0 2026-07-18 22:55:11 +05:45
sankalp f9c7a027cd refactor(config): improve toml conversion and add robust error handling 2026-07-18 22:54:48 +05:45
sankalp 995b222d32 build(release): bump version to 2.0.0
Update install script to reload hyprctl and launch Python service; adjust pyproject.toml version and metadata
2026-07-18 22:39:08 +05:45
sankalp b69b11a184 docs(readme): update the quickstart 2026-07-18 22:35:34 +05:45
sankalp e8f8f8c078 fix(config): remove hardcoded dev folder and fix some lines 2026-07-18 22:34:11 +05:45
sankalp d7cec81fe0 fix(install): fix installtion errors 2026-07-18 22:33:39 +05:45
sankalp 609036f204 Merge pull request #30 from S4NKALP/dev
Huge work and update lol
2026-07-18 21:56:08 +05:45
sankalp fe3ccd913b refactor(brightness): replace 500ms poll with GLib.FileMonitor
- Use Gio.FileMonitor on sysfs brightness file
- Event-driven via inotify instead of periodic polling
- _on_brightness_file_changed callback for file modifications
2026-07-18 21:48:11 +05:45
sankalp 8f6a040bb7 refactor(dock): replace 300ms occlusion poll with Hyprland events
- Subscribe to openwindow, closewindow, movewindow, workspace, fullscreen
- 50ms debounce to batch rapid successive events
- Event-driven check instead of continuous polling
- Proper cleanup with _disconnect_occlusion_signals()
2026-07-18 21:43:36 +05:45
sankalp 44f1103259 refactor(per_app_volume): remove redundant 2s polling
- stream-added/stream-removed signals already handle app list updates
- Removed _auto_refresh(), _on_map/_on_unmap timer management
- Removed _last_app_names tracking (unused without polling)
2026-07-18 21:43:29 +05:45
sankalp 2a9964a8e5 refactor(mpris): replace Fabricator with direct GLib.timeout_add
- Remove Fabricator dependency from position/status polling
- Position polling: _pos_source_id + _on_pos_poll() (2s interval)
- Status polling: _status_source_id + _on_status_poll() (5s interval)
- Simplified cleanup with direct source_remove calls
2026-07-18 21:43:22 +05:45
sankalp 6286343272 feat(gamemode): add opacity and rounding overrides for fullscreen
- active_opacity=1.0, inactive_opacity=1.0
- active_rounding=0
2026-07-18 21:43:16 +05:45
sankalp 8ee6003241 style: replace solid accent hover/active with glass effect
- glass-hover: alpha(@foreground,0.08) → alpha(white,0.10)
- glass-active: alpha(@foreground,0.14) → alpha(white,0.50)
- panel, settings, dropdown, tray, notification hover → glass-hover
- battery, wifi, bluetooth connected icons → glass-active
- wifi-icon-box base dimmed to glass-hover for contrast
2026-07-18 21:23:28 +05:45
sankalp 2ba5cc9ccc style(src/styles/window): replace @glass-overlay-dark with #000000 in lock.css and panel.css 2026-07-18 19:39:45 +05:45
sankalp f0643a5b03 docs(faqs): add screencapture keybinds and fix plugin paths 2026-07-18 19:29:48 +05:45
sankalp a403b5a649 docs(plugins): add icon_data field and fix duplicate heading
- Add icon_data field to SearchResult documentation
- Remove duplicate 'How It Works' heading
- Fix plugin directory path references
2026-07-18 19:29:45 +05:45
sankalp 5afada35a4 docs(arch): add missing components and services
- Add notification, osd, wallpaper components
- Add 12 missing services to the services table
- Fix plugin directory path
2026-07-18 19:29:40 +05:45
sankalp c0870dacef docs(config): add missing config.toml keys and mods.toml options 2026-07-18 19:29:34 +05:45
sankalp d06768cb85 docs(install): update package list and fix config reference 2026-07-18 19:29:28 +05:45
sankalp 5544367c2c docs(readme): update package list and fix config reference
- Sync package list with install.sh PACKAGES
- Fix modus.conf reference to modus.lua
2026-07-18 19:29:23 +05:45
sankalp 0b2f5be80e docs(styling): fix CSS paths to match actual directory structure 2026-07-18 19:29:17 +05:45
sankalp f4bfb52ba6 fix(install): fix matugen output path and remove unused variable
- Fix matugen output_path from src/shared/styles/ to src/styles/
- Remove unused BULLET variable (shellcheck SC2034)
2026-07-18 19:29:10 +05:45
sankalp 2482078a3f style: simplify section comments to plain # style in notch.py and keyboard_layout.py 2026-07-18 19:06:32 +05:45
sankalp 0fd5d3ea28 style(install): simplify section comments to plain # style 2026-07-18 19:03:23 +05:45
sankalp 591017f6e5 fix(install): fix spinner exit check, remove dead code, fix launch logic
- spinner now checks exit code and shows cross on failure
- Removed unused print_packages function
- Fixed launch: backgrounded uwsm always returned 0, else branch was
  dead code. Now runs in background and checks with pgrep.
2026-07-18 18:51:24 +05:45
sankalp 713f73f45c fix(install): remove install mode selection, keep simple
Removed Full/Minimal/Custom mode picker. Script now always installs
all packages. Kept -n dry-run and -y auto-yes flags.
2026-07-18 15:16:31 +05:45
sankalp ab9b9df4e1 feat(install): rewrite install.sh with interactive mode selection
- 3 install modes: Full, Minimal, Custom (pick categories)
- Dry-run flag (-n) to preview packages without installing
- Progress bar with percentage during package install
- Better visual hierarchy with section headers and dividers
- Package categories: Core, Shell, Hyprland, UI, Hardware, Network, Audio, Build
- Failed package summary at end
- Cleaner banner and completion output
2026-07-18 15:12:21 +05:45
sankalp 6d9057cd06 fix(install): remove wayland from required packages 2026-07-18 14:52:41 +05:45
sankalp c15d023f7d fix(install): use libqalculate instead of qalculate-gtk 2026-07-18 14:51:52 +05:45
sankalp c3179a8065 fix(install): remove flatpak from required packages 2026-07-18 14:50:35 +05:45
sankalp 716054fd58 fix(install): add missing runtime and build dependencies
Added 13 packages required by the codebase:
- networkmanager, network-manager-applet: network management + GI bindings
- blueman: bluetooth manager GUI
- qalculate-gtk: spotlight calculator engine
- wtype: Wayland keyboard paste simulation
- pipewire, libpulse: audio playback and volume control
- pciutils: GPU detection in About dialog
- gtk-layer-shell: Wayland layer-shell for popup windows
- librsvg: SVG rendering for dock icons
- flatpak: flatpak app registration for global menu
- wayland: wayland-client/wayland-scanner for app-capture build
- gobject-introspection: GIR compilation for app-capture typelib
2026-07-18 14:42:14 +05:45
sankalp 82a5ff91af fix(app-capture): make gobject-introspection optional in meson build
CI Arch container doesn't have g-i installed. The GIR/typelib is only
needed for Python bindings — shared library builds fine without it.
Both gir dependency and g-ir-compiler are now required: false.
2026-07-18 14:28:04 +05:45
sankalp 2a04a17ad7 fix(install): resolve shellcheck warnings in install.sh
- Quote  in kill -0 (SC2086)
- Use %b/%s printf format instead of variable interpolation (SC2059)
- Quote pkg-config command substitution (SC2046)
2026-07-18 14:22:42 +05:45
sankalp 732dd9c0ee fix: formating 2026-07-18 14:21:24 +05:45
sankalp 71c9d30c2c fix(osd): log exception when removing hide timer source
except Exception: pass was hiding stale ID errors.
2026-07-18 14:14:16 +05:45
sankalp 4d90a1ab52 fix(spotlight): log exception when removing stale GLib source IDs
except Exception: pass was hiding errors during pipeline cancellation.
2026-07-18 14:14:09 +05:45