Updated: August 12, 2017
Intelligent desktop helper tools are not a new thing. Long before cloud-powered assistants with sexy female voices came about, we had these applications trying to help us make smart decisions. Clippy, for instance. Then, Mozilla had Ubiquity. More recently, Ubuntu unleashed a product of its own, and they named it Dash. This thing was popular before the Internet became hot, and it will be with us till the planet goes kaput.
Zazu App is another attempt to make an intelligent launcher, except it aims to please hackers, nerds and tinkerers, people who want to do things semi-dev-like rather than just click shiny buttons in a shinier GUI. Well, as a man on a holy mission of efficiency, I had to take this utility for a spin. Plus, it came about as a recommendation from Joe, and you don't argue when Joe writes.
Installation & setup
Zazu is an open-source application, available for all three major operating systems. Well, Windows, Mac and Ubuntu, which isn't quite Linux per se. You can manually download and compile the software for your favorite edition, if you feel like. Which is what I decided to do as a first step rather than rush with an Ubuntu test. Hence, Fedora 25.
The official instructions are a little vague. The listed git command for the initial clone returns the following prompt, which isn't an error, but it also isn't something you want to play with first thing. Comparing SHA256 signatures isn't my idea of fun.
git clone firstname.lastname@example.org:tinytacoteam/zazu.git
Cloning into 'zazu'...
The authenticity of host 'github.com (22.214.171.124)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
A manual clone worked fine:
git clone https://github.com/tinytacoteam/zazu.git
Cloning into 'zazu'...
remote: Counting objects: 6590, done.
remote: Compressing objects: 100% (96/96), done.
remote: Total 6590 (delta 48), reused 0 (delta 0), pack-reused 6488
Receiving objects: 100% (6590/6590), 10.67 MiB | 2.59 MiB/s, done.
Resolving deltas: 100% (4031/4031), done.
Checking connectivity... done.
After this step, I had to download the npm package, then run the compilation.
npm run release
It seemed to hang on the extraction of the DEB package on an RPM system, but eventually, it seemed to have completed well.
A cross platform productivity application. --maintainer Tiny Taco Team <email@example.com> --vendor Tiny Taco Team <firstname.lastname@example.org> --version 0.4.0 --package /home/roger/zazu/dist/zazu_0.4.0_amd64.deb --url http://zazuapp.org --deb-compression xz --depends gconf2 --depends gconf-service
The last command eventually failed with:
Couldn't get a file descriptor referring to the console
I tried using xdg-open, openvt and see instead, allowing access to the console and display, but nothing helped in the end, so I decided to give up and go with the Ubuntu test instead.
The program launches and nests into the system area. The context menu has several options, including starting the program, development debug, updates, plugins, and reloading configuration after changes.
There's no GUI to manage things, you will actually have to manually edit the .zazurc.json file and then reload the configuration file. This tells you everything you need to know about the nature of this tool and the intended audience. Anything JSON means people who have not been electrocuted enough as kids.
The configuration is relatively simple to read, including hot keys, which you want to use to activate (toggle) Zazu, similar to Alt for Dash in Ubuntu and such. You can change the theme, and also edit the plugins used, as well as the generic search for when other plugins cannot satisfy your query. Don't forget your commands, little JSON people!
I started playing with Zazu, but a little more than the perfunctory copypasta I've seen everywhere else on the Web. In its default guise, Zazu isn't too rich or complex or useful, and the basic functions include some rough arithmetics, file search, Web search, and a few odd things besides. You can lock your screen or turn your computer off. But that's about it really.
Finding files was a little rusty, but I got there eventually. Zazu was relatively fast, but it did lag here and there when starting, and some of the actions took a little bit of time computing. No biggie, though.
The strength of Zazu is in its extensible nature. Open the config file and then add any which plugin you want, using the GitHub listing convention. The available plugins are here, so you want the team (or project name) slash plugin name. Very simple. Reload config, and the plugins will be loaded automatically. I decided to test the Docker plugin (nantaphop/zazu-docker) and Open Terminal (amjith/zazu-mac-open-terminal) first.
Naturally, Mac Open Terminal did not work - but neither did Docker. I made sure to install the package, start the service manually, and even added my user to the Docker group so I could run the service without root, but this didn't help. Again, as it turns out, this plugin is for Mac only. Disappointed!
I tried adding more plugins - some worked, some did not, some would not download or launch, and this was almost like the KDE/Plasma system tool for new themes and icons and whatnot. Nice as a concept but rather broken in execution.
Now, Zazu App sounds like a cool and powerful tool - but then, consider something like Krunner, which I tested about two years ago in my highly enthusiastic review of the Plasma desktop. Krunner starts with Alt + Space, just like Zazu does by default. Krunner can search everything, including bookmarks. It can run shell commands, compose mails, start and stop applications, change system settings, run spell checks, control media players, do math, and more. It also has a plugins framework, it's quite stylish and nice, and it's accessible to techies as well as less knowledgeable users.
If you compare Zazu App to what Krunner did a long time ago, it's still a young, immature utility, with a small subset of functions, and it has a non-orthodox approach to how it's managed, making it virtually out of scope for most people. To me, that does not sound like the best marketing approach. Maybe I'm missing something. Probably not.
Then, you also get Albert, which we used in our Macbuntu transformation. Again, similar concept and functionality, similar visual appeal. All in all, the fragmentation factor of the Linux world really becomes an issue. True value is diminished by the number of identical manifestations of the same functionality.
Zazu App is an interesting concept, but it's still quite raw. Linux support is flaky unless you mean Ubuntu. You have to manually edit the configuration, which is a fun killer. Most plugins do not run on Linux, and some are just broken, and even with a few of these added, the functionality spectrum is quite lean, especially compared to the likes of Dash or Krunner, both of which look and behave the part. From a purely technological stand point, Zazu App does not have the bells and whistles to defeat the established players.
But maybe that's not the goal. Maybe this is just a sandbox for nerds who love JSON, and for them, it will work well, it will be rich and powerful, and we will see more and more plugins added until this becomes an indispensible engine of artificial intelligence for your desktop. Who knows. At the moment, I'm skeptical. Also, given the rapid development cycle, everything you read here might already be obsolete by the time I publish this article. Such is life. Zazu, neat idea, but it takes more than that to Fandango.