I've had this function/alias in my {bash,zsh}rc files file years:
function rm {
for file in $@; do
mv -t ~/.local/share/Trash/files/ -- "${file}"
cat < ~/.local/share/Trash/info/"$(basename ${file})".trashinfo
[Trash Info]
Path=$(realpath "${file}")
DeletionDate=$(date "+%FT%T")
FROG
done
}
I use trash-cli [0] for that.