We have a bunch more info that is nearly correct, though I haven't validated
this yet. Currently exploring using pipenv instead, since that helps manage
these more effectively.
There's really no point to switching to the switcher when the BD key always
brings it up. It was also causing problems since we introduced switching back to
the previous applet by pressing BD while the switcher is up.
This makes us use strings instead of numbers. This allows us to export more of
the G13's key matrix to applets, so we can include things like MR, BD, and the
rest of the keyboard matrix.
Most of this work is done in prep for the real-time macro recording
functionality that I'm attempting to hack in.
Something I've wanted for a while has been the ability to draw a rectangle
anywhere on the screen without it being filled in. Hopefully this does the
trick.
This adds a ton of new functionality to the clock widget, and exercises the
bitwidgets widgets a bit more. This adds a new button widget, called a
LabelWidget. These are pretty unsurprising -- they're just a label inside of a
button slot in the buttonbar. They do give us the ability to toggle and add
"more" glyphs in the button for more flexibility in the buttonbar.
- Make Clock toggle between 12 and 24 hour clock modes.
- Add CPU load and RAM load histograms.
- Create a new button type, LabelButton.
- Create a new widget, the Graph, which shows a histogram of values over
time.
- Make Button not assign values by way of accessors in the constructor.
- Make Label actually dynamically change its bounds based upon properties.
This wraps most of the proxy calls with some exception handling code which
removes an applet from the list of applets. This is kinda remedial, but should
make developing applets a bit smoother, as we end up restarting them
periodically. IOW, this prevents the configurator from completely crashing out.
- Give switcher the ability to handle applet removals
- Wrap most proxy methods in try...except blocks
- Add a removeActiveApplet method to kill off the currently stuck applet in
the face of an error.
This exposes the profile list, currently selected profile, and the ability to
set the selected profile via the AppletManager's D-Bus interface. This isn't
really the ideal place for it, but Gtk Actions aren't really suited for this,
either. Additionally, it creates the profile switcher applet as an external
applet to better exercise the Applet interface.
- Manager passes in the preferences object to the AppletManager, so that these
variables can be exposed over D-Bus.
- Exposed the list of profiles, get/set of active profile via D-Bus.
- Created the Profiles applet.
- Exposed a onRegistered / onUnregistered hook for Applets to make use of.
- Removed the onUpdateScreen hook from KeyPressed/KeyReleased, since the
onKeyPressed/onKeyReleased hooks handle this nicely already.
- Fixed the AppletManager's method authorization checks.
Since the migration to the G13 Configurator for everything, most of these files
have literally no use anymore. We can safely remove them from the project at
this point.
This allows us to have separate applications from the G13 Configurator render to
the G13's display, just like the way Logitech's design worked. It even includes
an applet switcher, and an example clock applet.
There's quite a few deficiencies in this model, not the least of which is the
fact that we're using dbus-python as the main communications channel. Things
that are broken include:
- We can't tell when an applet dies except when we fail a call.
- Applets have to be running at the same time G13 Configurator is to handle
the initial register call.
We can likely deal with these somehow using DBus signals.
This adds a whole new ListView widget (and associated ListItem widget) so that
we can handle selecting items from a list. Additionally, it brings in rectangle
tests, and sadly removes the nice rounded rectangle from its design.
- The button module gained a Glyph widget, and Buttons are now composites
containing both a Rectangle and a Glyph.
- ButtonBar has been fixed to match the above Button change, which produces a
much more correct layout of glyphs and their drawing inside of each
ButtonBar slot.
- Added a Button test for Glyphs.
- Made X11DisplayDevice update its output window name when it's assigned to,
making it possible for each test to indicate which test it belongs to.
- Created ListView and ListItem.
- Made Widget not use its accessors for its constructor, which would create a
ton of erronous observer events down the chain.
- Made some of Widget's setters ValueErrors more specific.
At this point, functionality is nearly the same as what we had before I started
the migration away from g13d. We can now save prefs to disk! The next trick is
to make sure that the backlighting works, and I think we can call that the next
version, and maybe tag it for a alpha release.
This reorganizes the ownership of the main window under the control of the
appindicator. It also adds some additional flags in prefs to allow for disabling
the opening of the main window on startup, and removes a bunch of cruft from
main.