mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-23 02:35:38 +01:00
feat(macos): add low power mode management functions
This commit is contained in:
parent
ec14da72fb
commit
23e8881147
3 changed files with 99 additions and 22 deletions
|
|
@ -9,6 +9,7 @@ plugins=(... macos)
|
|||
```
|
||||
|
||||
## Supported Terminals
|
||||
|
||||
- [iTerm](https://iterm.sourceforge.net/)
|
||||
- [iTerm2](https://iterm2.com/)
|
||||
- [Hyper](https://hyper.is/)
|
||||
|
|
@ -17,28 +18,33 @@ plugins=(... macos)
|
|||
|
||||
## Commands
|
||||
|
||||
| Command | Description |
|
||||
| :------------ | :------------------------------------------------------- |
|
||||
| `tab` | Open the current directory in a new tab |
|
||||
| `split_tab` | Split the current terminal tab horizontally |
|
||||
| `vsplit_tab` | Split the current terminal tab vertically |
|
||||
| `ofd` | Open passed directories (or $PWD by default) in Finder |
|
||||
| `pfd` | Return the path of the frontmost Finder window |
|
||||
| `pfs` | Return the current Finder selection |
|
||||
| `cdf` | `cd` to the current Finder directory |
|
||||
| `pushdf` | `pushd` to the current Finder directory |
|
||||
| `pxd` | Return the current Xcode project directory |
|
||||
| `cdx` | `cd` to the current Xcode project directory |
|
||||
| `quick-look` | Quick-Look a specified file |
|
||||
| `man-preview` | Open man pages in Preview app |
|
||||
| `showfiles` | Show hidden files in Finder |
|
||||
| `hidefiles` | Hide the hidden files in Finder |
|
||||
| `itunes` | _DEPRECATED_. Use `music` from macOS Catalina on |
|
||||
| `music` | Control Apple Music. Use `music -h` for usage details |
|
||||
| `spotify` | Control Spotify and search by artist, album, track… |
|
||||
| `rmdsstore` | Remove .DS_Store files recursively in a directory |
|
||||
| `btrestart` | Restart the Bluetooth daemon |
|
||||
| `freespace` | Erases purgeable disk space with 0s on the selected disk |
|
||||
| Command | Description |
|
||||
| :------------ | :------------------------------------------------------------- |
|
||||
| `tab` | Open the current directory in a new tab |
|
||||
| `split_tab` | Split the current terminal tab horizontally |
|
||||
| `vsplit_tab` | Split the current terminal tab vertically |
|
||||
| `ofd` | Open passed directories (or $PWD by default) in Finder |
|
||||
| `pfd` | Return the path of the frontmost Finder window |
|
||||
| `pfs` | Return the current Finder selection |
|
||||
| `cdf` | `cd` to the current Finder directory |
|
||||
| `pushdf` | `pushd` to the current Finder directory |
|
||||
| `pxd` | Return the current Xcode project directory |
|
||||
| `cdx` | `cd` to the current Xcode project directory |
|
||||
| `quick-look` | Quick-Look a specified file |
|
||||
| `man-preview` | Open man pages in Preview app |
|
||||
| `showfiles` | Show hidden files in Finder |
|
||||
| `hidefiles` | Hide the hidden files in Finder |
|
||||
| `itunes` | _DEPRECATED_. Use `music` from macOS Catalina on |
|
||||
| `music` | Control Apple Music. Use `music -h` for usage details |
|
||||
| `spotify` | Control Spotify and search by artist, album, track… |
|
||||
| `lpm` | Toggle Low Power Mode. Use `lpm on\|off\|status` (macOS 12.0+) |
|
||||
| `lpm-on` | Enable Low Power Mode (macOS 12.0+) |
|
||||
| `lpm-off` | Disable Low Power Mode (macOS 12.0+) |
|
||||
| `lpm-status` | Check the current Low Power Mode status (macOS 12.0+) |
|
||||
| `lpm-toggle` | Toggle the current Low Power Mode status (macOS 12.0+) |
|
||||
| `rmdsstore` | Remove .DS_Store files recursively in a directory |
|
||||
| `btrestart` | Restart the Bluetooth daemon |
|
||||
| `freespace` | Erases purgeable disk space with 0s on the selected disk |
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
|
|
|
|||
68
plugins/macos/lpm
Normal file
68
plugins/macos/lpm
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
function lpm() {
|
||||
local sw_vers=$(sw_vers -productVersion 2>/dev/null)
|
||||
|
||||
autoload is-at-least
|
||||
if [[ -z "$sw_vers" ]] || ! is-at-least 12.0 $sw_vers; then
|
||||
echo "Error: Low Power Mode requires macOS 12.0 (Monterey) or later" >&2
|
||||
echo "Current version: ${sw_vers:-unknown}" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
local action="${1:-}"
|
||||
|
||||
# Helper function to get current status (returns 0, 1, or empty string)
|
||||
local get_status() {
|
||||
pmset -g | grep lowpowermode | awk '{print $2}'
|
||||
}
|
||||
|
||||
case "${action}" in
|
||||
on)
|
||||
sudo pmset -a lowpowermode 1
|
||||
;;
|
||||
off)
|
||||
sudo pmset -a lowpowermode 0
|
||||
;;
|
||||
status)
|
||||
local lpm_status=$(get_status)
|
||||
if [[ "$lpm_status" == "1" ]]; then
|
||||
echo "enabled"
|
||||
elif [[ "$lpm_status" == "0" ]]; then
|
||||
echo "disabled"
|
||||
else
|
||||
echo "unknown" >&2
|
||||
return 3
|
||||
fi
|
||||
;;
|
||||
toggle)
|
||||
local lpm_status=$(get_status)
|
||||
if [[ "$lpm_status" == "1" ]]; then
|
||||
sudo pmset -a lowpowermode 0
|
||||
elif [[ "$lpm_status" == "0" ]]; then
|
||||
sudo pmset -a lowpowermode 1
|
||||
else
|
||||
echo "Unable to determine current status to toggle" >&2
|
||||
return 3
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "usage: lpm on|off|status|toggle" >&2
|
||||
return 2
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function lpm-off() {
|
||||
lpm off
|
||||
}
|
||||
|
||||
function lpm-on() {
|
||||
lpm on
|
||||
}
|
||||
|
||||
function lpm-status() {
|
||||
lpm status
|
||||
}
|
||||
|
||||
function lpm-toggle() {
|
||||
lpm toggle
|
||||
}
|
||||
|
|
@ -314,3 +314,6 @@ source "${0:h:A}/music"
|
|||
|
||||
# Spotify control function
|
||||
source "${0:h:A}/spotify"
|
||||
|
||||
# low power mode toggle-switch function
|
||||
source "${0:h:A}/lpm"
|
||||
Loading…
Add table
Add a link
Reference in a new issue