Skip to content

v3.1.4 - Eight DisplayPad and plugin reports, and two pull requests

Latest

Choose a tag to compare

@ramisotti13-eng ramisotti13-eng released this 06 Sep 10:44
· 3 commits to main since this release

Eight of @FransM's reports, two pull requests from @nicandris, and a handful of
things a review of the result turned up. A source overlay: the in-app updater
picks it up, no reinstall.

The DisplayPad editor

A widget assigned to the page you were already looking at never started (#97).
Clearing a key on a sub-page and setting it to Monitor: CPU did nothing at all,
though the key was stored and worked as soon as the page was left and entered
again. Starting and stopping a widget's service was only ever done on a page
switch. It is done whenever a key's action changes now, which also covers the
other half: clearing the last key that used a widget stops it again.

The editor kept the first frame a widget ever drew (#96). The pad showed the
clock and the editor took more than a minute to catch up. A clock writes one
file name every second and changes only its content, and the redraw was decided
by the name.

Right clicking a key now selects it (#98), instead of leaving the pane on the
right showing a different one.

The permission warning could still name a device node that was fine (#86). An
upload detaches the kernel driver from an interface and hands it back, so the
kernel builds a fresh hidraw node, and a fresh node is root:root 0600 until udev
gets to it. The three-scan wait was counted per device, so three different nodes
each caught inside their own window added up to a verdict about a device that
was readable throughout.

The generated icons all follow one naming scheme (#95). dp_<what>_p<page>_k<key>.png,
which is what the widget plugins already wrote. Existing files are renamed on the
next start and the stored paths follow.

Everything else in the application

Monitor Mode survives a suspend, and a fast network no longer takes it down
(#101, #102, both from @nicandris).
Resume resets the keyboard's USB port, which
left the monitor loop writing into a dead handle for ever while the panel claimed
it was sending data. And the send loop capped metric values at 999 where a packet
byte holds 255, so any sustained transfer above 255 MB/s killed monitor mode with
a ValueError.

Stopping Monitor Mode left the Everest's interface 3 with no kernel driver.
Every caller stops a monitor with SIGTERM, and Python ends a process on that
where it stands, so the release never ran and usbhid never got the interface
back until the keyboard was replugged. It also only reattached when the same run
had detached, so once a killed run had leaked the interface, no later run ever
repaired it. It does now, including a keyboard already in that state.

A tray icon that lost the notification area stayed lost (#100). pystray catches
its own "cannot dock" assertion, notes that it must retry later, and never does.

Now Playing showed nothing on a sub-page, and never showed a cover anywhere
(#99).
The key lookup only ever answered for the main page, and mpris:artUrl
was read out of playerctl and then dropped. Covers are drawn now, from a local
file or an http address, though not from an address on your own machine or
network: that field is set by whatever page is playing.

Closing the application could abort instead of exit, when a worker was still
inside libusb as the interpreter tore down.

Plugins

Update from the Plugins screen: Clock 1.2.4, System Monitor 1.3.3, Philips Hue
1.2, Video 1.0.3, Pipe Text 1.2.1, Snippets 1.1.

Widget plugins can be stopped and started again, which they now are far more
often. The Video plugin never reset its stop, so once a page switch had stopped
it, it stayed dead for the session; the others let the outgoing thread carry on
beside its successor.

Snippet keys have a picture, and {cursor} finds its way back (plugins #15).
A snippet key showed nothing at all before. And {cursor} walked back with Left
presses only, which fails in vi the moment there is a line under the marker.

Philips Hue says why it is not connected (plugins #16). A V1 bridge refuses
with HTTP 200 and a list of error objects, so a key the bridge had forgotten and
a bridge that was switched off looked identical. The window offers to try again,
All On sits beside All Off, and Entertainment groups are left out of the list.

Installing

Source overlay only. Settings, then Check for updates, or drop the tarball in
by hand. There is no new AppImage: the AppImages still live on
v2.1.0,
which is why that release is still marked Latest.