v0.2
Breaking Changes
- cli: move to
click
instead ofargparse
:- subcommands instead of arguments (e.g.,
quit
instead of--quit
) - to run Ignis, use the
init
subcommand (ignis init
)
- subcommands instead of arguments (e.g.,
Utils.Poll
: passself
as an argument to the callback- Network Service: add support for controlling multiple devices; more functionality for controlling Ethernet
Utils.Poll
: use milliseconds instead of seconds- Use service classes directly:
- remove
ServiceClass
andService
fromignis.services
- add
.get_default()
method to services - add
BaseService
class
- remove
- remove the
app
variable fromignis.app
; use theIgnisApp.get_default()
method instead - feat!(options): add support for option groups
- feat!(options): use the Option class directly
New Features:
- Utils: add
Utils.get_ignis_commit
- switch to using exceptions instead of logging
- App: added
remove_window()
method - CLI: print "No such window" error
- Examples: add examples/bar
- CLI: add support to execute blocks of code
- Recorder: added
pause_recording
and `continue_recording`` methods - Widgets: add
Widget.Arrow
andWidget.ArrowButton
- App: add
is_ready
property - App: add support for multiple style paths (CSS providers)
- Utils: add
Utils.get_current_dir()
- Widgets: add
Widget.RevealerWindow
Fixes:
- App: return value immediately in
__RunPython__
and__RunFile__
- Audio Service: Stream: rounding volume added
- MPRIS Service: fix issue a player sometimes doesn't close
- Widget.FileChooserButton: do not set icon name if the path doesn't exist
- Hyprland Service: except
json.decoder.JSONDecodeError
in__listen_socket()
- Recorder Service: fix memory leak
- Widget.Box: not all children are removed
- Network Service (Wi-Fi): notify
enabled
property; return when unavailable inWifiDevice.scan()
- Network Service: fix some properties not updating or notifying
- Notifications Service: close the old notification when replacing it with a new one
- Notifications Service: do not sort notifications and popups by ID
__init__.py
: removed the extra slash (/) at the end ofCACHE_DIR
- MPRIS Service: notify
art_url
only when necessary - logging: log all unhandled exceptions
- Recorder Service: fix issue where the output file was sometimes corrupted
- mpris: invalid filename when downloading art image from the URL
- add
Variable
class
Other:
- add Ruff and mypy
- remove
post_install.py
- move version from the
VERSION
file to__version__
in__init__.py
- docs: move to pydata Sphinx theme
- move to
loguru
for logging - Recorder Service: move all XDG Desktop Portal stuff to the
SessionManager
class - Widget.Window: raise
ValueError
on invalidinput_width
andinput_height
values - Widget.Window: set default value for
input_width
andinput_height
to 0 - split CLI and
IgnisClient
, move all CLI-related code tocli.py
- docs: simplify the build process
- docs: add checks for Sphinx build; move options creation and
os.makedirs()
to class constructors - docs: add version switcher
- add
py.typed
marker - docs: sort members by source
- Wallpaper Service: use
WallpaperLayerWindow
instead ofWidget.Window
- use pygobject-stubs; add stubs for
Gvc
,NM
,Gtk4LayerShell
- docs: use sphinx_design
- docs: use sphinx_copybutton
- split services into separate directories and files
- dbus: use async calls using `result_handler``
- docs: generate widgets and utils API reference files when building documentation (mock imports)
- docs: improve developer docs
- docs: add module names
New Contributors
Full Changelog: v0.1...v0.2