Tag Archives: qt

Orion Is a Qt/QML Twitch Desktop Client That I’d Love to Try

the twitch logoIt feels a little bit mean to write about an app that I know most of you won’t get to try anytime soon. But when I saw Orion, a Qt-based Twitch desktop app, surface on Reddit this evening I…I felt like I had to mention it here. Firstly, it’s always nice to see well-designed apps of any shade, and any toolkit. Secondly, […]

This post, Orion Is a Qt/QML Twitch Desktop Client That I’d Love to Try, was written by Joey-Elijah Sneddon and first appeared on OMG! Ubuntu!.

Read More

Configure Qt5 Application Style, Icons, Fonts And More With Qt5ct

Unlike Qt4, Qt5 doesn’t come with a configuration tool to allow setting the icon theme, fonts or the style and instead, it tries to use the settings from the running desktop environment.
This works well for KDE and GNOME (as well as Unity) but you may encounter issues under other desktop environments such as Xfce, Cinnamon, MATE and others (I’m not sure what Qt5 versions are affected by this, but it seems to be fixed in the latest Qt 5.5.1 according to THIS comment).
Here’s an example (Audacious 3.7 using the Qt5 interface under Linux Mint 17.2 with Cinnamon):

Instead of “Open Files”, “Add Files” and so on, Audacious should have icons. The app is also not using the GTK+ Qt5 style.

To force the Qt5 style or icon theme, you can use an application called Qt5ct (Qt5 Configuration Tool). Besides the style and icons, Qt5ct can also be used to change various other Qt5 settings, such as fonts, add custom style sheets and tweak other interface settings such as the double click interval, enable icons in menus and dialog buttons and more:

Here’s another Audacious 3.7 Qt5 interface screenshot taken under Linux Mint 17.2 Cinnamon, after using Qt5 Configuration Tool to set the icon theme to Mint-X and the style to GTK+:

To make it easier to install Qt5ct for Ubuntu and Linux Mint (and derivatives) users, I’ve uploaded the latest version in the main WebUpd8 PPA. I didn’t package the application and instead, I’ve used the packaging from THIS PPA. I decided rebuild the packages because that PPA comes with an older version and the packages are only tested for Ubuntu 14.04 (and in my test, the Ubuntu 15.04 and 15.10 packages weren’t installable). So the packaging credits go to “hda_launchpad”.

Install and configure Qt5 Configuration Tool in Ubuntu or Linux Mint

1. To add the main WebUpd8 PPA and install the latest Qt5 Configuration Tool (Qt5ct) in Ubuntu 14.04, 15.04 and 15.10 / Linux Mint 17.x and derivatives, use the following commands:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install qt5ct
If you don’t want to add the PPA, you can download the DEB from HERE (but you won’t receive any updates unless you add the PPA).
Arch Linux users can install Qt5ct from the Community repository. For other Linux distributions, you can download Qt5ct from SourceForge.

2. Once installed, there’s one more step you need to follow or else the settings you apply using Qt5ct won’t be applied – you need to open ~/.profile with a text editor (“.profile” is a hidden file in your home directory so use CTRL + H to show hidden files) and at the bottom of this file, add the following line:
export QT_QPA_PLATFORMTHEME="qt5ct"
Then, save the file, log out and after you login you can use Qt5 Configuration Tool to change the Qt5 style, icon theme and so on.
You’ll need to restart any Qt5 applications that were running to see the changes.

If later on you want to revert the changes, simply remove the “export QT_QPA_PLATFORMTHEME=qt5ct” line from your ~/.profile file and restart your session (logout).

Notes:

  • I’ve tried adding this in Lubuntu 15.10 (uses LXDE) to ~/.profile, ~/.xsessionrc as well as /etc/environment and it didn’t work for some reason (but exporting it using a terminal and then running a Qt5 app works, so the Qt5ct application works properly). If you find a way to get this to work in Lubuntu, let us know in the comments!
  • Using Qt5ct breaks the `Albert` user interface (probably because Albert tries to use the theme specified by Qt5ct).

Read More

Qt Music Player `Yarock` 1.1.3 Released, Available In PPA

Yarock 1.1.3 was released recently with a new radio service: Radionomy (which has replaced Shoutcast), support for importing APE files in the playqueue, MP4 audio tag reading and more.

Yarock

