Releases, releases, releases! Part 2

Testing Xfce

Xfce – like many other open source projects – is not exactly following a test-driven development workflow. I would argue that we need a slight mindset change here plus we need some (standardized) infrastructure to make testing easier for people who want to get involved.

Luckily what we have been waiting for in terms of the latter is already here! xfce-test is a Docker-based setup built by Florian which enables anyone to quickly spin up a container (based on Xubuntu 17.04 for now) with some components integrated from Git master, e.g. the Gtk3 panel. The great thing is it does not create the overhead of a real virtual machine for a tester but instead stays in the lightweight world of containers. This also makes it easy for everyone to adapt and rebuild the container and to create a reproducible environment that can be shared.

Just check out these few steps to try it in action – it really does all the heavy lifting for you!

xfce-test in action

Kudos also go out to the Gnome team for setting up a real nice contribution workflow for their community. We should really strive to reach that level at some point!

xfce4-notifyd 0.3.6

And another bugfix release for xfce4-notifyd is out! The best part about this is that apart from code-review there was nothing for me to do to get there!

So a big shout-out goes to both Mattias and Igor for fixing some of my – slowly but surely traditional – shortcomings (memleaks here we go again!).

Greybird 3.22.2 and 3.22.3

So there are also new releases out for Greybird, and not a bad ones I may add. On the feature side I added a preliminary version of a dark theme, which I hope will please some of the Gnome users of this theme.

Furthermore I did some polishing on making GtkPopover and Headerbar buttons more integrated and tight. Finally some fixes went into Nautilus notifications, the xfce4-notifyd theme and GtkCalendar looks acceptable at last (which makes the Gtk3 version of the panel usable)!

So all in all two micro-releases worth upgrading to!

Download:
https://github.com/shimmerproject/Greybird/releases/tag/v3.22.2
https://github.com/shimmerproject/Greybird/releases/tag/v3.22.3

elementary-xfce 0.8

This release adds support for the new icon names of Gnome 3.24. I also pulled in several icons from upstream elementary, especially updated mimetypes (thanks Dan!) plus I added support for Pantheon Photos.

Finally I added more sizes to some of the icons, ridding the theme of some inconsistencies.

Download:
https://github.com/shimmerproject/elementary-xfce/releases/tag/v0.8

xfce4-panel 4.13.0 in the works

As hinted at in the previous installment of “Releases, releases, releases!” I’ve been pouring quite some time into getting xfce4-panel close to a first 4.13 development release. This should help testers to get a packaged up stable point of reference and it should also help us to track the remaining issues in our issue tracker like normal human beings instead of collecting everything in the wiki roadmap page.

So while there are still some issues remaining (one of the more prominent disfunctions is broken drag-and-drop in certain contexts) I use the panel on a daily basis and it hasn’t crashed upon me once and does pretty much what it should – even with Gtk2 plugins in it (nnnice!).

Feel free to test it out with xfce-test 😉

Releases, releases, releases!

So it’s not that I’ve been quiet and lazy – I was actually busy preparing some releases and hacking on stuff. So here’s an update on what’s been going on and what’s to come.

xfce4-taskmanager 1.2.0

This is a new release which brings a handy feature, i.e. identifying windows by clicking on them. Just use the crosshair-button in the toolbar and click on a window. This will result in the appropriate/associated process being selected in the tree or listview. Thanks a lot to Florian for helping getting this feature release-ready!
Some small improvements to keyboard navigation have also been pushed with this release, namely hitting the Delete or Shift+Delete keys will let you terminate or kill processes respectively.
Finally Olivier improved the memory usage for the FreeBSD.

Looking a little into the future, I’ve also been busy porting taskmanager to Gtk3 entirely, i.e. dropping support for Gtk2. This will happen with the next major release (2.x), which means no more feature-releases are planned for the 1.x series and Gtk2. It’s not out of the question though, that there will be a bugfix or maintenance release for 1.x later on.

So far the Gtk3 branch already works and has feature-parity with master. I also cleaned up the interface a little. If you want, you can check it out here (also seen the screenshot on the right)
https://github.com/ochosi/xfce4-taskmanager/tree/gtk3_only

xfce4-notifyd 0.3.5

This long-awaited feature release finally brings the persistence support I have been working on for a while. So you can now enable a notification log and get your “away log” easily this way. There are even some options to only get the log for certain apps or only with “do not disturb” mode enabled.
Handy, right?

