diff --git a/.gitmodules b/.gitmodules
index 503510e..b89a39d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,3 +5,6 @@
 [submodule "conf.d/qutebrowser/dracula"]
 	path = conf.d/qutebrowser/dracula
 	url = https://github.com/dracula/qutebrowser-dracula-theme.git
+[submodule "dotbot_plugins/dotbot-yay"]
+	path = dotbot_plugins/dotbot-yay
+	url = https://github.com/oxson/dotbot-yay
diff --git a/dotbot_plugins/dotbot-yay b/dotbot_plugins/dotbot-yay
new file mode 160000
index 0000000..6864d14
--- /dev/null
+++ b/dotbot_plugins/dotbot-yay
@@ -0,0 +1 @@
+Subproject commit 6864d14ba85105f26fc00aa586d2f1e44d175c18
diff --git a/install-profile b/install-profile
index e550208..d07b0f2 100755
--- a/install-profile
+++ b/install-profile
@@ -16,7 +16,8 @@ BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 
 
 cd "${BASE_DIR}"
-git submodule update --init
+git -C "${BASE_DIR}" submodule sync --quiet --recursive
+git submodule update --init --recursive "${BASE_DIR}"
 
 
 while IFS= read -r config; do
@@ -25,11 +26,24 @@ done < "${META_DIR}/${PROFILES_DIR}/$1"
 
 shift
 
-
-"${BASE_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" -c "${META_DIR}/${BASE_CONFIG}${CONFIG_SUFFIX}"
-
 for config in ${CONFIGS} ${@}; do
     echo -e "\nConfigure $config"
-    configContent="$(<"${BASE_DIR}/${META_DIR}/${BASE_CONFIG}${CONFIG_SUFFIX}")\n$(<"${BASE_DIR}/${META_DIR}/${CONFIG_DIR}/${config}${CONFIG_SUFFIX}")"
-    "${BASE_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" -c <(echo -e "$configContent")
+    # create temporary file
+    configFile="$(mktemp)"
+    suffix="-sudo"
+    echo -e "$(<"${BASE_DIR}/${META_DIR}/${BASE_CONFIG}${CONFIG_SUFFIX}")\n$(<"${BASE_DIR}/${META_DIR}/${CONFIG_DIR}/${config%"$suffix"}${CONFIG_SUFFIX}")" > "$configFile"
+
+    # cmd=("${BASE_DIR}/${META_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" \
+    #       -p "${BASE_DIR}/${META_DIR}/dotbot-yay/yay.py" -c "$configFile")
+    cmd=("${BASE_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" \
+          -p "${BASE_DIR}/${META_DIR}/dotbot_plugins/dotbot-yay/yay.py" -c "$configFile")
+
+    if [[ $config == *"sudo"* ]]; then
+        cmd=(sudo "${cmd[@]}")
+    fi
+
+    "${cmd[@]}"
+    rm -f "$configFile"
 done
+
+cd "${BASE_DIR}"
diff --git a/install-standalone b/install-standalone
index 90431c0..63c3c1a 100755
--- a/install-standalone
+++ b/install-standalone
@@ -16,13 +16,25 @@ BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 
 
 cd "${BASE_DIR}"
-git submodule update --init
-# git submodule update --recursive --remote
-
-
-"${BASE_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" -c "${META_DIR}/${BASE_CONFIG}${CONFIG_SUFFIX}"
+git submodule update --init --recursive --remote
 
 for config in ${@}; do
-    configContent="$(<"${BASE_DIR}/${META_DIR}/${BASE_CONFIG}${CONFIG_SUFFIX}")\n$(<"${BASE_DIR}/${META_DIR}/${CONFIG_DIR}/${config}${CONFIG_SUFFIX}")"
-    "${BASE_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" -c <(echo -e "$configContent")
+    # create temporary file
+    configFile="$(mktemp)"
+    suffix="-sudo"
+    echo -e "$(<"${BASE_DIR}/${META_DIR}/${BASE_CONFIG}${CONFIG_SUFFIX}")\n$(<"${BASE_DIR}/${META_DIR}/${CONFIG_DIR}/${config%"$suffix"}${CONFIG_SUFFIX}")" > "$configFile"
+
+    # cmd=("${BASE_DIR}/${META_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" \
+    #       -p "${BASE_DIR}/${META_DIR}/dotbot-yay/yay.py" -c "$configFile")
+    cmd=("${BASE_DIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASE_DIR}" \
+          -p "${BASE_DIR}/${META_DIR}/dotbot_plugins/dotbot-yay/yay.py" -c "$configFile")
+
+    if [[ $config == *"sudo"* ]]; then
+        cmd=(sudo "${cmd[@]}")
+    fi
+
+    "${cmd[@]}"
+    rm -f "$configFile"
 done
+
+cd "${BASE_DIR}"
diff --git a/meta/tasks/packages_yay.yaml b/meta/tasks/packages_yay.yaml
new file mode 100644
index 0000000..53d09bd
--- /dev/null
+++ b/meta/tasks/packages_yay.yaml
@@ -0,0 +1,2 @@
+- yay:
+  - neuron-zettelkasten-bin