diff --git a/.config/aliasrc b/.config/aliasrc
index 711bb6a..06dbe50 100644
--- a/.config/aliasrc
+++ b/.config/aliasrc
@@ -10,7 +10,7 @@ alias bfg='java -jar ~/tools/bfg-1.13.0.jar'
alias cp='cp -i'
alias df='df -h'
-alias doas='doas --'
+alias doas='doas -- '
alias dotfiles='.f'
alias dotfiles-mail='.fm'
alias du='du -h'
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
index 6852185..db0135a 100644
--- a/.config/zsh/.zshrc
+++ b/.config/zsh/.zshrc
@@ -1,5 +1,5 @@
# Path to your oh-my-zsh installation.
-export ZSH="$HOME/.config/zsh/oh-my-zsh"
+export ZSH="$ZDOTDIR/oh-my-zsh"
if [ ! -f "$ZSH/oh-my-zsh.sh" ]
then
@@ -65,7 +65,13 @@ DISABLE_AUTO_UPDATE="false"
# HIST_STAMPS="yyyy-mm-dd"
# Would you like to use another custom folder than $ZSH/custom?
-# ZSH_CUSTOM=/path/to/new-custom-folder
+ZSH_CUSTOM=$ZDOTDIR/custom
+
+priv_plugin=sudo
+if [ -x "$(command -v doas)" ]
+then
+ priv_plugin=doas
+fi
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
@@ -83,8 +89,9 @@ plugins=(
jump
kubectl
safe-paste
- sudo
vi-mode
+
+ $priv_plugin
)
source $ZSH/oh-my-zsh.sh
diff --git a/.config/zsh/custom/plugins/doas/README.md b/.config/zsh/custom/plugins/doas/README.md
new file mode 100644
index 0000000..7b62f84
--- /dev/null
+++ b/.config/zsh/custom/plugins/doas/README.md
@@ -0,0 +1,47 @@
+# doas-zsh-plugin
+
+Easily prefix your current or previous commands with `doas` by pressing esc 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 esc 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 esc 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)
diff --git a/.config/zsh/custom/plugins/doas/doas.plugin.zsh b/.config/zsh/custom/plugins/doas/doas.plugin.zsh
new file mode 100644
index 0000000..27e0ca8
--- /dev/null
+++ b/.config/zsh/custom/plugins/doas/doas.plugin.zsh
@@ -0,0 +1,32 @@
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+# doas will be inserted before the command
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+# * Anatoly
+#
+# ------------------------------------------------------------------------------
+
+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
diff --git a/.local/bin/archlinux-update b/.local/bin/archlinux-update
index ab97086..2566b59 100755
--- a/.local/bin/archlinux-update
+++ b/.local/bin/archlinux-update
@@ -1,6 +1,6 @@
#!/usr/bin/sh
-yay -Syu
+paru -Syu
if [ $? -eq 0 ]; then
echo "UPDATE SUCCEDEED"
@@ -13,7 +13,12 @@ fi
echo "==================================================================="
-sudo checkservices
+if [ -x "$(command -v doas)" ]
+then
+ doas checkservices
+else
+ sudo checkservices
+fi
if [ $? -eq 0 ]; then
echo "CHECKSERVICES SUCCEDEED"