Skip to content

basilioss/mdt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8c8e47c Β· Jun 19, 2023

History

59 Commits
Mar 13, 2023
Mar 22, 2023
May 2, 2023
Jun 19, 2023
Mar 13, 2023

Repository files navigation

mdt

A simple command-line markdown todo list manager inspired by t

Demo

Demo GIF using starship prompt, purify theme, JetBrains Mono font, along with NvChad and st

✨ Features

  • Minimal set of functionality designed to finish tasks instead of organizing them.
  • Flexible, future-proof markdown file format that you can use to add additional context and notes to your tasks.
  • Nice, interactive command-line interface to quickly capture and check tasks.

πŸ“¦ Dependencies

  • POSIX-compliant shell (dash, bash, zsh etc.)
  • gum

πŸš€ 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

βš™οΈ Configuration

Option Environment Variable Description
-d, --dir MDT_DIR Path to the tasks directory. By default the current working directory.
-i, --inbox MDT_INBOX Path to the inbox file. By default "TODO.md".
-m, --add-multiple MDT_ADD_MULTIPLE_TASKS Add multiple tasks at once.
-u, --unite-tasks MDT_UNITE_TASKS List all tasks in the file. By default false, if tasks are separated by headings, mdt will prompt you to select one.
--color MDT_MAIN_COLOR Main color.
--prompt MDT_PROMPT Input prompt character. Default is 'β—†'.
--cursor MDT_CURSOR Selection character. Default is 'βž”'.
--item-width MDT_ITEM_WIDTH Todo items width. 0 for no wrap, default is 75.
--input-width MDT_INPUT_WIDTH Input prompt width. 0 for no wrap, default is 65.
--editor MDT_EDITOR, EDITOR Markdown file editor.
MDT_CHECKBOX_PREFIX Prefix 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"'

⌨️ Keybindings

Keybinding Description
↓/↑, j/k, Ctrl+j/k, Ctrl+n/p Move up/down
←/β†’, g/G Move top/bottom
Tab/Space/x Select
a/A Select/unselect all
Enter Accept