Yarock is a Qt music player “designed to provide an easy and pretty music collection browser based on cover art”.
The player provides multiple views such as artists, albums, tracks, genre, years and so on, all based on cover art and it includes features such as: music collection database (SQLite 3), playlists support (including smart playlists), can play radio streams, Mp3Gain tag support for volume normalization, Last.fm scrobbler, command line and Mpris interfaces, favorites support, automatically downloads cover art and more. Also, the player includes a radio browser which supports Tunein, Dribble and with this release, Radionomy.

Yarock Radionomy

Changes in Yarock 1.1.3:

  • new radionomy radio service (replace shoutcast)
  • added radio covers for all radio views
  • added symbolic link support for file system view
  • added MP4 audio files tag reading
  • added ape files import into playqueue
  • added browsing history support for stream link in radio views
  • many minor updates for the widgets/ui
  • fixed “lyrics.com” provider
  • fixed volume slider for phonon engine
  • fixed network redirection management
  • fixed now playing widget update
  • various other fixes and improvements

The complete changelog can be found HERE.

Also, since our last article about Yarock, the app has received support for an alternate audio engine: mpv, equalizer support for vlc audio engine as well as support for building the app with Qt5 (Qt4 is still supported).
Unfortunately, the PPA that used to provide Yarock for Ubuntu users (Sam Rog’s PPA) was removed. To make it easier to install the latest Yarock in Ubuntu, I used Sam’s initial packaging and I uploaded the latest Yarock 1.1.3 to the main WebUpd8 PPA. The package is built with Qt5 and Phonon and without the mpv audio engine (because mpv from the official Ubuntu repositories is very old).

Install Yarock in Ubuntu or Linux Mint via PPA

To install the latest Yarock in Ubuntu 15.04 or 14.04 / Linux Mint 17.2, 17.1 or 17 and derivatives, you can use the main WebUpd8 PPA. Add the PPA and install Yarock using the following commands:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install yarock

If you don’t want to add the PPA, you can download the deb from HERE.

Arch Linux users can install Yarock (Qt5) via AUR.
For other Linux distributions, grab the source from Launchpad and build the app using the official instructions (note: the PPA listed there doesn’t exist any more).
Report any bugs you may find @ Launchpad.

Read More

Ubuntu Phone and Unity vs Jolla and SailfishOS

With billions of devices produced, Android is by far the most common Linux-based mobile operating system to date. Of the less known competitors, Ubuntu phone and Jolla are the most interesting. Both are relatively new and neither one has quite yet all the features Android provides, but they do have some areas of innovation where they clearly lead Android.

Jolla phone and Ubuntu phone (Bq Aquaris .45 model)

Jolla phone and Ubuntu phone (Bq Aquaris 4.5 model)

Jolla is the name of the company behind the SailfishOS. Their first device entered stores in the fall of 2013 and since then SailfishOS has received many updates and SailfishOS 2.0 is supposed to be released soon together with the new Jolla device. A review of the Jolla phone can be read in the Seravo blog article from 2013. Most of the Jolla staff are former Nokia employees with lots of experience from Maemo and Meego, which SailfishOS inherits a lot from.

Ubuntu phone is the name of the mobile operating system by Canonical, famous from the desktop and server operating system Ubuntu. The first Ubuntu phones entered stores in the winter of 2015. Even though Ubuntu and also Ubuntu phone have been developed for many years, they can still be considered runner-ups in comparison to Jolla, because they have much less production usage experience with the bug fixes and incremental improvements it brings. A small review of the Ubuntu phone can also be read in the Seravo blog.

In comparison to Android, both of these have the following architectural benefits:

  • based on full-stack Linux environments which are much more generic and universal than the Android’s somewhat limited flavour of Linux
  • utilizes Qt and QML technologies to deliver modern user experience with smooth and fast graphics instead of a Java virtual machine environment like Android does
  • are to their development model more open and provide better opportunities for third parties to customize and contribute
  •  are not tied to the Google ecosystem, which to some user groups is a vital security and policy benefit

The last point about not being tightly knit to an ecosystem can also be a huge drawback. Users have learned to expect that their computing is an integrated experience. The million dollar question here is, will either one grow big enough to form it’s own ecosystem? Even though there are billions of people in the world who want to use a mobile phone, there probably isn’t enough mindshare to support big ecosystems around both of these mobile operating systems, so it all boils down to which of these two is better, which one is more likely to please a bigger share of users?

To find an answer to that we did some basic comparisons.

Ease of use

Both of these fulfill the basic requirements of a customer grade product. They are localized to multiple languages, well packaged, include interactive tutorials to help users learn the new system and they include all the basic apps built-in, including phone, messages, contacts, email, camera, maps, alarm clock etc.

