1 个不稳定版本
0.1.0 | 2024 年 6 月 1 日 |
---|
#2697 in 命令行工具
235KB
5.5K SLoC
Todo.txt TUI
Todo.txt TUI 是一个高度可定制的基于终端的应用程序,用于管理您的待办任务。它遵循 todo.txt 格式,并提供广泛的配置选项以满足您的需求。请注意,该应用程序可能存在一些虫虫,因为它仍在开发中,因此您的反馈和错误报告将非常受欢迎。
安装
请注意,此 Todo.txt TUI 应用程序旨在个人使用,并未在 Rust 的 docs.rs 或 crates.io 上发布。因此,必须手动安装。
- 克隆仓库或下载最新版本。
- 使用 Rust 的包管理器 Cargo 构建应用程序。
cargo build --release
将可执行文件从目标目录复制到系统 PATH 包含的目录。
cp target/release/todo-tui /usr/local/bin/
基本用法
Todo.txt TUI 为管理任务提供了一种简单且可定制的界面。以下是一些基本用法和快捷键,您可以在配置文件中根据个人喜好进行配置
j
: 在列表中向下移动。k
: 在列表中向上移动。g
: 跳转到列表的第一个项目。G
: 跳转到列表的最后一个项目。Enter
: 选择一个项目。U
: 将选定的项目向上移动。D
: 将选定的项目向下移动。x
: 删除选定的项目。d
: 在待办事项和已完成列表之间移动任务。I
: 输入一个新的任务。E
: 编辑选定的项目。J
: 移动到当前小部件下的小部件。K
: 移动到当前小部件上方的部件。H
: 移动到当前小部件左侧的部件。L
: 移动到当前小部件右侧的部件。q
:退出应用程序。
配置
在Todo.txt TUI中,您可以自定义各种设置以根据您的喜好调整应用程序。Todo.txt TUI使用位于~/.config/todo-tui.toml
的TOML配置文件进行自定义。以下是部分关键设置的概述
颜色设置
在Todo.txt TUI中,您可以自定义各种元素的颜色和文本样式。您可以选择设置前景色(fg
)和背景色(bg
),并应用文本修饰符以进行样式设置。颜色可以使用颜色名称、RGB值或终端索引来定义。
您可以对Todo.txt TUI中的文本应用文本修饰符以更改文本样式。可用的文本修饰符包括
Bold
:将粗体样式应用到文本。Italic
:将斜体样式应用到文本。Underlined
:将下划线样式应用到文本。
以下是一个配置Todo.txt TUI应用程序中项目todo-tui
的自定义颜色和文本修饰符的示例
[custom_category_style."+todo-tui"]
fg = [255, 0, 0] # Set foreground color to red using RGB values
bg = "Black" # Set background color to black
modifiers = "Italic" # Apply italic styling
排序选项
您可以使用pending_sort
和done_sort
选项来指定如何对任务进行排序。可用的排序选项有
None
:不进行特定排序;任务按添加顺序显示。Reverse
:反转任务的顺序。Priority
:按优先级排序任务。Alphanumeric
:按字母数字顺序排序任务。AlphanumericReverse
:按反向字母数字顺序排序任务。
预览格式
使用preview_format
设置,您可以定义任务预览的格式。您可以使用括号中的占位符({
和}
)来显示任务信息。以下是可用的占位符及其对应值
{n}
:待办事项数量。{N}
:已完成任务数量。{}
:任务主题。{p}
:任务优先级。{c}
:任务创建日期。{f}
:任务完成日期。{F}
:任务完成状态(true或false)。{t}
:任务阈值日期。{d}
:任务截止日期。{C}
:任务上下文。{P}
:任务项目。{H}
:任务标签。
自定义布局
布局设置允许您使用区块 []
为应用程序定义自定义布局。您可以选择将区块的方向设置为 Direction: 竖直
或 Direction: 水平
,并指定每个区块的大小为百分比或值。在这些区块内,您可以包含各种小部件,例如
List
:主要任务列表。Preview
:任务预览部分。Done
:已完成任务列表。Projects
:项目列表。Contexts
:情境列表。Hashtags
:标签列表。
以下是一个自定义布局配置示例
[
Direction: Horizontal,
Size: 50%,
[
List: 50%,
Preview,
],
[ Direction: Vertical,
Done,
[
Contexts,
Projects,
],
],
]
此示例创建了一个水平分割的布局,其中列表占用50%的宽度,预览占用剩余空间。在右侧,有一个垂直分割,包括已完成任务、情境和项目列表。
请随意调整这些设置,以创建一个符合您工作流程和偏好的 Todo.txt TUI 界面。
示例配置文件
具有默认值的配置文件。每个设置都有描述。
# The active color for selected items
# You can set the color by name ("Blue"), by RGB values ([255, 0, 0]), or by index in the terminal (fg.Index = 5).
active_color = "Red"
# The initial widget to be displayed
init_widget = "List"
# The window title
window_title = "Todo.txt tui"
# The path to your todo.txt file
todo_path = "/home/jirka/todo.txt"
# The path to your archive.txt file
# archive_path =
# Wrap long lines in the preview
wrap_preview = true
# Log file path
log_file = "log.log"
# Log format (uses placeholders)
log_format = "{d} [{h({l})}] {M}: {m}{n}"
# Log level (e.g., INFO, DEBUG)
log_level = "INFO"
# Enable file watcher for auto-reloading
file_watcher = true
# Indentation level for lists
list_shift = 4
# Sorting option for pending tasks
pending_sort = "None"
# Sorting option for completed tasks
done_sort = "None"
# Preview format (uses placeholders)
preview_format = """
Pending: {n} Done: {N}
Subject: {s}
Priority: {p}
Create date: {c}
"""
# Layout configuration
layout = """
[
Direction: Horizontal,
Size: 50%,
[
List: 50%,
Preview,
],
[ Direction: Vertical,
Done,
[
Contexts,
Projects,
],
],
]
"""
# Priority-specific colors
[priority_colors.B]
fg = "Yellow"
[priority_colors.A]
fg = "Red"
[priority_colors.C]
fg = "Blue"
# Background color for categories
[category_color]
bg = "Blue"
# Background color for the active list item
[list_active_color]
bg = "LightRed"
# Background color for active pending tasks
[pending_active_color]
# Background color for active completed tasks
[done_active_color]
# Autosave duration (in seconds)
[autosave_duration]
secs = 900
nanos = 0
# List refresh rate (in seconds)
[list_refresh_rate]
secs = 5
nanos = 0
# Task keybindings
[[tasks_keybind.events]]
key = "Enter"
event = "Select"
[[tasks_keybind.events]]
event = "SwapDownItem"
key.Char = "D"
[[tasks_keybind.events]]
event = "SwapUpItem"
key.Char = "U"
[[tasks_keybind.events]]
event = "MoveItem"
key.Char = "d"
[[tasks_keybind.events]]
event = "RemoveItem"
key.Char = "x"
# Category keybindings
[[category_keybind.events]]
key = "Enter"
event = "Select"
# List keybindings
[[list_keybind.events]]
event = "ListLast"
key.Char = "G"
[[list_keybind.events]]
event = "ListFirst"
key.Char = "g"
[[list_keybind.events]]
event = "ListDown"
key.Char = "j"
[[list_keybind.events]]
event = "ListUp"
key.Char = "k"
# Window keybindings
[[window_keybind.events]]
event = "EditMode"
key.Char = "E"
[[window_keybind.events]]
event = "MoveLeft"
key.Char = "H"
[[window_keybind.events]]
event = "InsertMode"
key.Char = "I"
[[window_keybind.events]]
event = "MoveDown"
key.Char = "J"
[[window_keybind.events]]
event = "MoveUp"
key.Char = "K"
[[window_keybind.events]]
event = "MoveRight"
key.Char = "L"
[[window_keybind.events]]
event = "Save"
key.Char = "S"
[[window_keybind.events]]
event = "Quit"
key.Char = "q"
[[window_keybind.events]]
event = "Load"
key.Char = "u"
# Style for categories to filter
[category_select_style]
fg = "Green"
# Style for categories removes while filtering
[category_remove_style]
fg = "Red"
# Category style
[category_style]
fg = "DarkGray"
# Projects style
[projects_style]
# Contexts style
[contexts_style]
# Hashtags style
[hashtags_style]
# Custom category style for "todo-tui"
[custom_category_style."+todo-tui"]
fg = "LightBlue"
反馈和错误报告
由于此应用程序仍在开发中,您的反馈将非常受重视。如果您遇到任何问题或对改进有建议,请在我的 GitHub 仓库中打开一个问题,以帮助我改进 Todo.txt TUI。
依赖关系
~11–24MB
~286K SLoC