Index: trunk/COPYING
===================================================================
--- trunk/COPYING	(revision 23)
+++ trunk/COPYING	(revision 24)
@@ -2,5 +2,5 @@
  * ----------------------------------------------------------------------------
  * "THE BEER-WARE LICENSE" (Revision 42.1):
- * <yakumo.izuru@chaotic.ninja> wrote this file. As long as you retain this notice you
+ * <eternal-servant@yakumo.dev> wrote this file. As long as you retain this notice you
  * can do whatever you want with this stuff. If we meet some day, and you think
  * this stuff is worth it, you can buy me a bottle of sake in return Izuru Yakumo
Index: trunk/README.md
===================================================================
--- trunk/README.md	(revision 23)
+++ trunk/README.md	(revision 24)
@@ -9,9 +9,10 @@
 
 ## Dependencies
-* Any of the above, depending how you configured it
-* `tree(1)` for printing a list
-* `mandoc(1)` for documentation
-* `rm(1)` with the `-i` and `-I` switches
-* `strings(1)`, `dd(1)` and `tr(1)` for generating passwords
+* [dd(1)](https://man.netbsd.org/dd.1)
+* [oathtool(1)](https://www.nongnu.org/oath-toolkit/)
+* [rm(1)](https://man.netbsd.org/rm.1)
+* [strings(1)](https://man.netbsd.org/strings.1)
+* [tr(1)](https://man.netbsd.org/tr.1)
+* [tree(1)](https://github.com/Old-Man-Programmer/tree)
 
 ## Add-ons
@@ -20,8 +21,4 @@
 quick graphical front-end for kanako, works with either of `dmenu(1)`
 or `bemenu(1)`, useful for copying passwords to clipboard.
-
-### kanako-totp
-time-based one time password addon for kanako, requires `oathtool(1)`
-from oath-toolkit.
 
 ## License
Index: trunk/addons/kanako-totp
===================================================================
--- trunk/addons/kanako-totp	(revision 23)
+++ 	(revision )
@@ -1,13 +1,0 @@
-#!/bin/sh -e
-# $TheSupernovaDuo: kanako,v 1.9 2023/5/18 21:9:33 yakumo_izuru Exp $
-# extracted from https://rgz.ee/bin/pass
-
-totp_seed="$(kanako -v "$@" | grep 'totp: ' | head -n1 | cut -d' ' -f2)"
-if ! [ -z "$totp_seed" ]; then
-    if command -v oathtool >/dev/null 2>&1; then
-	oathtool --totp -b "$totp_seed"
-    else
-	echo 'oathtool(1) should be installed'
-	exit 1
-    fi
-fi
Index: trunk/kanako
===================================================================
--- trunk/kanako	(revision 23)
+++ trunk/kanako	(revision 24)
@@ -1,25 +1,19 @@
 #!/bin/sh
-# $TheSupernovaDuo: kanako,v 2.1 2023/10/25 01:50:28 yakumo_izuru Exp $
+# $YakumoLabs: kanako,v 2.2 2025/05/14 02:07:06 yakumo_izuru Exp $
 
-readonly kanako_conf_dir="${kanako_conf_dir:-$HOME/.config/kanako}"
-readonly kanako_key_dir="${kanako_key_dir:-$HOME/.kanako}"
-readonly kanako_store_dir="${kanako_store_dir:-$HOME/.kanako-store}"
+kanako_conf_dir="${kanako_conf_dir:-$HOME/.config/kanako}"
+kanako_key_dir="${kanako_key_dir:-$HOME/.kanako}"
+kanako_store_dir="${kanako_store_dir:-$HOME/.kanako-store}"
 
-if test -d "${kanako_store_dir}"; then
-	cd "${kanako_store_dir}"
-else
-	printf "Password store not found!\n"
-	printf "Create it with mkdir -p %s\n" "$kanako_store_dir"
-	exit 1
-fi
+_die() {
+    printf "\033[1;31m%s\033[0m\n" "$*" >&2
+    exit 1
+}
+_warn() {
+    printf "\033[1;35m%s\033[0m\n" "$*"
+}
 
-if test -f "${kanako_conf_dir}/kanako.conf"; then
-	. "${kanako_conf_dir}/kanako.conf"
-else
-	printf "Configuration file has not been found!\n"
-	printf "Copy kanako.conf from the examples directory,\n"
-	printf "and edit accordingly.\n"
-	exit 1
-fi
+[ -d "${kanako_store_dir}" ] && cd "${kanako_store_dir}" || _die "Password store not found"
+[ -f "${kanako_conf_dir}/kanako.conf" ] && . "${kanako_conf_dir}/kanako.conf" || _die "Configuration file not found"
 
 copy() {
@@ -27,64 +21,77 @@
 }
 edit() {
-	if [ -f ${1%%.enc}.enc ]; then
-		${kanako_encrypt_cmd} ${kanako_decrypt_args} ${1%%.enc}.enc >${1%%.enc}
-		"${EDITOR:-${EDITOR:-vi}}" "${1%%.enc}"
-		${kanako_encrypt_cmd} ${kanako_encrypt_args} ${1%%.enc} >${1%%.enc}.enc
-		rm "${1%%.enc}"
-	else
-		printf "%s does not exist, maybe there was a typo on your end?\n" "${1%%.enc}.enc"
-	fi
+    if [ -f ${1%%.enc}.enc ]; then
+	${kanako_encrypt_cmd} ${kanako_decrypt_args} ${1%%.enc}.enc >${1%%.enc}
+	"${EDITOR:-${EDITOR:-vi}}" "${1%%.enc}"
+	${kanako_encrypt_cmd} ${kanako_encrypt_args} ${1%%.enc} >${1%%.enc}.enc
+	rm "${1%%.enc}"
+    else
+	_warn "%s does not exist, maybe there was a typo on your end?\n" "${1%%.enc}.enc"
+    fi
 }
 gen() {
-	printf "%s\n" $(strings </dev/urandom | dd bs=1 count="${1:-30}" 2>/dev/null | tr -d ' \t\n\r')
+    printf "%s\n" $(strings </dev/urandom | dd bs=1 count="${1:-30}" 2>/dev/null | tr -d ' \t\n\r')
 }
 list() {
-	if [ -z "$1" ]; then
-		$(which tree) "${kanako_store_dir}/" | sed 's/\.enc//g'
-	else
-		$(which tree) "${1:-.}" | sed 's/\.enc//g'
-	fi
+    if [ -z "$(command -v tree)" ]; then
+	_die "Required dependency 'tree' not found"
+
+    fi
+    if [ -z "$1" ]; then
+	tree "${kanako_store_dir}/" | sed 's/\.enc//g'
+    else
+	tree "${1:-.}" | sed 's/\.enc//g'
+    fi
 }
 new() {
-	test -d "$1" && usage
+    [ -d "$1" ] && usage
+    tmpfile="$(mktemp)"
+    "${EDITOR:-${EDITOR:-vi}}" "${tmpfile}"
+    mkdir -p "$(dirname "$1")"
+    ${kanako_encrypt_cmd} ${kanako_encrypt_args} ${tmpfile} >${1%%.enc}.enc
+    rm ${tmpfile}
+}
+otp() {
+    if [ -z "$(command -v oathtool)" ]; then
+	_die "Required dependency 'oathtool' not found"
 
-	tmpfile="$(mktemp)"
-	"${EDITOR:-${EDITOR:-vi}}" "${tmpfile}"
-
-	mkdir -p "$(dirname "$1")"
-	${kanako_encrypt_cmd} ${kanako_encrypt_args} ${tmpfile} >${1%%.enc}.enc
-	rm ${tmpfile}
+    fi
+    totp_seed=$(view "$1" | grep 'totp: ' | head -n1 | cut -d' ' -f2)
+    if ! [ -z ${totp_seed} ]; then
+	oathtool --totp -b ${totp_seed}
+    fi
 }
 delete_directory() {
-	rm -r -I "$1"
+    rm -r -i "$1"
 }
 delete_file() {
-	rm -i "${1}${2}".enc
+    rm -i "${1}${2}".enc
 }
 usage() {
-	printf "Usage: %s [-c|-e|-g|-l|-n|-R|-r|-v [file or directory]]\n" "$0"
-	printf "The arguments for all switches are relative to \${kanako_store_dir}\n"
-	printf "which is located at %s\n" "${kanako_store_dir}"
-	exit 1
+    printf "Usage: %s [-c|-e|-g|-l|-n|-R|-r|-v [file or directory]]\n" "$0"
+    printf "The arguments for all switches are relative to \${kanako_store_dir}\n"
+    printf "which is located at %s\n" "${kanako_store_dir}"
+    exit
 }
 view() {
-	if [ -f "${1%%.enc}".enc ]; then
-		${kanako_encrypt_cmd} ${kanako_decrypt_args} "${1%%.enc}".enc
-	elif [ -d "${1:-.}" ]; then
-		list "${1:-.}"
-	else
-		usage
-	fi
+    if [ -f "${1%%.enc}".enc ]; then
+	${kanako_encrypt_cmd} ${kanako_decrypt_args} "${1%%.enc}".enc
+    elif [ -d "${1:-.}" ]; then
+	list "${1:-.}"
+    else
+	usage
+    fi
 }
 
 case $1 in
--c) copy $2 ;;
--e) edit $2 ;;
--g) gen $2 ;;
--l) list $2 ;;
--n) new $2 ;;
--R) delete_directory $2 ;;
--r) delete_file $2 ;;
--v) view $2 ;;
-*) usage ;;
+    -c) copy $2 ;;
+    -e) edit $2 ;;
+    -g) gen $2 ;;
+    -l) list $2 ;;
+    -n) new $2 ;;
+    -o) otp $2 ;;
+    -R) delete_directory $2 ;;
+    -r) delete_file $2 ;;
+    -v) view $2 ;;
+    *) usage ;;
 esac
