抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

前言

一般在手机端, Samsung 都贴心的提供了 APP 来进行耳机的查看和操作

在 Windows 端也有大佬提供了一个十分好用的第三方客户端 (后面它也支持 Linux 了)

Screenshot

ThePBone/GalaxyBudsClient - GitHub

但咱 Linux 用户还是更喜欢在命令行自定义的操作, 至于多开个图形化进程的…除非没得选

于是我找到了一些的相关项目, 最终选择了用 rust 实现的这家伙

JojiiOfficial/LiveBudsCli - GitHub

目前方案

我的目的很简单: 能够在耳机连接时能够直观的查看耳机的相关信息(比如电量,温度啥的)

好在 LiveBudsCli 中已经有了现成的 polybar 的配置脚本

但我的桌面环境是 KDE 不是 i3 之类的桌面…于是我把苗头指向了 KDE 的桌面面板

我的思路开始是想着按照 KDE 的相关文档, 自己写一个部件, 但后来转念一想应该可以更简单的去实现这玩意

于是我开始逛了一下部件商店, 发现了这样一个便捷的插件

Zren/plasma-applet-commandoutput - GitHub

我们可以写个简单的命令去调用 LiveBudsCli 最后输出到 KDE 面板

说干就干…写完发现 plasma-applet-commandoutput 不支持多行命令…几经折腾后成了下面这样

1
BUDS_STATUS=`earbuds status -o json -q` && REQ_STATUS=`echo $BUDS_STATUS | jq '.status' -r` && [ "$REQ_STATUS" = "error" ] && echo || { LEFT=$(echo $BUDS_STATUS | jq -r '.payload.batt_left') && RIGHT=$(echo $BUDS_STATUS | jq -r '.payload.batt_right') && LEFT="⚡$LEFT" && RIGHT="⚡$RIGHT" && echo "(L: $LEFT% |  R: $RIGHT%)"; } 

最后咱就成了

HZqUu.png

这命令已经实现只有检测到耳机连接才输出内容, 可以注意到我把他拖到了最边缘….是因为空输出也会占一个小格….问题不大

最后再添加个点击事件

1
BUDS_STATUS=`earbuds status -o json -q` && REQ_STATUS=`echo $BUDS_STATUS | jq '.status' -r` && [ "$REQ_STATUS" = "error" ] && echo || { LEFT=$(echo $BUDS_STATUS | jq -r '.payload.debug.temperature_left') && RIGHT=$(echo $BUDS_STATUS | jq -r '.payload.debug.temperature_right') && LEFT="$LEFT" && RIGHT="$RIGHT" && kdialog  --title 'temp' --msgbox "(L: $LEFT°C | R: $RIGHT°C)"; } 

现在支持点击状态栏查看耳机温度啦 (弹窗依赖于 kdialog)

HZN76.png

评论