The Ubuntu phone UI is somewhat familiar to anyone who has used Ubuntu on the desktop as it uses the Unity user interface by Canonical. In phones the Unity version is 8, while the latest Ubuntu 15.04 for desktops still ships Unity 7 series. In Unity there is a vertical bar with favourite apps that appears to the left of the screen. Instead of a traditional home screen there is the Dash, with search based views and also notification type of views. To save screen estate most menus and bars only appear on swipe across one of the edges. Swipe is also used to switch between apps and to return to the Dash screen.

The UI in the Jolla phone is mostly unlike anything most people have ever seen. The general look is cool and futuristic with ambient themes. The UI interaction is completely built around swiping, much like it was in the Nokia N9 (Meego variant). Once you’ve used a little bit the device and get familiar with the gestures, it is becomes incredibly effortless and fast to use.

The Ubuntu phone UI looks crisp and clean, but it requires quite a lot of effort to do basic things. After using both devices for a few months Jolla and SailfishOS feels simply better to use. Most of the criticism of Ubuntu’s Unity on desktop also applies to Unity in Ubuntu phone:

  • In Ubuntu the app bar only fits a few favourite apps nicely. If you want browse the list of all apps, you need to click and swipe many times until you arrive at the app listing. In comparison to Gnome 3 on the desktop and how it is done in Jolla phones, accessing the list of installed applications is just one action away and very fast to do.
  • Switching between open apps in Ubuntu is slow. The deck of apps looks nice, but it only fits four apps at a time, while in Gnome 3 opening the shell immediately shows all open windows and in Jolla the main view also shows all open apps. In Jolla there is additionally so called cover actions, so you can control some features of the running apps directly from the overview without even opening them.
  • Search as the primary interaction model in a generic device does not work. Ubuntu on the desktop has shown that it is too much asked for users to always know what they want by name. In the Ubuntu phone search is a little bit less dominant, but still searches and scopes are quite central. The Unity approach is suboptimal, as users need to remember by heart all kinds of names. The Nokia Z launcher is a much better implementation of a search based UI, as it can anticipate what the user might want to search in the first place and the full list of apps is just one touch gesture away.

Besides having a fundamentally better UI, the Jolla phone seems to have most details also done better. For example, if a user does not touch the screen for a while, it will dim a bit before shutting down, and if a user quickly does some action, the screen wakes up again to the situation where it was. In Ubuntu, the screen will simply shut off after some time of inactivity and it requires the user to open the lock screen, possibly entering a PIN code, even if the screen was shut off only for a second. Another example is that in Jolla, if the user rotates the device but does not want the screen orientation to change, the user only needs to touch the screen while turning it. In Ubuntu the user needs to go to the settings and lock the rotation, and can only then return to the app they where using and turn the device without an undesired change in rotation. A third example is that in Jolla you can “go back” in most views by swiping back. That can be done easily with either thumb. In fact the whole SailfishOS can be used with just one hand, let it be the right or the left hand. In Ubuntu navigating backwards requires the user to press an arrow icon in the upper left corner, which is impossible to do with your thumb if you hold the device with your right hand, so you often end up needing to use two hands while interacting with the Ubuntu phone UI.

To be fair, Ubuntu phone is quite new and they might not have discovered these kind of shortcomings yet as they haven’t got real end user feedback that much. On the other hand, the Unity in Ubuntu desktops has not improved much over time despite all criticism received. Jolla and SailfishOS had mostly all things done correctly from the start, which maybe means it was simply designed by more competent UI designers.

App switching
Apps list
Settings view. Jolla ambient theme image visible in the background

Browser experience

Despite all cool native apps and the things they can do, our experience says that the single most app in any smart device is still the Internet browser. Therefore it is essential that the browser in mobile devices is nothing less than perfect.

Both Ubuntu and Jolla have their own browser implementations instead of using something like Google Chrome as such. As the screenshot below shows, both have quite similar look and feel in their browsers and there is also support for multiple tabs.

Built-in browser
Browser tabs

Performance and battery life

As both Ubuntu phone with Unity and Jolla phone with SailfishOS are built using Qt and QML it is no surprise both have very fast and responsive UIs that render smoothly. This is a really big improvement over average Android devices, which often suffer from lagging rendering.

