From 8fedf45bdce537aa53cad815024a0721b5538389 Mon Sep 17 00:00:00 2001 From: Roger Gonzalez Date: Fri, 1 Jan 2021 16:02:28 -0300 Subject: Added music and BTC modules to polybar --- .config/polybar/coins.svg | 304 +++++++++++++++++++++++++++++++++++++++++++++ .config/polybar/config | 17 ++- .config/polybar/music | 15 +++ .config/polybar/pcrypto.py | 47 +++++++ 4 files changed, 381 insertions(+), 2 deletions(-) create mode 100644 .config/polybar/coins.svg create mode 100755 .config/polybar/music create mode 100755 .config/polybar/pcrypto.py (limited to '.config/polybar') diff --git a/.config/polybar/coins.svg b/.config/polybar/coins.svg new file mode 100644 index 00000000..6d3b73fd --- /dev/null +++ b/.config/polybar/coins.svg @@ -0,0 +1,304 @@ +e900:1st +e901:ada +e902:adc +e903:adx +e904:aeon +e905:amp +e906:anc +e907:ant +e908:arch +e909:ardr +e90a:aur +e90b:banx +e90c:bat +e90d:bay +e90e:bc +e90f:bch +e910:bcn +e911:bft +e912:bnb +e913:bnt +e914:brk +e915:brx +e916:bsd +e917:bta +e918:btc +e919:btcd +e91a:btg +e91b:btm +e91c:bts +e91d:clam +e91e:clo +e91f:cloak +e920:cvc +e921:dao +e922:dash +e923:dcr +e924:dct +e925:dent +e926:dgb +e927:dgd +e928:dgx +e929:dmd +e92a:dnt +e92b:doge +e92c:edg +e92d:emc +e92e:eos +e92f:erc +e930:etc +e931:eth +e932:exp +e933:fc2 +e934:fcn +e935:fct +e936:flo +e937:frk +e938:ftc +e939:fun +e93a:game +e93b:gbg +e93c:gbyte +e93d:gdc +e93e:gemz +e93f:gld +e940:gno +e941:gnt +e942:golos +e943:grc +e944:grs +e945:gup +e946:awc +e947:hmq +e948:icn +e949:ifc +e94a:incnt +e94b:ioc +e94c:cnd +e94d:ixt +e94e:jbs +e94f:kmd +e950:kore +e951:lbc +e952:ldoge +e953:lsk +e954:ltc +e955:lun +e956:maid +e957:mco +e958:mint +e959:mln +e95a:mona +e95b:mrc +e95c:msc +e95d:msp +e95e:mtl +e95f:mtr +e960:mue +e961:nano +e962:nav +e963:nbt +e964:neo +e965:neos +e966:neu +e967:nlg +e968:nmc +e969:note +e96a:nvc +e96b:nxt +e96c:oax +e96d:ok +e96e:omg +e96f:omni +e970:opal +e971:part +e972:pay +e973:piggy +e974:pink +e975:pivx +e976:plbt +e977:plr +e978:plu +e979:pot +e97a:ppc +e97b:ptoy +e97c:qcn +e97d:qrk +e97e:qtum +e97f:rads +e980:rbies +e981:rbt +e982:rby +e983:rdd +e984:rep +e985:rise +e986:rlc +e987:salt +e988:sar +e989:scot +e98a:sdc +e98b:sia +e98c:sjcx +e98d:slg +e98e:sls +e98f:sngls +e990:snrg +e991:snt +e992:start +e993:steem +e994:storj +e995:str +e996:strat +e997:swift +e998:swt +e999:sync +e99a:sys +e99b:time +e99c:tkn +e99d:trig +e99e:trst +e99f:trx +e9a0:tx +e9a1:ubq +e9a2:unity +e9a3:usdt +e9a4:ven +e9a5:vior +e9a6:vnl +e9a7:vpn +e9a8:vrc +e9a9:vtc +e9aa:waves +e9ab:wings +e9ac:xai +e9ad:xaur +e9ae:xbs +e9af:xcp +e9b0:xdn +e9b1:xem +e9b2:xmr +e9b3:xpm +e9b4:xrp +e9b5:xtz +e9b7:xzc +e9b8:ybc +e9b9:zec +e9ba:zeit +e9bb:zrx +e9bc:stx +e9bd:sbtc +e9be:rcn +e9bf:nmr +e9c0:zil +e9c1:vib +e9c2:xnn +e9c3:viu +e9c4:veri +e9c5:sc +e9c6:rhoc +e9c7:kcs +e9c8:icx +e9c9:ark +e9ca:ae +e9cb:tip +e9cc:crpt +e9cd:via +e9ce:myst +e9cf:miota +e9d0:adt +e9d1:eng +e9d2:cfi +e9d3:dsh +e9d4:xlm +e9d5:fsbt +e9d6:atl +e9d7:ath +e9d8:arn +e9d9:arc +e9da:apt +e9db:aidoc +e9dc:amis +e9dd:adst +e9de:300 +e9df:ngc +e9e0:srn +e9e1:wax +e9e2:dcn +e9e3:powr +e9e4:dkk +e9e5:gbp +e9e6:eur +e9e7:usd +e9e8:ukg +e9e9:lrc +e9ea:brd +e9eb:mana +e9ec:mer +e9ed:tix +e9ee:xel +e9ef:zen +e9f0:btcp +e9f1:ebst +e9f2:elf +e9f3:hsr +e9f4:iost +e9f5:loom +e9f6:mkr +e9f7:nas +e9f8:now +e9f9:snm +e9fa:synx +e9fb:wan +e9fd:ely +e9fe:ela +e9ff:smart +ea00:aion +ea01:tusd +ea02:usdc +ea03:vet +ea04:pax +ea05:joys +ea06:bchsv +ea07:bsv +ea08:bth +ea09:trezor +ea0a:ledger +ea0b:r +ea0c:npxs +ea0d:dai +ea0e:link +ea0f:hot +ea10:gusd +ea11:eurs +ea12:vtho +ea13:kin +ea14:ont +ea15:atom +ea16:ankr +ea17:erd +ea18:ftm +ea19:lto +ea1a:und +ea1b:vera +ea1c:yec +ea1d:aya +ea1e:ethplo +ea1f:iotx +ea20:enj +ea21:rvn +ea22:xns +ea23:pyn +ea24:ncash +ea25:loki +ea26:knc +ea27:job +ea28:chz +ea29:btu +ea2a:apis +ea2b:gas +ea2c:busd +ea2d:iq +ea2e:lst +ea2f:ong +ea30:nut +ea31:eosdt \ No newline at end of file diff --git a/.config/polybar/config b/.config/polybar/config index c76ff20b..8e3f091a 100644 --- a/.config/polybar/config +++ b/.config/polybar/config @@ -33,9 +33,9 @@ font-2 = Termsynu:size=10;0 font-3 = Siji:pixelsize=10;1 font-4 = FontAwesome:size=10;0 font-5 = Noto Color Emoji:scale=12;0 -modules-left = i3 spotify +modules-left = i3 music modules-center = xwindow -modules-right = cpu-temperature gpu-temperature pulseaudio xkeyboard cpu memory wireless-network mullvad-status battery clock +modules-right = crypto pulseaudio xkeyboard cpu memory wireless-network mullvad-status battery clock [module/i3] type = internal/i3 @@ -129,6 +129,12 @@ type = custom/script interval = 1 exec = python /home/roger/.config/polybar/spotify_status.py -t 80 --playpause-font=5 -p '⏯,⏸️' -f ' {play_pause} {song} - {artist} - {album}' +[module/music] +type = custom/script +interval = 1 +label = %output% +exec = ~/.config/polybar/music + [module/mullvad-status] type = custom/script exec = /home/roger/.config/polybar/mullvad_status.sh @@ -151,3 +157,10 @@ thermal-zone = 0 hwmon-path = /sys/devices/virtual/hwmon/hwmon4/temp9_input base-temperature = 20 warn-temperature = 80 + +[module/crypto] +type = custom/script +exec = python ~/.config/polybar/pcrypto.py --base USD --coins btc +interval = 60 + +font-0 = "coins:style=Regular;0" diff --git a/.config/polybar/music b/.config/polybar/music new file mode 100755 index 00000000..40a028f6 --- /dev/null +++ b/.config/polybar/music @@ -0,0 +1,15 @@ +#!/bin/bash + +player_status=$(playerctl status 2> /dev/null) +if [[ $? -eq 0 ]]; then + metadata=$(echo "$(playerctl metadata title) - $(playerctl metadata artist) - $(playerctl metadata album)" | cut -c -80) +fi + +# Foreground color formatting tags are optional +if [[ $player_status = "Playing" ]]; then + echo "%{F#FFFFFF}▶️ $metadata%{F-}" +elif [[ $player_status = "Paused" ]]; then + echo "%{F#999}⏸️ $metadata%{F-}" +else + echo "" +fi diff --git a/.config/polybar/pcrypto.py b/.config/polybar/pcrypto.py new file mode 100755 index 00000000..3d9548a2 --- /dev/null +++ b/.config/polybar/pcrypto.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3.6 + +import requests +import argparse +import json +import sys +import os + +parser = argparse.ArgumentParser(description="Display currencies on polybar") +parser.add_argument("--coins", type=str, + nargs="+", help="Select coins to display") +parser.add_argument("--base", type=str, + nargs="?", default="USD", help="Currency base to convert against") +parser.add_argument("--decimals", type=int, + nargs="?", default=2, help="How many decimals to show") +parser.add_argument("--display", type=str, + nargs="?", default="price", choices=["price", "percentage", "both"], help="Display mode") + +args = parser.parse_args() +home = os.path.expanduser("~/") + +unicode_dict = {} +with open(f"{home}.config/polybar/coins.svg", "r", encoding="utf-8") as icons: + for line in icons: + unicode, coin = line.strip().split(":") + unicode_dict[unicode] = coin + + +for coin in args.coins: + get = requests.get( + f"https://api.coinranking.com/v1/public/coins?prefix={coin}&base={args.base}").json()["data"] + price_float = round(float(get["coins"][0]["price"]), args.decimals) + current_price = get["base"]["sign"] + str(price_float) + change = get["coins"][0]["change"] + + for _unicode, _coin in unicode_dict.items(): + if _coin == coin: + icon = chr(int(_unicode, 16)) if len(_unicode) > 1 else _unicode + if args.display == "price": + if change > 0: + sys.stdout.write("%{F#00BB00}₿: " + current_price + "%{F-}") + else: + sys.stdout.write("%{F#BB0000}₿: " + current_price + "%{F-}") + if args.display == "percentage": + sys.stdout.write(f" {icon} {change:+}% ") + if args.display == "both": + sys.stdout.write(f" {icon} {current_price} | {change:+}% ") -- cgit v1.2.3