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
sankalp
1d3cecc255
fix(dialogs): log exception in wifi password connection timeout handler
...
except Exception: pass was hiding UI state errors during timeout
handling.
2026-07-18 14:13:56 +05:45
sankalp
50e15db2de
fix(controlcenter): move inline GLib/os imports to top-level
...
GLib was imported inline 4 times in seek-bar handlers that fire on
every user seek. os was imported inline in a fallback path. All moved
to top-level.
2026-07-18 14:13:48 +05:45
sankalp
2d982cf286
fix(shared): add tick_widget=self to AnimatedScrollable height_animator
...
Without tick_widget the Animator falls back to GLib.timeout_add which
fires even when the widget is hidden, wasting CPU on invisible scroll
windows (WiFi/BT connection lists).
2026-07-18 14:13:44 +05:45
sankalp
c00236fc69
fix(dock): remove pointless del svg_w, add warning on trash SVG failure
...
The del was a no-op (GC handles scope exit). The bare except Exception
hid real rendering errors — now logs at warning level.
2026-07-18 14:13:36 +05:45
sankalp
6a75ea84d9
fix(controlcenter): remove duplicate device-ready signal connection
...
Handler was connected twice — once in __init__ and again in
_initialize_resources. Every device-ready event fired on_network_ready
twice. Removed the __init__ connection (the lazy one is correct).
2026-07-18 14:13:27 +05:45
sankalp
ee904cce04
fix(notification): null _spring_timer_id after first remove in on_resolved
...
on_resolved removed the GLib source but didn't null the ID, causing
double-remove crash when destroy() later tried to clean up the same
stale source.
2026-07-18 14:13:17 +05:45
sankalp
6cd1a2c71a
fix(utils): quote kill_process args, replace subprocess which with shutil
...
- shlex.quote() in kill_process prevents shell injection
- find_binary now uses shutil.which() instead of spawning 'which'
- Add shell_split() helper for environment.py
- Remove inline import re from escape_markup_text
2026-07-18 14:13:11 +05:45
sankalp
ef685ab34a
fix(globalmenu): remove shell=True from gcc compilation command
...
Use list form with shlex.split() for pkg-config flags instead of
shell=True string interpolation. Eliminates command injection vector.
2026-07-18 14:13:03 +05:45
sankalp
80c7af79db
fix(network): add missing get_connectivity() call and widen NM import guard
...
- get_connectivity was compared as method object (always True), wired
icon always showed no-route when activated
- NM import now catches GLib.Error and ImportError, not just ValueError
- Sets NM = None on failure instead of leaving undefined
2026-07-18 14:12:56 +05:45
sankalp
476ed7e4fb
fix(workspace): replace broken _config_handlers import with off_config_change
...
Same silent ImportError leak as panel/main.py — callbacks were never
unregistered on widget destroy.
2026-07-18 14:12:44 +05:45
sankalp
6ef48af963
fix(panel): replace broken _config_handlers import with off_config_change
...
Panel destroy was importing nonexistent _config_handlers from config,
causing silent ImportError and leaked reload callbacks.
2026-07-18 14:12:37 +05:45
sankalp
c47009addd
fix(config): add unregister_reload_callback and harden singleton init
...
- Move _initialized flag to end of __init__ so partial construction
leaves the singleton retryable
- Add unregister_reload_callback() method and off_config_change() helper
- Enables proper cleanup of reload listeners on widget destroy
2026-07-18 14:12:26 +05:45