Argos Is Like BitBar For Gnome Shell: It Shows Scripts Output On The Panel (Top Bar)
Searching for a way to show a script output on the Gnome Shell panel (top bar), I came across Argos. This Gnome Shell extension does only one thing: it adds a new item with a dropdown menu to the panel, showing the output from a script and exposing functionality.
The extension is inspired by BitBar, a popular program to put the output from any script on the macOS menu bar, and it's even compatible with most BitBar scripts.
Using it, you can essentially write your own custom Gnome Shell extension using a language you're already familiar with, like Bash, Python, and many others. Since an Argos plugin is just an executable script that writes to stdout, any language can be used to create plugins for it.
Don't know Bash, Python, etc.? No problem, you'll find already existing Argos / BitBar plugins compatible with Argos for a wide range of tasks.
Argos features:
Besides installing Argos and some basic usage, this article also includes some extra Argos plugins/scripts, and a few places to find plugins for Argos. Continue reading!
You have multiple ways of installing Argos:
Argos plugin usage basics to get you started:
It's time to "install" your first Argos plugin. Start by downloading a simple example, say this Ping plugin (to download the script press
Once Argos finds your new executable script in
You can delete the
If you want to write your own Argos plugin, I recommend starting with an already existing example, and checking out the Argos rendering and line attributes documentation.
Argos already has a few functional plugin examples on its GitHub page, like an application launcher or top viewer. You'll also find a few BitBar plugin examples that work with Argos, like a Ping plugin, Stock Ticker, or World Clock.
Besides these, I found a few extra plugin examples for Argos that I wanted to share with you.
1. argosWeather plugin
This is a complex Argos plugin that shows the current weather and a 7-day weather forecast, with icons and various extra information like the wind speed, humidity, and much more. It supports automatically detecting your current location, as well as manually specifying a location.
To use it, you'll have to open the script with a text editor and modify:
2. VPN Checker plugin for BitBar (Argos compatible)
This is a very simple, yet useful plugin that checks if you're currently using a VPN (it checks the availability of tun0 or ipsec0). It also allows to kill a program when you're disconnected from the VPN.
If you want the plugin to kill a program when disconnected from VPN, uncomment the
3. Cryptocurrency rates BitBar plugin that's compatible with Argos
This is a plugin that shows cryptocurrency rates on the panel. By default it shows the rates in GBP (British Pound), but you can change it to say USD, by changing the URL from
This also works with EUR and other currencies.
4. GetNews for Argos (download the getnews.py script)
GetNews is simple Python3 plugin for Argos that pulls the latest stories (headlines only) from a configurable RSS feed, showing them in a menu. By default it uses the Google News RSS feed, but I changed it to Linux Uprising for the screenshot.
You can refresh the feed directly from the plugin menu shown on the Gnome Shell panel. Clicking any news item opens the article in your default web browser.
Change the
5. SimpleWattage-Argos
SimpleWattage-Argos is an Argos plugin for showing power and battery info, like voltage and ampere used, battery charge %, battery capacity and more.
I don't have access to a laptop right now, that's why I didn't try this Argos plugin, and the screenshot is from its project page.
6. Airly.sh air quality for Argos (script download link)
Airly.sh reads the Air Quality Index from airly.eu sensors, showing it on the panel. This only works if airly.eu has air quality sensors for your city.
To use it, make sure
Once you get your API key, use it as the API_KEY value in the script. You need to get a sensor ID as well - this can be obtained by visiting
Where to find more Argos plugins:
The extension is inspired by BitBar, a popular program to put the output from any script on the macOS menu bar, and it's even compatible with most BitBar scripts.
Using it, you can essentially write your own custom Gnome Shell extension using a language you're already familiar with, like Bash, Python, and many others. Since an Argos plugin is just an executable script that writes to stdout, any language can be used to create plugins for it.
Don't know Bash, Python, etc.? No problem, you'll find already existing Argos / BitBar plugins compatible with Argos for a wide range of tasks.
Argos features:
- 100% API compatible with BitBar 1.9.2. All plugins that don't contain macOS-specific code will work with Argos
- Asynchronous execution engine: Argos prevents blocking by scheduling scripts intelligently
- Unicode support
- Optimized for minimum resource consumption; the developer claims that even with multiple scripts refreshing every second, Argos uses less than 1% of the CPU
Besides installing Argos and some basic usage, this article also includes some extra Argos plugins/scripts, and a few places to find plugins for Argos. Continue reading!
Argos installation and quick usage guide
You have multiple ways of installing Argos:
- Argos can be installed from extensions.gnome.org. Make sure you have the browser plugin and system package installed to be able to install Gnome Shell extensions, then visit extensions.gnome.org and install the extension by clicking on the toggle button.
- You may also be able to install Argos by searching the extension in the Gnome Software app.
- Installing Argos from source is also quite easy
Argos plugin usage basics to get you started:
- Argos monitors the
~/.config/argos/
folder for new scripts. Any executable script placed in this folder is considered a plugin, and its output is displayed on the Gnome Shell panel (top bar) as soon as it's placed in this folder. Names starting with a dot (.
) are ignored - The plugin filename has a special form:
NAME.POSITION.INTERVAL[+].EXTENSION
: POSITION
: is optional and you can use it to specify the button position on the panel. The position is an integer +l
(left),c
(center) orr
(right)INTERVAL
: is optional and you can use it to tell the plugin after which amount of time it should refresh. The interval is an integer +s
(seconds),m
(minutes),h
(hours) ord
(days)+
: if+
followsINTERVAL
, it tells the script to also update every time the dropdown menu is open.- Example Argos plugin (script) filename:
plugin.1r.10m+.sh
. This plugin will positioned just right of the Gnome Shell clock (if you didn't move it from the center of the panel), it will run the script to update the info every 10 minutes, and it will also run every time the dropdown menu is open. - The buttons showed by Argos on the panel are arranged from left to right in alphabetical order, unless the
POSITION
is specified in the filename, as mentioned above
It's time to "install" your first Argos plugin. Start by downloading a simple example, say this Ping plugin (to download the script press
Ctrl + s
to save it), copy the script to ~/.config/argos/
, and make it executable (you can make it executable from the Files app: right click the script, select Properties
, then go to the Permissions
tab and enable Allow executing file as program
).Once Argos finds your new executable script in
~/.config/argos/
, it will show its output on the panel and drop-down menu:You can delete the
argos.sh
script that already exists in the ~/.config/argos/
as it's only a bookmark to the Argos configuration folder, and to the Argos GitHub project page.If you want to write your own Argos plugin, I recommend starting with an already existing example, and checking out the Argos rendering and line attributes documentation.
Argos plugin examples
Argos already has a few functional plugin examples on its GitHub page, like an application launcher or top viewer. You'll also find a few BitBar plugin examples that work with Argos, like a Ping plugin, Stock Ticker, or World Clock.
Besides these, I found a few extra plugin examples for Argos that I wanted to share with you.
1. argosWeather plugin
This is a complex Argos plugin that shows the current weather and a 7-day weather forecast, with icons and various extra information like the wind speed, humidity, and much more. It supports automatically detecting your current location, as well as manually specifying a location.
To use it, you'll have to open the script with a text editor and modify:
api_key
: change theapi_key
value to your darksky.net API key. You can get your free DarkSky API key at https://darksky.net/dev- optional:
- if you want to use a custom location:
- change the
man_loc
value to the latitude and longitude coordinates for your location. You can find this using Google Maps. For example, searching for Berlin on Google Maps, you get this URL:https://www.google.com/maps/place/Berlin,+Germany/@52.5175012,13.1539869,10.25z...
. Copy the latitude and longitude (52.5175012,13.1539869
) part of the URL, and paste it as theman_loc
value (.e.g:man_loc = '52.5065116,13.1438652'
) - change the
man_name
value to the name of your location. For exampleman_name = 'Berlin, Germany'
- the color and font appearance can also be customized, and this is already explained in the weather script
2. VPN Checker plugin for BitBar (Argos compatible)
This is a very simple, yet useful plugin that checks if you're currently using a VPN (it checks the availability of tun0 or ipsec0). It also allows to kill a program when you're disconnected from the VPN.
If you want the plugin to kill a program when disconnected from VPN, uncomment the
#killall Firefox...
line, and replace Firefox
with the program you want to kill when disconnected from VPN.3. Cryptocurrency rates BitBar plugin that's compatible with Argos
This is a plugin that shows cryptocurrency rates on the panel. By default it shows the rates in GBP (British Pound), but you can change it to say USD, by changing the URL from
https://cryptomate.co.uk/api/all/GBP/
to https://cryptomate.co.uk/api/all/USD/
, and and a simple search and replace for £
with $
so it shows the correct currency symbol. As you can see I changed it to USD for the screenshot.This also works with EUR and other currencies.
4. GetNews for Argos (download the getnews.py script)
GetNews is simple Python3 plugin for Argos that pulls the latest stories (headlines only) from a configurable RSS feed, showing them in a menu. By default it uses the Google News RSS feed, but I changed it to Linux Uprising for the screenshot.
You can refresh the feed directly from the plugin menu shown on the Gnome Shell panel. Clicking any news item opens the article in your default web browser.
Change the
feed_url
value to a valid RSS feed to pull the news from. This can be a single website RSS feed, or a feed aggregator. You can also use some subreddit RSS feed (e.g. https://old.reddit.com/r/linux/.rss
). Change the stories
value to the number of stories to be shown in the plugin menu.5. SimpleWattage-Argos
SimpleWattage-Argos is an Argos plugin for showing power and battery info, like voltage and ampere used, battery charge %, battery capacity and more.
I don't have access to a laptop right now, that's why I didn't try this Argos plugin, and the screenshot is from its project page.
6. Airly.sh air quality for Argos (script download link)
Airly.sh reads the Air Quality Index from airly.eu sensors, showing it on the panel. This only works if airly.eu has air quality sensors for your city.
To use it, make sure
jq
and curl
are installed on your system. You'll also need to get your airly.eu API key.Once you get your API key, use it as the API_KEY value in the script. You need to get a sensor ID as well - this can be obtained by visiting
https://airapi.airly.eu/v2/installations/nearest?lat=YOUR_LAT&lng=YOUR_LNG&maxDistanceKM=5&maxResults=3&apikey=YOUR_API_KEY
, replacing YOUR_LAT
with the latitude of your location, and YOUR_LNG
with the longitude of your location. I already explain how to obtain your latitude and longitude using Google Maps in the instructions for the weather Argos plugin. Once you visit the URL with those parameters, you should get something that begins with id
followed by some numbers. Copy those numbers in the script, replacing the SENSOR_ID
value.Where to find more Argos plugins:
- BitBar plugins website (plugins having macOS-specific code won't work with Argos)
- The Argos wiki (it only has 4 plugins right now)
- This Argos bug report contains quite a few plugins. Some are added to a list in the initial bug report, but quite a few others are mentioned in the comments as well.
- Search GitHub for Argos plugins