Compare commits
No commits in common. "master" and "v1.3.0" have entirely different histories.
1
.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
*.swp
|
||||
20
CHANGELOG.md
|
|
@ -1,20 +1,10 @@
|
|||
# Changelog
|
||||
|
||||
### v2.0.0, 2025-12-30
|
||||
- Added `#{battery_charging_watts}` format string for displaying current watts supplied on macOS
|
||||
- Added `#{battery_color_bg}`, `#{battery_color_fg}` format strings for dynamic color based on charge/status
|
||||
- Added `#{battery_color_charge_bg}`, `#{battery_color_charge_fg}` for colors based solely on charge level
|
||||
- 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
|
||||
### master
|
||||
- Added `#{battery_status_bg}` feature (@RyanFrantz)
|
||||
- Added multibattery output support for `upower` (@futuro)
|
||||
- Added Chromebook support (@forkjoseph)
|
||||
- Added battery graph, simplify interpolation (@levens)
|
||||
|
||||
### v1.2.0, 2016-09-24
|
||||
- show output for `#{battery_remain}` interpolation only if the battery is
|
||||
|
|
|
|||
259
README.md
|
|
@ -4,24 +4,21 @@ Enables displaying battery percentage and status icon in tmux status-right.
|
|||
|
||||
## Installation
|
||||
|
||||
In order to read the battery status, this plugin depends on having one of the following applications installed:
|
||||
- pmset (MacOS only)
|
||||
- acpi
|
||||
In order to read the battery status, this plugin depends on having either one of the following applications installed:
|
||||
- pmset
|
||||
- upower
|
||||
- acpi
|
||||
- termux-battery-status
|
||||
- apm
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended)
|
||||
|
||||
Add plugin to the list of TPM plugins in `.tmux.conf`:
|
||||
|
||||
```tmux
|
||||
set -g @plugin 'tmux-plugins/tmux-battery'
|
||||
```
|
||||
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.
|
||||
|
||||
|
|
@ -29,224 +26,104 @@ If format strings are added to `status-right`, they should now be visible.
|
|||
|
||||
Clone the repo:
|
||||
|
||||
```shell
|
||||
git clone https://github.com/tmux-plugins/tmux-battery ~/clone/path
|
||||
```
|
||||
$ git clone https://github.com/tmux-plugins/tmux-battery ~/clone/path
|
||||
|
||||
Add this line to the bottom of `.tmux.conf`:
|
||||
|
||||
```tmux
|
||||
run-shell ~/clone/path/battery.tmux
|
||||
```
|
||||
run-shell ~/clone/path/battery.tmux
|
||||
|
||||
From the terminal, reload TMUX environment:
|
||||
Reload TMUX environment:
|
||||
|
||||
```shell
|
||||
tmux source-file ~/.tmux.conf
|
||||
```
|
||||
# type this in terminal
|
||||
$ tmux source-file ~/.tmux.conf
|
||||
|
||||
If format strings are added to `status-right`, they should now be visible.
|
||||
|
||||
## Usage
|
||||
|
||||
Add any of the supported format strings (see below) to the `status-right` tmux option in `.tmux.conf`. Example:
|
||||
Add `#{battery_icon}`, `#{battery_percentage}` `#{battery_remain}`, or
|
||||
`#{battery_status_bg}` format strings to existing `status-right` tmux option.
|
||||
Example:
|
||||
|
||||
```tmux
|
||||
set -g status-right '#{battery_color_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M '
|
||||
```
|
||||
# in .tmux.conf
|
||||
set -g status-right '#{battery_status_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M '
|
||||
|
||||
### Supported Format Strings
|
||||
|
||||
- `#{battery_color_bg}` - will set the background color of the status bar based on the battery charge level if discharging and status otherwise
|
||||
- `#{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)
|
||||
## Examples
|
||||
Battery full (for OS X):<br/>
|
||||

|
||||
|
||||
\* These format strings can be further customized via options as described below.
|
||||
Battery discharging, custom discharge icon:<br/>
|
||||

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

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

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

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

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

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

|
||||
|
||||
#### Icons/Colors
|
||||
This is done by introducing new format strings that can be added to
|
||||
`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 ▁▂▃▅▇
|
||||
|
||||
By default, the following colors and icons are used. (The exact colors displayed depends on your terminal / X11 config.)
|
||||
## Changing icons
|
||||
|
||||
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>.
|
||||
By default, these icons are displayed:
|
||||
|
||||
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.
|
||||
- charged: ":battery:" ("❇ " when not on OS X)
|
||||
- charging: ":zap:"
|
||||
- discharging: Moon icons depending on your battery level
|
||||
- attached but not charging: ":warning:"
|
||||
|
||||
Level of Charge Colors:
|
||||
You can change these defaults by adding the following to `.tmux.conf` (the
|
||||
following lines are not in the code block so that emojis can be seen):
|
||||
|
||||
- primary tier 8 \[95%-100%] (`@batt_color_charge_primary_tier8`): '#00ff00'
|
||||
- primary tier 7 \[80%-95%) (`@batt_color_charge_primary_tier7`): '#55ff00'
|
||||
- primary tier 6 \[65%-80%) (`@batt_color_charge_primary_tier6`): '#aaff00'
|
||||
- primary tier 5 \[50%-65%) (`@batt_color_charge_primary_tier5`): '#ffff00'
|
||||
- primary tier 4 \[35%-50%) (`@batt_color_charge_primary_tier4`): '#ffc000'
|
||||
- primary tier 3 \[20%-35%) (`@batt_color_charge_primary_tier3`): '#ff8000'
|
||||
- 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'
|
||||
- set -g @batt_charged_icon ":sunglasses:"
|
||||
- set -g @batt_charging_icon ":+1:"
|
||||
- set -g @batt_attached_icon ":neutral_face:"
|
||||
- set -g @batt_full_charge_icon "🌕 "
|
||||
- set -g @batt_high_charge_icon "🌖 "
|
||||
- set -g @batt_medium_charge_icon "🌗 "
|
||||
- set -g @batt_low_charge_icon "🌘 "
|
||||
|
||||
Status Colors:
|
||||
|
||||
- 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.
|
||||
Don't forget to reload tmux environment (`$ tmux source-file ~/.tmux.conf`)
|
||||
after you do this.
|
||||
|
||||
*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.
|
||||
|
||||
## Examples
|
||||
## Shortened remaining output
|
||||
|
||||
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`
|
||||
To shorten the output of `#{battery_remain}`, set the following variable:
|
||||
|
||||
```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'
|
||||
```
|
||||
set -g @batt_remain_short true
|
||||
|
||||
Battery charging at tier 8 \[95%-100%]:<br>
|
||||

