Add doas config stuff
This commit is contained in:
parent
b44c41f339
commit
3d17d60bc9
5 changed files with 97 additions and 6 deletions
.config/zsh/custom/plugins/doas
47
.config/zsh/custom/plugins/doas/README.md
Normal file
47
.config/zsh/custom/plugins/doas/README.md
Normal file
|
@ -0,0 +1,47 @@
|
|||
# doas-zsh-plugin
|
||||
|
||||
Easily prefix your current or previous commands with `doas` by pressing <kbd>esc</kbd> twice
|
||||
|
||||
To use it, add the following to your zshrc:
|
||||
|
||||
```console
|
||||
plugins=(doas)
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Current typed commands
|
||||
|
||||
Say you have typed a long command and forgot to add `doas` in front:
|
||||
|
||||
```console
|
||||
$ apt-get install build-essential
|
||||
```
|
||||
|
||||
By pressing the <kbd>esc</kbd> key twice, you will have the same command with `doas` prefixed without typing:
|
||||
|
||||
```console
|
||||
$ doas apt-get install build-essential
|
||||
```
|
||||
|
||||
### Previous executed commands
|
||||
|
||||
Say you want to delete a system file and denied:
|
||||
|
||||
```console
|
||||
$ rm some-system-file.txt
|
||||
-su: some-system-file.txt: Permission denied
|
||||
$
|
||||
```
|
||||
|
||||
By pressing the <kbd>esc</kbd> key twice, you will have the same command with `doas` prefixed without typing:
|
||||
|
||||
```console
|
||||
$ rm some-system-file.txt
|
||||
-su: some-system-file.txt: Permission denied
|
||||
$ doas rm some-system-file.txt
|
||||
Password:
|
||||
$
|
||||
```
|
||||
|
||||
Plugin inspired by sudo plugin by [Dongweiming](https://github.com/dongweiming)
|
32
.config/zsh/custom/plugins/doas/doas.plugin.zsh
Normal file
32
.config/zsh/custom/plugins/doas/doas.plugin.zsh
Normal file
|
@ -0,0 +1,32 @@
|
|||
# ------------------------------------------------------------------------------
|
||||
# Description
|
||||
# -----------
|
||||
#
|
||||
# doas will be inserted before the command
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
# Authors
|
||||
# -------
|
||||
#
|
||||
# * Anatoly <akopyl@radner.ru>
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
doas-command-line() {
|
||||
[[ -z $BUFFER ]] && LBUFFER="$(fc -ln -1)"
|
||||
if [[ $BUFFER == doas\ * ]]; then
|
||||
if [[ ${#LBUFFER} -le 4 ]]; then
|
||||
RBUFFER="${BUFFER#doas }"
|
||||
LBUFFER=""
|
||||
else
|
||||
LBUFFER="${LBUFFER#doas }"
|
||||
fi
|
||||
else
|
||||
LBUFFER="doas $LBUFFER"
|
||||
fi
|
||||
}
|
||||
zle -N doas-command-line
|
||||
# Defined shortcut keys: [Esc] [Esc]
|
||||
bindkey -M emacs '\e\e' doas-command-line
|
||||
bindkey -M vicmd '\e\e' doas-command-line
|
||||
bindkey -M viins '\e\e' doas-command-line
|
Loading…
Add table
Add a link
Reference in a new issue