Compare commits
22 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43832651ed | ||
|
|
5c47191df8 | ||
|
|
26491f0c03 | ||
|
|
c2eafd79f2 | ||
|
|
e3b7fe0641 | ||
|
|
65b0c5261b | ||
|
|
661aa4d25e | ||
|
|
3a1a711ba1 | ||
|
|
91b05110cc | ||
|
|
48fae59ba4 | ||
|
|
5c52d4f7f8 | ||
|
|
f865b04f78 | ||
|
|
f8b8e84519 | ||
|
|
86952b21cf | ||
|
|
0272f2fc94 | ||
|
|
8f1626fe95 | ||
|
|
8e5f5ab4c6 | ||
|
|
ac1c768e07 | ||
|
|
d163ef37a6 | ||
|
|
588a941cde | ||
|
|
cc18faec34 | ||
|
|
c60c41c826 |
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
*.swp
|
||||||
20
CHANGELOG.md
|
|
@ -1,10 +1,20 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
### master
|
### v2.0.0, 2025-12-30
|
||||||
- Added `#{battery_status_bg}` feature (@RyanFrantz)
|
- Added `#{battery_charging_watts}` format string for displaying current watts supplied on macOS
|
||||||
- Added multibattery output support for `upower` (@futuro)
|
- Added `#{battery_color_bg}`, `#{battery_color_fg}` format strings for dynamic color based on charge/status
|
||||||
- Added Chromebook support (@forkjoseph)
|
- Added `#{battery_color_charge_bg}`, `#{battery_color_charge_fg}` for colors based solely on charge level
|
||||||
- Added battery graph, simplify interpolation (@levens)
|
- Added `#{battery_color_status_bg}`, `#{battery_color_status_fg}` for colors based solely on battery status
|
||||||
|
- Added `#{battery_icon_charge}`, `#{battery_icon_status}` for granular icon control
|
||||||
|
- Added 8-tier charge level icons and colors with full customization support
|
||||||
|
- Added `#{battery_graph}` to display battery as a bar graph
|
||||||
|
- Added `@batt_remain_short` option to shorten remaining time display
|
||||||
|
- Added WSL (Windows Subsystem for Linux) support
|
||||||
|
- Added OpenBSD `apm` support
|
||||||
|
- Added `battery_enabled.tmux` script for conditionally showing battery
|
||||||
|
- Fixed battery graph display
|
||||||
|
- Removed deprecated `#{battery_status_bg}` and `#{battery_status_fg}` format strings
|
||||||
|
- Changed preferred order of utility applications to: pmset → acpi → upower → termux-battery-status due to CPU usage issues with upower
|
||||||
|
|
||||||
### v1.2.0, 2016-09-24
|
### v1.2.0, 2016-09-24
|
||||||
- show output for `#{battery_remain}` interpolation only if the battery is
|
- show output for `#{battery_remain}` interpolation only if the battery is
|
||||||
|
|
|
||||||
259
README.md
|
|
@ -4,21 +4,24 @@ Enables displaying battery percentage and status icon in tmux status-right.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
In order to read the battery status, this plugin depends on having either one of the following applications installed:
|
In order to read the battery status, this plugin depends on having one of the following applications installed:
|
||||||
- pmset
|
- pmset (MacOS only)
|
||||||
- upower
|
|
||||||
- acpi
|
- acpi
|
||||||
|
- upower
|
||||||
- termux-battery-status
|
- termux-battery-status
|
||||||
|
- apm
|
||||||
|
|
||||||
In a normal situation one of these above should be installed on your system by default and thus it would not be necessary to install one of them.
|
In a normal situation, one of the above should be installed on your system by default and thus it should not be necessary to specifically install one of them. That being said, the `acpi` utility is currently recommended for use over `upower` where possible due to ongoing CPU usage issues.
|
||||||
|
|
||||||
### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)
|
### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)
|
||||||
|
|
||||||
Add plugin to the list of TPM plugins in `.tmux.conf`:
|
Add plugin to the list of TPM plugins in `.tmux.conf`:
|
||||||
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-battery'
|
```tmux
|
||||||
|
set -g @plugin 'tmux-plugins/tmux-battery'
|
||||||
|
```
|
||||||
|
|
||||||
Hit `prefix + I` to fetch the plugin and source it.
|
Hit `<prefix> + I` to fetch the plugin and source it.
|
||||||
|
|
||||||
If format strings are added to `status-right`, they should now be visible.
|
If format strings are added to `status-right`, they should now be visible.
|
||||||
|
|
||||||
|
|
@ -26,104 +29,224 @@ If format strings are added to `status-right`, they should now be visible.
|
||||||
|
|
||||||
Clone the repo:
|
Clone the repo:
|
||||||
|
|
||||||
$ git clone https://github.com/tmux-plugins/tmux-battery ~/clone/path
|
```shell
|
||||||
|
git clone https://github.com/tmux-plugins/tmux-battery ~/clone/path
|
||||||
|
```
|
||||||
|
|
||||||
Add this line to the bottom of `.tmux.conf`:
|
Add this line to the bottom of `.tmux.conf`:
|
||||||
|
|
||||||
run-shell ~/clone/path/battery.tmux
|
```tmux
|
||||||
|
run-shell ~/clone/path/battery.tmux
|
||||||
|
```
|
||||||
|
|
||||||
Reload TMUX environment:
|
From the terminal, reload TMUX environment:
|
||||||
|
|
||||||
# type this in terminal
|
```shell
|
||||||
$ tmux source-file ~/.tmux.conf
|
tmux source-file ~/.tmux.conf
|
||||||
|
```
|
||||||
|
|
||||||
If format strings are added to `status-right`, they should now be visible.
|
If format strings are added to `status-right`, they should now be visible.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Add `#{battery_icon}`, `#{battery_percentage}` `#{battery_remain}`, or
|
Add any of the supported format strings (see below) to the `status-right` tmux option in `.tmux.conf`. Example:
|
||||||
`#{battery_status_bg}` format strings to existing `status-right` tmux option.
|
|
||||||
Example:
|
|
||||||
|
|
||||||
# in .tmux.conf
|
```tmux
|
||||||
set -g status-right '#{battery_status_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M '
|
set -g status-right '#{battery_color_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M '
|
||||||
|
```
|
||||||
|
|
||||||
|
### Supported Format Strings
|
||||||
|
|
||||||
## Examples
|
- `#{battery_color_bg}` - will set the background color of the status bar based on the battery charge level if discharging and status otherwise
|
||||||
Battery full (for OS X):<br/>
|
- `#{battery_color_fg}` - will set the foreground color of the status bar based on the battery charge level if discharging and status otherwise
|
||||||

|
- `#{battery_color_charge_bg}` - will set the background color of the status bar based solely on the battery charge level
|
||||||
|
- `#{battery_color_charge_fg}` - will set the foreground color of the status bar based solely on the battery charge level
|
||||||
|
- `#{battery_color_status_bg}` - will set the background color of the status bar based solely on the battery status
|
||||||
|
- `#{battery_color_status_fg}` - will set the foreground color of the status bar based solely on the battery status
|
||||||
|
- `#{battery_graph}` - will show battery percentage as a bar graph: ▁▂▄▆█
|
||||||
|
- `#{battery_icon}` - will display a battery status/charge icon
|
||||||
|
- `#{battery_icon_charge}` - will display a battery charge icon
|
||||||
|
- `#{battery_icon_status}` - will display a battery status icon
|
||||||
|
- `#{battery_percentage}` - will show battery percentage
|
||||||
|
- `#{battery_remain}` - will show remaining time of battery charge\*
|
||||||
|
- `#{battery_charging_watts}` - will display the current watts supplied (currently supported only on macOS)
|
||||||
|
|
||||||
Battery discharging, custom discharge icon:<br/>
|
\* These format strings can be further customized via options as described below.
|
||||||

|
|
||||||
|
|
||||||
Battery charging:<br/>
|
#### Options
|
||||||

|
|
||||||
|
|
||||||
Battery remain:<br/>
|
`#{battery_remain}`
|
||||||

|
|
||||||
|
|
||||||
Battery fully charged:<br/>
|
- `@batt_remain_short`: 'true' / 'false' - This will shorten the time remaining (when charging or discharging) to `~H:MM`.
|
||||||

|
|
||||||
|
|
||||||
Battery between 99% and 51% charged:<br/>
|
### Defaults
|
||||||

|
|
||||||
|
|
||||||
Battery between 50% and 16% charged:<br/>
|
#### Options
|
||||||