Ubuntu phone has however one big drawback. Many of the apps use HTML5 inside the Qt view, and those HTML5 apps load lots of external assets without prefetching or caching them properly like well made HTML5 apps with offline manifests should do. In practice this means for example that browsing the Ubuntu app store is very fast, but the app icons and screenshots in the active view load slower than what one could ever wait, that is for longer than tens of seconds. This phenomenon is visible in the Ubuntu app store screenshot below.

The Jolla battery life has been measured and documented in our blog previously. When we started using the Ubuntu phone the battery life was terrible and it ran out in a day even when with the screen off all the time. Later upgrades seem to however fixed some drain, as now the battery life is much better. We have however not measured and documented it properly yet.

App ecosystem, SDK and developer friendliness

Both Ubuntu and SailfishOS have their own SDK and QML based native apps. The Jolla phone however includes it’s own implementation of a virtual Java machine, so it supports also Android apps (though not always all features in them). Ubuntu has chosen not to be able to run any kind of Android apps. Oubuntu-jolla-storen the other hand the focus of Ubuntu seems to be on HTML5 apps. At least the maps app in Ubuntu is a plain HTML version of Google Maps and the Ubuntu store is filled with mostly HTML5 apps and real native apps are hard to find. In the Jolla store real native apps and Android apps are easy to spot as Android apps have a green icon next to their entry in the Jolla app store.

Both platforms include features to let the advanced users get a root shell on them. In Jolla one can go to the settings and enable developer mode, which includes activating remote SSH access so that developers can easily access their devices command line interfaces. In Ubuntu it is simply a matter of opening the command prompt app and entering the screen lock PIN code as the password to get access.

SailfishOS package management uses Zypper and RPM packages. In Ubuntu phone Snappy and Deb packages are used.

The interesting thing with Ubuntu is it’s potential to be integrated with the Ubuntu desktop experience. So far in our testing we didn’t notice any particular integration. In fact we even failed to get the Ubuntu phone connected to any of our Ubuntu laptops and desktops, while attaching a Jolla to a Linux desktop machine immediately registers as a USB device with the mount point name “Jolla”. To our knowledge this is however a dimension that is under heavy development at Ubuntu and they should soon reveal some big news regarding the convergence of the Ubuntu desktop and mobile.

For a company like Seravo, the openness of the technology is important. SailfishOS has some disadvantage here, because it includes closed source parts. Much of SailfishOS is though upstreamed into fully open source projects Mer and Nemo. Ubuntu seems to promise that Ubuntu Phone is open source and developed in the public with opportunities for external contributions.

Conclusion

Both of these Linux-based mobile operating systems are interesting. Both share many of pieces of their technology stack, most notably Qt. There really should be more competition to Android. Based on our experiences Jolla and SailfishOS would be the technically and usability wise superior alternative, but then again Ubuntu could be able to leverage on it’s position as the most popular Linux distribution in desktops and servers. The competition is tight, which can have both negative and positive effects. We hope that the competition will fuel innovation on all fronts.

Read More

Weather Trek – Weather planning for Trips

New year, more new projects! I do a good bit of traveling for work and this time of year traveling in the Midwest the weather is a constant battle. After loading up four different zipcodes on Weather.com twice a day for a few days in a row trying to get an idea of what the weather would be like while traveling on the upcoming weekend, I decided to make a simple tool to look up the information for me.

Introducing my simple tool I’m calling Weather Trek:

Like my other projects this one is written in Python and utilizes the Qt toolkit for the GUI. You can find the source code and Debian/Windows packages on the GitHub page here.

After launching the application, simply post two locations into the entries at the top and click the “Get Weather” button. Weather Trek then uses Google Maps to find the optimal route between these two cities and then looks up the five day forecast along this route on Weather.com. To get more detailed information for a particular point, you can click on the city name on any day.

The GUI and functionality is currently very simple and I am open to ideas for improvements. You can post about bugs/ideas on the GitHub page.

Cheers,
~Jeff Hoogland

Read More

Audacious Switches Back To GTK2, Adds New Qt-Based User Interface [Audacious 3.6 Alpha 1]

Audacious is a fast audio player that focuses on high audio quality and low resource usage, which comes with a pretty large plugin list and until now, it shipped with two interfaces: a GTK+ interface and a Winamp 2.x like interface (and so, it supports Winamp 2.x skins).

As we pointed out a while back, the Audacious developers aren’t very happy  with GTK3 and for the latest Audacious 3.6 alpha 1, released recently, they’ve switched back to GTK2 by default. 

