Ubuntu / Linux news and application reviews.

Argos is a tool inspired by the BitBar app for Mac, which makes it easy to create your own GNOME Shell extensions, using information provided via scripts.

Being a GNOME Shell extension itself, Argos adds a button with a dropdown on the GNOME Shell top panel. This button can display or expose functionality provided by a script, be it Bash, Python, Ruby, and so on (remember to make it executable or else Argos won't use it).

Here's Argos in action (gif via Argos GitHub page):

Argos GNOME Shell script extension

Basically, the extension turns an executable's standard output into information that's displayed by Argos on the GNOME Shell top panel and its dropdown menu. A new button is added for each executable file placed in the Argos configuration directory (~/.config/argos/).

For example, you can use Argos to display weather, ping, stocks or network download speed on the GNOME Shell Top Panel, while providing advanced information in its dropdown menu, like a weather forecast, ping details, a list of stocks, or network upload and download speed.

Furthermore, plugins are not limited to displaying information. Argos can also perform actions on click, so for instance, you could create a launcher. Here's a simple launcher created with Argos:

Argos GNOME Shell script extension

Another example - Argos running "top" in its submenu:

Argos GNOME Shell script extension

The code for these two examples is available HERE.

Argos is not only inspired by the Mac BitBar app, but it also supports many Bitbar plugins, without any modifications. Note that not all BitBar plugins run on Linux, so you'll have to use plugins that don't contain macOS-specific code to use with Argos.

You can find BitBar plugins on the GetBitBar website or, to directly download the code, see the BitBar plugins GitHub page.

Below you'll find a few BitBar plugin examples, used with Argos under GNOME Shell:

Argos GNOME Shell script extension
Hacker News

Argos GNOME Shell script extension
Ping results for multiple websites

Argos GNOME Shell script extension
Bandwidth test (to use this, install speedtest-cli and change the executable from ~/bin/speedtest-cli to simply "speedtest-cli")

Under the hood, Argos uses an asynchronous execution engine, which should prevent blocking, even for long-running scripts. Furthermore, its GitHub page mentions that Argos is optimized for minimum resource consumption, so even with multiple plugins refreshing every second, it should still use less than 1% CPU.

For a similar tool (but without BitBar support) for desktops that support AppIndicators, see Sysmonitor Indicator or the old "Zenity for AppIndicators".

Install Argos for GNOME Shell

Update: Argos is now available in the GNOME Shell extension repository, HERE. For installing the latest Git, use the instructions below:

1. Install Argos

Argos is not available on the GNOME Shell extensions website, so you must install it manually. To make it easy to install, you can simply use the following commands:
sudo apt install git
mkdir -p ~/.local/share/gnome-shell/extensions/
git clone https://github.com/p-e-w/argos.git ~/.local/share/gnome-shell/extensions/argos
ln -s ~/.local/share/gnome-shell/extensions/argos/argos@pew.worldwidemann.com/ ~/.local/share/gnome-shell/extensions/

Alternatively, if you don't want to use the commands, you can download the extension .tar.gz from HERE and extract the "argos@pew.worldwidemann.com" folder to ~/.local/share/gnome-shell/extensions/

2. Restart GNOME Shell and enable Argos

To restart GNOME Shell, press Alt + F2 and type "r" (without the quotes). Then use GNOME Tweak Tool to enable the extension.

Later on if you want to update the extension (if you've used the commands mentioned above to install it), open a terminal and type:
cd ~/.local/share/gnome-shell/extensions/argos
git pull

Argos is very well documented so I won't get into details about using it here. For how to use Argos, please visit its GitHub page.