This reduces total package size by ~25%. There are no runtime
consequences, though this does nearly double build times. But
with the cargo workspace, this repo builds pretty quick.
As well the same `lto` settings are already used in cosmic-comp.
* Power: Replace gtk applet with iced applet
No functionality yet, but the layout is nearly done. Only small
tweaks needed to font and svg backgrounds.
* Power: Add suspend+restart+shutdown functionality
* Power: Add lock + log out + settings
* Fix build.
* Fix window placement
* Reset cosmic-applet-audio
* save point with rwlock to talk to pulse
* almost making pulse work with a subscription, but awating results causes a panic
* maybe threaded
* Working pulse connection
* working async pulse audio listener
* cargo fmt
* working communication
* make worky ChannelVolumes
* more fixy
* working control for speaker volume
* fix changing volume on input
* Initial port to iced-sctk
* Fix revealer return types
* fix: build
* feat: more applet updates
Co-authored-by: Ashley Wulber <ashley@system76.com>
Requires `layer-shell` feature to support, and patched GTK from
https://github.com/pop-os/gtk4/tree/layer-shell_impish.
This is generally working, but some things could be improved. Some of
the methods implemented for `LayerShellWindow` lack logic that exists in
`GtkWindow` that may be important. (For instance, some things related to
CSS). And some things may require more private functions from GTK.
The hard part is getting the necessary work upstreamed in some form.