Introducing x-cmd plugin for ohmyzsh

This commit is contained in:
Li Junhao 2026-01-10 03:28:19 +08:00
commit 6563ae107e
2 changed files with 80 additions and 0 deletions

36
plugins/x-cmd/README.md Normal file
View file

@ -0,0 +1,36 @@
# X-CMD
To start using it, add the `x-cmd` plugin to your `plugins` array in `~/.zshrc`:
```zsh
plugins=(... x-cmd)
```
## Functions
### `x`
```zsh
x yq # Using yq command to interract with YML. If yq is not avaiable in the machine. X-CMD will download and directly execute the binary on demand without installation. X-CMD try to avoid influence the environment and folder and always find the solution with least impact.
x fjo # Posix shell CLI to interactve with forgejo.
x cb # Posix shell CLI to interactve with codeberg.
x nihao # For more information about using gpt, gemini, etc in terminal.
```
### `m`
m for `machine`.
In mac, it is [`x mac`](https://x-cmd.com/mod/mac).
In termux, it is [`x termux`](https://x-cmd.com/mod/termux).
```bash
m ss # Info about systemsetup
m app # List application status
m wifi proxy enable :2023 # Set
```

View file

@ -0,0 +1,44 @@
x(){(
@info(){
printf "%s\n" "$@"
}
if [ -e "$HOME/.x-cmd.root/X" ]; then
. "$HOME/.x-cmd.root/X"
return $?
fi
local cmdstr=""
if command -v curl 2>/dev/null; then
cmdstr='eval "$(curl -s https://get.x-cmd.com)"'
elif command -v wget 2>/dev/null; then
cmdstr='eval "$(wget -O- https://get.x-cmd.com)"'
fi
@info "X-CMD is not installed. Do you want to install x-cmd ?"
@info "Command using is -> $cmdstr"
local answer=""
read -q "Please press y for yes, n for no. Ctrl-C will also abort the setup." answer || {
@info "Received intrrupt. Exit with error code 130."
return 130
}
case "$answer" in
n|N|no)
@info "Received $answer. Exit the setup immediately."
return 0
;;
y|Y|yes)
@info "Received $answer. Setup is going now."
eval "$cmdstr"
return 0
;;
*)
@info "Received unknown $answer."
return 1
;;
esac
)}