Giter Site home page Giter Site logo

battery's Introduction

Battery charge limiter for M1 Mac devices

This tool it possible to keep a chronically plugged in M1 Macbook at 80% battery, since that will prolong the longevity of the battery. It is free and open-source and will remain that way.

Tray icon

Requirements

This is an app for M1 Macs. It will not work on non-M1 macs. Do you have an older Mac? Consider the free version of the Al Dente software package. It is a good alternative and has a premium version with many more features.

Installation

๐ŸŒ You can download the latest app version here.

Then you download the app, install it by:

  1. Opening the .dmg file
  2. Dragging the battery.app icon to the Applications folder
  3. Double clicking the battery.app icon in the Applications folder

The first time you open the app, it will ask for your administator password to it can install the needed components. Please note that the app:

  • Disables charging when your battery is above 80% charged
  • Enabled charging when your battery is under 80% charged
  • Keeps the limit engaged even after rebooting
  • Keeps the limit engaged even after closing the tray app
  • Also automatically installs the battery command line tool. If you want a custom charging percentage, the CLI the only way to do that.

Do you have questions, comments, or feature requests? Open an issue here or Tweet at me.


๐Ÿ–ฅ Command-line version

If you don't know what a "command line" is, ignore this section. You don't need it.

The GUI app uses a command line tool under the hood. Installing the GUI automatically installs the CLI as well, you can also separately install the CLI.

The CLI is used for managing the battery charging status for M1 Macs. Can be used to enable/disable the Macbook from charging the battery when plugged into power.

Installation

One-line installation:

curl -s https://raw.githubusercontent.com/actuallymentor/battery/main/setup.sh | bash

This will:

  1. Compile the smc tool from the hholtmann/smcFanControl repository
  2. Install smc to /usr/local/bin
  3. Install battery to /usr/local/bin

Usage

Example usage:

# This will enable charging when your battery dips under 80, and disable it when it exceeds 80
battery maintain 80

After running a command like battery charging off you can verify the change visually by looking at the battery icon:

Battery not charging

After running battery charging on you will see it change to this:

Battery charging

For help, run battery without parameters:

Battery CLI utility v0.0.5.

Usage:

  battery status
    output battery SMC status, % and time remaining

  battery maintain LEVEL[1-100]
    turn off charging above, and off below a certain value
    eg: battery maintain 80

  battery charging SETTING[on/off]
    manually set the battery to (not) charge
    eg: battery charging on

  battery charge LEVEL[1-100]
    charge the battery to a certain percentage, and disable charging when that percentage is reached
    eg: battery charge 90

  battery visudo
    instructions on how to make which utility exempt from sudo, highly recommended

  battery update
    update the battery utility to the latest version (reruns the installation script)

  battery uninstall
    enable charging and remove the smc tool and the battery script

Why does this exist?

I was looking at the Al Dente software package for battery limiting, but I found the license too limiting for a poweruser like myself.

I would actually have preferred using Al Dente, but decided to create a command-line utility to replace it as a side-project on holiday. A colleague mentioned they would like a GUI, so I spend a few evenings setting up an Electron app. And voila, here we are.

battery's People

Contributors

actuallymentor avatar mihaiconstantin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.