Index: trunk/kanako.conf.mdoc
===================================================================
--- trunk/kanako.conf.mdoc	(revision 23)
+++ trunk/kanako.conf.mdoc	(revision 24)
@@ -1,10 +1,9 @@
-.Dd $Mdocdate$
+.Dd May 14, 2025
 .Dt KANAKO.CONF 5
 .Os
 .Sh NAME
 .Nm kanako.conf
-.Nd configuration file for
-.Xr kanako 1
-.Sh FIELDS
+.Nd configuration file for kanako
+.Sh CONFIGURATION FIELDS
 .Bl -tag -width 11n -compact
 .It kanako_clip_cmd
@@ -27,4 +26,3 @@
 .Xr kanako 1
 .Sh AUTHORS
-.An Izuru Yakumo Aq Mt yakumo.izuru@chaotic.ninja
-  
+.An Izuru Yakumo Aq Mt eternal-servant@yakumo.dev
Index: trunk/kanako.mdoc
===================================================================
--- trunk/kanako.mdoc	(revision 23)
+++ trunk/kanako.mdoc	(revision 24)
@@ -1,3 +1,3 @@
-.Dd $Mdocdate$
+.Dd May 14, 2025
 .Dt KANAKO 1
 .Os
@@ -7,5 +7,5 @@
 .Sh SYNOPSIS
 .Nm