|
|
||||||
|
|
||||||
Battery between 15% and dead:<br/>
|
- `@batt_remain_short`: 'false'
|
||||||

|
|
||||||
|
|
||||||
This is done by introducing new format strings that can be added to
|
#### Icons/Colors
|
||||||
`status-right` option:
|
|
||||||
- `#{battery_icon}` - will display a battery status icon
|
|
||||||
- `#{battery_percentage}` - will show battery percentage
|
|
||||||
- `#{battery_remain}` - will show remaining time of battery charge
|
|
||||||
- `#{battery_status_bg}` - will set the background color of the status bar based on the battery percentage
|
|
||||||
- `#{battery_status_fg}` - will set the foreground color of the status bar based on the battery percentage
|
|
||||||
- `#{battery_graph}` - will show battery percentage as a bar graph ▁▂▃▅▇
|
|
||||||
|
|
||||||
## Changing icons
|
By default, the following colors and icons are used. (The exact colors displayed depends on your terminal / X11 config.)
|
||||||
|
|
||||||
By default, these icons are displayed:
|
Please be aware that the 'level of charge' as noted below (e.g. `[80%-95%)`) uses interval notation. If you are unfamiliar with it, <a href="https://en.wikipedia.org/wiki/Bracket_(mathematics)#Intervals">check it out here</a>.
|
||||||
|
|
||||||
- charged: ":battery:" ("❇ " when not on OS X)
|
Also, a note about the `@batt_color_...` options: `@batt_color_..._primary_...` options are what will be displayed in the main `bg` or `fg` format strings you choose - e.g. if you use `#{battery_color_bg}`, the `@batt_color_..._primary_...` colors you choose will be the background. Likewise, the corresponding `@batt_color_..._secondary_...` color will be the foreground.
|
||||||
- charging: ":zap:"
|
|
||||||
- discharging: Moon icons depending on your battery level
|
|
||||||
- attached but not charging: ":warning:"
|
|
||||||
|
|
||||||
You can change these defaults by adding the following to `.tmux.conf` (the
|
Level of Charge Colors:
|
||||||
following lines are not in the code block so that emojis can be seen):
|
|
||||||
|
|
||||||
- set -g @batt_charged_icon ":sunglasses:"
|
- primary tier 8 \[95%-100%] (`@batt_color_charge_primary_tier8`): '#00ff00'
|
||||||
- set -g @batt_charging_icon ":+1:"
|
- primary tier 7 \[80%-95%) (`@batt_color_charge_primary_tier7`): '#55ff00'
|
||||||
- set -g @batt_attached_icon ":neutral_face:"
|
- primary tier 6 \[65%-80%) (`@batt_color_charge_primary_tier6`): '#aaff00'
|
||||||
- set -g @batt_full_charge_icon "🌕 "
|
- primary tier 5 \[50%-65%) (`@batt_color_charge_primary_tier5`): '#ffff00'
|
||||||
- set -g @batt_high_charge_icon "🌖 "
|
- primary tier 4 \[35%-50%) (`@batt_color_charge_primary_tier4`): '#ffc000'
|
||||||
- set -g @batt_medium_charge_icon "🌗 "
|
- primary tier 3 \[20%-35%) (`@batt_color_charge_primary_tier3`): '#ff8000'
|
||||||
- set -g @batt_low_charge_icon "🌘 "
|
- primary tier 2 (5%-20%) (`@batt_color_charge_primary_tier2`): '#ff4000'
|
||||||
|
- primary tier 1 \[0%-5%] (`@batt_color_charge_primary_tier1`): '#ff0000'
|
||||||
|
- secondary tier 8 \[95%-100%] (`@batt_color_charge_secondary_tier8`): 'colour0'
|
||||||
|
- secondary tier 7 \[80%-95%) (`@batt_color_charge_secondary_tier7`): 'colour0'
|
||||||
|
- secondary tier 6 \[65%-80%) (`@batt_color_charge_secondary_tier6`): 'colour0'
|
||||||
|
- secondary tier 5 \[50%-65%) (`@batt_color_charge_secondary_tier5`): 'colour0'
|
||||||
|
- secondary tier 4 \[35%-50%) (`@batt_color_charge_secondary_tier4`): 'colour0'
|
||||||
|
- secondary tier 3 \[20%-35%) (`@batt_color_charge_secondary_tier3`): 'colour0'
|
||||||
|
- secondary tier 2 (5%-20%) (`@batt_color_charge_secondary_tier2`): 'colour0'
|
||||||
|
- secondary tier 1 \[0%-5%] (`@batt_color_charge_secondary_tier1`): 'colour0'
|
||||||
|
|
||||||
Don't forget to reload tmux environment (`$ tmux source-file ~/.tmux.conf`)
|
Status Colors:
|
||||||
after you do this.
|
|
||||||
|
- primary charged (`@batt_color_status_primary_charged`): 'colour33'
|
||||||
|
- primary charging (`@batt_color_status_primary_charging`): 'colour33'
|
||||||
|
- primary discharging (`@batt_color_status_primary_discharging`): 'colour14'
|
||||||
|
- primary attached (`@batt_color_status_primary_attached`): 'colour201'
|
||||||
|
- primary unknown (`@batt_color_status_primary_unknown`): 'colour7'
|
||||||
|
- secondary charged (`@batt_color_status_secondary_charged`): 'colour0'
|
||||||
|
- secondary charging (`@batt_color_status_secondary_charging`): 'colour0'
|
||||||
|
- secondary discharging (`@batt_color_status_secondary_discharging`): 'colour0'
|
||||||
|
- secondary attached (`@batt_color_status_secondary_attached`): 'colour0'
|
||||||
|
- secondary unknown (`@batt_color_status_secondary_unknown`): 'colour0'
|
||||||
|
|
||||||
|
Level of Charge Icons:
|
||||||
|
|
||||||
|
- tier 8 \[95%-100%] (`@batt_icon_charge_tier8`): '█'
|
||||||
|
- tier 7 \[80%-95%) (`@batt_icon_charge_tier7`): '▇'
|
||||||
|
- tier 6 \[65%-80%) (`@batt_icon_charge_tier6`): '▆'
|
||||||
|
- tier 5 \[50%-65%) (`@batt_icon_charge_tier5`): '▅'
|
||||||
|
- tier 4 \[35%-50%) (`@batt_icon_charge_tier4`): '▄'
|
||||||
|
- tier 3 \[20%-35%) (`@batt_icon_charge_tier3`): '▃'
|
||||||
|
- tier 2 (5%-20%) (`@batt_icon_charge_tier2`): '▂'
|
||||||
|
- tier 1 \[0%-5%] (`@batt_icon_charge_tier1`): '▁'
|
||||||
|
|
||||||
|
Status Icons:
|
||||||
|
|
||||||
|
- charged (`@batt_icon_status_charged`): '🔌'
|
||||||
|
- charged - OS X (`@batt_icon_status_charged`): '🔌'
|
||||||
|
- charging (`@batt_icon_status_charging`): '🔌'
|
||||||
|
- discharging (`@batt_icon_status_discharging`): '🔋'
|
||||||
|
- attached (`@batt_icon_status_attached`): '⚠️'
|
||||||
|
- unknown (`@batt_icon_status_unknown`): '?'
|
||||||
|
|
||||||
|
#### Enabled
|
||||||
|
|
||||||
|
If you run `battery_enabled.tmux` from the top-level of the repo, it will setup a `@battery_enabled` variable, that can be used to selectively display the battery based on whether or not a battery is available or not.
|
||||||
|
|
||||||
|
```tmux
|
||||||
|
run-shell ~/clone/path/battery_enabled.tmux
|
||||||
|
# for example, if using catppuccin:
|
||||||
|
set -agF status-right "#{?#{#{==:#{E:@battery_exists},true}},#{E:@catppuccin_status_battery},}"
|
||||||
|
run-shell ~/clone/path/battery.tmux
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Changing the Defaults
|
||||||
|
|
||||||
|
All efforts have been made to make sane defaults, but if you wish to change any of them, add the option to `.tmux.conf`. For example:
|
||||||
|
|
||||||
|
```tmux
|
||||||
|
set -g @batt_icon_charge_tier8 '🌕'
|
||||||
|
set -g @batt_icon_charge_tier7 '🌖'
|
||||||
|
set -g @batt_icon_charge_tier6 '🌖'
|
||||||
|
set -g @batt_icon_charge_tier5 '🌗'
|
||||||
|
set -g @batt_icon_charge_tier4 '🌗'
|
||||||
|
set -g @batt_icon_charge_tier3 '🌘'
|
||||||
|
set -g @batt_icon_charge_tier2 '🌘'
|
||||||
|
set -g @batt_icon_charge_tier1 '🌑'
|
||||||
|
set -g @batt_icon_status_charged '🔋'
|
||||||
|
set -g @batt_icon_status_charging '⚡'
|
||||||
|
set -g @batt_icon_status_discharging '👎'
|
||||||
|
set -g @batt_color_status_primary_charged '#3daee9'
|
||||||
|
set -g @batt_color_status_primary_charging '#3daee9'
|
||||||
|
```
|
||||||
|
|
||||||
|
Don't forget to reload the tmux environment after you do this by either hitting `<prefix> + I` if tmux battery is installed via the tmux plugin manager, or by typing `tmux source-file ~/.tmux.conf` in the terminal if tmux battery is manually installed.
|
||||||
|
|
||||||
*Warning*: The battery icon change most likely will not be instant. When you un-plug the power cord, it will take some time (15 - 60 seconds) for the icon to change. This depends on the `status-interval` tmux option. Setting it to 15 seconds should be good enough.
|
*Warning*: The battery icon change most likely will not be instant. When you un-plug the power cord, it will take some time (15 - 60 seconds) for the icon to change. This depends on the `status-interval` tmux option. Setting it to 15 seconds should be good enough.
|
||||||
|
|
||||||
## Shortened remaining output
|
## Examples
|
||||||
|
|
||||||
To shorten the output of `#{battery_remain}`, set the following variable:
|
These are all examples of the default plugin color and icon schemes paired with the default tmux color scheme using the following `status-right` and `status-right-length` settings in `.tmux.conf`
|
||||||
|
|
||||||
set -g @batt_remain_short true
|
```tmux
|
||||||
|
set -g status-right 'Colors: #{battery_color_bg}bg#[default] #{battery_color_fg}fg#[default] #{battery_color_charge_bg}charge_bg#[default] #{battery_color_charge_fg}charge_fg#[default] #{battery_color_status_bg}status_bg#[default] #{battery_color_status_fg}status_fg#[default] | Graph: #{battery_graph} | Icon: #{battery_icon} | Charge Icon: #{battery_icon_charge} | Status Icon: #{battery_icon_status} | Percent: #{battery_percentage} | Remain: #{battery_remain}'
|
||||||
|
set -g status-right-length '150'
|
||||||
|
```
|
||||||
|
|
||||||
This will hide output if the battery is charging or charged, and shorten the
|
Battery charging at tier 8 \[95%-100%]:<br>
|
||||||
time remaining (when discharging) to `~H:MM`.
|