I have also – and this is maybe even more important – reworked the settings dialog towards something that I would hope could be the future direction of Xfce settings dialogs in general (or to the least open the discussion about it). Initially we settled on doing a 1:1 port from Gtk2 to Gtk3 to keep the disturbance and changes for users as small as possible. However, Gnome’s HIG (Human Interface Guidelines) that Xfce originally relied on – and still relies on – have changed dramatically and with that most Gtk+3 applications. So personally I think we should re-think the Xfce HIG and the new xfce4-notifyd settings dialog tries to be a best practice for some things. I’ll probably do a separate writeup of that though as this article is already long enough and there are still some releases to be announced.

Thunar 1.6.11

This maintenance release brings some important fixes that have made users complain a lot in the recent past – and understandably so. Thunar was fairly unstable with copy, rename, move and drag-and-drop operations and would simply crash. While a lot of people in the community did testing (and whining :)), several folks got to work, identified the underlying issue and submitted patches (that I pushed recently).
So hopefully this new release will provide a new baseline for testers and we can close many of the existing up- and downstream reports, many of which may be duplicates (at least in the sense that they were caused by the same pieces of code).

Greybird 3.22.1

This is mostly a maintenance release, which fixes a bug in Geary’s conversation view and improves the readability of OSDs.
However, it also features a new (round) style for GtkSwitches, which makes them take up less space. Sweet!

What’s next?

Currently I’ve been hacking a little on Xfce’s display dialog to add a feature I once rejected (mea culpa, live and learn…). At the time I was more optimistic about me – or anyone else for that matter – finding the time to implement proper colord support in Xfce, which means support for color profiles. Unfortunately we didn’t make it, so what I can offer now is the rebasing and improvement of a patch that was once written against Gtk2 and merge-ready for Gtk3 (including a small rework of the settings dialog as a whole) and an honest apology to Andreas Lampersberger, the author of the original patch.
There are still more things I’d like to fix in display dialog land, like scaled mirror mode by default if two displays don’t share any resolutions (which is generally supported by XRandR, but not implemented yet).

The other thing I’ll probably get back to now is the panel. The gtk3_css branch that I was last working at needs some revisiting and I hope that some of the recent activity on the IRC channel and mailing list will also lead to more people testing the code and helping out with the porting or just smaller patches even.

Anyway, there’s a lot to do and your help is much appreciated along the way! So get in touch with us if you feel like contributing.

Pidgin elementary style

Status icon theme

A while ago I started working on making Xubuntu’s default messenger app Pidgin look a little more integrated by creating a status-icon theme for it. As Xubuntu relies on the wonderful elementary set for iconography (in a variant maintained by me which is while being distro agnostic slightly misleadingly labeled “elementary-xfce”) the Pidgin theme was obviously done in that vein.

available busy chat offline person away

 

Smiley themepidgin_elementary

Last week I extended this effort to emoticons and created an initial smiley theme for Pidgin. While it may not support all protocol standards yet it should be pretty usable already. I’m hoping for people to submit some bug-reports on github if they encounter a lack of support for a protocol standard for emoticons.
It makes use of all meaningful emotes provided by upstream elementary.

face-worried face-wink face-uncertain face-tired face-surprise face-star face-smirk face-smile-crying face-smile-big-squint face-smile-big face-sick face-smile face-sad face-raspberry-wink face-raspberry-squint face-raspberry face-laugh face-mail face-plain face-heart-broken face-kiss face-happy face-heart face-devilish face-embarrassed face-crying face-angry face-cool

Download and install

You can get both themes from the same github repository. To my knowledge, neither of them have been packaged in any distribution, so you will have to run the Makefile I included to install both themes.

https://github.com/shimmerproject/pidgin-elementary

Caveat: As Pidgin does not support system-wide status-icon themes, you will have to install that theme locally and it will only be available on a per-user basis. Hopefully this will be fixed/implemented in Pidgin upstream in the future.

Install the status-icon theme
make install-status
Install the smiley theme
sudo make install-emotes

Clipman 1.4.1 released

xfce4-clipman-pluginWhile I haven’t been very active in terms of clipman lately I decided to push out a maintenance release in the 1.4 series nevertheless, as some useful patches had piled up in the master branch.

The probably single most important patch was contributed by Rinat and fixes the menu of clipman when used in a bottom-aligned panel. As I myself am using a panel at the top of my screen I didn’t notice this at all when releasing 1.4.0.