-.Op Fl ceglnrRv
+.Op Fl ceglnorRv
 .Op Ar args
 .Sh DESCRIPTION
@@ -14,8 +14,7 @@
 supporting multiple backends
 and having more add-ons for
-use with it. However, it
-may be pretty unstable compared
-to said tool, but should work
-well for its purpose.
+use with it.
+However, it may be pretty unstable compared
+to said tool, but should work well for its purpose.
 .Sh USAGE
 .Bl -tag -width 11n -compact
@@ -30,4 +29,6 @@
 .It -l
 List all entries
+.It -o
+Obtain a one time password
 .It -r
 Remove single entries,
@@ -38,13 +39,13 @@
 .It -v
 View an entry
-.Bl
 .El
 .Sh SEE ALSO
-.Xr age 1
-.Xr cream 1
-.Xr gpg 1
+.Xr age 1 ,
+.Xr cream 1 ,
+.Xr gpg 1 ,
+.Xr oathtool 1 ,
+.Xr pwgen 1 ,
+.Xr salty 1 ,
 .Xr kanako.conf 5
-.Xr pwgen 1
-.Xr salty 1
 .Rs
 .%A Rob Pike
@@ -54,8 +55,3 @@
 .Re
 .Sh AUTHORS
-.An Izuru Yakumo Aq Mt yakumo.izuru@chaotic.ninja
-.Sh BUGS
-Under the Wayland display protocol,
-the clipboard subcommand won't work,
-due to 'Permission denied'. On X11
-it works just fine.
+.An Izuru Yakumo Aq Mt eternal-servant@yakumo.dev
