https://jerodsanto.net/2010/12/minimally-awesome-todos/
#FuckYeah
#my working version in ~/.bashrc
export TODO=~/.todo
export TODOARCHIVE=~/.todoarchive
function todo() { if [ $# == "0" ]; then cat $TODO; else echo "• $@" >> $TODO; fi }
# 2025-08-19T12:31:17-0700 Tue using fzf for todone selection even lazier
function todone(){
if sel="$(fzf < ~/.todo)"; then
printf '%s %s\n' "$(date -Isec)" "$sel" >> "$TODOARCHIVE"
sed -i -e "\|^$sel\$|d" $TODO;
# no argument in todone ! so no sed -i -e "/$*/d" $TODO;
# else exit with no sed execution
else
echo "No selection made, nothing archived." >&2
return 1
fi
}
# manage todos
function todofix(){
vim -O ~/.todoarchive ~/.todo
}
export TODOARCHIVE=~/.todoarchive
function todo() { if [ $# == "0" ]; then cat $TODO; else echo "• $@" >> $TODO; fi }
# 2025-08-19T12:31:17-0700 Tue using fzf for todone selection even lazier
function todone(){
if sel="$(fzf < ~/.todo)"; then
printf '%s %s\n' "$(date -Isec)" "$sel" >> "$TODOARCHIVE"
sed -i -e "\|^$sel\$|d" $TODO;
# no argument in todone ! so no sed -i -e "/$*/d" $TODO;
# else exit with no sed execution
else
echo "No selection made, nothing archived." >&2
return 1
fi
}
# manage todos
function todofix(){
vim -O ~/.todoarchive ~/.todo
}