#电池 #通知 #Linux #桌面通知 #命令行工具 #kdeconnect

应用程序 rusty-battery

当笔记本电脑电池达到阈值时通知您的 CLI 工具

9 个版本 (5 个重大更新)

2.0.1 2021 年 10 月 28 日
0.6.1 2022 年 10 月 2 日
0.5.0 2022 年 9 月 30 日
0.4.0 2022 年 9 月 27 日
0.1.3 2021 年 10 月 25 日

#2091 in 命令行工具

Download history 1/week @ 2024-06-27 41/week @ 2024-07-04 20/week @ 2024-07-25

61 每月下载次数

MIT 许可证

60KB
1.5K SLoC

rusty-battery

crates.io pages-build-deployment Continuous Integration

当笔记本电脑电池达到阈值时通知您的 CLI 工具。

为什么应该使用 rusty-battery

如果您无法设置启动/停止充电阈值(例如通过 TLP),但仍想确保电池不会超过您偏好的阈值。rusty-battery 可以通过显示桌面通知并可选地ping您的 KDE Connect 设备来通知您电池何时达到阈值。

特性

通知

当电池百分比超过给定的阈值时通知

用法: rusty-battery notify [OPTIONS]

选项

-t, --threshold <THRESHOLD>
        Battery charge threshold

        Whenever the chosen battery device reaches this charge threshold and will be charging, notifications will be sent, alerting that the charger should be unplugged.

        [minimum: 0] [maximum: 100]

        [default: 80]

-v, --verbose...
        More output per occurrence

-m, --model <MODEL>
        Battery model name

        If this value is omitted and only battery device is found for the current device, that one will be used.

        Otherwise, please use the `batteries` subcommand to get a list of all battery devices to get the model of the wanted battery device which should be monitored.

-q, --quiet...
        Less output per occurrence

    --refresh-secs <REFRESH_SECS>
        Number of seconds to wait before refreshing battery device data

        After every battery device refresh, its data will be checked. Notifications will be sent everytime they should be, based on the new refreshed battery device data.

        [default: 30]

    --summary <SUMMARY>
        Notification summary

        Supported variables: THRESHOLD, CHARGE_STATE, MODEL, REFRESH_SECS

        Reference these variables in your summary like shell environment variables with the '$' prefix.

        [default: "Charge limit warning"]

    --body <BODY>
        Notification body

        Supported variables: THRESHOLD, CHARGE_STATE, MODEL, REFRESH_SECS

        Reference these variables in your body like shell environment variables with the '$' prefix.

        [default: "Battery percentage reached the $THRESHOLD% threshold, please unplug your charger"]

    --kde-connect [<KDE_CONNECT_NAMES>...]
        KDE Connect device names

        If this value is not present, KDE Connect will not be used.

        If this value is empty, all of the KDE Connect devices will be pinged.

    --disable-desktop
        Disable desktop notifications

        Specify this flag if you don't want desktop notifications to be shown whenever the chosen battery percentage exceeds the given threshold.

-h, --help
        Print help information (use `-h` for a summary)

-V, --version
        Print version information

电池

列出当前设备上所有可用的电池

用法: rusty-battery batteries [OPTIONS]

选项

-h, --help       Print help information
-q, --quiet      Less output per occurrence
-v, --verbose    More output per occurrence
-V, --version    Print version information

kde-connect-devices

列出所有可用的 KDE Connect 设备

用法: rusty-battery kde-connect-devices [OPTIONS]

选项

-h, --help       Print help information
-q, --quiet      Less output per occurrence
-v, --verbose    More output per occurrence
-V, --version    Print version information

安装

crates.io

cargo install rusty-battery

源代码

  1. 克隆仓库
git clone [email protected]:kucera-lukas/rusty-battery.git
  1. 更改目录
cd rusty-battery
  1. 使用 cargo 安装
cargo install --path .

发布页面

下载最新版本的二进制文件并将其移动到您的 $PATH 目录中。您可能需要通过运行来更改二进制文件的权限

chmod +x rusty-battery

如果预编译的二进制文件有问题,请提交问题。

使用技巧

此工具最好在作为后台任务设置时使用。

使用 cron 设置

  1. 打开 crontab
crontab -e
  1. 将以下内容粘贴到文本编辑器中:@reboot rusty-battery notify [YOUR OPTIONS]
  2. 保存并退出文本编辑器,你应该在终端看到crontab: installing new crontab
  3. 重启系统
reboot

日志记录

  1. 通过-v--verbose标志选择日志详细程度
  2. 将其附加到rusty-battery命令中
  3. 通过以下方式重定向输出:>> /path/to/log/file 2>&1
  4. 通过以下方式检查所有日志:
more /path/to/log/file
  • 检查实时日志
tail -f /path/to/log/file

调试

ps aux | grep -e rusty-battery
  • 要终止任务,可以使用 ($PID可以通过前面的命令找到)
kill $PID

设备支持

测试于

  • OS:Fedora 34, 35, 36
  • DE:Plasma

依赖

~8–36MB
~536K SLoC