在这篇文章中,我将演示一种使用 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 = (
"\n\n${color white}btc - usd\n${color}${color green} high: ${color}${color white}"+usd_alta+"\n${color red} low: ${color}${color white}"+usd_baixa+"\n\n"
"${color white}btc - brl\n${color}${color green} high: ${color}${color white}"+brl_alta+"\n${color red} low: ${color}${color white}"+brl_baixa+"\n"
)
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










