Skip to content

A Waybar module for displaying cryptocurrency market information

License

Notifications You must be signed in to change notification settings

chadsr/waybar-crypto

Repository files navigation

waybar-crypto

Tests codecov AUR Version

A Waybar module for displaying cryptocurrency market information, utilising the CoinMarketCap API.

Example Setup

Requirements

  • python >=3.10
  • python-requests

Installation

yay -S waybar-crypto

Note: For the time being, the cryptofont font still needs installing manually

(Or) Clone to the Waybar modules directory

cd ~/.config/waybar/modules
git clone https://github.com/chadsr/waybar-crypto.git crypto && cd crypto/
git submodule update --init --recursive --remote --progress

Install the needed fonts

 # Use ~/.local/share/fonts/TTF (user scope, recommended) or /usr/share/fonts/TTF (system scope)
mkdir -p ~/.local/share/fonts/TTF
ln -s ./.submodules/cryptofont/fonts/cryptofont.ttf ~/.local/share/fonts/TTF

# Rebuild font cache
fc-cache -f

Create Configuration File

Create a configuration file at $XDG_CONFIG_HOME/waybar-crypto/config.ini (This location can be customised with the --config-path flag). The module will not run without first creating this configuration file.

An example can be found in config.ini.example with further options described below in the Configuration section.

Update Waybar Configuration

Found at ~/.config/waybar/config by default

"custom/crypto": {
    "format": "{}",
    "interval": 600,
    "return-type": "json",
    "exec": "waybar-crypto", // change this if you installed manually
    "exec-if": "ping pro-api.coinmarketcap.com -c1"
}

Style the module

Found at ~/.config/waybar/style.css by default

#custom-crypto {
    font-family: cryptofont;
}

Configuration

  • currency: A valid currency code

  • currency_symbol: A corresponding symbol of the currency you wish to display

  • spacer_symbol: A string/character to use as a spacer between tickers. Comment out to disable

  • display: A list of metrics you wish to display for each crypto currency. No spaces. Valid options are:

    • price: current price
    • percent_change_1h: Price change over the past hour
    • percent_change_24h: Price change over the past 24 hours
    • percent_change_7d: Price change over the past week
    • percent_change_30d: Price change over the past thirty days
    • percent_change_60d: Price change over the past sixty days
    • percent_change_90d: Price change over the past ninety days
    • volume_24h: Market volume in your chosen currency, over the past 24 hours
    • volume_change_24h: Market volume change in your chosen currency, over the past 24 hours
  • api_key: CoinmarketCap API key obtained from their API Dashboard

    Alternatively, the CoinMarketCap API key can be set through the environment variable COINMARKETCAP_API_KEY, if you do not wish to save it to the config.ini configuration file.

Adding Cryptocurrencies

For each cryptocurrency you wish to display, add a section as shown in the example file, where the section name is the short cryptocurrency name as found on CoinMarketCap.

Valid options:

  • icon: A character symbol to display next to this cryptocurrency's metrics
  • in_tooltip: Whether to display the data in the tooltip instead of the bar (defaults to false)
  • price_precision The decimal precision at which to display the price value of the cryptocurrency
  • change_precision The decimal precision at which to display the change value(s) of the cryptocurrency
  • volume_precision The decimal precision at which to display the volume value of the cryptocurrency