在这篇文章中,我将演示一种使用 python 和 conky 直接在桌面面板上显示来自 api 请求的数据的简单方法。
客观的
目标是从 api 获取信息并将其显示在桌面面板上。在此示例中,我将使用 python 来处理 api 请求,并使用 conky 来创建面板。
我们将使用 economia.awesomeapi.com.br api 获取美元和巴西雷亚尔的比特币汇率。然后,我们将配置 conky 每小时执行一次 python 脚本并在面板上显示输出。我还添加了一些基本样式以使面板看起来更好。
python 脚本:btc_data.py
下面是检索比特币汇率并格式化 conky 面板输出的 python 脚本:
import requests api_url = "https://economia.awesomeapi.com.br/json/last/btc-usd,btc-brl" try: response = requests.get(api_url) data = response.json() btc_usd = data.get("btcusd", {}) btc_brl = data.get("btcbrl", {}) usd_alta = f"$${float(btc_usd.get('high', 'n/a')):,.2f}" usd_baixa = f"$${float(btc_usd.get('low', 'n/a')):,.2f}" brl_alta = f"r$${float(btc_brl.get('high', 'n/a')):,.2f}" brl_baixa = f"r$${float(btc_brl.get('low', 'n/a')):,.2f}" formatted_data = ( " ${color white}btc - usd ${color}${color green} high: ${color}${color white}"+usd_alta+" ${color red} low: ${color}${color white}"+usd_baixa+" " "${color white}btc - brl ${color}${color green} high: ${color}${color white}"+brl_alta+" ${color red} low: ${color}${color white}"+brl_baixa+" " ) print(formatted_data) except exception as e: print(e)
conky配置:btc_ck.conf
这是 conky 的配置文件。它每小时(3600 秒)运行一次 python 脚本并显示格式化输出:
conky.config = { default_color = '#afafaf', own_window = true, own_window_type = 'normal', own_window_transparent = true, own_window_colour = '#000000', own_window_hints = 'undecorated, skip_taskbar', use_spacer = 'right', border_inner_margin = 20, alignment = 'middle_right', use_xft = true, double_buffer = true, font = 'monospace:size=8:style=semibold', gap_x = 80, update_interval = 1.0, } conky.text = [[ ${image /home/.../bitcoin-btc-logo.png -n -p 50,1 -s 25x25} ${execpi 3600 python3 /home/.../btc_data.py} ]]
要点:
- api 数据:获取比特币的美元和巴西雷亚尔最高价和最低价。
- 更新频率:面板通过 execpi 函数每小时更新一次。
- 样式:应用一些基本的自定义来改善面板的外观。
运行项目
- 将python脚本(btc_data.py)和conky配置文件(btc_ck.conf)保存在所需目录中。
- 根据需要更新 btc_ck.conf 中的文件路径(例如,python 脚本位置、比特币徽标图像)。
- 使用配置启动conky:
conky -c /path/to/btc_ck.conf