rusty-tasks/README.md

111 lines
4.1 KiB
Markdown

# Rusty-tasks
A personal task management system built on plain text and works in your favorite editor
## The General Idea
If you've used the bullet journal technique before, think of this as the
digital, automated version of that.
- Accessible from anywhere in the terminal (TMUX, bare shell, etc.)
* works really well with a drop-down terminal
- Take advantage of your favorite editor (vim, Emacs, etc.)
- Take advantage of plain text formats (Markdown)
- Organize tasks at different levels of urgency
* Daily - Must get done now
* Weekly - Must get done in the near future
* Monthly - I'm going to forget if I don't write it down, but It's a ways away
- Every day start a new file
* files should be dated
- Carry over uncompleted tasks from the previous day
## Installing
```bash
git clone https://github.com/andrei-stoica/rusty-tasks.git
cd rusty-task cargo install --path . ```
Alternatively, there is a binary download for AMD64 Linux machines available
on the [releases page](https://github.com/andrei-stoica/rusty-tasks/releases).
Just drop that anywhere on your PATH. I recommend adding `~/bin` to your PATH
and dropping the executable there.
If you are not on an AMD64 Linux machine, you will need to build from source.
I have not tested this on other platforms, so I hesitate to provide binaries
for them.
## Usage
***WARNING:*** *This documentation can be ahead of the releases on the GH release page*
```help
Usage: rusty-tasks [OPTIONS]
Options:
-c, --config <FILE> set config file to use
-C, --current-config show current config file
-d, --date <DATE> view a specific date's file (format: YYYY-MM-DD)
-p, --previous <PREVIOUS> view previous day's notes [default: 0]
-l, --list list closest files to date
-n, --number <NUMBER> number of files to list [default: 5]
-L, --list-all list closest files to date
-v, --verbose... increase logging level
-h, --help Print help
-V, --version Print version
```
Just use `rust-task` to access today's notes file.
Use `rust-task -p <n>` to access a previous day's file where `<n>` is the number
of days back you want to go. If a file does not exist for that day, it will
default to the closest to that date. A value of 0 represents today's file.
Alternatively, use `--date` or `-d` to specify a date specifically. Preferably
in the format year-month-day, padding with zero is optional. However, if the
year, or, year and month are omitted they will be filled in with the current
date's year and month. For example, If the current date is `2024-2-30`, the
string `4` will resolve to `2024-2-4`, and `1-4` will resolve to `2024-1-4`.
Specify a custom config location with `-c`, otherwise, it will scan for a config
in the locations specified in the [config section](#config). If no config
exists it will create one. To see what config is being loaded you can use `-C`.
To list your existing notes you can use `-L`. For a subset of these use
`-l` combined with `-n` to specify the number of files to list. This will be
the closest `n` files to the specified date, which is today by default. Specify
the target date using the `-p` as mentioned earlier
## Config
The config should be located in the following locations:
- `~/.config/rusty_task.json`
- `~/.rusty_task.json`
- `$PWD/.rusty_task.json`
If there is no config it will be created at `~/.config/rusty_task.json`.
Example config:
```
{
"editor": "nano",
"sections": [
"Daily",
"Weekly",
"Monthly"
],
"notes_dir": "~/notes"
}
```
- `editor` is the executable that will be launched to modify the notes file
- `sections` is a list of Sections that will be carried over from the previous
day's notes
* only uncompleted tasks are carried over
* You can use other sections for scratch space and other journaling tasks
- `notes_dir` is the directory that stores your daily notes
* this could be set to your obsidian vault if you want it to work with
all of your other notes (I recommend checking out [obsidian.nvim](https://github.com/epwalsh/obsidian.nvim)
if you want to interact with an obsidian vault in neovim)