About PumoPM
The Pumo Power Manager (PumoPM for short) is a custom power manager I wrote for myself in order to have a lightweight one that does exactly what I want, how I want. Basically: I want to be informed of a low level of battery (I consider 25% to be low, hence the defaults), very low (again, my preference is at 15%), and then at critical level (10%) I want the computer to automatically sleep, and if it stays asleep for a certain duration it will be suspended.
This project is written for a GNU/Linux operating system running with systemd. I have currently no plan on making it available on other platforms, except maybe one day with Guix (if you don’t value your time, take a look at it, it’s an awesome operating system, much better than NixOS in my opinion).
Built with
PumoPM is written in pure, stable Rust (at least >= 1.45.2). Its three dependencies are the crates battery, clap, and notify-rust.
What does Pumo mean?
It’s my cat’s name.
Why is the main branch called senpai?
This is a joke that originated from r/ProgrammerAnimemes when news were about
   defaulting to  another name than master  for git’s main branch.  As a joke,
   someone proposed senpai  on this reddit as an alternative  to master, and
   here we are. This is a weeb’s joke.
Getting started
To run the project, you currently only have one option: download the project’s
  source code,  compile it, and  run it. You will  need to have  Rust installed.
  Update your  Rust installation  if needed with  rustup update.  Then, simply
  begin with a git  clone, then cd into the project’s  directory. You can then
  build the project with cargo, and even install it locally if you want to.
  $ git clone https://labs.phundrak.com/phundrak/pumopm
  $ cd pumopm
  $ cargo build --release
  $ cargo run --release # to run the project
  $ cargo install --path . # optional, to install for the user the project
  If you are an Arch Linux user, make sure you have rustup installed, and then
  you can install PumoPM using the PKGBUILD available in the repository. To do
  so, simply run
  $ makepkg -si
You will then have PumoPM installed as a native package on your machine which you can uninstall using Pacman.
Usage
It is possible to run PumoPM with a couple of different flags. You will find their description here:
- 
-h --help - displays a help message
 - 
-V --version - displays the program’s version
 - 
-l --low - level at which the battery is considered to be low
 - 
-L --very-low - level at which the battery is considered to be very low
 - 
-c --critical - level at which the battery is considered to be critical
 - 
-r --refresh-rate - refresh rate of the battery’s reads
 - 
-v --verbose - augment the program’s verbosity, can be repeated
 
The arguments -l, -L and -c accept an integer between 5 and 95 (actually
  any value that will fit in an unsigned byte, but it will be rounded up to 5 or
  down to 95), while -r accepts any  integer that can fit in a u64, although
  I’m sure you’ll never need that long of a refresh time.
  The levels  will also see  their values ordered. If  the -L value  is higher
  than -l, then the program will automatically set it to one percent lower, or
  to 5% (whichever is  higher). Same goes for the value of -c  if it goes over
  the -L value, including after the re-evaluation of the latter’s value. For
  instance, calling the program like so
  $ pumopm -l 30 -L 32 -c 30
is the same as calling it like so
  $ pumopm -l 30 -L 29 -c 28
TODO
Roadmap [0/2]
- system tray
 - close the program with the exit code 
0 
License
This project is under the GPL-3.0 or later license. You can read it here, but basically, the following are allowed:
- Commercial use of this program and its source code
 - Modification of the program and the source code
 - Distribution of the program and the source code
 - Patent use of the program and the source code
 - Private use of the program and the source code
 
However, this program comes with no warranty and I am under no liability for what you do with it. The conditions of using this program are:
- Notice your users of the license and copyright
 - State any changes in the code
 - Disclose the source code
 - Use the same license
 
Please note that I am no lawyer, and the only legal document you can read is the one linked above.