Home

Awesome

<div align="center"> <h1>mdt</h1> <p>A simple command-line markdown todo list manager inspired by <a href="https://github.com/sjl/t">t</a></p> <img src="mdt.gif" alt="Demo" width="800"> <p> <sub> Demo GIF using <a href=https://starship.rs/>starship</a> prompt, <a href=https://github.com/kyoz/purify>purify</a> theme, <a href=https://www.jetbrains.com/lp/mono/>JetBrains Mono</a> font, along with <a href=https://nvchad.com>NvChad</a> and <a href=https://github.com/siduck/st>st</a> </sub> </p> </div>

:sparkles: Features

:package: Dependencies

:rocket: Installation

Arch Linux

paru -S mdt # or with your AUR helper of choice

macOS (Homebrew)

brew install mdt

Manually with make

# Clone the repo
git clone https://github.com/basilioss/mdt

# Change your current directory to mdt
cd mdt

# Install
sudo make install

# Update
git pull
sudo make install

# Remove
sudo make uninstall

Manually with curl

# Download
curl -L https://raw.githubusercontent.com/basilioss/mdt/main/mdt > mdt
# Make it executable
chmod +x mdt
# Move it somewhere in your $PATH
mv mdt ~/.local/bin

:gear: Configuration

OptionEnvironment VariableDescription
-d, --dirMDT_DIRPath to the tasks directory. By default the current working directory.
-i, --inboxMDT_INBOXPath to the inbox file. By default "TODO.md".
-m, --add-multipleMDT_ADD_MULTIPLE_TASKSAdd multiple tasks at once.
-u, --unite-tasksMDT_UNITE_TASKSList all tasks in the file. By default false, if tasks are separated by headings, mdt will prompt you to select one.
--colorMDT_MAIN_COLORMain color.
--promptMDT_PROMPTInput prompt character. Default is '◆'.
--cursorMDT_CURSORSelection character. Default is '➔'.
--item-widthMDT_ITEM_WIDTHTodo items width. 0 for no wrap, default is 75.
--input-widthMDT_INPUT_WIDTHInput prompt width. 0 for no wrap, default is 65.
--editorMDT_EDITOR, EDITORMarkdown file editor.
MDT_CHECKBOX_PREFIXPrefix of markdown checkboxes [ ]/[x]. Default is '-'.

Examples of using options:

# Static path to the inbox
alias mdt='mdt --dir ~/tasks --inbox ~/tasks/inbox.md'
# Dynamic path to the inbox
alias mdt='mdt --dir ~/tasks --inbox ~/tasks/"$(date -I).md"'

Examples of using environment variables:

export MDT_MAIN_COLOR='#5FAFFF'
export MDT_EDITOR='nvim -c "set nonumber"'

:keyboard: Keybindings

KeybindingDescription
↓/↑, j/k, Ctrl+j/k, Ctrl+n/pMove up/down
←/→, g/GMove top/bottom
Tab/Space/xSelect
a/ASelect/unselect all
EnterAccept