[ANNOUNCE] piper 0.2.900

Peter Hutterer peter.hutterer at who-t.net
Fri Aug 25 04:46:58 UTC 2017

piper 0.2.900 is now available. This is a development snapshot, mostly to
show that things are happening and get new people involved with the project.
piper is the GTK application to interact with libratbag.

piper 0.2.900 needs an up-to-date libratbag, use libratbag 0.9.900.

As you can see by the shortlog, Jente Hidskes has been busy working on piper
during this release. This was part of this year's GSoC, and what a busy time
it has been. We started with the premise that the old piper's interface was,
uhm, suboptimal, and needed quite a bit of work. The whole UI was redesigned
and piper now looks much better for it. 

Jente has a bunch of blog posts about the design process and the resulting
work, with the technical bits starting here:

At this point, piper is mostly feature-complete except for the odd cases
here and there. We recently merged localization support as well, so we have
piper translations in Dutch, German and Polish already.

As above, this is a development snapshot only, expect things to move quite a
bit for the next full release. We have a few more changes to libratbag
coming up and since piper is tightly tied to the dbus interface it likely
will need changing too.


Benjamin Tissoires (2):
      Add circle.yml
      ratbagd.py: sync with libratbag

Jente Hidskes (179):
      Port to Meson
      Import ratbagd bindings
      ratbagd: add missing properties, methods and capabilities
      ratbagd: add support for DBus signals
      ratbagd: add missing commas
      Conform to PEP8 style guide
      ratbagd: add RatbagdLed class
      README: update
      RatbagdResolution: add minres and maxres
      Application: a Gtk.Application subclass
      ratbagd: fix min and max res
      RatbagdDevice: add commit method
      ratbagd: add RatbagErrorCode enum
      _RatbagdDBus: make dbus_{property, method} private
      _RatbagdDBus: s/GLib.GError/GLib.Error
      _RatbagdDBus: catch call_sync exception
      _RatbagdDBus: result is always a tuple
      Update gitignore
      ratbagd: small cleanups
      Application: move imports to top
      ratbagd: add Themes property and GetSvg(theme) method
      ratbagd: print DBus exception message to stderr
      RatbagdLed: use proper type signature in SetColor
      RatbagdLed: use proper type signature in SetBrightness
      bindings: rename some methods and variables for consistency
      bindings: always query DBus for the latest value
      bindings: use inheritance for object_path
      CircleCI: use Fedora latest, not rawhide
      bindings: s/dbus_property/get_dbus_property/g
      bindings: raise proper exceptions from _dbus_call
      bindings: add _set_dbus_property
      Make piper great again: use get_svg("gnome")
      ratbagd: sync with libratbag
      RatbagdDBusUnavailable: add exception message
      ratbagd: sync with libratbag
      piper.py: adjust to new DBus interface
      Add a piper.devel output to run from source tree
      flake8: ignore piper.in
      bindings: emit notify::action-type ourselves
      ratbagd: sync with libratbag
      MouseMap: custom container widget to map the device SVG
      Window: add a skeleton window
      MouseMap: add warning for incompatible SVGs
      MouseMap: small cleanup
      Window: use GtkTemplate to instantiate from a GtkBuilder template
      Window: add list of resolutions
      Window: add in-app notification for failed commit
      Window: hook up report rate buttons to ratbagd
      MouseMap: draw paths only if there is a child widget
      Window: draw 'Switch resolution' label
      Window: block the scroll event on the scales
      ResolutionRow: remove support for separate x/y resolutions
      Window: hide previously activated row upon activating another
      ResolutionRow: snap resolution values to multiples of 50
      Window: extract resolution code into ResolutionsPage class
      MouseMap: use ratbagd themes
      ResolutionsPage: fix toggling the wrong row
      data: move ui files into subdirs
      ResolutionRow: remove unused variable
      Rename anonymous variables ('_') to __
      OptionButton: a Gtk.Button with a cog
      Add LED page to configure LEDs
      Window: only add pages if supported by device
      ResolutionsPage: set report rate for all resolutions
      data/ui: add tooltips to control widgets
      Window.ui: let Glade move things around
      Make Piper work with the new bindings
      Application: present error dialog when ratbagd isn't running
      Application: move error handling to Window
      ratbagd: cache lists to ensure we return the same objects
      ratbagd.py: set property on setter methods
      Window: do not crash when no devices are plugged in
      LedsPage: remove button from callbacks
      Add ButtonsPage to configure buttons
      ButtonDialog: add button map page
      ButtonDialog: add key mapping stack page
      ButtonDialog: add special mapping page
      ButtonDialog: merge all stack pages into a list
      Merge key mappings with macros
      ButtonDialog: separate different mappings in the list
      Keystroke: remove clear, add cancel
      ButtonsPage: display proper button labels
      ratbagd: deal with notify::action-type better
      Window: add profile switch popover
      RatbagdDevice: add active_profile property
      RatbagdProfile: add active_resolution property
      RatbagdResolution: move report_rate setter to its getter
      ratbagd: add active-profile-changed signal to RatbagdDevice
      ResolutionsPage: respond to profile changes
      ResolutionRow: respond to profile changes
      LedsPage: respond to profile changes
      ButtonsPage: respond to profile changes
      LedsPage: do not number the LEDs
      ResolutionRow: remove "Resolution x"
      ResolutionRow: do not display frame label "Resolution"
      404: remove caption and resize
      Introduce perspectives to manage different screens
      Add an ErrorPerspective according to the empty state pattern
      MousePerspective: make everything visible with show_all()
      Add a WelcomePerspective if there is more than 1 device
      Window: request a default size
      ResolutionsPage: fix labeling buttons related to resolutions
      RatbagProfile: add dirty property
      ResolutionRow: block the scale's value changed handler when initialising
      MousePerspective: highlight the commit button when a profile gets dirty
      MousePerspective: disable the commit button when the profile isn't dirty
      ResolutionsPage: reduce width of the controls
      Ratbagd: add device-added and device-removed signals
      MousePerspective: make set_device a property
      Window: be more specific in error message
      Ratbagd: fix adding and removing devices
      WelcomePerspective: add methods to add and remove devices
      Window: react to devices being added or removed
      MouseMap: work around do_forall getting an invalid instance
      Application: don't call show_all() on the window
      Ratbagd: emit notify::devices when the devices change
      Window: give perspectives a back button
      MousePerspective: change button icon to text
      MousePerspective: correctly initialise the commit button
      Window: ask for confirmation before closing with unsaved changes
      ButtonsPage: apply profile cycle buttons across all profiles
      MousePerspective: make device setter a real method
      Window: cast ValueError to str to display it
      Ratbagd: small return cleanup
      MousePerspective: destroy profiles before adding new ones
      MousePerspective: only consider profile dirty for commit button
      ButtonDialog: also register key releases
      Do not crash if there is no active profile or resolution
      MousePerspective: replace == with is
      Ratbagd: increase timeout from 500 to 2000 milliseconds
      ButtonDialog: only allow swapping for left- and right buttons
      ButtonDialog: do not track visited links
      ButtonDialog: fix the tooltip for the macro row
      ResolutionRow: rename title_label to dpi_label
      MousePerspective: do not use show_all()
      ResolutionRow: initialize the DPI label
      Meson: fix build with meson 0.42.0
      Meson: remove whitespace
      MouseMap: save & restore GtkStyleContext to prevent hogging the CPU
      MouseMap: do not redraw on allocate
      meson: copy configuration data so we don't have to duplicate it manually
      Ratbagd: emit notify::is-active when IsActive is changed
      ResolutionRow: add label to highlight the active resolution
      Remove old piper code from the tree
      UI files: unmark placeholder strings as translatable
      UI files: consistently use (untranslatable) placeholder labels
      ButtonDialog.ui: do not track links in labels
      LedsPage: move LED mode to string to the bindings
      Ratbagd: _set_dbus_property doesn't return anything
      Ratbagd: do not return _dbus_call return value in setters
      Ratbagd: remove unneeded global line
      Revert "meson: copy configuration data so we don't have to duplicate it manually"
      Meson: copy configuration data so we don't have to duplicate it manually
      ButtonDialog: add a search entry to search mappings
      ButtonDialog: move handedness to its separate stack page
      ButtonDialog: do not list "Unknown" in the special mappings
      RatbagdButton: update to reflect libratbag
      Introduce RatbagdMacro to abstract macros
      ButtonsPage: use RatbagdMacro to present macros
      RatbagdMacro: remove KEY_ prefix
      ButtonDialog: break lines after max character width
      RatbagdMacro: group successive key press and release
      Add support for translations
      Ratbagd: use deferred translations to translate map entries
      ButtonDialog: match "Send Keystroke" label with that in the .ui file
      Add context where needed for translators
      Add Dutch translation
      po/nl: update with new strings
      po/de: update based on line numbers
      ButtonDialog: s/left-handedness/left-handed
      WelcomePerspective: add context on the same string
      ratbagd: s/Resolution Default/Default Resolution/
      ratbagd: s/* Cycle [Up|Down]/Cycle * [Up|Down]/
      piper: comment on {} for translators
      po/nl: update with latest changes
      po/de: update with latest changes
      po/nl: translate missing string
      po/pl: generate against new .pot

Julian Richen (1):
      Application: change aboutDialog.ui resource path to AboutDialog.ui

Peter Hutterer (21):
      Change 'description' to 'name'
      Fix import path for ratbagd modules
      Use 'name', not 'description' in the ratbagd bindings
      Fix AttributeError after RatbagdButton.button was removed
      Fix up device.description -> device.name
      ratbagd: re-use the same dbus connection
      Merge branch 'rewrite'
      Piper: check for required GTK version at runtime
      circle.yml: fix typo in flake8 scan targets
      ButtonDialog: show right-handed mapping for things we don't understand
      ButtonDialog: don't crash on unknown mapping types
      ui: reconnect the radio button signal handler for left/right handed
      ButtonDialog: always accept enter/escape for macros
      ButtonDialog: when pressing Apply, make sure we commit the current macro
      Add the ErrorPerspective before all others
      ui: limit the length of macros displayed in the option box
      data: make the "Oh Oh" title translatable
      Add German translation
      piper: change a string for missing ratbagd
      data: make the Welcome title translatable
      meson.build: 0.2.900

Piotr Drąg (2):
      Add Polish translation
      Update Polish translation

Rasmus Thomsen (1):
      Meson.build: allow customisation of bindir

git tag: 0.2.900

The libratbag project does not generate tarballs for releases, you can
grab one directly from github:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/input-tools/attachments/20170825/ff4c141c/attachment-0001.sig>

More information about the Input-tools mailing list