Today's Dev #23

December 7, 2024

Today I continued work on budgie-daemon v2's Display Configuration Batch system. I cleaned up my DisplayConfigurationBatchSystem to no longer hold references to each output serial's Batch class, rather I have that in the DisplayConfigurationCalculation. Another key change I made was no longer having the system scrap the calculation and make a new one, rather I have it call a reset function that clears out some of the various computed properties of the calculation class, and I also have one calculation (rather than it being an std::optional). Hooked up a new outputRemoved slot on the batch system to WaylandOutputManager, so we can now call the calculation reset if an output is removed while the user is configuring heads. The calculate method of DisplayConfigurationCalculation is looking much nicer as well. Since we have references to all the Batch class instances with their actions, I am able to iterate over each of the batches, cherry-pick the actions (which are now in a QMap of the action type to the action itself) when creating the QRect for the output properties, have it fallback to the WaylandOutputManager if we don't have a SetMode action (so basically "keep it the same as what is is now" for width / height / refresh), etc. Still need to write a lot of the trickier bits of the method, but good progress made on it today and I'm much happier with this version of the implementation than my previous ideas.
Did you know?
You can follow me on Bluesky, Mastodon, or Threads!