tasknc(1)

πŸ“¦ version 2020-12, in nixos 26.05, nixpkgs unstable

πŸ’– tasknc(1) β€” the tasknc manual πŸ’–

okay so bestie, welcome to the tasknc manual ✨ this is the page for tasknc(1), and it's literally a whole vibe. by mjheagle, no cap.


🌸 NAME 🌸

tasknc β€” a ncurses wrapper around Taskwarrior, written in C 🫢

by mjheagle


✨ SYNOPSIS ✨

Usage: tasknc [option] [value]

πŸ¦‹ DESCRIPTION πŸ¦‹

tasknc is a ncurses wrapper around the Taskwarrior task manager, in C. that's it, that's the whole flex πŸ’…


πŸŽ€ INVOCATION OPTIONS πŸŽ€

  • -h, --help β€” prints the help message πŸ₯°
  • -v, --version β€” prints the version of tasknc πŸ‘‘
  • -d, --debug mode β€” debug mode, which means no curses gui (feral behavior, honestly). modes can be given as a list, as long as they're all inside a single argument. the modes are:
    • all
    • eval_string
    • task_count
    • trim
    • search
    • set_var
  • -f, --filter β€” sets an initial filter string 🌈
  • -l, --loglevel loglvl β€” sets the log level to loglvl, which must be a non-negative integer πŸ”₯

⭐ DEFAULT KEY BINDS ⭐

  • j/k/arrowkeys β€” navigation up and down πŸ¦‹
  • home/g β€” go to first task
  • end/G β€” go to last task
  • e β€” edit selected task ✏️
  • r β€” reload task list
  • u β€” run task undo
  • d β€” delete selected task πŸ’€
  • c β€” mark selected task as complete βœ…
  • a β€” create a new task
  • v/enter β€” run task info on selected task
  • s β€” resort list (it prompts you for the sort order)
  • y β€” synchronize (runs task sync)
  • q β€” exit tasknc/pager window πŸ‘‹
  • / β€” search for task πŸ”
  • n β€” go to next task result
  • f β€” filter (prompts you for a filter string)
  • : β€” open command prompt 🫢

πŸ’œ CONFIGURATION πŸ’œ

tasknc honors a config file located at:

$XDG_CONFIG_HOME/tasknc/config

or, if $XDG_CONFIG_HOME doesnt exist:

$HOME/.config/tasknc/config

an example config can be found at /usr/share/tasknc/config 🎁

the configuration file contains a series of commands, and those commands follow the format of the commands listed below, iykyk.


🌈 COMMANDS 🌈

commands are either supplied at the command prompt or listed in the configuration file β€” they're used to configure tasknc to behave as you desire ✨

add β€” creates a new task and opens it for editing.

bind mode key function args β€” assigns function to run every time key is pressed in mode. defining keys is described in the KEYS section. functions are anything listed in COMMANDS.

color object foreground background rule β€” assigns an object to be a color when rule is satisfied. only task objects evaluate rules 😌 the following objects are available:

  • error β€” error messages
  • header β€” title bar & pager title
  • task β€” tasks in task list

colors are specified in one of three formats:

  • integer β€” the number of the color you desire, where -1 is default
  • colorNNN β€” where NNN is the color you desire in 3 digits
  • color string β€” where the following colors are recognized: black, red, green, yellow, blue, magenta, cyan, and white

rules are specified in the following format: ~pattern arg. pattern is a single character; if it's lowercase it indicates a positive match, and if it's uppercase it indicates a negative match. regular expression arguments must be enclosed in single quotes πŸ‘€ the following patterns are available:

  • s β€” task is selected
  • t β€” task is started
  • p 'regex' β€” project matches regex
  • d 'regex' β€” description matches regex
  • t 'regex' β€” tags match regex
  • r 'regex' β€” priority matches regex

command optarg β€” runs the command optarg, or prompts the user for a command with no arg.

complete β€” marks selected task as complete βœ…

delete β€” deletes selected task

edit β€” opens task for editing

dump β€” will write active task info to the log file. this is mostly for debugging.

scrdump β€” will write the ncurses screen dump to file. this is mostly for debugging.

filter β€” applies filter string optarg, or prompts user for a filter string with no arg.

f_redraw β€” force a redraw of the whole screen.

help β€” will open the help window, which will list keybinds 🫢

modify optarg β€” runs task modify on the selected task with modifications specified in optarg, or gathered from a user prompt with no arg.

quit β€” will exit tasknc.

reload β€” will force tasknc to re-import the task list.

scroll_down β€” moves the cursor down

scroll_end β€” moves the cursor to the end of the task list

scroll_home β€” moves the cursor to the first task

scroll_up β€” moves the cursor up

search optarg β€” searches task list for string optarg, or prompts user for a search string with no arg.

search_next β€” goes to the next item in the task list that matches the search string.

set variable value β€” will attempt to set variable to a parsed value. a list of available variables is in the VARIABLES section.

shell command β€” will run an interactive command. a %s will be replaced with the active task's uuid. the task list will be reloaded after.

