Skip to content

v0.2

Compare
Choose a tag to compare
@linkfrg linkfrg released this 29 Sep 18:21
· 195 commits to main since this release

Breaking Changes

  • cli: move to click instead of argparse:
    • subcommands instead of arguments (e.g., quit instead of --quit)
    • to run Ignis, use the init subcommand (ignis init)
  • Utils.Poll: pass self 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 and Service from ignis.services
    • add .get_default() method to services
    • add BaseService class
  • remove the app variable from ignis.app; use the IgnisApp.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 and Widget.ArrowButton
  • App: add is_ready property
  • App: add support for multiple style paths (CSS providers)
  • Utils: add Utils.get_current_dir()
  • Widgets: addWidget.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 in WifiDevice.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 of CACHE_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 invalid input_width and input_height values
  • Widget.Window: set default value for input_width and input_height to 0
  • split CLI and IgnisClient, move all CLI-related code to cli.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 of Widget.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