Other than that I improved the icon sizing for the panel plugin, which was another common – and understandable complaint – with 1.4.0. So the icon doesn’t remain at 16px, but scales in (meaningful) steps – very much like the power manager’s plugin.

Finally I decided to draw up a new application icon for clipman, as the old one was quite dusty already, low resolution and inconsistently looking at different sizes. Gaze at it in all its glory 🙂

clipman_1-4-1

Download

As always, wait patiently until your favorite distribution packages up clipman 1.4.1 or grab the tarball from here:

https://git.xfce.org/panel-plugins/xfce4-clipman-plugin/snapshot/xfce4-clipman-plugin-1.4.1.tar.bz2

 

xfce4-notifyd 0.3.4 released – Do not disturb and per application settings

notifydI’ve finally gotten round to doing a 0.3.4 release to get some of the features I’ve had ready for a while “out there”. On the way a lot of translation updates have trickled in and Christian Hesse supplied a patch to fix internal themes with Gtk+3.22.

Features:

As announced already a while ago, this release features a “Do not disturb” mode so you can suppress notification bubbles when in/convenient. So this should satisfy users who want to silence all notifications for a limited time-frame.do_not_disturb

For users who want to suppress certain applications, they can now do so with a list of “known applications” – which gets populated over the life-time of xfce4-notifyd by all apps that send notifications.
If an application does not show up in this list it simply hasn’t sent a notification since you have upgraded to 0.3.4 🙂

Another – slightly hidden – feature is defining a screen for notification bubbles to appear. While by default notifications are shown on the screen where the mouse-pointer resides, you can now select the “primary monitor” – the “primary monitor” can be set globally e.g. through xfce4-display-settings – as default place for notification bubbles to end up on.
To enable this feature in xfce4-notifyd, add the (Boolean) property “/primary-monitor” to the xfce4-notifyd channel and set it to True.
In a future release this option may be moved to the settings dialog.

Bugfixes

The only real bugfix in this release makes sure that internal themes work with Gtk+3.22, which dropped support for the “font” css shorthand in favor of “font-weight”, “font-family” etc.

Outlook

Finally I’ll soon merge my “logging” branch – which brings the persistence feature to xfce4-notifyd – to master to give people a chance to test and translators some time to do their magic.

Another bugfix release for xfce4-notifyd: 0.3.3 is out!

notifydWhile I had planned to make the next release about features, I ended up fixing a few issues and doing a bugfix release instead. So 0.3.3 is about getting things right.

Test-driven development

Generally speaking Xfce has very few unit tests – or tests at all – but since Jerome had laid a foundation for notification tests in xfce4-notifyd I decided to extend that to testing the icons in notifications. What inspired me to do so was that I noticed that notifyd was not in line with the fd.o notifications specification in two aspects:

  • it didn’t support the “image-path” hint and
  • the priorities of how to handle the icons were mixed up.

So my new “test-icons” test – which I wrote before(!) I implemented the fix for the priorities, even if I checked it into git only until later 😉 – checks whether the server handles all icon-related properties, hints and features and also checks whether the priority is in accordance with the specification. I also started some documentation on what parts of the freedesktop.org specification are implemented in xfce4-notifyd and which ones are not (prominent example which is not implemented: sound).

Other than that a thank-you goes to Olivier for contributing another build-fix. Finally I managed to get a few more bugs fixed, most notably a general theming issue (action buttons were sometimes mis-styled) and hiding notification buttons without label. Together with the translation updates I think this makes 0.3.3 a worthwhile release.

Final note: currently there are only 12 bugs open on the tracker, of which several are feature requests so things seem to be going quite well!

Improved media-key handling with xfce4-volumed-pulse 0.2.2

Background

So xfce4-volumed has been around a while and automagically handling your media keys – originally written by Steve around 2009 – but lingering unmaintained in Xfce’s Git repository. This version of the media-key daemon uses gstreamer 0.10’s mixer interface, which has been deprecated in gstreamer 1.0.

It’s been almost as long that Lionel forked the project into xfce4-volumed-pulse in 2012 – hosted on Launchpad ever since – notably adding support for PulseAudio.

Migration to xfce.org

Not much has happened since then, until Sean and me decided to move the project over to the official Xfce infrastructure for more distributions to enjoy. This means the code is now on git.xfce.org and bugs are tracked on bugs.xfce.org.