Also, since the long-term goal is to completely switch to Qt, Audacious 3.6 alpha 1 includes a new Qt5-based user interface which is already usable, but not as feature-rich as the GTK+ interface. The new Qt interface can be installed alongside the already existing GTK+ and Winamp Classic interfaces.

Audacious 3.6 alpha 1 - GTK2 interface
Audacious 3.6 alpha 1 – GTK2 interface

Audacious 3.6 alpha 1 - GTK2 interface
Audacious 3.6 alpha 1 – Qt interface

For those who prefer GTK3, there’s a separate Audacious 3.6 alpha 1 GTK3 tarball available for download but, unless the developers have changed their mind, Audacious 3.6 might be the last release to support GTK3.
Besides these UI changes, the latest Audacious 3.6 alpha 1 also ships with quite a new features and improvements:
  • support double-size scaling of Winamp skins;
  • it’s now possible to search by genre in the search tool plugin;
  • the playlist manager can be docked in the GTK+ interface;
  • crossfading on seek and manual song change;
  • support for “album artist” in song tags;
  • search results are filtered by number of songs in the search tool plugin;
  • cue files are now automatically added to playlists and to the library;
  • adjustable HTTP buffer size;
  • optional calculation of a more accurate song length estimate for MP3 files
  • optional skipping of leading and trailing silence in MIDI files;
  • restored settings dialog for the SID plugin;
  • Audacious can now be built as a headless music player “daemon” with no GTK+ dependency (some plugins still require GTK+ though);
  • by default, playback now resumes in a paused state upon startup;
  • window positions of visualization plugins and of the search tool are now saved and restored at startup when the Winamp Classic interface is used;
  • there is a new effect plugin to remove leading and trailing silence in any song file;
  • new controls have been added to the song information dialog to allow tagging entire albums without retyping the artist and album name for each song;
  • a new option has been added to probe content of files with no recognized filename extension. With this option enabled, files with no extension can be added to playlists and to the library automatically, and subtunes in those files will also be recognized. The extra probing does slow Audacious down, so enable the option only if needed;
  • support for the SID song lengths database has been restored;
  • the ALSA output plugin now checks for new devices when the settings dialog is opened, so it’s no longer necessary to restart Audacious after plugging in a USB audio device;
  • the JACK and sndio output plugins have been rewritten from scratch in order to fix a number of problems;
  • more.

Audacious 3.6 is still in alpha, so if you plan on giving it a try, keep in mind that you might find incomplete of broken features. For instance, the Qt interface currently displays some text in English only and the Qt interface playlist editor has limited capabilities for now.

Test Audacious 3.6 alpha 1 in Ubuntu 14.04 or 14.10

Ubuntu 14.04 or 14.10 (and derivatives) users can try the latest Audacious 3.6 alpha by using the WebUpd8 Unstable PPA. The packages in this PPA are for testing purposes only. It’s also important to mention that Audacious from this PPA has been built with both GTK2 and Qt interfaces enabled.

To install Audacious 3.6 alpha 1 for testing, use the following commands:
sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install audacious

By default, launching Audacious from the menu / Unity Dash, the app will use the GTK2 interface and changing the interface to Qt from the Audacious settings doesn’t work. To run Audacious with the Qt interface, you must use the following command:
audacious --qt

If later on you want to revert the changes and downgrade Audacious to the stable version available in the official Ubuntu repositories (or the main WebUpd8 PPA), purge the WebUpd8 Unstable PPA using the following commands:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:webupd8team/unstable

If you don’t want to add the PPA or you’re not using Ubuntu, you can download the latest Audacious 3.6 alpha 1 source from its website.

Read More

Qute UI revamp and Deck Stats

A little over a week ago I posted about the first draft of my Qute MTG Stats tool. This past weekend I had some time between matches of magic to implement some new ideas I had for the project. These include:

  • Adding notes to events such as deck played and decks played against
  • See stats by deck for decks you’ve added to the event list
  • Export event/opponent lists to CSV files
  • Export full stats to clipboard/text file
  • Save edited data to a .qute file
  • Load data from a selected .qute file
  • Added prompts to let the user know when actions complete successfully
  • Added in application help prompt
I’ve also moved away from the original tabbed setup I started with to separate to allow the user to view information side by side:

For a full set of screenshots check here.

For those interested in giving this a try yourself, you can always download the latest Windows binary form here. For those using a superior operating system, simply install pyside, download the latest snapshot, and run the qutemtgstats.py


If you have any suggestions or feature ideas let me know with a comment below.

Cheers,

~Jeff Hoogland

Read More