import
This commit is contained in:
248
bin/TODOlist
Executable file
248
bin/TODOlist
Executable file
@@ -0,0 +1,248 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
me=${0##*/}
|
||||||
|
CONKYDIR="$HOME/.config/conky"
|
||||||
|
CFG_FILE=~/.config/mabox/mabox-todo.conf
|
||||||
|
TODO_DIR=~/.todo
|
||||||
|
|
||||||
|
source <(grep = $CFG_FILE)
|
||||||
|
|
||||||
|
sleep .1
|
||||||
|
#notify-send.sh aaa "${0} ${1} ${me}"
|
||||||
|
# LANG
|
||||||
|
#case "$LANG" in
|
||||||
|
# pl*):;;
|
||||||
|
# es*):;;
|
||||||
|
# *):;;
|
||||||
|
#esac
|
||||||
|
#MENU
|
||||||
|
prettyname=${filename//_/ }
|
||||||
|
out+=("^sep(TODO list: <b>${prettyname}</b>)")
|
||||||
|
out+=("<big></big> Add <b>new</b> task...,mabox-todo.sh addtask && ${0} center")
|
||||||
|
|
||||||
|
out+=("^sep()")
|
||||||
|
|
||||||
|
s=0
|
||||||
|
i=0
|
||||||
|
dirty=0
|
||||||
|
|
||||||
|
# Dostępne pliki
|
||||||
|
readarray -t files < <(mabox-todo.sh listfiles)
|
||||||
|
readarray -t contexts < <(mabox-todo.sh listcon)
|
||||||
|
readarray -t projects < <(mabox-todo.sh listproj)
|
||||||
|
|
||||||
|
# Lista zadań
|
||||||
|
while read -r line
|
||||||
|
do
|
||||||
|
[[ "$line" = "--" ]] && s=1 && continue;
|
||||||
|
((i++))
|
||||||
|
if [ "$s" = 1 ];then
|
||||||
|
out+=("^sep(<i>${line}</i>)")
|
||||||
|
else
|
||||||
|
#notify-send.sh MSG "${line}"
|
||||||
|
linia="${line}"
|
||||||
|
number=${linia#*>}
|
||||||
|
number=${number%%<*}
|
||||||
|
#notify-send.sh "${number}" "${line}"
|
||||||
|
#number=${line:21:2}
|
||||||
|
#notify-send.sh "${number}" "${line}"
|
||||||
|
#notify-send.sh "${number}" "${line:32:1}"
|
||||||
|
|
||||||
|
pri="([A-Z])"
|
||||||
|
line=${line/\<\/span\>\<\/span\>/\<\/span\>}
|
||||||
|
line=${line/\<\/span\> \<\/span\>/\<\/span\>}
|
||||||
|
line=${line/&/&}
|
||||||
|
|
||||||
|
linia2="${line}"
|
||||||
|
iks=${linia#*span>} # pozbywamy sie początku
|
||||||
|
iks=${iks%%<*} # i reszty
|
||||||
|
[[ "$iks" == " x " ]] && ((dirty++)) #notify-send.sh "iks" "${iks}"
|
||||||
|
#[[ "${line:32:1}" = "x" || "${line:31:1}" = "x" ]] && ((dirty++))# && notify-send.sh "AAA" "<tt>${line}</tt>"
|
||||||
|
[[ "${dirty}" == "1" ]] && out+=("^sep(done tasks)")
|
||||||
|
out+=("\"\"\"${line}\"\"\",^checkout(${i})")
|
||||||
|
out2+=("^tag(${i})")
|
||||||
|
out2+=("^sep(TODO: <b>${prettyname}</b>)")
|
||||||
|
out2+=("^sep(Task: ${number})")
|
||||||
|
#out2+=(" <small>back to list</small>,^back()")
|
||||||
|
out2+=("^sep()")
|
||||||
|
out2+=("\"\"\"${line}\"\"\",geany -l ${number:-1} ${TODO_DIR}/${filename}.txt")
|
||||||
|
out2+=("^sep()")
|
||||||
|
if [ "$dirty" = "0" ];then
|
||||||
|
if [ -z "${line##*$pri*}" ]; then
|
||||||
|
out2+=(" Deprioritize,mabox-todo.sh dp ${number};${0} center")
|
||||||
|
fi
|
||||||
|
out2+=(" <b>(A)</b> priority,mabox-todo.sh p ${number} A;${0} center")
|
||||||
|
out2+=(" <b>(B)</b> priority,mabox-todo.sh p ${number} B;${0} center")
|
||||||
|
out2+=(" <b>(C)</b> priority,mabox-todo.sh p ${number} C;${0} center")
|
||||||
|
out2+=("^sep()")
|
||||||
|
out2+=("<big></big> Mark as done,mabox-todo.sh -a -f -n done ${number};${0} center" "^sep()")
|
||||||
|
fi
|
||||||
|
out2+=("<big></big> Edit task,geany -l ${number:-1} ${TODO_DIR}/${filename}.txt")
|
||||||
|
|
||||||
|
if [ "${#files[@]}" -gt "1" ];then
|
||||||
|
out2+=("<big></big> Move to...,^checkout(file${number})")
|
||||||
|
out3+=("^tag(file${number})")
|
||||||
|
out3+=("^sep(Move task to...)")
|
||||||
|
for file in "${files[@]}"
|
||||||
|
do
|
||||||
|
prettyfile=${file//_/ }
|
||||||
|
[[ "$file" != "$filename" ]] && out3+=("${prettyfile},mabox-todo.sh -f -n move ${number} ${file}.txt ${filename}.txt;${0} center")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
#out2+=(" <small>back to list</small>,^back()")
|
||||||
|
out2+=("^sep()")
|
||||||
|
out2+=("<big></big> Delete task,mabox-todo.sh -f -n del ${number};${0} center")
|
||||||
|
fi
|
||||||
|
done <<< $(mabox-todo.sh -d ~/.config/todo/config-jgmenu ls)
|
||||||
|
[[ "$dirty" > "0" ]] && out+=("<big></big> Archive (remove all done tasks),mabox-todo.sh -f archive; ${0} center" "^sep()")
|
||||||
|
|
||||||
|
|
||||||
|
out+=("<big></big> TODO List: <b>${prettyname}</b>...,^checkout(files)")
|
||||||
|
[[ -f "${TODO_DIR}/${filename}.ctb" ]] && out+=("^sep()" "<big></big> <b>Notes</b> for ${prettyname},cherrytree ${TODO_DIR}/${filename}.ctb")
|
||||||
|
out2+=("^tag(files)")
|
||||||
|
|
||||||
|
if [ "${#files[@]}" -gt "1" ];then
|
||||||
|
out2+=("^sep(Switch to todolist:)")
|
||||||
|
while read -r line
|
||||||
|
do
|
||||||
|
prettyline=${line//_/ }
|
||||||
|
tasks=$(cat ~/.todo/${line}.txt |wc -l)
|
||||||
|
if [ "$line" = "${filename}" ];then
|
||||||
|
out2+=("<big>綠</big> ${prettyline} <small><i>(${tasks} tasks)</i></small> ,${0} center")
|
||||||
|
else
|
||||||
|
out2+=("<big>祿</big> ${prettyline} <small><i>(${tasks} tasks)</i></small> ,mabox-todo.sh s $line;${0} center")
|
||||||
|
fi
|
||||||
|
done <<< $(mabox-todo.sh listfiles)
|
||||||
|
fi
|
||||||
|
|
||||||
|
out2+=("^sep(TODO List: ${prettyname})")
|
||||||
|
out2+=("<big></big> Edit <b>${prettyname}</b>.txt in Text editor,xdg-open ${TODO_DIR}/${filename}.txt")
|
||||||
|
|
||||||
|
|
||||||
|
### Cherrytree
|
||||||
|
if hash cherrytree 2>/dev/null
|
||||||
|
then
|
||||||
|
if [[ -f "${TODO_DIR}/${filename}.ctb" ]];then
|
||||||
|
out2+=("Edit notes,cherrytree ${TODO_DIR}/${filename}.ctb")
|
||||||
|
else
|
||||||
|
out2+=("<big></big> Add hierarchical notes to <b>${prettyname}</b> todolist (Cherrytree),mabox-todo.sh addnotes ${filename};${0}")
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
out2+=("<big></big> Need notes for todolist? Install Cherrytree,pamac-installer cherrytree")
|
||||||
|
fi
|
||||||
|
## Custom Menu
|
||||||
|
if [[ -f "${TODO_DIR}/${filename}.csv" ]];then
|
||||||
|
out2+=("Edit <b>${prettyname}</b> todolist custom menu,xdg-open ${TODO_DIR}/${filename}.csv")
|
||||||
|
out2+=("Delete <b>${prettyname}</b> todolist custom menu,rm -f ${TODO_DIR}/${filename}.csv;${0} center")
|
||||||
|
else
|
||||||
|
out2+=("<big></big> Add custom menu for <b>${prettyname}</b> todolist,mabox-todo.sh addmenu ${filename}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
out2+=("^sep()")
|
||||||
|
out2+=("<b></b> Create <b>New TODO List</b> (file)...,mabox-todo.sh addfile && ${0} center")
|
||||||
|
#out2+=(" ,^back()")
|
||||||
|
out2+=("^sep(Danger Zone)")
|
||||||
|
out2+=("<big></big> Delete <b>${prettyname}</b> todolist and all related files,^checkout(delproj)")
|
||||||
|
out3+=("^tag(delproj)")
|
||||||
|
out3+=("^sep(Are you sure?)")
|
||||||
|
out3+=("\"\"\"Yes, delete <b>${prettyname}</b> todolist and all files\"\"\",mabox-todo.sh removeproject ${filename};${0} center")
|
||||||
|
|
||||||
|
|
||||||
|
### for Conky only if running
|
||||||
|
out+=("^sep()")
|
||||||
|
if pgrep -f 'conky.*conky/TODOlist' 2> /dev/null;then
|
||||||
|
|
||||||
|
out+=("<big></big> Conky display settings/filter,^checkout(display)")
|
||||||
|
# DISPLAY SETTINGS SUBMENU
|
||||||
|
out2+=("^tag(display)")
|
||||||
|
out2+=("^sep(Conky settings)")
|
||||||
|
[[ "$filter" != "" ]] && out2+=("<big></big> Clear filter ($filter),mb-setvar filter= ${CFG_FILE};${0} center")
|
||||||
|
out2+=("^sep(Filter by)")
|
||||||
|
|
||||||
|
# Projects
|
||||||
|
if (( ${#projects[@]} == 0 )); then
|
||||||
|
: #empty
|
||||||
|
else
|
||||||
|
for proj in "${projects[@]}"
|
||||||
|
do
|
||||||
|
[[ "$filter" == "$proj" ]] && out2+=("<big>綠</big> <span bgcolor='#CCCCCC' fgcolor='purple'><b> ${proj} </b></span>,mb-setvar filter= ${CFG_FILE};${0} center") || out2+=("<big>祿</big> <span bgcolor='#CCCCCC' fgcolor='purple'> ${proj} </span>,mb-setvar filter=${proj} ${CFG_FILE};${0} center")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( ${#contexts[@]} == 0 )); then
|
||||||
|
: #empty
|
||||||
|
else
|
||||||
|
out2+=("^sep()")
|
||||||
|
for context in "${contexts[@]}"
|
||||||
|
do
|
||||||
|
[[ "$filter" == "$context" ]] && out2+=("<big>綠</big> <span fgcolor='green' bgcolor='#EEEEEE'><b> ${context} </b></span>,mb-setvar filter= ${CFG_FILE};${0} center") || out2+=("<big>祿</big> <span fgcolor='green' bgcolor='#EEEEEE'> ${context} </span>,mb-setvar filter=${context} ${CFG_FILE};${0} center")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
out2+=("^sep(Show/hide some elements in Conky)")
|
||||||
|
[[ "$hide_done" = "y" ]] && out2+=("<big></big> Show done tasks ,mb-setvar hide_done=n ${CFG_FILE}; ${0} center") || out2+=("<big></big> Show done tasks ,mb-setvar hide_done=y ${CFG_FILE}; ${0} center")
|
||||||
|
[[ "$hide_priority" = "y" ]] && out2+=("<big></big> (A-C) priority ,mb-setvar hide_priority=n ${CFG_FILE}; ${0} center") || out2+=("<big></big> (A-C) priority ,mb-setvar hide_priority=y ${CFG_FILE}; ${0} center")
|
||||||
|
[[ "$hide_project" = "y" ]] && out2+=("<big></big> +project,mb-setvar hide_project=n ${CFG_FILE}; ${0} center") || out2+=("<big></big> +project,mb-setvar hide_project=y ${CFG_FILE}; ${0} center")
|
||||||
|
[[ "$hide_context" = "y" ]] && out2+=("<big></big> @context,mb-setvar hide_context=n ${CFG_FILE}; ${0} center") || out2+=("<big></big> @context,mb-setvar hide_context=y ${CFG_FILE}; ${0} center")
|
||||||
|
|
||||||
|
else
|
||||||
|
out+=("Start TODOList conky widget,conkyctl startone ${HOME}/.config/conky/TODOlist_mbcolor.conkyrc;${0}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
out+=("^sep()")
|
||||||
|
|
||||||
|
out+=("<big></big> About and Help,${0} center")
|
||||||
|
#out+=(" CLI usage Help,^term(mabox-todo.sh help)")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Custom COMMANDS from CSV file
|
||||||
|
if [ -f ${TODO_DIR}/${filename}.csv ]; then
|
||||||
|
LINES=$(grep -Ev "^#|^$" ${TODO_DIR}/${filename}.csv|wc -l)
|
||||||
|
if [ ${LINES} != 0 ]; then
|
||||||
|
out+=("^sep(Custom commands for <b>${prettyname}</b> todolist)")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
source /usr/share/mb-jgtools/pipemenu-standalone.cfg
|
||||||
|
source "$HOME/.config/mabox/mabox.conf"
|
||||||
|
CONFIG_FILE=$(mktemp)
|
||||||
|
MENU_ITEMS=$(mktemp)
|
||||||
|
trap "rm -f ${CONFIG_FILE} ${MENU_ITEMS}" EXIT
|
||||||
|
POSITION_MODE=center
|
||||||
|
CENTER=""
|
||||||
|
if [ "$1" = "center" ]; then
|
||||||
|
POSITION_MODE="center"
|
||||||
|
fi
|
||||||
|
MENU_HALIGN="center"
|
||||||
|
MENU_VALIGN="top"
|
||||||
|
menu_margin_x=90
|
||||||
|
MENU_MARGIN_Y=90
|
||||||
|
HIDE_BACK_ITEMS=1
|
||||||
|
MENU_PADDING_TOP=${jgtools_padding:-0}
|
||||||
|
JGWIDTH=180
|
||||||
|
TABS=90
|
||||||
|
jgmenu_icon_size=0
|
||||||
|
menu_font_size=11
|
||||||
|
jgmenu_font="Noto Sans 11"
|
||||||
|
jgtools_border=12
|
||||||
|
jgtools_padding=12
|
||||||
|
|
||||||
|
mkconfigfile
|
||||||
|
echo menu_height_mode=dynamic >> ${CONFIG_FILE}
|
||||||
|
echo hide_back_items=0 >> ${CONFIG_FILE}
|
||||||
|
|
||||||
|
cat <<EOF > ${MENU_ITEMS}
|
||||||
|
$(printf '%s\n' "${out[@]}")
|
||||||
|
. ${TODO_DIR}/${filename}.csv
|
||||||
|
$(printf '%s\n' "${out2[@]}")
|
||||||
|
$(printf '%s\n' "${out3[@]}")
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat "${MENU_ITEMS}"
|
||||||
|
#cat /home/napcok/.config/conky/menuscripts/TODOtxt.csv
|
||||||
|
jgmenu --config-file=${CONFIG_FILE} --csv-file=${MENU_ITEMS} 2>/dev/null
|
||||||
164
bin/mabox-todo.sh
Executable file
164
bin/mabox-todo.sh
Executable file
@@ -0,0 +1,164 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# mabox-todo.sh - conky widget + menus to interact with todo.sh
|
||||||
|
|
||||||
|
|
||||||
|
# Config file
|
||||||
|
CFG_FILE=~/.config/mabox/mabox-todo.conf
|
||||||
|
if [ ! -f "$CFG_FILE" ];then
|
||||||
|
cat <<EOF > ${CFG_FILE}
|
||||||
|
# Currently active filename with tasks without .txt extension
|
||||||
|
filename=todo
|
||||||
|
# Filter by: +project_name or @context_name
|
||||||
|
filter=
|
||||||
|
# Display: project names (-+), context names (-@), priority labels (-P)
|
||||||
|
hide_project=
|
||||||
|
hide_context=
|
||||||
|
hide_priority=
|
||||||
|
hide_done=y
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
source <(grep = $CFG_FILE)
|
||||||
|
|
||||||
|
|
||||||
|
TODO_DIR=~/.todo
|
||||||
|
TODO_NAME="$filename"
|
||||||
|
|
||||||
|
export TODO_FILE="$TODO_DIR/${TODO_NAME}.txt"
|
||||||
|
export DONE_FILE="$TODO_DIR/done_${TODO_NAME}.txt"
|
||||||
|
export REPORT_FILE="$TODO_DIR/report_${TODO_NAME}.txt"
|
||||||
|
|
||||||
|
to_conky(){
|
||||||
|
action=${action:-ls}
|
||||||
|
filter=${filter:-}
|
||||||
|
filterlabel=${filter:-none}
|
||||||
|
prettyname=${filename//_/ }
|
||||||
|
[[ "$hide_project" == "y" ]] && options+=("-+")
|
||||||
|
[[ "$hide_context" == "y" ]] && options+=("-@")
|
||||||
|
[[ "$hide_priority" == "y" ]] && options+=("-P")
|
||||||
|
|
||||||
|
#header="Project:$filename \${alignc}TODO.txt (click me!)\${alignr}Filter:\${voffset 8}"
|
||||||
|
header="\${color0}\${alignc}TODO List
|
||||||
|
\${alignc}${prettyname}\${alignr}#[filter: $filterlabel]
|
||||||
|
\${voffset 8}"
|
||||||
|
#declare -a cmd=(todo.sh ${options[@]} -d ~/.config/todo/config-conky ${action} ${filter})
|
||||||
|
#out+=$(${cmd[@]})
|
||||||
|
if [ "${hide_done}" == "y" ];then
|
||||||
|
out+=$(todo.sh ${options[@]} -d ~/.config/todo/config-conky ${action} -'[0-9] x ' ${filter})
|
||||||
|
else
|
||||||
|
out+=$(todo.sh ${options[@]} -d ~/.config/todo/config-conky ${action} ${filter})
|
||||||
|
fi
|
||||||
|
printf "${header}\n"
|
||||||
|
printf '%s\n' "${out[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
listfiles(){
|
||||||
|
shopt -s extglob
|
||||||
|
allfiles=($TODO_DIR/*.txt)
|
||||||
|
for entry in "${allfiles[@]}"
|
||||||
|
do
|
||||||
|
filename="${entry##*/}"
|
||||||
|
name="${filename%.*}"
|
||||||
|
[[ "$name" =~ ^done ||"$name" =~ ^report ]] && : || echo $name
|
||||||
|
done
|
||||||
|
}
|
||||||
|
switchfile(){
|
||||||
|
if [ "$1" = "" ];then
|
||||||
|
echo "Missing argument. Specify one of:"
|
||||||
|
listfiles
|
||||||
|
else
|
||||||
|
names=($(listfiles))
|
||||||
|
if [[ " ${names[*]} " =~ [[:space:]]${1}[[:space:]] ]]; then
|
||||||
|
# whatever you want to do when array contains value
|
||||||
|
mb-setvar filename=${1} ${CFG_FILE}
|
||||||
|
clearfilter
|
||||||
|
else
|
||||||
|
echo "Wrong file. Use one of: ${names[@]}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
filter(){
|
||||||
|
mb-setvar filter="${1}" ${CFG_FILE}
|
||||||
|
}
|
||||||
|
clearfilter(){
|
||||||
|
sd "filter.*$" "filter=" ${CFG_FILE}
|
||||||
|
}
|
||||||
|
addtask(){
|
||||||
|
task=$(yad --width=400 --center --border=40 --undecorated --no-buttons --close-on-unfocus --text-align=center --text "<big><b>Add new task...</b></big>\n <b>Enter</b> - add | <b>Esc</b> - abort" --entry --entry-text="Task description +Projest @Context" --ricon=gtk-clear)
|
||||||
|
if [ ! -z "${task}" ];then
|
||||||
|
#notify-send.sh "okej" "${task}"
|
||||||
|
pass_to_todo_sh add "${task}"
|
||||||
|
else
|
||||||
|
:
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
addfile(){
|
||||||
|
file=$(yad --skip-taskbar --width=400 --center --border=40 --undecorated --no-buttons --text-align=center --text "Add new TODO list..." --entry --entry-text="List name" --ricon=gtk-clear)
|
||||||
|
if [ ! -z "${file}" ];then
|
||||||
|
#Remove spaces
|
||||||
|
file=${file// /_}
|
||||||
|
file=${file%.*}
|
||||||
|
if [ -f "$HOME/.todo/${file}.txt" ];then
|
||||||
|
notify-send.sh "Wrong project name!" "Project ${file} already exist!"
|
||||||
|
else
|
||||||
|
touch "$HOME/.todo/${file}.txt"
|
||||||
|
switchfile "${file}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
addmenu(){
|
||||||
|
cat <<EOF > ${TODO_DIR}/${1}.csv
|
||||||
|
### Custom menu for TODO list: ${1}
|
||||||
|
### Syntax (comma separated):
|
||||||
|
### LABEL,command
|
||||||
|
### Example commands - modify to your needs, uncomment or write your own
|
||||||
|
##
|
||||||
|
# Browse files,^pipe(jgbrowser ~/Projects/)
|
||||||
|
# Open project in Geany,geany ~/projects/${1}.geany
|
||||||
|
EOF
|
||||||
|
xdg-open ${TODO_DIR}/${1}.csv
|
||||||
|
}
|
||||||
|
addnotes(){
|
||||||
|
#notify-send.sh "filename" "${1}"
|
||||||
|
CHERRYFILE=/usr/share/mabox-todolist/empty.ctb
|
||||||
|
cp "${CHERRYFILE}" "${TODO_DIR}/${1}.ctb"
|
||||||
|
cherrytree "${TODO_DIR}/${1}.ctb"
|
||||||
|
}
|
||||||
|
|
||||||
|
removeproject() {
|
||||||
|
rm -f "$HOME/.todo/${1}.txt"
|
||||||
|
rm -f "$HOME/.todo/${1}.txt.bak"
|
||||||
|
rm -f "$HOME/.todo/done_${1}.txt"
|
||||||
|
rm -f "$HOME/.todo/report_${1}.txt"
|
||||||
|
# maybe also csv file and cherrytree ctb
|
||||||
|
switchfile todo
|
||||||
|
}
|
||||||
|
|
||||||
|
pass_to_todo_sh(){
|
||||||
|
todo.sh "$@"
|
||||||
|
}
|
||||||
|
init() {
|
||||||
|
mkdir ~/.config/todo
|
||||||
|
rsync -a /usr/share/mabox-todolist/confi* $HOME/.config/todo/
|
||||||
|
|
||||||
|
rsync -a /usr/share/mabox-todolist/TODOlist_mbcolor.conkyrc $HOME/.config/conky/
|
||||||
|
rsync -a /usr/share/mabox-todolist/TODOlist.csv $HOME/.config/conky/menuscripts/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
"") to_conky;;
|
||||||
|
init|-i)init;;
|
||||||
|
listfiles|l)listfiles;; #list task files
|
||||||
|
switchfile|s)switchfile "$2";; #switch to tasks file
|
||||||
|
filter)filter "$2";;
|
||||||
|
clearfilter) clearfilter;;
|
||||||
|
addtask)addtask;;
|
||||||
|
addfile)addfile;;
|
||||||
|
addmenu)addmenu "$2";;
|
||||||
|
addnotes)addnotes "$2";;
|
||||||
|
removeproject) removeproject "$2";;
|
||||||
|
*)pass_to_todo_sh "$@";;
|
||||||
|
esac
|
||||||
11
share/applications/mabox-todolist.desktop
Normal file
11
share/applications/mabox-todolist.desktop
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Name=TODO List Menu
|
||||||
|
Comment=TODO List Dynamic Menu
|
||||||
|
Keywords=
|
||||||
|
StartupNotify=false
|
||||||
|
Icon=task-due
|
||||||
|
Exec=TODOlist
|
||||||
|
Categories=Accesories;
|
||||||
|
#NoDisplay=true
|
||||||
1
share/mabox-todolist/TODOlist.csv
Normal file
1
share/mabox-todolist/TODOlist.csv
Normal file
@@ -0,0 +1 @@
|
|||||||
|
TODO List,TODOlist
|
||||||
|
74
share/mabox-todolist/TODOlist_mbcolor.conkyrc
Normal file
74
share/mabox-todolist/TODOlist_mbcolor.conkyrc
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
conky.config = {
|
||||||
|
-- WINDOW
|
||||||
|
own_window = true,
|
||||||
|
own_window_type = 'desktop',
|
||||||
|
own_window_transparent = false,
|
||||||
|
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
|
||||||
|
own_window_colour = '#142c2c',
|
||||||
|
own_window_class = 'Conky',
|
||||||
|
own_window_title = 'Conky',
|
||||||
|
|
||||||
|
alignment = 'middle_left',
|
||||||
|
gap_x = 30,
|
||||||
|
gap_y = 0,
|
||||||
|
minimum_width = 200,
|
||||||
|
|
||||||
|
-- FONTS
|
||||||
|
use_xft = true,
|
||||||
|
font = 'Droid Sans:size=11',
|
||||||
|
xftalpha = 1,
|
||||||
|
override_utf8_locale = true,
|
||||||
|
|
||||||
|
-- COLORS
|
||||||
|
draw_shades = true,
|
||||||
|
default_shade_color = '#000000',
|
||||||
|
draw_outline = false,
|
||||||
|
default_outline_color = '#222222',
|
||||||
|
|
||||||
|
default_color = '#F8F8FF',
|
||||||
|
color0 = '#accdc7',
|
||||||
|
color1 = '#309552',
|
||||||
|
color2 = '#E8CB2D',
|
||||||
|
|
||||||
|
|
||||||
|
-- BORDERS
|
||||||
|
draw_borders = true,
|
||||||
|
-- Stippled borders?
|
||||||
|
stippled_borders = 0,
|
||||||
|
-- border margins
|
||||||
|
border_inner_margin = 15,
|
||||||
|
border_outer_margin = 1,
|
||||||
|
-- border width
|
||||||
|
border_width = 2,
|
||||||
|
|
||||||
|
-- MISC
|
||||||
|
-- Boolean value, if true, Conky will be forked to background when started.
|
||||||
|
background = true,
|
||||||
|
|
||||||
|
-- Adds spaces around certain objects to stop them from moving other things
|
||||||
|
-- around, this only helps if you are using a mono font
|
||||||
|
-- Options: right, left or none
|
||||||
|
use_spacer = 'none',
|
||||||
|
|
||||||
|
-- Subtract (file system) buffers from used memory?
|
||||||
|
no_buffers = true,
|
||||||
|
|
||||||
|
-- Imlib2 image cache size, in bytes. Default 4MiB Increase this value if you use
|
||||||
|
-- $image lots. Set to 0 to disable the image cache.
|
||||||
|
imlib_cache_size = 0,
|
||||||
|
|
||||||
|
-- Use the Xdbe extension? (eliminates flicker)
|
||||||
|
-- It is highly recommended to use own window with this one
|
||||||
|
-- so double buffer won't be so big.
|
||||||
|
double_buffer = true,
|
||||||
|
update_interval = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
conky.text = [[
|
||||||
|
#${execpi 30 todo.sh -d ~/.config/todo/config-conky ls}
|
||||||
|
${execpi 3 mabox-todo.sh}
|
||||||
|
#${image ~/.config/conky/images/test.png -p 0,0}
|
||||||
|
#${image ~/.config/conky/images/test.png -p 400,0}
|
||||||
|
]];
|
||||||
|
|
||||||
|
|
||||||
96
share/mabox-todolist/config
Normal file
96
share/mabox-todolist/config
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
# === EDIT FILE LOCATIONS BELOW ===
|
||||||
|
|
||||||
|
# Your todo.txt directory (this should be an absolute path)
|
||||||
|
#export TODO_DIR="/Users/gina/Documents/todo"
|
||||||
|
export TODO_DIR=~/.todo
|
||||||
|
|
||||||
|
# Your todo/done/report.txt locations
|
||||||
|
### export TODO_FILE="$TODO_DIR/todo.txt"
|
||||||
|
### export DONE_FILE="$TODO_DIR/done.txt"
|
||||||
|
### export REPORT_FILE="$TODO_DIR/report.txt"
|
||||||
|
|
||||||
|
# Mabox's modification - allows multiple todo files
|
||||||
|
: ${TODO_FILE:-"$TODO_DIR/todo.txt"}; export TODO_FILE
|
||||||
|
: ${DONE_FILE:-"$TODO_DIR/done.txt"}; export DONE_FILE
|
||||||
|
: ${REPORT_FILE:-"$TODO_DIR/report.txt"}; export REPORT_FILE
|
||||||
|
|
||||||
|
# You can customize your actions directory location
|
||||||
|
#export TODO_ACTIONS_DIR="$HOME/.todo.actions.d"
|
||||||
|
|
||||||
|
# == EDIT FILE LOCATIONS ABOVE ===
|
||||||
|
|
||||||
|
# === COLOR MAP ===
|
||||||
|
|
||||||
|
## Text coloring and formatting is done by inserting ANSI escape codes.
|
||||||
|
## If you have re-mapped your color codes, or use the todo.txt
|
||||||
|
## output in another output system (like Conky), you may need to
|
||||||
|
## over-ride by uncommenting and editing these defaults.
|
||||||
|
## If you change any of these here, you also need to uncomment
|
||||||
|
## the defaults in the COLORS section below. Otherwise, todo.txt
|
||||||
|
## will still use the defaults!
|
||||||
|
|
||||||
|
export BLACK='\\033[0;30m'
|
||||||
|
export RED='\\033[0;31m'
|
||||||
|
export GREEN='\\033[0;32m'
|
||||||
|
export BROWN='\\033[0;33m'
|
||||||
|
export BLUE='\\033[0;34m'
|
||||||
|
export PURPLE='\\033[0;35m'
|
||||||
|
export CYAN='\\033[0;36m'
|
||||||
|
export LIGHT_GREY='\\033[0;37m'
|
||||||
|
export DARK_GREY='\\033[1;30m'
|
||||||
|
export LIGHT_RED='\\033[1;31m'
|
||||||
|
export LIGHT_GREEN='\\033[1;32m'
|
||||||
|
export YELLOW='\\033[1;33m'
|
||||||
|
export LIGHT_BLUE='\\033[1;34m'
|
||||||
|
export LIGHT_PURPLE='\\033[1;35m'
|
||||||
|
export LIGHT_CYAN='\\033[1;36m'
|
||||||
|
export WHITE='\\033[1;37m'
|
||||||
|
export DEFAULT='\\033[0m'
|
||||||
|
|
||||||
|
# === COLORS ===
|
||||||
|
|
||||||
|
## Uncomment and edit to override these defaults.
|
||||||
|
## Reference the constants from the color map above,
|
||||||
|
## or use $NONE to disable highlighting.
|
||||||
|
#
|
||||||
|
# Priorities can be any upper-case letter.
|
||||||
|
# A,B,C are highlighted; you can add coloring for more.
|
||||||
|
#
|
||||||
|
export PRI_A=$YELLOW # color for A priority
|
||||||
|
export PRI_B=$GREEN # color for B priority
|
||||||
|
export PRI_C=$LIGHT_BLUE # color for C priority
|
||||||
|
# export PRI_D=... # define your own
|
||||||
|
export PRI_X=$WHITE # color unless explicitly defined
|
||||||
|
|
||||||
|
# There is highlighting for tasks that have been done,
|
||||||
|
# but haven't been archived yet.
|
||||||
|
#
|
||||||
|
export COLOR_DONE=$LIGHT_GREY
|
||||||
|
|
||||||
|
# There is highlighting for projects, contexts, dates, and item numbers.
|
||||||
|
#
|
||||||
|
export COLOR_PROJECT=$RED
|
||||||
|
export COLOR_CONTEXT=$GREEN
|
||||||
|
export COLOR_DATE=$BLUE
|
||||||
|
export COLOR_NUMBER=$LIGHT_GREY
|
||||||
|
|
||||||
|
# There is highlighting for metadata key:value pairs e.g.
|
||||||
|
# DUE:2006-08-01 or note:MYNOTE
|
||||||
|
#
|
||||||
|
export COLOR_META=$CYAN
|
||||||
|
|
||||||
|
# === BEHAVIOR ===
|
||||||
|
|
||||||
|
## customize list output
|
||||||
|
#
|
||||||
|
# TODOTXT_SORT_COMMAND will filter after line numbers are
|
||||||
|
# inserted, but before colorization, and before hiding of
|
||||||
|
# priority, context, and project.
|
||||||
|
#
|
||||||
|
# export TODOTXT_SORT_COMMAND='env LC_COLLATE=C sort -f -k2'
|
||||||
|
|
||||||
|
# TODOTXT_FINAL_FILTER will filter list output after colorization,
|
||||||
|
# priority hiding, context hiding, and project hiding. That is,
|
||||||
|
# just before the list output is displayed.
|
||||||
|
#
|
||||||
|
# export TODOTXT_FINAL_FILTER='cat'
|
||||||
53
share/mabox-todolist/config-conky
Normal file
53
share/mabox-todolist/config-conky
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
export TODO_DIR=~/.todo
|
||||||
|
|
||||||
|
# Your todo/done/report.txt locations
|
||||||
|
### export TODO_FILE="$TODO_DIR/todo.txt"
|
||||||
|
### export DONE_FILE="$TODO_DIR/done.txt"
|
||||||
|
### export REPORT_FILE="$TODO_DIR/report.txt"
|
||||||
|
|
||||||
|
# Mabox's modification - allows multiple todo files
|
||||||
|
: ${TODO_FILE:-"$TODO_DIR/todo.txt"}; export TODO_FILE
|
||||||
|
: ${DONE_FILE:-"$TODO_DIR/done.txt"}; export DONE_FILE
|
||||||
|
: ${REPORT_FILE:-"$TODO_DIR/report.txt"}; export REPORT_FILE
|
||||||
|
|
||||||
|
# todo.txt configuration for Conky highlighting.
|
||||||
|
export BLACK='${color black}'
|
||||||
|
export RED='${color red}'
|
||||||
|
export GREEN='${color green}'
|
||||||
|
export BROWN='${color brown}'
|
||||||
|
export BLUE='${color blue}'
|
||||||
|
export PURPLE='${color purple}'
|
||||||
|
export CYAN='${color cyan}'
|
||||||
|
export LIGHT_GREY='${color LightGrey}'
|
||||||
|
export DARK_GREY='${color DarkGrey}'
|
||||||
|
export LIGHT_RED='${color LightRed}'
|
||||||
|
export LIGHT_GREEN='${color LightGreen}'
|
||||||
|
export YELLOW='${color yellow}'
|
||||||
|
export LIGHT_BLUE='${color LightBlue}'
|
||||||
|
export LIGHT_PURPLE='${color LightPurple}'
|
||||||
|
export LIGHT_CYAN='${color LightCyan}'
|
||||||
|
export WHITE='${color white}'
|
||||||
|
export DEFAULT='${color0}'
|
||||||
|
|
||||||
|
export PRI_A=$YELLOW # color for A priority
|
||||||
|
export PRI_B=$GREEN # color for B priority
|
||||||
|
export PRI_C=$LIGHT_BLUE # color for C priority
|
||||||
|
# export PRI_D=... # define your own
|
||||||
|
export PRI_X=$WHITE # color unless explicitly defined
|
||||||
|
|
||||||
|
# There is highlighting for tasks that have been done,
|
||||||
|
# but haven't been archived yet.
|
||||||
|
#
|
||||||
|
export COLOR_DONE=$LIGHT_GREY
|
||||||
|
|
||||||
|
# There is highlighting for projects, contexts, dates, and item numbers.
|
||||||
|
#
|
||||||
|
export COLOR_PROJECT=$RED
|
||||||
|
export COLOR_CONTEXT=$CYAN
|
||||||
|
export COLOR_DATE=$LIGHT_BLUE
|
||||||
|
export COLOR_NUMBER=$LIGHT_GREY
|
||||||
|
|
||||||
|
# There is highlighting for metadata key:value pairs e.g.
|
||||||
|
# DUE:2006-08-01 or note:MYNOTE
|
||||||
|
#
|
||||||
|
export COLOR_META=$LIGHT_RED
|
||||||
53
share/mabox-todolist/config-jgmenu
Normal file
53
share/mabox-todolist/config-jgmenu
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
export TODO_DIR=~/.todo
|
||||||
|
|
||||||
|
# Your todo/done/report.txt locations
|
||||||
|
### export TODO_FILE="$TODO_DIR/todo.txt"
|
||||||
|
### export DONE_FILE="$TODO_DIR/done.txt"
|
||||||
|
### export REPORT_FILE="$TODO_DIR/report.txt"
|
||||||
|
|
||||||
|
# Mabox's modification - allows multiple todo files
|
||||||
|
: ${TODO_FILE:-"$TODO_DIR/todo.txt"}; export TODO_FILE
|
||||||
|
: ${DONE_FILE:-"$TODO_DIR/done.txt"}; export DONE_FILE
|
||||||
|
: ${REPORT_FILE:-"$TODO_DIR/report.txt"}; export REPORT_FILE
|
||||||
|
|
||||||
|
# todo.txt configuration for Jgmenu highlighting.
|
||||||
|
export BLACK='${color black}'
|
||||||
|
export RED='${color red}'
|
||||||
|
export GREEN='${color green}'
|
||||||
|
export BROWN='${color brown}'
|
||||||
|
export BLUE='${color blue}'
|
||||||
|
export PURPLE='${color purple}'
|
||||||
|
export CYAN='${color cyan}'
|
||||||
|
export LIGHT_GREY='${color LightGrey}'
|
||||||
|
export DARK_GREY='${color DarkGrey}'
|
||||||
|
export LIGHT_RED='${color LightRed}'
|
||||||
|
export LIGHT_GREEN='${color LightGreen}'
|
||||||
|
export YELLOW='${color yellow}'
|
||||||
|
export LIGHT_BLUE='${color LightBlue}'
|
||||||
|
export LIGHT_PURPLE='${color LightPurple}'
|
||||||
|
export LIGHT_CYAN='${color LightCyan}'
|
||||||
|
export WHITE='${color white}'
|
||||||
|
export DEFAULT=" </span>"
|
||||||
|
|
||||||
|
export PRI_A='' # color for A priority
|
||||||
|
export PRI_B='' # color for B priority
|
||||||
|
export PRI_C='' # color for C priority
|
||||||
|
#export PRI_D=... # define your own
|
||||||
|
export PRI_X='' # color unless explicitly defined
|
||||||
|
|
||||||
|
# There is highlighting for tasks that have been done,
|
||||||
|
# but haven't been archived yet.
|
||||||
|
#
|
||||||
|
export COLOR_DONE=''
|
||||||
|
|
||||||
|
# There is highlighting for projects, contexts, dates, and item numbers.
|
||||||
|
#
|
||||||
|
export COLOR_PROJECT="<span bgcolor='#CCCCCC' fgcolor='red'> "
|
||||||
|
export COLOR_CONTEXT="<span fgcolor='green' bgcolor='#EEEEEE'> "
|
||||||
|
export COLOR_DATE="<span fgcolor='grey' size='small'>"
|
||||||
|
export COLOR_NUMBER="<span fgcolor='grey' size='small'>"
|
||||||
|
|
||||||
|
# There is highlighting for metadata key:value pairs e.g.
|
||||||
|
# DUE:2006-08-01 or note:MYNOTE
|
||||||
|
#
|
||||||
|
export COLOR_META="<span fgcolor='gray' style='italic'>"
|
||||||
BIN
share/mabox-todolist/empty.ctb
Normal file
BIN
share/mabox-todolist/empty.ctb
Normal file
Binary file not shown.
Reference in New Issue
Block a user