I also went ahead and added some small features to it (all documented in the Readme). Amongst others I merged a feature branch adding support for the Microphone Mute key (thanks goes to Christian Pointner for the feature). I also added support for symbolic icons, which means your audio volume change notifications can now be shown – presuming you have at least xfce4-notifyd 0.3.2 installed – with always correctly colored monochrome icons. This latter feature has been made optional through an “icon-style” xfconf property in the newly created xfce4-volumed-pulse channel. This same channel now also handles the “volume-step-size” property, which used to live in the xfce4-mixer channel (this really didn’t make sense to me anymore with xfce4-mixer not supporting PulseAudio). Finally we cleaned up the repository a bit and Sean was kind enough to knock out the 0.2.2 release while I was afk.

Anyway, without further ado here’s the code:

https://git.xfce.org/apps/xfce4-volumed-pulse

PS: It might be worth noting that if you’re using the xfce4-pulseaudio-plugin you already have your volume keys handled by it.

xfce4-clipman 1.4.0 (Gtk3 port) and libxfce4ui 4.13.1 released!

clipmanxfce4-clipman-plugin 1.4.0 released

So finally I’ve decided to release xfce4-clipman-plugin 1.4.0, which is the Gtk+3 port of the plugin. For a while I was unsure whether to do a development or a stable release – to be clear: this was not a decision based on the stability of the product itself but the fact that it relied on the development release of a Xfce core component (libxfce4ui-4.13.0). However I decided to revert the commit that introduced the dependency (I will apply it again latest when 4.14 is out).

As the port is a 1:1 port there are practically no new features. The only notable difference is that the panel plugin’s icon is now a symbolic icon.

Thanks to Eric, Steve and Florian for helping me get this off the ground!


libxfce4uilibxfce4ui 4.13.1

This is only a smaller bugfix release that replaces a deprecated call and – more importantly – fixes the default theming of XfceHeading in all Gtk+3 settings dialogs of Xfce.

Greybird 3.20.1 released (mostly bugfixes)

Plank theme (by Sean Davis)
theme for Plank (a simple dock) by Sean

So the first bugfix release for Greybird 3.20 is here and while the changelog isn’t an overly exciting read, there are some goodies in this one!

The single new feature in this – otherwise – bugfix release is a Greybirdy theme for Plank (a simple dock), contributed by Sean.

Other than that I have tweaked or fixed the following:

  • less padding on some widgets, e.g. buttons (makes the whole theme feel more like the original and matches Gtk2)
  • less bold input focus line on GtkEntries
  • improved progressbar theming (no more tiny artifacts when the fraction is 0.00), also fixes LP #1617705
  • tweak the look of OSDs
  • mention librsvg build-dependency in the README

Download

https://github.com/shimmerproject/Greybird/releases/tag/v3.20.1

Featurette: xfce4-notifyd 0.3.2 released

This release came a bit sooner than expected, but it’s primary goal is to fix a showstopper regression which slipped into 0.3.1 and practically rendered xfce4-notifyd useless on systems with Gtk+3 <=3.18 (i.e. not showing any notifications). Thanks to Olivier for noticing immediately and posting a patch!

notifyd_retro_and_bright
the “Retro” and “Bright” themes

But while this had to be a fast release I still managed to put in some feature-goodness. For instance I came through on my promise to add more default themes and in this release I added “Retro” and “Bright“.

notifyd_symbolic_zomgponies
(symbolic) audio volume icon recolored ZOMG-PONIES! style

The biggest feature in this release however is the support for symbolic icons. For those of you who haven’t heard of the feature before: it’s basically Gtk+ coloring your icon with the color of the font of that particular context, so the icon will color-wise match the font. This is especially useful for monochrome icons and (usually) prevents white-on-white scenarios. It also gives users and theme-makers more freedom (instead of having a “dark panel” or a separate “dark notifications” variant of an icon-theme). Note that your notification-sending application also has to request a symbolic icon, xfce4-notifyd is not enforcing symbolic icons.

Another notable fix (that I forgot to mention in the release notes) is the fix of styles of the progressbars in notifications. Those were not styled according to the notifyd-theme selected but always used the style of the base (as in: screen-wide) Gtk+ theme.

Finally, a minor improvement is that all themes are now sorted alphabetically in the Settings Dialog.

With this bugfix release out of the way it won’t be long until I merge my feature branch and get more testing for the “Do not disturb” mode.

Enjoy!