Started 3 years ago
experience shows flaws
Also closely based on what Hal provided at the time
Mac shows power management can be well integrated with the system.
Use cases things not suspending when doing things, not screensaving when watching a video, making a skype call.
Made xdg spec, result nobody else implemented it.
Currently: lot of disconnected pieces, lots of bug reports
Eg resume suspend with nvidia: first you see your desktop, then the screenlocker appears
Options: move suspend etc into the session manager
KDM, KSMServer, Powerdevil, HAL
PD talks to HAL, the upper parts don't know what is going on.. Everything relies on Powerdevil for info.
new design is that ksm gets backends for hal, upower, 'nextkit', and apps request power actions via KWorkspace api.
KSM has to be lightweight and stable. KSM should only provide a facade around functionality implemented in powerdevil. Powerdevil will track pre-suspend and post-suspend states to perform app things like updating the plasma clock early after resume.
Problems in reading system connections - no impl for doing this. Writing is easy, reading is not.
NetworkManager is adding complex polkit logic for managing connections.
Code which evaluates and shows system connections already exists, but no code exists for editing them.
Different distributions provide different means for storing connection settings, which will be watched over by NetworkManager. This leads to severe breakage, hence the need for managing system connections.
Add NM dependency to the KCM and polkit code to fix this.
Nobody knows how this works NM side.
What features to provide:
What components to inhibit
- Automatic suspend
- Brightness change
How to present this to the user
How to present this to the developer
Non functional reqts:
- Inhibit right
- Make it easy for devs
- do not get in the user's way
Levels of inhibition - app developers will misbehave and request high priority for all events. Using strings instead enforces responsibility on developers to make justified requests.
solid as a team:
- Doing better!
- Find maintainers for all backends, particularly udev (otherwise we keep hal)
- Document state of elements and what we support, on userbase.
- Improve bus number, instead of one-person teams, small teams on each component.
- Solid umbrella identity for effort supporting hardware on KDE
- libsolid hardware awareness lib
- Power devil
- NM - supporting Connman?
- Bug triage
- Need someone to triage incoming bugs
- New bugs.kde.org categories needed
Saturday wrapup notes
- Nothing finished
- Started Hidden wireless network logic
- Debugging crasher in KDED
- Working on config widget which lays out profile configuration for PowerDevil dynamically while looking nice.
- Arrived, broke his computer, compiled kdelibs
- Helped Alex with refactoring of Solid::Device list to make it asynchronous
- Working on SVG backend for Okular.
- Finished new Powerdevil core
- Ported Powerdevil to new backend
- Everything (changing brightness) etc are dynamic actions provided by plugins
- Common actions bundled into PD core lib
- Fast lightweight modular
- started researching Bluetooth connections (DUN and PAN) in Networkmanager. Got both kind of working
- wrote some BlueDevil plugins for establishing connections
- waiting for feedback from Will on how Gnome keeps BlueZ network service up
- looking at libsolid and refactoring for async device listing api
- Learning from Albert how to use new Qt shared pointer classes.
- took notes, sent some text to promo list for promo guys to process
- worked on task list to make Solid a stronger group.
- writing text for Dot story on the meeting
- Started to finish his mobile connection wizard, now working, saving connections. CDMA part can't be tested.
- Polishing and debugging corner cases.
- Evaluated tasks as new Solid participant
- Debugging KCategorizedView
- Chose to work on UDev support, looking at how Solid internals work, now listing devices but missing information like product/vendor.
- Researched how Gnome nm-applet bluetooth support is integrated, shared info with Alex
- Reviewed Lamarque's 3G mobile-broadband-provider-info wizard
- Refactoring hidden network support since he no longer understands own code
- Refamiliarised about what is missing from
- Fixed licensing in libsolid
- Reorganized bugzilla categories 500 bugs. Assigned default assignees to bug categories. BlueDevil and Network management bugs not yet assigned in
- Identified a class in fstab backend, factored out to libsolid - allows backends to inject fake devices to act as a device root.
- Looking at udev/upower backends for problems, missing functions. upower basically ok. upower backend sometimes gives devices with no useful data.
- Udisk backend work because it had the most bugs, refactored to create tree structure
- Fixed notifications on plug/unplug, timing issue for notification and cache
- Not much code shared between U* except fake root device.
- More things moving into network management in progress but not out to Done
- Kevin would like more people hacking on udisks tasks as they are small.
- Plasma side of hidden networks plumbing
- Pluggable configuration of powerdevil works
- Fixing up powerdevil to work with new config
- Finished new PowerDevil core
- Finished new policy agent
- Moved backend part of Solid::Control power apis into PowerDevil
- Moved 90% of actions into plugins
- PowerDevil now no longer uses any UI stuff, pure kdecore app
- Pushed to trunk
- Less invasive than before, but currently requires manual profile definition, defaults are not yet provided
- Today will work on KRunner stuff. Needs to mail Lubos about KSM integration
- Blogged about it, see planet
- Plans to code UPower backend for PowerDevil (small task, Alex to help)
- Implementing libsolid synchronous API, suspended this work while reqts are refined, will continue after sprint
- Fixed some bugs in Bluedevil to be able to use bluetooth keyboards and Mighty Mouse.
- Adding possibility to pair devices that don't require a PIN.
- Will move bugs from old bluedevil product to new one.
- Will look at KFilePlaces
- Helping others with code
- Will pick up low hanging fruit tasks
- Packaging api documentations
- Finished 3G wizard
- Debugging crash in 3G roaming
- Tested wizard using Agustin's stick
- TODO: test with CDMA device and network
- Picked up NM restart crash bug from Sebas
- Udev backend: Found root cause why some devices missing product/vendor
- Cleaned CMake code to make everything conditional
- Plan to have udev backend stable
- Fixing Hidden network refactoring bugs
- Researched BT networkmanager integration
- Spent the night fixing remaining UDisk/UPower issues 'finished' no obvious regressions. Close to being able to drop HAL dep. UDev backend only missing component
- Plans to manage others today and help.
- Wall of postits task management system helped visibility of what's going on and regular review made sure that people actually did what they talked about it. Would be improved by homogenous granularity of tasks. Eg 'can be done in 1 hour'. Downside is that this system is so effective at getting people coding that they might not find time to blog, although the system does create good inputs for dedicated promo people to write around.