Skip to content

Configuration

Wylie Standage-Beier edited this page Dec 8, 2025 · 1 revision

Configuration

Customize TaskFlow through the configuration file.


Configuration File Location

~/.config/taskflow/config.toml

TaskFlow creates a default config on first run.


Configuration Format

TaskFlow uses TOML format:

# This is a comment

[section]
key = "value"
number = 42
boolean = true

Full Configuration Reference

# TaskFlow Configuration

[general]
# Default view on startup
default_view = "today"  # today, upcoming, all, overdue, calendar

# Show completed tasks by default
show_completed = false

# Confirm before deleting tasks
confirm_delete = true

# Date format for display
date_format = "%Y-%m-%d"  # strftime format

# Start week on (0 = Sunday, 1 = Monday)
week_starts_on = 1

[storage]
# Storage backend: json, yaml, sqlite, markdown
backend = "json"

# Custom data directory (optional)
# data_dir = "/path/to/data"

# Auto-save interval in seconds (0 = instant)
auto_save_interval = 0

[ui]
# Show sidebar by default
show_sidebar = true

# Sidebar width (characters)
sidebar_width = 20

# Show task count in sidebar
show_task_count = true

# Enable mouse support
mouse_support = true

# Show status bar
show_status_bar = true

# Animation speed (ms, 0 = disabled)
animation_speed = 50

[pomodoro]
# Work phase duration (minutes)
work_minutes = 25

# Short break duration (minutes)
short_break_minutes = 5

# Long break duration (minutes)
long_break_minutes = 15

# Cycles before long break
cycles_before_long_break = 4

# Play sound on phase end
play_sound = true

# Auto-start breaks
auto_start_breaks = true

[time_tracking]
# Round time entries to nearest (minutes, 0 = no rounding)
round_to_minutes = 0

# Idle detection threshold (minutes, 0 = disabled)
idle_threshold = 0

[notifications]
# Show overdue alert on startup
show_overdue_alert = true

# Show due today notifications
show_due_today = true

[keybindings]
# Custom keybindings (see Keybindings page)
# quit = "ctrl+q"
# new_task = "n"

[theme]
# See Themes page for color options
# Custom colors can be defined here

Common Settings

Change Default View

[general]
default_view = "upcoming"

Options: today, upcoming, all, overdue, calendar

Hide Completed Tasks

[general]
show_completed = false

Week Start Day

[general]
week_starts_on = 0  # Sunday
# week_starts_on = 1  # Monday

Change Storage Backend

[storage]
backend = "sqlite"  # json, yaml, sqlite, markdown

Custom Data Directory

[storage]
data_dir = "~/Dropbox/taskflow"

Pomodoro Settings

[pomodoro]
work_minutes = 25
short_break_minutes = 5
long_break_minutes = 15
cycles_before_long_break = 4

Shorter Sessions

[pomodoro]
work_minutes = 15
short_break_minutes = 3
long_break_minutes = 10

Longer Sessions

[pomodoro]
work_minutes = 50
short_break_minutes = 10
long_break_minutes = 30

UI Customization

Sidebar

[ui]
show_sidebar = true
sidebar_width = 25
show_task_count = true

Mouse Support

[ui]
mouse_support = true

Disable for pure keyboard workflow:

[ui]
mouse_support = false

Date Format

Use strftime format codes:

Code Meaning Example
%Y Year (4 digit) 2025
%m Month (2 digit) 12
%d Day (2 digit) 25
%b Month (abbrev) Dec
%B Month (full) December
%a Day (abbrev) Mon
%A Day (full) Monday

Examples:

[general]
date_format = "%Y-%m-%d"     # 2025-12-25
# date_format = "%b %d, %Y"  # Dec 25, 2025
# date_format = "%d/%m/%Y"   # 25/12/2025

Environment Variables

Override config settings with environment variables:

TASKFLOW_DATA_DIR=~/data taskflow
TASKFLOW_BACKEND=sqlite taskflow

Config Reload

Changes require restart to take effect:

  1. Edit config file
  2. Quit TaskFlow (q)
  3. Restart TaskFlow

Reset Configuration

Delete config file to reset to defaults:

rm ~/.config/taskflow/config.toml
taskflow  # Creates fresh config

Config Validation

TaskFlow validates config on startup. Invalid settings show warnings.


Tips

  1. Backup your config - Before major changes
  2. Start simple - Only change what you need
  3. Use comments - Document your choices
  4. Test changes - Restart to verify

See Also

Clone this wiki locally