LINUX.ORG.RU

acpi (консольная утилита для показа процента заряженности батереи) в 2025 году

 , , ,


1

1

Давно пытался найти отдельную утилиту для показа процента заряженности батареи. К сожалению всю что удавалось найти до сих пор это battop с TUI на rust. К моему счастью, оказалось что майнтеры Hyperbola и собрали нужную утилиту прямо в репах. Подозреваю что утилита распространенная, но почему-то не гуглится.

★★★★★

Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 1)

Давно пытался найти отдельную утилиту для показа процента заряженности батареи. К сожалению всю что удавалось найти до сих пор это battop с TUI на rust.

У меня нет девайсов с батареей, так что не проверить, но мне почему-то всегда казалось, что в CLI можно эту информацию получить просто из очередного файла в /sys/class/. Разве нет?

upd: быстрый гуглёж говорит о cat /sys/class/power_supply/BAT1/capacity для процента заряда и cat /sys/class/power_supply/BAT1/status для статуса (напр. Charging).

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

Таки с наступающим.

В трей CDE вывод никак не перенаправить?

ЗЫ от белого на сером глазам может поплохеть.

x22 ★★★
()

Подозреваю что утилита распространенная, но почему-то не гуглится.

В pacman же есть возможность узнать пакет, в который входит нужный файл?

А я пока посмотрю на утилиты https://github.com/acpica/acpica. :)

dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от vbcnthfkmnth123

можешь просто по крону опрашивать состояние батареи и выводить уведомление или звуковой сигнал, если заряд принизил заданный. пример:

*/3 * * * * acpi --battery | awk -F, '/Discharging/ { if (int($2) < 15) print }' | xargs -ri notify-send -u critical -t 50000 {}

а вот пример с уходом в сон:

*/1 * * * * acpi --battery | awk -F, '/Discharging/ { if (int($2) < 10) print }' | xargs -ri echo -n mem >/sys/power/state

С Новым Годом! :)

err
()

...и тут мои глаза лопнули...

sparkie ★★★★★
()

Так conky это умеет.

TechnoMag ★★★
()

Давно пытался найти отдельную утилиту для показа процента заряженности батареи.

htop

kirill_rrr ★★★★★
()
Ответ на: комментарий от CrX

И поэтому использовал watch чтобы сделать из неё как бы tui? Я понял так что ему не понравилась конкретно та утилита или возмонжо раст.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от err

Всем спасибо за советы, и поздравляю с наступающим!

vbcnthfkmnth123 ★★★★★
() автор топика

$ fastfetch --list-modules:

  1. Battery : Print battery capacity, status, etc
  2. BIOS : Print information of 1st-stage bootloader (name, version, release date, etc)

$ fastfetch -s battery --logo none:

Battery (BIF0_9): 61% [Charging, AC Connected]

Можно выводить в JSON, а потом делать с ним, что угодно.
$ fastfetch -s battery --json true:

[
  {
    "type": "Battery",
    "result": [
      {
        "capacity": 61.0,
        "manufacturer": "MSI",
        "manufactureDate": "",
        "modelName": "BIF0_9",
        "status": "Charging, AC Connected",
        "technology": "Li-ion",
        "serial": "",
        "temperature": null,
        "cycleCount": 0,
        "timeRemaining": null
      }
    ]
  }
]
dataman ★★★★★
()

Подозреваю что утилита распространенная, но почему-то не гуглится.

Это потому что видео, как ее программировали, не показали. А программировать надо было на пюре из барсиков. Тогда может что-то в срачах на лоре и осталось бы.

slackwarrior ★★★★★
()

самый распространенный способ делать такие вещи - с помощью upower. Устанавливаешь upower, устанавливаешь poweralertd, запускаешь этот poweralertd в пользовательской сессии. Он стучится по дыбасу к upower, тот запускается с помощью дыбас-активации (либо, вероятно, с помощью сокет-активации на системах с сустемд), после чего тебе начинают поступать десктопные уведомления от upower типа «ваша мышка почти разряжена».