|
||||
|
||||
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>
|
||||

|
||||
This will hide output if the battery is charging or charged, and shorten the
|
||||
time remaining (when discharging) to `~H:MM`.
|
||||
|
||||
### 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.
|
||||
|
||||
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
|
||||
|
||||
- [Martin Beentjes](https://github.com/martinbeentjes)
|
||||
|
|
@ -257,12 +134,10 @@ This plugin is part of the [tmux-plugins](https://github.com/tmux-plugins) organ
|
|||
- Aleksandar Djurdjic
|
||||
- Bruno Sutic
|
||||
- Caleb
|
||||
- Dan Cassidy
|
||||
- Diego Ximenes
|
||||
- Evan N-D
|
||||
- Jan Ahrens
|
||||
- Joey Geralnik
|
||||
- HyunJong (Joseph) Lee
|
||||
- Joseph
|
||||
- Martin Beentjes
|
||||
- Mike Foley
|
||||
- Ryan Frantz
|
||||
|
|
|
|||
38
battery.tmux
|
|
@ -5,35 +5,20 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||
source "$CURRENT_DIR/scripts/helpers.sh"
|
||||
|
||||
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_remain}"
|
||||
"\#{battery_charging_watts}"
|
||||
"\#{battery_icon}"
|
||||
"\#{battery_status_bg}"
|
||||
"\#{battery_status_fg}"
|
||||
"\#{battery_graph}"
|
||||
)
|
||||
|
||||
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_remain.sh)"
|
||||
"#($CURRENT_DIR/scripts/battery_charging_watts.sh)"
|
||||
"#($CURRENT_DIR/scripts/battery_icon.sh)"
|
||||
"#($CURRENT_DIR/scripts/battery_status_bg.sh)"
|
||||
"#($CURRENT_DIR/scripts/battery_status_fg.sh)"
|
||||
"#($CURRENT_DIR/scripts/battery_graph.sh)"
|
||||
)
|
||||
|
||||
set_tmux_option() {
|
||||
|
|
@ -58,10 +43,7 @@ update_tmux_option() {
|
|||
}
|
||||
|
||||
main() {
|
||||
local interpolated_options="$(get_tmux_option "@plugin_interpolated_options" "status-right status-left")"
|
||||
for interpolated_option in $interpolated_options
|
||||
do
|
||||
update_tmux_option $interpolated_option
|
||||
done
|
||||
update_tmux_option "status-right"
|
||||
update_tmux_option "status-left"
|
||||
}
|
||||
main
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
#!/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
|
||||
BIN
screenshots/battery_charging.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
BIN
screenshots/battery_discharging.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
BIN
screenshots/battery_full.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
screenshots/battery_remain.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
BIN
screenshots/battery_status_bg_green.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
screenshots/battery_status_bg_orange.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
screenshots/battery_status_bg_red.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
screenshots/battery_status_bg_yellow.png
Normal file
|
After Width: | Height: | Size: 6 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
|
|
@ -1,22 +0,0 @@
|
|||
#!/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
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
#!/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 $@
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
#!/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 $@
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
#!/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,41 +5,23 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||
source "$CURRENT_DIR/helpers.sh"
|
||||
|
||||
print_graph() {
|
||||
local percentage=$1
|
||||
if [ $percentage -gt 5 ]; then
|
||||
printf "▁"
|
||||
if [ -z "$1" ]; then
|
||||
echo ""
|
||||
elif [ "$1" -lt "20" ]; then
|
||||
echo "▁"
|
||||
elif [ "$1" -lt "40" ]; then
|
||||
echo "▂"
|
||||
elif [ "$1" -lt "60" ]; then
|
||||
echo "▃"
|
||||
elif [ "$1" -lt "80" ]; then
|
||||
echo "▅"
|
||||
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 "▇"
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
local percentage=$($CURRENT_DIR/battery_percentage.sh)
|
||||
if [ "$(uname)" == "OpenBSD" ]; then
|
||||
print_graph ${percentage}
|
||||
else
|
||||
print_graph ${percentage%?}
|
||||
fi
|
||||
print_graph ${percentage%?}
|
||||
}
|
||||
main
|
||||
|
|
|
|||
|
|
@ -4,18 +4,72 @@ CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|||
|
||||
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() {
|
||||
local status=$1
|
||||
if [ "$status" == "discharging" ]; then
|
||||
$CURRENT_DIR/battery_icon_charge.sh
|
||||
else
|
||||
$CURRENT_DIR/battery_icon_status.sh "$status"
|
||||
if [[ $status =~ (charged) || $status =~ (full) ]]; then
|
||||
printf "$charged_icon"
|
||||
elif [[ $status =~ (^charging) ]]; then
|
||||
printf "$charging_icon"
|
||||
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
|
||||
}
|
||||
|
||||
main() {
|
||||
get_icon_settings
|
||||
local status=$(battery_status)
|
||||
print_icon "$status"
|
||||
}
|
||||
|
||||
main
|
||||
|
|
|
|||
|
|
@ -1,66 +0,0 @@
|
|||
#!/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
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
#!/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,19 +8,12 @@ print_battery_percentage() {
|
|||
# percentage displayed in the 2nd field of the 2nd row
|
||||
if command_exists "pmset"; then
|
||||
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
|
||||
# use DisplayDevice if available otherwise battery
|
||||
local battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||
if [ -z "$battery" ]; then
|
||||
return
|
||||
fi
|
||||
local percentage=$(upower -i $battery | awk '/percentage:/ {print $2}')
|
||||
if [ "$percentage" ]; then
|
||||
echo "$(float2int $percentage)%"
|
||||
return
|
||||
fi
|
||||
local energy
|
||||
local energy_full
|
||||
energy=$(upower -i $battery | awk -v nrg="$energy" '/energy:/ {print nrg+$2}')
|
||||
|
|
@ -28,16 +21,10 @@ print_battery_percentage() {
|
|||
if [ -n "$energy" ] && [ -n "$energy_full" ]; then
|
||||
echo $energy $energy_full | awk '{printf("%d%%", ($1/$2)*100)}'
|
||||
fi
|
||||
elif command_exists "acpi"; then
|
||||
acpi -b | grep -m 1 -Eo "[0-9]+%"
|
||||
elif command_exists "termux-battery-status"; then
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,33 +17,7 @@ battery_discharging() {
|
|||
|
||||
battery_charged() {
|
||||
local status="$(battery_status)"
|
||||
[[ $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
|
||||
[[ $status =~ (charged) ]]
|
||||
}
|
||||
|
||||
pmset_battery_remaining_time() {
|
||||
|
|
@ -78,62 +52,44 @@ pmset_battery_remaining_time() {
|
|||
fi
|
||||
}
|
||||
|
||||
upower_battery_remaining_time() {
|
||||
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||
if battery_discharging; then
|
||||
local remaining_time
|
||||
remaining_time=$(upower -i "$battery" | grep -E '(remain|time to empty)')
|
||||
if $short; then
|
||||
echo "$remaining_time" | awk '{printf "%s %s", $(NF-1), $(NF)}'
|
||||
else
|
||||
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
|
||||
}
|
||||
|
||||
acpi_battery_remaining_time() {
|
||||
regex="[0-9]+:[0-9]+"
|
||||
if ! $short; then
|
||||
regex="$regex:[0-9]+"
|
||||
fi
|
||||
acpi -b | grep -v " 0%" | grep -m 1 -Eo "$regex"
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
if command_exists "pmset"; then
|
||||
pmset_battery_remaining_time
|
||||
elif command_exists "acpi"; then
|
||||
acpi_battery_remaining_time
|
||||
elif command_exists "upower"; then
|
||||
upower_battery_remaining_time
|
||||
elif command_exists "apm"; then
|
||||
apm_battery_remaining_time
|
||||
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||
if is_chrome; then
|
||||
if battery_discharging; then
|
||||
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
|
||||
upower -i $battery | grep -E '(remain|time to empty)' | awk '{print $(NF-1)}'
|
||||
fi
|
||||
elif command_exists "acpi"; then
|
||||
acpi -b | grep -m 1 -Eo "[0-9]+:[0-9]+:[0-9]+"
|
||||
fi
|
||||
}
|
||||
|
||||
print_battery_full() {
|
||||
if !$short; then
|
||||
return
|
||||
fi
|
||||
|
||||
if command_exists "pmset"; then
|
||||
pmset_battery_remaining_time
|
||||
elif command_exists "upower"; then
|
||||
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||
upower -i $battery | grep 'time to full' | awk '{printf "- %s %s till full", $4, $5}'
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
get_remain_settings
|
||||
print_battery_remain
|
||||
if battery_discharging; then
|
||||
print_battery_remain
|
||||
else
|
||||
print_battery_full
|
||||
fi
|
||||
}
|
||||
main
|
||||
|
|
|
|||
50
scripts/battery_status_bg.sh
Executable file
|
|
@ -0,0 +1,50 @@
|
|||
#!/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
|
||||
50
scripts/battery_status_fg.sh
Executable file
|
|
@ -0,0 +1,50 @@
|
|||
#!/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
Executable file → Normal file
|
|
@ -22,55 +22,21 @@ is_chrome() {
|
|||
fi
|
||||
}
|
||||
|
||||
is_wsl() {
|
||||
version=$(</proc/version)
|
||||
if [[ "$version" == *"Linux"* || "$version" == *"Microsoft"* || "$version" == *"microsoft"* ]]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
command_exists() {
|
||||
local command
|
||||
for command; do
|
||||
type "$command" >/dev/null 2>&1 || return $?
|
||||
done
|
||||
local command="$1"
|
||||
type "$command" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
battery_status() {
|
||||
if command_exists "pmset"; then
|
||||
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
|
||||
local battery
|
||||
battery=$(upower -e | grep -E 'battery|DisplayDevice'| tail -n1)
|
||||
upower -i $battery | awk '/state/ {print $2}'
|
||||
elif command_exists "apm"; then
|
||||
local battery
|
||||
battery=$(apm -a)
|
||||
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//%}
|
||||
elif command_exists "acpi"; then
|
||||
acpi -b | awk '{gsub(/,/, ""); print tolower($3); exit}'
|
||||
elif command_exists "termux-battery-status"; then
|
||||
termux-battery-status | jq -r '.status' | awk '{printf("%s%", tolower($1))}'
|
||||
fi
|
||||
}
|
||||
|
|
|
|||