shell_bg command β€” will run a background command. a %s will be replaced with the active task's uuid. the task list will be reloaded after.

show variable β€” will print the formatted contents of variable to either stdout or the prompt area of the ncurses window.

sort optarg β€” applies a sort defined by string optarg, or prompts user for sort mode with no arg. the sort string defines the priority of each sort component. tasks will first be compared by the first character's order, then if they're equal, the next character's sort order gets evaluated. the default sort order is due, priority, project, uuid (notated drpu). capitalized characters indicate invert the sort for that field πŸ™ƒ the following characters are valid sorts:

  • d β€” due
  • n β€” index
  • p β€” project
  • r β€” priority
  • u β€” uuid

source file β€” read configuration file and run commands that are contained in it.

source_cmd command β€” run a command and read commands from its output.

stats β€” will display the output of task stat.

sync β€” runs task sync.

toggle_start β€” toggles the task's status as started or stopped.

unbind mode key β€” will remove all keybindings from a specific key in mode.

undo β€” runs task undo.

version β€” will print the version info about tasknc to the prompt area of the ncurses window.

view β€” will open the view window for the selected task πŸ‘‘


πŸ“ VARIABLES πŸ“

curs_timeout β€” an integer variable which is the number of milliseconds after which ncurses options should time out. this variable must be set in the config file. (default: 500)

filter_string β€” the string which is currently filtering the displayed task list. (default: status:pending)

follow_task β€” a boolean which dictates whether the selected line will stay selected after the task is chenaged. (default: 1)

history_max β€” an integer variable which defines the maximum number of history entries for a given prompt. this variable must be set in the config file. (default: 50)

log_level β€” an integer variable which defines which log messages should be printed. all messages at or below the log level are printed and written to file. (default: 1) log levels:

  • 0 β€” Default messages
  • 1 β€” Error messages
  • 2 β€” Warning messages
  • 3 β€” Informative messages
  • 4 β€” Debug messages
  • 5 β€” Verbose debug messages

program_name β€” the string which defines the name of the program. this variable is read-only πŸ”’

program_author β€” the string which defines the author of tasknc. this variable is read-only πŸ”’

program_version β€” the string which defines the version of tasknc. this variable is read-only πŸ”’

search_string β€” the string that is currently being searched for. (default: NULL)

selected_line β€” the integer number of the task which is currently selected.

sort_mode β€” a character which defines the sort mode. (default: drpu) sort modes:

  • d β€” due date
  • n β€” index
  • p β€” project name
  • r β€” priority

statusbar_timeout β€” an integer variable which is the number of seconds after which the message in the statusbar times out. (default: 3)

task_count β€” the integer number of tasks which are displayed. this variable is read-only πŸ”’

task_format β€” the string which defines the format of a displayed task. see FORMATS for more info. this variable must be set in the config file. (default: " $project $description $> ?$due?$due?$-6priority?")

task_version β€” a string variable which contains the version of Taskwarrior which is being wrapped.

title_format β€” the string which defines the format of the title bar. see FORMATS for more info. this variable must be set in the config file. (default: " $program_name ($selected_line/$task_count) $> $date")

view_format β€” the string which defines the format of the title bar of the pager when viewing a task. see FORMATS for more info. this variable must be set in the config file. (default: " task info")


🧚 FORMATS 🧚

formats describe how a line is printed. variables are denoted by a preceding $. the variables listed in the VARIABLES section are all available πŸ’…

if you would like whitespace at the beginning or end of the string, enclose it in double quotes. field length can be specified by a positive integer between the variable indicator ($) and the variable name.

the following additional variables are also available:

  • date β€” displays the current date.
  • > β€” marks the beginning of the right-aligned portion of the formatted section.

for task formats, the following variables are available:

  • description
  • due
  • project

🌸 MODES 🌸

  • tasklist
  • pager

πŸ”₯ KEYS πŸ”₯

keys may be specified as an integer or character. in addition, special key strings are recognized. when pressing an unbound key, tasknc will display its name in the statusbar message πŸ‘€


πŸ’€ SIGNALS πŸ’€

if tasknc receives SIGUSR1, it will reload the task list after the next getch timeout (less than one second, by default) ⚑


πŸ™ˆ BUGS πŸ™ˆ

please report bugs on http://github.com/lharding/tasknc 🫢

if you experience a segmentation fault, please try the following to attempt an easy fix:

make clean; make

when reporting segmentation faults, please run the valgrind_test.sh script from within the test directory and attach the resulting valgrind_errors file to your bug report πŸ›


πŸ‘‘ AUTHOR πŸ‘‘

maintained by Leander Harding <lsh@lsh.io>

originally developed by mjheagle <mjheagle8@gmail.com>


🌟 CONTRIBUTORS 🌟

special thanks to the following contributors: irl, marcusmueller, prurigo πŸ’–


πŸŽ€ SEE ALSO πŸŽ€

task(1)


and that's the whole page, bestie 🫢 this was tasknc β€” version 2020-12-17, dated 1980-01-01 (iconic honestly), living in section tasknc(1). go forth and slay your task list πŸ’…βœ¨

πŸ“¦ where this page comes from