Плюс у самого экзешника upower есть опции --monitor и --monitor-detail - то есть его тоже можно запустить в виде демона и самостоятельно парсить вывод.

Если хочется обойтись без upower, то можно вручную мониторить нужные файлы в /sys/class/power_supply/, как тут уже написали. Только естественно не периодически их читать, а как белые люди воспользоваться inotify. В Alpine есть busybox со встроенным inotifyd, поэтому у меня можно сделать так:

$ inotifyd ./mouse.sh /sys/class/power_supply/hidpp_battery_3/status:c

При изменении файла /sys/class/power_supply/hidpp_battery_3/status запустится скрипт mouse.sh с нужными аргументами.

Lrrr ★★★★★
()
Последнее исправление: Lrrr (всего исправлений: 1)

Я что-то не понимаю, но все DE умеют выводить заряд батареи, или ты искал решение для CDE?

IIIypuk ★★★★★
()
Ответ на: комментарий от dataman
                  -`                     user@sword
                 .o+`                    ----------
                `ooo/                    OS: Arch Linux x86_64
               `+oooo:                   Host: Sword 17 HX B14VFKG (REV:1.0)
              `+oooooo:                  Kernel: Linux 6.17.9-arch1-1
              -+oooooo+:                 Uptime: 1 hour, 48 mins
            `/:-:++oooo+:                Packages: 1387 (pacman), 15 (flatpak)
           `/++++/+++++++:               Shell: fish 4.2.1
          `/++++++++++++++:              Display (AUOA9A6): 1920x1200 in 17", 165 Hz [Built-in]
         `/+++ooooooooooooo/`            DE: KDE Plasma 6.5.4
        ./ooosssso++osssssso+`           WM: KWin (Wayland)
       .oossssso-````/ossssss+`          WM Theme: Breeze
      -osssssso.      :ssssssso.         Theme: Breeze (Dark) [Qt]
     :osssssss/        osssso+++.        Icons: breeze-dark [Qt]
    /ossssssss/        +ssssooo/-        Font: Noto Sans (11pt) [Qt]
  `/ossssso+/:-        -:/+osssso+-      Cursor: Vanilla-DMZ (24px)
 `+sso+:-`                 `.-/+oso:     Terminal: konsole 25.12.0
`++:.                           `-/+/    Terminal Font: Cascadia Mono (13pt, SemiBold)
.`                                 `/    CPU: Intel(R) Core(TM) i7-14650HX (24) @ 5.20 GHz
                                         GPU 1: NVIDIA GeForce RTX 4060 Max-Q / Mobile [Discrete]
                                         GPU 2: Intel Raptor Lake-S UHD Graphics @ 1.60 GHz [Integrated]
                                         Memory: 6.79 GiB / 15.32 GiB (44%)
                                         Swap: Disabled
                                         Disk (/): 181.65 GiB / 210.57 GiB (86%) - ext4
                                         Local IP (wlan0): 192.168.0.14/24
                                         Battery (BIF0_9): 92% [Charging, AC Connected]
                                         Locale: C.UTF-8

IIIypuk ★★★★★
()
Последнее исправление: IIIypuk (всего исправлений: 1)
Ответ на: комментарий от IIIypuk

Да, для CDE искал. И вообще не все умеют, Lumina тоже не умеет, и насколько EDE тоже не умеет.

vbcnthfkmnth123 ★★★★★
() автор топика

Пузатого монитора не хватает. Меня больше удивляет, что у столь молодого изделия в принципе ещё рабочий аккумулятор.


Насколько стиль современного веба не вписывается в cde. Как ты выдерживаешь такой диссонанс?

mamina_radost
()
Последнее исправление: mamina_radost (всего исправлений: 2)

Знаю тож такую утилиту…

printf 'Battery at %s%% and %s' "$(cat /sys/class/power_supply/BAT0/capacity)" "$(cat /sys/class/power_supply/BAT0/status)"

В любом дистре из коробки, ткскзть :)

paddlewan
()
Последнее исправление: paddlewan (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.