|
||||||
|
|
||||||
|
Battery charging at tier 7 \[80%-95%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery charging at tier 6 \[65%-80%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery charging at tier 5 \[50%-65%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery charging at tier 4 \[35%-50%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery charging at tier 3 \[20%-35%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery charging at tier 2 (5%-20%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery charging at tier 1 \[0%-5%]:<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 8 \[95%-100%]:<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 7 \[80%-95%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 6 \[65%-80%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 5 \[50%-65%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 4 \[35%-50%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 3 \[20%-35%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 2 (5%-20%):<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery discharging at tier 1 \[0%-5%]:<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery in 'attached' status:<br>
|
||||||
|

|
||||||
|
|
||||||
|
Battery in an unknown status:<br>
|
||||||
|

|
||||||
|
|
||||||
### Tmux Plugins
|
### Tmux Plugins
|
||||||
|
|
||||||
This plugin is part of the [tmux-plugins](https://github.com/tmux-plugins) organisation. Checkout plugins as [resurrect](https://github.com/tmux-plugins/tmux-resurrect), [logging](https://github.com/tmux-plugins/tmux-logging), [online status](https://github.com/tmux-plugins/tmux-online-status), and many more over at the [tmux-plugins](https://github.com/tmux-plugins) organisation page.
|
This plugin is part of the [tmux-plugins](https://github.com/tmux-plugins) organisation. Checkout plugins as [resurrect](https://github.com/tmux-plugins/tmux-resurrect), [logging](https://github.com/tmux-plugins/tmux-logging), [online status](https://github.com/tmux-plugins/tmux-online-status), and many more over at the [tmux-plugins](https://github.com/tmux-plugins) organisation page.
|
||||||
|
|
||||||
You might want to follow [@brunosutic](https://twitter.com/brunosutic) on
|
|
||||||
twitter if you want to hear about new tmux plugins or feature updates.
|
|
||||||
|
|
||||||
### Maintainer
|
### Maintainer
|
||||||
|
|
||||||
- [Martin Beentjes](https://github.com/martinbeentjes)
|
- [Martin Beentjes](https://github.com/martinbeentjes)
|
||||||
|
|
@ -134,10 +257,12 @@ twitter if you want to hear about new tmux plugins or feature updates.
|
||||||
- Aleksandar Djurdjic
|
- Aleksandar Djurdjic
|
||||||
- Bruno Sutic
|
- Bruno Sutic
|
||||||
- Caleb
|
- Caleb
|
||||||
|
- Dan Cassidy
|
||||||
|
- Diego Ximenes
|
||||||
- Evan N-D
|
- Evan N-D
|
||||||
- Jan Ahrens
|
- Jan Ahrens
|
||||||
- Joey Geralnik
|
- Joey Geralnik
|
||||||
- Joseph
|
- HyunJong (Joseph) Lee
|
||||||
- Martin Beentjes
|
- Martin Beentjes
|
||||||
- Mike Foley
|
- Mike Foley
|
||||||
- Ryan Frantz
|
- Ryan Frantz
|
||||||
|
|
|
||||||
38
battery.tmux
|
|
@ -5,20 +5,35 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
source "$CURRENT_DIR/scripts/helpers.sh"
|
source "$CURRENT_DIR/scripts/helpers.sh"
|
||||||
|
|
||||||
battery_interpolation=(
|
battery_interpolation=(
|
||||||
|
"\#{battery_color_bg}"
|
||||||
|
"\#{battery_color_fg}"
|
||||||
|
"\#{battery_color_charge_bg}"
|
||||||
|
"\#{battery_color_charge_fg}"
|
||||||
|
"\#{battery_color_status_bg}"
|
||||||
|
"\#{battery_color_status_fg}"
|
||||||
|
"\#{battery_graph}"
|
||||||
|
"\#{battery_icon}"
|
||||||
|
"\#{battery_icon_charge}"
|
||||||
|
"\#{battery_icon_status}"
|
||||||
"\#{battery_percentage}"
|
"\#{battery_percentage}"
|
||||||
"\#{battery_remain}"
|
"\#{battery_remain}"
|
||||||
"\#{battery_icon}"
|
"\#{battery_charging_watts}"
|
||||||
"\#{battery_status_bg}"
|
|
||||||
"\#{battery_status_fg}"
|
|
||||||
"\#{battery_graph}"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
battery_commands=(
|
battery_commands=(
|
||||||
|
"#($CURRENT_DIR/scripts/battery_color.sh bg)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_color.sh fg)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_color_charge.sh bg)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_color_charge.sh fg)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_color_status.sh bg)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_color_status.sh fg)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_graph.sh)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_icon.sh)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_icon_charge.sh)"
|
||||||
|
"#($CURRENT_DIR/scripts/battery_icon_status.sh)"
|
||||||
"#($CURRENT_DIR/scripts/battery_percentage.sh)"
|
"#($CURRENT_DIR/scripts/battery_percentage.sh)"
|
||||||
"#($CURRENT_DIR/scripts/battery_remain.sh)"
|
"#($CURRENT_DIR/scripts/battery_remain.sh)"
|
||||||
"#($CURRENT_DIR/scripts/battery_icon.sh)"
|
"#($CURRENT_DIR/scripts/battery_charging_watts.sh)"
|
||||||
"#($CURRENT_DIR/scripts/battery_status_bg.sh)"
|
|
||||||
"#($CURRENT_DIR/scripts/battery_status_fg.sh)"
|
|
||||||
"#($CURRENT_DIR/scripts/battery_graph.sh)"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set_tmux_option() {
|
set_tmux_option() {
|
||||||
|
|
@ -43,7 +58,10 @@ update_tmux_option() {
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
update_tmux_option "status-right"
|
local interpolated_options="$(get_tmux_option "@plugin_interpolated_options" "status-right status-left")"
|
||||||
update_tmux_option "status-left"
|
for interpolated_option in $interpolated_options
|
||||||
|
do
|
||||||
|
update_tmux_option $interpolated_option
|
||||||
|
done
|
||||||
}
|
}
|
||||||
main
|
main
|
||||||
|
|
|
||||||
10
battery_enabled.tmux
Executable file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/scripts/helpers.sh"
|
||||||
|
|
||||||
|
main() {
|
||||||
|
tmux set-option -gq "@battery_exists" "$( [ -n "$(battery_status)" ] && echo true || echo false )"
|
||||||
|
}
|
||||||
|
main
|
||||||
|
Before Width: | Height: | Size: 10 KiB |
BIN
screenshots/battery_charging_tier1.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
screenshots/battery_charging_tier2.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
screenshots/battery_charging_tier3.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
screenshots/battery_charging_tier4.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
screenshots/battery_charging_tier5.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
screenshots/battery_charging_tier6.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
screenshots/battery_charging_tier7.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
screenshots/battery_charging_tier8.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 10 KiB |
BIN
screenshots/battery_discharging_tier1.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
screenshots/battery_discharging_tier2.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
screenshots/battery_discharging_tier3.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
screenshots/battery_discharging_tier4.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
screenshots/battery_discharging_tier5.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
screenshots/battery_discharging_tier6.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
screenshots/battery_discharging_tier7.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
screenshots/battery_discharging_tier8.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 18 KiB |
BIN
screenshots/battery_status_attached.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 6 KiB |
BIN
screenshots/battery_status_unknown.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
22
scripts/battery_charging_watts.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
|
print_battery_charging_watts() {
|
||||||
|
if is_osx; then
|
||||||
|
watts=$(system_profiler SPPowerDataType | grep Wattage | awk '{print $3}')
|
||||||
|
if [ -z "$watts" ]; then
|
||||||
|
watts="0"
|
||||||
|
fi
|
||||||
|
echo "${watts}W"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
print_battery_charging_watts
|
||||||
|
}
|
||||||
|
main
|
||||||
23
scripts/battery_color.sh
Executable file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
|
print_color() {
|
||||||
|
local plane="$1"
|
||||||
|
local status="$2"
|
||||||
|
if [ "$status" == "discharging" ]; then
|
||||||
|
$CURRENT_DIR/battery_color_charge.sh "$plane"
|
||||||
|
else
|
||||||
|
$CURRENT_DIR/battery_color_status.sh "$plane" "$status"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local status="$(battery_status)"
|
||||||
|
local plane="$1"
|
||||||
|
print_color "$plane" "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
main $@
|
||||||
98
scripts/battery_color_charge.sh
Executable file
|
|
@ -0,0 +1,98 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
|
# script global variables
|
||||||
|
color_charge_primary_tier8=''
|
||||||
|
color_charge_primary_tier7=''
|
||||||
|
color_charge_primary_tier6=''
|
||||||
|
color_charge_primary_tier5=''
|
||||||
|
color_charge_primary_tier4=''
|
||||||
|
color_charge_primary_tier3=''
|
||||||
|
color_charge_primary_tier2=''
|
||||||
|
color_charge_primary_tier1=''
|
||||||
|
color_charge_secondary_tier8=''
|
||||||
|
color_charge_secondary_tier7=''
|
||||||
|
color_charge_secondary_tier6=''
|
||||||
|
color_charge_secondary_tier5=''
|
||||||
|
color_charge_secondary_tier4=''
|
||||||
|
color_charge_secondary_tier3=''
|
||||||
|
color_charge_secondary_tier2=''
|
||||||
|
color_charge_secondary_tier1=''
|
||||||
|
|
||||||
|
# script default variables
|
||||||
|
color_charge_primary_tier8_default='#00ff00'
|
||||||
|
color_charge_primary_tier7_default='#55ff00'
|
||||||
|
color_charge_primary_tier6_default='#aaff00'
|
||||||
|
color_charge_primary_tier5_default='#ffff00'
|
||||||
|
color_charge_primary_tier4_default='#ffc000'
|
||||||
|
color_charge_primary_tier3_default='#ff8000'
|
||||||
|
color_charge_primary_tier2_default='#ff4000'
|
||||||
|
color_charge_primary_tier1_default='#ff0000'
|
||||||
|
color_charge_secondary_tier8_default='colour0'
|
||||||
|
color_charge_secondary_tier7_default='colour0'
|
||||||
|
color_charge_secondary_tier6_default='colour0'
|
||||||
|
color_charge_secondary_tier5_default='colour0'
|
||||||
|
color_charge_secondary_tier4_default='colour0'
|
||||||
|
color_charge_secondary_tier3_default='colour0'
|
||||||
|
color_charge_secondary_tier2_default='colour0'
|
||||||
|
color_charge_secondary_tier1_default='colour0'
|
||||||
|
|
||||||
|
# colors are set as script global variables
|
||||||
|
get_color_charge_settings() {
|
||||||
|
color_charge_primary_tier8=$(get_tmux_option "@batt_color_charge_primary_tier8" "$color_charge_primary_tier8_default")
|
||||||
|
color_charge_primary_tier7=$(get_tmux_option "@batt_color_charge_primary_tier7" "$color_charge_primary_tier7_default")
|
||||||
|
color_charge_primary_tier6=$(get_tmux_option "@batt_color_charge_primary_tier6" "$color_charge_primary_tier6_default")
|
||||||
|
color_charge_primary_tier5=$(get_tmux_option "@batt_color_charge_primary_tier5" "$color_charge_primary_tier5_default")
|
||||||
|
color_charge_primary_tier4=$(get_tmux_option "@batt_color_charge_primary_tier4" "$color_charge_primary_tier4_default")
|
||||||
|
color_charge_primary_tier3=$(get_tmux_option "@batt_color_charge_primary_tier3" "$color_charge_primary_tier3_default")
|
||||||
|
color_charge_primary_tier2=$(get_tmux_option "@batt_color_charge_primary_tier2" "$color_charge_primary_tier2_default")
|
||||||
|
color_charge_primary_tier1=$(get_tmux_option "@batt_color_charge_primary_tier1" "$color_charge_primary_tier1_default")
|
||||||
|
color_charge_secondary_tier8=$(get_tmux_option "@batt_color_charge_secondary_tier8" "$color_charge_secondary_tier8_default")
|
||||||
|
color_charge_secondary_tier7=$(get_tmux_option "@batt_color_charge_secondary_tier7" "$color_charge_secondary_tier7_default")
|
||||||
|
color_charge_secondary_tier6=$(get_tmux_option "@batt_color_charge_secondary_tier6" "$color_charge_secondary_tier6_default")
|
||||||
|
color_charge_secondary_tier5=$(get_tmux_option "@batt_color_charge_secondary_tier5" "$color_charge_secondary_tier5_default")
|
||||||
|
color_charge_secondary_tier4=$(get_tmux_option "@batt_color_charge_secondary_tier4" "$color_charge_secondary_tier4_default")
|
||||||
|
color_charge_secondary_tier3=$(get_tmux_option "@batt_color_charge_secondary_tier3" "$color_charge_secondary_tier3_default")
|
||||||
|
color_charge_secondary_tier2=$(get_tmux_option "@batt_color_charge_secondary_tier2" "$color_charge_secondary_tier2_default")
|
||||||
|
color_charge_secondary_tier1=$(get_tmux_option "@batt_color_charge_secondary_tier1" "$color_charge_secondary_tier1_default")
|
||||||
|
}
|
||||||
|
|
||||||
|
print_color_charge() {
|
||||||
|
local primary_plane="$1"
|
||||||
|
local secondary_plane=""
|
||||||
|
if [ "$primary_plane" == "bg" ]; then
|
||||||
|
secondary_plane="fg"
|
||||||
|
else
|
||||||
|
secondary_plane="bg"
|
||||||
|
fi
|
||||||
|
percentage=$($CURRENT_DIR/battery_percentage.sh | sed -e 's/%//')
|
||||||
|
if [ $percentage -ge 95 -o "$percentage" == "" ]; then
|
||||||
|
# if percentage is empty, assume it's a desktop
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier8${color_charge_secondary_tier8:+",$secondary_plane=$color_charge_secondary_tier8"}]"
|
||||||
|
elif [ $percentage -ge 80 ]; then
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier7${color_charge_secondary_tier7:+",$secondary_plane=$color_charge_secondary_tier7"}]"
|
||||||
|
elif [ $percentage -ge 65 ]; then
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier6${color_charge_secondary_tier6:+",$secondary_plane=$color_charge_secondary_tier6"}]"
|
||||||
|
elif [ $percentage -ge 50 ]; then
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier5${color_charge_secondary_tier5:+",$secondary_plane=$color_charge_secondary_tier5"}]"
|
||||||
|
elif [ $percentage -ge 35 ]; then
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier4${color_charge_secondary_tier4:+",$secondary_plane=$color_charge_secondary_tier4"}]"
|
||||||
|
elif [ $percentage -ge 20 ]; then
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier3${color_charge_secondary_tier3:+",$secondary_plane=$color_charge_secondary_tier3"}]"
|
||||||
|
elif [ $percentage -gt 5 ]; then
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier2${color_charge_secondary_tier2:+",$secondary_plane=$color_charge_secondary_tier2"}]"
|
||||||
|
else
|
||||||
|
printf "#[$primary_plane=$color_charge_primary_tier1${color_charge_secondary_tier1:+",$secondary_plane=$color_charge_secondary_tier1"}]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local plane="$1"
|
||||||
|
get_color_charge_settings
|
||||||
|
print_color_charge "$plane"
|
||||||
|
}
|
||||||
|
|
||||||
|
main $@
|
||||||
74
scripts/battery_color_status.sh
Executable file
|
|
@ -0,0 +1,74 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
|
# script global variables
|
||||||
|
color_status_primary_charged=''
|
||||||
|
color_status_primary_charging=''
|
||||||
|
color_status_primary_discharging=''
|
||||||
|
color_status_primary_attached=''
|
||||||
|
color_status_primary_unknown=''
|
||||||
|
color_status_secondary_charged=''
|
||||||
|
color_status_secondary_charging=''
|
||||||
|
color_status_secondary_discharging=''
|
||||||
|
color_status_secondary_attached=''
|
||||||
|
color_status_secondary_unknown=''
|
||||||
|
|
||||||
|
# script default variables
|
||||||
|
color_status_primary_charged_default='colour33'
|
||||||
|
color_status_primary_charging_default='colour33'
|
||||||
|
color_status_primary_discharging_default='colour14'
|
||||||
|
color_status_primary_attached_default='colour201'
|
||||||
|
color_status_primary_unknown_default='colour7'
|
||||||
|
color_status_secondary_charged_default='colour0'
|
||||||
|
color_status_secondary_charging_default='colour0'
|
||||||
|
color_status_secondary_discharging_default='colour0'
|
||||||
|
color_status_secondary_attached_default='colour0'
|
||||||
|
color_status_secondary_unknown_default='colour0'
|
||||||
|
|
||||||
|
# colors are set as script global variables
|
||||||
|
get_color_status_settings() {
|
||||||
|
color_status_primary_charged=$(get_tmux_option "@batt_color_status_primary_charged" "$color_status_primary_charged_default")
|
||||||
|
color_status_primary_charging=$(get_tmux_option "@batt_color_status_primary_charging" "$color_status_primary_charging_default")
|
||||||
|
color_status_primary_discharging=$(get_tmux_option "@batt_color_status_primary_discharging" "$color_status_primary_discharging_default")
|
||||||
|
color_status_primary_attached=$(get_tmux_option "@batt_color_status_primary_attached" "$color_status_primary_attached_default")
|
||||||
|
color_status_primary_unknown=$(get_tmux_option "@batt_color_status_primary_unknown" "$color_status_primary_unknown_default")
|
||||||
|
color_status_secondary_charged=$(get_tmux_option "@batt_color_status_secondary_charged" "$color_status_secondary_charged_default")
|
||||||
|
color_status_secondary_charging=$(get_tmux_option "@batt_color_status_secondary_charging" "$color_status_secondary_charging_default")
|
||||||
|
color_status_secondary_discharging=$(get_tmux_option "@batt_color_status_secondary_discharging" "$color_status_secondary_discharging_default")
|
||||||
|
color_status_secondary_attached=$(get_tmux_option "@batt_color_status_secondary_attached" "$color_status_secondary_attached_default")
|
||||||
|
color_status_secondary_unknown=$(get_tmux_option "@batt_color_status_secondary_unknown" "$color_status_secondary_unknown_default")
|
||||||
|
}
|
||||||
|
|
||||||
|
print_color_status() {
|
||||||
|
local plane_primary="$1"
|
||||||
|
local plane_secondary=""
|
||||||
|
if [ "$plane_primary" == "bg" ]; then
|
||||||
|
plane_secondary="fg"
|
||||||
|
else
|
||||||
|
plane_secondary="bg"
|
||||||
|
fi
|
||||||
|
local status="$2"
|
||||||
|
if [[ $status =~ (charged) || $status =~ (full) ]]; then
|
||||||
|
printf "#[$plane_primary=$color_status_primary_charged${color_status_secondary_charged:+",$plane_secondary=$color_status_secondary_charged"}]"
|
||||||
|
elif [[ $status =~ (^charging) ]]; then
|
||||||
|
printf "#[$plane_primary=$color_status_primary_charging${color_status_secondary_charging:+",$plane_secondary=$color_status_secondary_charging"}]"
|
||||||
|
elif [[ $status =~ (^discharging) ]]; then
|
||||||
|
printf "#[$plane_primary=$color_status_primary_discharging${color_status_secondary_discharging:+",$plane_secondary=$color_status_secondary_discharging"}]"
|
||||||
|
elif [[ $status =~ (attached) ]]; then
|
||||||
|
printf "#[$plane_primary=$color_status_primary_attached${color_status_secondary_attached:+",$plane_secondary=$color_status_secondary_attached"}]"
|
||||||
|
else
|
||||||
|
printf "#[$plane_primary=$color_status_primary_unknown${color_status_secondary_unknown:+",$plane_secondary=$color_status_secondary_unknown"}]"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local plane="$1"
|
||||||
|
local status=${2:-$(battery_status)}
|
||||||
|
get_color_status_settings
|
||||||
|
print_color_status "$plane" "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
main $@
|
||||||
|
|
@ -5,23 +5,41 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
source "$CURRENT_DIR/helpers.sh"
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
print_graph() {
|
print_graph() {
|
||||||
if [ -z "$1" ]; then
|
local percentage=$1
|
||||||
echo ""
|
if [ $percentage -gt 5 ]; then
|
||||||
elif [ "$1" -lt "20" ]; then
|
printf "▁"
|
||||||
echo "▁"
|
|
||||||
elif [ "$1" -lt "40" ]; then
|
|
||||||
echo "▂"
|
|
||||||
elif [ "$1" -lt "60" ]; then
|
|
||||||
echo "▃"
|
|
||||||
elif [ "$1" -lt "80" ]; then
|
|
||||||
echo "▅"
|
|
||||||
else
|
else
|
||||||
|
printf " "
|
||||||
|
fi
|
||||||
|
if [ $percentage -ge 25 ]; then
|
||||||
|
printf "▂"
|
||||||
|
else
|
||||||
|
printf " "
|
||||||
|
fi
|
||||||
|
if [ $percentage -ge 50 ]; then
|
||||||
|
printf "▄"
|
||||||
|
else
|
||||||
|
printf " "
|
||||||
|
fi
|
||||||
|
if [ $percentage -ge 75 ]; then
|
||||||
|
printf "▆"
|
||||||
|
else
|
||||||
|
printf " "
|
||||||
|
fi
|
||||||
|
if [ $percentage -ge 95 ]; then
|
||||||
|
printf "█"
|
||||||
|
else
|
||||||
|
printf " "
|
||||||
echo "▇"
|
echo "▇"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
local percentage=$($CURRENT_DIR/battery_percentage.sh)
|
local percentage=$($CURRENT_DIR/battery_percentage.sh)
|
||||||
print_graph ${percentage%?}
|
if [ "$(uname)" == "OpenBSD" ]; then
|
||||||
|
print_graph ${percentage}
|
||||||
|
else
|
||||||
|
print_graph ${percentage%?}
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
main
|
main
|
||||||
|
|
|
||||||
|
|
@ -4,72 +4,18 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
source "$CURRENT_DIR/helpers.sh"
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
# script global variables
|
|
||||||
charged_icon=""
|
|
||||||
charging_icon=""
|
|
||||||
attached_icon=""
|
|
||||||
# discharging_icon=""
|
|
||||||
full_charge_icon=""
|
|
||||||
high_charge_icon=""
|
|
||||||
medium_charge_icon=""
|
|
||||||
low_charge_icon=""
|
|
||||||
|
|
||||||
charged_default="❇ "
|
|
||||||
charged_default_osx="🔋 "
|
|
||||||
charging_default="⚡️ "
|
|
||||||
attached_default="⚠️ "
|
|
||||||
full_charge_icon_default="🌕 "
|
|
||||||
high_charge_icon_default="🌖 "
|
|
||||||
medium_charge_icon_default="🌗 "
|
|
||||||
low_charge_icon_default="🌘 "
|
|
||||||
|
|
||||||
charged_default() {
|
|
||||||
if is_osx; then
|
|
||||||
echo "$charged_default_osx"
|
|
||||||
else
|
|
||||||
echo "$charged_default"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# icons are set as script global variables
|
|
||||||
get_icon_settings() {
|
|
||||||
charged_icon=$(get_tmux_option "@batt_charged_icon" "$(charged_default)")
|
|
||||||
charging_icon=$(get_tmux_option "@batt_charging_icon" "$charging_default")
|
|
||||||
attached_icon=$(get_tmux_option "@batt_attached_icon" "$attached_default")
|
|
||||||
full_charge_icon=$(get_tmux_option "@batt_full_charge_icon" "$full_charge_icon_default")
|
|
||||||
high_charge_icon=$(get_tmux_option "@batt_high_charge_icon" "$high_charge_icon_default")
|
|
||||||
medium_charge_icon=$(get_tmux_option "@batt_medium_charge_icon" "$medium_charge_icon_default")
|
|
||||||
low_charge_icon=$(get_tmux_option "@batt_low_charge_icon" "$low_charge_icon_default")
|
|
||||||
}
|
|
||||||
|
|
||||||
print_icon() {
|
print_icon() {
|
||||||
local status=$1
|
local status=$1
|
||||||
if [[ $status =~ (charged) || $status =~ (full) ]]; then
|
if [ "$status" == "discharging" ]; then
|
||||||
printf "$charged_icon"
|
$CURRENT_DIR/battery_icon_charge.sh
|
||||||
elif [[ $status =~ (^charging) ]]; then
|
else
|
||||||
printf "$charging_icon"
|
$CURRENT_DIR/battery_icon_status.sh "$status"
|
||||||
elif [[ $status =~ (^discharging) ]]; then
|
|
||||||
# use code from the bg color
|
|
||||||
percentage=$($CURRENT_DIR/battery_percentage.sh | sed -e 's/%//')
|
|
||||||
if [ $percentage -eq 100 ]; then
|
|
||||||
printf "$full_charge_icon"
|
|
||||||
elif [ $percentage -le 99 -a $percentage -ge 51 ];then
|
|
||||||
printf "$high_charge_icon"
|
|
||||||
elif [ $percentage -le 50 -a $percentage -ge 16 ];then
|
|
||||||
printf "$medium_charge_icon"
|
|
||||||
elif [ "$percentage" == "" ];then
|
|
||||||
printf "$full_charge_icon_default" # assume it's a desktop
|
|
||||||
else
|
|
||||||
printf "$low_charge_icon"
|
|
||||||
fi
|
|
||||||
elif [[ $status =~ (attached) ]]; then
|
|
||||||
printf "$attached_icon"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
get_icon_settings
|
|
||||||
local status=$(battery_status)
|
local status=$(battery_status)
|
||||||
print_icon "$status"
|
print_icon "$status"
|
||||||
}
|
}
|
||||||
|
|
||||||
main
|
main
|
||||||
|
|
|
||||||
66
scripts/battery_icon_charge.sh
Executable file
|
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
|
# script global variables
|
||||||
|
icon_charge_tier8=''
|
||||||
|
icon_charge_tier7=''
|
||||||
|
icon_charge_tier6=''
|
||||||
|
icon_charge_tier5=''
|
||||||
|
icon_charge_tier4=''
|
||||||
|
icon_charge_tier3=''
|
||||||
|
icon_charge_tier2=''
|
||||||
|
icon_charge_tier1=''
|
||||||
|
|
||||||
|
# script default variables
|
||||||
|
icon_charge_tier8_default='█'
|
||||||
|
icon_charge_tier7_default='▇'
|
||||||
|
icon_charge_tier6_default='▆'
|
||||||
|
icon_charge_tier5_default='▅'
|
||||||
|
icon_charge_tier4_default='▄'
|
||||||
|
icon_charge_tier3_default='▃'
|
||||||
|
icon_charge_tier2_default='▂'
|
||||||
|
icon_charge_tier1_default='▁'
|
||||||
|
|
||||||
|
# icons are set as script global variables
|
||||||
|
get_icon_charge_settings() {
|
||||||
|
icon_charge_tier8=$(get_tmux_option "@batt_icon_charge_tier8" "$icon_charge_tier8_default")
|
||||||
|
icon_charge_tier7=$(get_tmux_option "@batt_icon_charge_tier7" "$icon_charge_tier7_default")
|
||||||
|
icon_charge_tier6=$(get_tmux_option "@batt_icon_charge_tier6" "$icon_charge_tier6_default")
|
||||||
|
icon_charge_tier5=$(get_tmux_option "@batt_icon_charge_tier5" "$icon_charge_tier5_default")
|
||||||
|
icon_charge_tier4=$(get_tmux_option "@batt_icon_charge_tier4" "$icon_charge_tier4_default")
|
||||||
|
icon_charge_tier3=$(get_tmux_option "@batt_icon_charge_tier3" "$icon_charge_tier3_default")
|
||||||
|
icon_charge_tier2=$(get_tmux_option "@batt_icon_charge_tier2" "$icon_charge_tier2_default")
|
||||||
|
icon_charge_tier1=$(get_tmux_option "@batt_icon_charge_tier1" "$icon_charge_tier1_default")
|
||||||
|
}
|
||||||
|
|
||||||
|
print_icon_charge() {
|
||||||
|
percentage=$($CURRENT_DIR/battery_percentage.sh | sed -e 's/%//')
|
||||||
|
if [ $percentage -ge 95 -o "$percentage" == "" ]; then
|
||||||
|
# if percentage is empty, assume it's a desktop
|
||||||
|
printf "$icon_charge_tier8"
|
||||||
|
elif [ $percentage -ge 80 ]; then
|
||||||
|
printf "$icon_charge_tier7"
|
||||||
|
elif [ $percentage -ge 65 ]; then
|
||||||
|
printf "$icon_charge_tier6"
|
||||||
|
elif [ $percentage -ge 50 ]; then
|
||||||
|
printf "$icon_charge_tier5"
|
||||||
|
elif [ $percentage -ge 35 ]; then
|
||||||
|
printf "$icon_charge_tier4"
|
||||||
|
elif [ $percentage -ge 20 ]; then
|
||||||
|
printf "$icon_charge_tier3"
|
||||||
|
elif [ $percentage -gt 5 ]; then
|
||||||
|
printf "$icon_charge_tier2"
|
||||||
|
else
|
||||||
|
printf "$icon_charge_tier1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
get_icon_charge_settings
|
||||||
|
print_icon_charge
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
61
scripts/battery_icon_status.sh
Executable file
|
|
@ -0,0 +1,61 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$CURRENT_DIR/helpers.sh"
|
||||||
|
|
||||||
|
# script global variables
|
||||||
|
icon_status_charged=''
|
||||||
|
icon_status_charging=''
|
||||||
|
icon_status_discharging=''
|
||||||
|
icon_status_attached=''
|
||||||
|
icon_status_unknown=''
|
||||||
|
|
||||||
|
# script default variables
|
||||||
|
icon_status_charged_default='🔌'
|
||||||
|
icon_status_charged_default_osx='🔌'
|
||||||
|
icon_status_charging_default='🔌'
|
||||||
|
icon_status_discharging_default='🔋'
|
||||||
|
icon_status_attached_default='⚠️'
|
||||||
|
icon_status_unknown_default='?'
|
||||||
|
|
||||||
|
# determine which charged_default variable to use
|
||||||
|
get_icon_status_charged_default() {
|
||||||
|
if is_osx; then
|
||||||
|
printf "$icon_status_charged_default_osx"
|
||||||
|
else
|
||||||
|
printf "$icon_status_charged_default"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# icons are set as script global variables
|
||||||
|
get_icon_status_settings() {
|
||||||
|
icon_status_charged=$(get_tmux_option "@batt_icon_status_charged" "$(get_icon_status_charged_default)")
|
||||||
|
icon_status_charging=$(get_tmux_option "@batt_icon_status_charging" "$icon_status_charging_default")
|
||||||
|
icon_status_discharging=$(get_tmux_option "@batt_icon_status_discharging" "$icon_status_discharging_default")
|
||||||
|
icon_status_attached=$(get_tmux_option "@batt_icon_status_attached" "$icon_status_attached_default")
|
||||||
|
icon_status_unknown=$(get_tmux_option "@batt_icon_status_unknown" "$icon_status_unknown_default")
|
||||||
|
}
|
||||||
|
|
||||||
|
print_icon_status() {
|
||||||
|
local status=$1
|
||||||
|
if [[ $status =~ (charged) || $status =~ (full) || $status =~ (^finishing charge) ]]; then
|
||||||
|
printf "$icon_status_charged"
|
||||||
|
elif [[ $status =~ (^charging) ]]; then
|
||||||
|
printf "$icon_status_charging"
|
||||||
|
elif [[ $status =~ (^discharging) ]]; then
|
||||||
|
printf "$icon_status_discharging"
|
||||||
|
elif [[ $status =~ (attached) ]]; then
|
||||||
|
printf "$icon_status_attached"
|
||||||
|
else
|
||||||
|
printf "$icon_status_unknown"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
get_icon_status_settings
|
||||||
|
local status=${1:-$(battery_status)}
|
||||||
|
print_icon_status "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
|
@ -8,12 +8,19 @@ print_battery_percentage() {
|
||||||
# percentage displayed in the 2nd field of the 2nd row
|
# percentage displayed in the 2nd field of the 2nd row
|
||||||
if command_exists "pmset"; then
|
if command_exists "pmset"; then
|
||||||
pmset -g batt | grep -o "[0-9]\{1,3\}%"
|
pmset -g batt | grep -o "[0-9]\{1,3\}%"
|
||||||
|
elif command_exists "acpi"; then
|
||||||
|
acpi -b | grep -v " 0%" | grep -m 1 -Eo "[0-9]+%"
|
||||||
elif command_exists "upower"; then
|
elif command_exists "upower"; then
|
||||||
# use DisplayDevice if available otherwise battery
|
# use DisplayDevice if available otherwise battery
|
||||||
local battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
local battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||||
if [ -z "$battery" ]; then
|
if [ -z "$battery" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
local percentage=$(upower -i $battery | awk '/percentage:/ {print $2}')
|
||||||
|
if [ "$percentage" ]; then
|
||||||
|
echo "$(float2int $percentage)%"
|
||||||
|
return
|
||||||
|
fi
|
||||||
local energy
|
local energy
|
||||||
local energy_full
|
local energy_full
|
||||||
energy=$(upower -i $battery | awk -v nrg="$energy" '/energy:/ {print nrg+$2}')
|
energy=$(upower -i $battery | awk -v nrg="$energy" '/energy:/ {print nrg+$2}')
|
||||||
|
|
@ -21,10 +28,16 @@ print_battery_percentage() {
|
||||||
if [ -n "$energy" ] && [ -n "$energy_full" ]; then
|
if [ -n "$energy" ] && [ -n "$energy_full" ]; then
|
||||||
echo $energy $energy_full | awk '{printf("%d%%", ($1/$2)*100)}'
|
echo $energy $energy_full | awk '{printf("%d%%", ($1/$2)*100)}'
|
||||||
fi
|
fi
|
||||||
elif command_exists "acpi"; then
|
|
||||||
acpi -b | grep -m 1 -Eo "[0-9]+%"
|
|
||||||
elif command_exists "termux-battery-status"; then
|
elif command_exists "termux-battery-status"; then
|
||||||
termux-battery-status | jq -r '.percentage' | awk '{printf("%d%%", $1)}'
|
termux-battery-status | jq -r '.percentage' | awk '{printf("%d%%", $1)}'
|
||||||
|
elif command_exists "apm"; then
|
||||||
|
apm -l
|
||||||
|
elif command_exists "termux-battery-status" "jq"; then
|
||||||
|
termux-battery-status | jq -er '"\(.percentage)%"'
|
||||||
|
elif is_wsl; then
|
||||||
|
local battery
|
||||||
|
battery=$(find /sys/class/power_supply/*/capacity | tail -n1)
|
||||||
|
cat "$battery"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,33 @@ battery_discharging() {
|
||||||
|
|
||||||
battery_charged() {
|
battery_charged() {
|
||||||
local status="$(battery_status)"
|
local status="$(battery_status)"
|
||||||
[[ $status =~ (charged) ]]
|
[[ $status =~ (charged) || $status =~ (full) ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
convertmins() {
|
||||||
|
((h=${1}/60))
|
||||||
|
((m=${1}%60))
|
||||||
|
printf "%02d:%02d\n" $h $m $s
|
||||||
|
}
|
||||||
|
|
||||||
|
apm_battery_remaining_time() {
|
||||||
|
local remaining_time="$(convertmins $(apm -m))"
|
||||||
|
if battery_discharging; then
|
||||||
|
if $short; then
|
||||||
|
echo $remaining_time | awk '{printf "~%s", $1}'
|
||||||
|
else
|
||||||
|
echo $remaining_time | awk '{printf "- %s left", $1}'
|
||||||
|
fi
|
||||||
|
elif battery_charged; then
|
||||||
|
if $short; then
|
||||||
|
echo $remaining_time | awk '{printf "charged", $1}'
|
||||||
|
else
|
||||||
|
echo $remaining_time | awk '{printf "fully charged", $1}'
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "charging"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
pmset_battery_remaining_time() {
|
pmset_battery_remaining_time() {
|
||||||
|
|
@ -52,44 +78,62 @@ pmset_battery_remaining_time() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
print_battery_remain() {
|
upower_battery_remaining_time() {
|
||||||
if command_exists "pmset"; then
|
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||||
pmset_battery_remaining_time
|
if battery_discharging; then
|
||||||
elif command_exists "upower"; then
|
local remaining_time
|
||||||
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
remaining_time=$(upower -i "$battery" | grep -E '(remain|time to empty)')
|
||||||
if is_chrome; then
|
if $short; then
|
||||||
if battery_discharging; then
|
echo "$remaining_time" | awk '{printf "%s %s", $(NF-1), $(NF)}'
|
||||||
upower -i $battery | grep 'time to empty' | awk '{printf "- %s %s left", $4, $5}'
|
|
||||||
else
|
|
||||||
upower -i $battery | grep 'time to full' | awk '{printf "- %s %s till full", $4, $5}'
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
upower -i $battery | grep -E '(remain|time to empty)' | awk '{print $(NF-1)}'
|
echo "$remaining_time" | awk '{printf "%s %s left", $(NF-1), $(NF)}'
|
||||||
|
fi
|
||||||
|
elif battery_charged; then
|
||||||
|
if $short; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "charged"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
local remaining_time
|
||||||
|
remaining_time=$(upower -i "$battery" | grep -E 'time to full')
|
||||||
|
if $short; then
|
||||||
|
echo "$remaining_time" | awk '{printf "%s %s", $(NF-1), $(NF)}'
|
||||||
|
else
|
||||||
|
echo "$remaining_time" | awk '{printf "%s %s to full", $(NF-1), $(NF)}'
|
||||||
fi
|
fi
|
||||||
elif command_exists "acpi"; then
|
|
||||||
acpi -b | grep -m 1 -Eo "[0-9]+:[0-9]+:[0-9]+"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
print_battery_full() {
|
acpi_battery_remaining_time() {
|
||||||
if !$short; then
|
regex="[0-9]+:[0-9]+"
|
||||||
return
|
if ! $short; then
|
||||||
|
regex="$regex:[0-9]+"
|
||||||
fi
|
fi
|
||||||
|
acpi -b | grep -v " 0%" | grep -m 1 -Eo "$regex"
|
||||||
|
}
|
||||||
|
|
||||||
if command_exists "pmset"; then
|
|
||||||
|
print_battery_remain() {
|
||||||
|
if is_wsl; then
|
||||||
|
local charge_full charge_now current_now
|
||||||
|
charge_full=$(find /sys/class/power_supply/*/charge_full | tail -n1 | xargs cat)
|
||||||
|
charge_now=$(find /sys/class/power_supply/*/charge_now | tail -n1 | xargs cat)
|
||||||
|
current_now=$(find /sys/class/power_supply/*/current_now | tail -n1 | xargs cat)
|
||||||
|
echo $charge_full $charge_now $current_now | awk '{num=($1-$2)/$3; printf "%02d:%02d:%02d", int(num), int(60*num%60), int(3600*num%60)}'
|
||||||
|
elif command_exists "pmset"; then
|
||||||
pmset_battery_remaining_time
|
pmset_battery_remaining_time
|
||||||
|
elif command_exists "acpi"; then
|
||||||
|
acpi_battery_remaining_time
|
||||||
elif command_exists "upower"; then
|
elif command_exists "upower"; then
|
||||||
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
upower_battery_remaining_time
|
||||||
upower -i $battery | grep 'time to full' | awk '{printf "- %s %s till full", $4, $5}'
|
elif command_exists "apm"; then
|
||||||
|
apm_battery_remaining_time
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
get_remain_settings
|
get_remain_settings
|
||||||
if battery_discharging; then
|
print_battery_remain
|
||||||
print_battery_remain
|
|
||||||
else
|
|
||||||
print_battery_full
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
main
|
main
|
||||||
|
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
source "$CURRENT_DIR/helpers.sh"
|
|
||||||
|
|
||||||
color_full_charge_default="#[bg=green]"
|
|
||||||
color_high_charge_default="#[bg=yellow]"
|
|
||||||
color_medium_charge_default="#[bg=colour208]" # orange
|
|
||||||
color_low_charge_default="#[bg=red]"
|
|
||||||
color_charging_default="#[bg=green]"
|
|
||||||
|
|
||||||
color_full_charge=""
|
|
||||||
color_high_charge=""
|
|
||||||
color_medium_charge=""
|
|
||||||
color_low_charge=""
|
|
||||||
color_charging=""
|
|
||||||
|
|
||||||
get_charge_color_settings() {
|
|
||||||
color_full_charge=$(get_tmux_option "@batt_color_full_charge" "$color_full_charge_default")
|
|
||||||
color_high_charge=$(get_tmux_option "@batt_color_high_charge" "$color_high_charge_default")
|
|
||||||
color_medium_charge=$(get_tmux_option "@batt_color_medium_charge" "$color_medium_charge_default")
|
|
||||||
color_low_charge=$(get_tmux_option "@batt_color_low_charge" "$color_low_charge_default")
|
|
||||||
color_charging=$(get_tmux_option "@batt_color_charging" "$color_charging_default")
|
|
||||||
}
|
|
||||||
|
|
||||||
print_battery_status_bg() {
|
|
||||||
# Call `battery_percentage.sh`.
|
|
||||||
percentage=$($CURRENT_DIR/battery_percentage.sh | sed -e 's/%//')
|
|
||||||
status=$(battery_status | awk '{print $1;}')
|
|
||||||
if [ $status == 'charging' ]; then
|
|
||||||
printf $color_charging
|
|
||||||
elif [ $percentage -eq 100 ]; then
|
|
||||||
printf $color_full_charge
|
|
||||||
elif [ $percentage -le 99 -a $percentage -ge 51 ];then
|
|
||||||
printf $color_high_charge
|
|
||||||
elif [ $percentage -le 50 -a $percentage -ge 16 ];then
|
|
||||||
printf $color_medium_charge
|
|
||||||
elif [ "$percentage" == "" ];then
|
|
||||||
printf $color_full_charge_default # assume it's a desktop
|
|
||||||
else
|
|
||||||
printf $color_low_charge
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
get_charge_color_settings
|
|
||||||
print_battery_status_bg
|
|
||||||
}
|
|
||||||
main
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
source "$CURRENT_DIR/helpers.sh"
|
|
||||||
|
|
||||||
color_full_charge_default="#[fg=green]"
|
|
||||||
color_high_charge_default="#[fg=yellow]"
|
|
||||||
color_medium_charge_default="#[fg=colour208]" # orange
|
|
||||||
color_low_charge_default="#[fg=red]"
|
|
||||||
color_charging_default="#[fg=green]"
|
|
||||||
|
|
||||||
color_full_charge=""
|
|
||||||
color_high_charge=""
|
|
||||||
color_medium_charge=""
|
|
||||||
color_low_charge=""
|
|
||||||
color_charging=""
|
|
||||||
|
|
||||||
get_charge_color_settings() {
|
|
||||||
color_full_charge=$(get_tmux_option "@batt_color_full_charge" "$color_full_charge_default")
|
|
||||||
color_high_charge=$(get_tmux_option "@batt_color_high_charge" "$color_high_charge_default")
|
|
||||||
color_medium_charge=$(get_tmux_option "@batt_color_medium_charge" "$color_medium_charge_default")
|
|
||||||
color_low_charge=$(get_tmux_option "@batt_color_low_charge" "$color_low_charge_default")
|
|
||||||
color_charging=$(get_tmux_option "@batt_color_charging" "$color_charging_default")
|
|
||||||
}
|
|
||||||
|
|
||||||
print_battery_status_fg() {
|
|
||||||
# Call `battery_percentage.sh`.
|
|
||||||
percentage=$($CURRENT_DIR/battery_percentage.sh | sed -e 's/%//')
|
|
||||||
status=$(battery_status | awk '{print $1;}')
|
|
||||||
if [ $status == 'charging' ]; then
|
|
||||||
printf $color_charging
|
|
||||||
elif [ $percentage -eq 100 ]; then
|
|
||||||
printf $color_full_charge
|
|
||||||
elif [ $percentage -le 99 -a $percentage -ge 51 ];then
|
|
||||||
printf $color_high_charge
|
|
||||||
elif [ $percentage -le 50 -a $percentage -ge 16 ];then
|
|
||||||
printf $color_medium_charge
|
|
||||||
elif [ "$percentage" == "" ];then
|
|
||||||
printf $color_full_charge_default # assume it's a desktop
|
|
||||||
else
|
|
||||||
printf $color_low_charge
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
get_charge_color_settings
|
|
||||||
print_battery_status_fg
|
|
||||||
}
|
|
||||||
main
|
|
||||||
46
scripts/helpers.sh
Normal file → Executable file
|
|
@ -22,21 +22,55 @@ is_chrome() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_wsl() {
|
||||||
|
version=$(</proc/version)
|
||||||
|
if [[ "$version" == *"Linux"* || "$version" == *"Microsoft"* || "$version" == *"microsoft"* ]]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
command_exists() {
|
command_exists() {
|
||||||
local command="$1"
|
local command
|
||||||
type "$command" >/dev/null 2>&1
|
for command; do
|
||||||
|
type "$command" >/dev/null 2>&1 || return $?
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
battery_status() {
|
battery_status() {
|
||||||
if command_exists "pmset"; then
|
if command_exists "pmset"; then
|
||||||
pmset -g batt | awk -F '; *' 'NR==2 { print $2 }'
|
pmset -g batt | awk -F '; *' 'NR==2 { print $2 }'
|
||||||
|
elif command_exists "acpi"; then
|
||||||
|
acpi -b | awk '{gsub(/,/, ""); print tolower($3); exit}'
|
||||||
elif command_exists "upower"; then
|
elif command_exists "upower"; then
|
||||||
local battery
|
local battery
|
||||||
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||||
upower -i $battery | awk '/state/ {print $2}'
|
upower -i $battery | awk '/state/ {print $2}'
|
||||||
elif command_exists "acpi"; then
|
elif command_exists "apm"; then
|
||||||
acpi -b | awk '{gsub(/,/, ""); print tolower($3); exit}'
|
local battery
|
||||||
elif command_exists "termux-battery-status"; then
|
battery=$(apm -a)
|
||||||
termux-battery-status | jq -r '.status' | awk '{printf("%s%", tolower($1))}'
|
if [ $battery -eq 0 ]; then
|
||||||
|
echo "discharging"
|
||||||
|
elif [ $battery -eq 1 ]; then
|
||||||
|
echo "charging"
|
||||||
|
fi
|
||||||
|
elif command_exists "termux-battery-status" "jq"; then
|
||||||
|
termux-battery-status | jq -er '.status | ascii_downcase'
|
||||||
|
elif is_wsl; then
|
||||||
|
local battery
|
||||||
|
battery=$(find /sys/class/power_supply/*/status | tail -n1)
|
||||||
|
awk '{print tolower($0);}' "$battery"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
float2int() {
|
||||||
|
local float="$1"
|
||||||
|
if [[ $float =~ "," ]]; then
|
||||||
|
echo ${float%,*}
|
||||||
|
elif [[ $float =~ "." ]]; then
|
||||||
|
echo ${float%.*}
|
||||||
|
else
|
||||||
|
echo ${float//%}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||