# This is the user configuration file for VIT.

# All configuration options are listed here, commented out, and showing their
# default value when not otherwise set.

# The format is standard INI file format. Configuration sections are enclosed
# by brackets. Configuration values should be placed in their relevant section,
# using a 'name = value' format. Boolean values can be expressed by the
# following:
#   True values: 1, yes, true (case insensitive)
#   False values: All other values.


[taskwarrior]

# Full path to the Taskwarrior configuration file. Tilde will be expanded to
# the user's home directory.
# NOTE: This setting is overridden by the TASKRC environment variable.
#taskrc = ~/.taskrc


[vit]

# The keybinding map to use. This maps actions registered with VIT to be fired
# when the user presses the specific keys configured in the keybindings file.
# Possible keybindings are in the 'keybinding' directory, and the setting's
# value should be the filename minus the .ini extension. The default keybinding
# configuration is modeled heavily on the legacy VIT keybindings, and inspired
# by vi/vim.
#default_keybindings = vi

# The theme to use. This allows control over the colors used in the
# application itself. Possible themes are in the 'theme' directory, and the
# setting's value should be the filename minus the .py extension.
# Note that the theme does not control any coloring related to tasks -- this
# is controlled via the color settings in the Taskwarrior configuration.
#theme = default

# Boolean. If true, VIT will ask for confirmation before marking a task as done,
# deleting a task, or quitting VIT. Set to false to  disable the prompts.
confirmation = False


# Boolean. If true, VIT will show the output of the task command and wait for
# enter. If false, VIT will not show output of the task command after
# modifications to a task are made.
wait = False

# Boolean. If true, VIT will enable mouse support for actions such as selecting
# list items.
#mouse = False

# Boolean. If true, hitting backspace against an empty prompt aborts the prompt.
#abort_backspace = False

# Boolean. If true, VIT will focus on the newly added task. Note: the new task must be
#included in the active filter for this setting to have effect.
focus_on_add = True

# Path to a directory to manage pid files for running instances of VIT.
# If no path is provided, no pid files will be managed.
# The special token $UID may be used, and will be substituted with the user ID
# of the user starting VIT.
# VIT can be run with the '--list-pids' argument, which will output a list of
# all pids in pid_dir; useful for sending signals to the running processes.
# If you use this feature, it's suggested to choose a directory that is
# automatically cleaned on boot, e.g.:
#   /var/run/user/$UID/vit
#   /tmp/vit_pids
#pid_dir =

# Int. The number of flash repetitions focusing on the edit made
#flash_focus_repeat_times = 2

# Float. Waiting time for the blink focusing on the edit made
#flash_focus_pause_seconds = 0.1

[report]

# The default Taskwarrior report to load when VIT first starts, if no report
# or filters are passed at the command line.
#default_report = next

# The default Taskwarrior report to load when VIT first starts, if filters are
# passed at the command line with no report.
#default_filter_only_report = next

# Boolean. If true, reports with the primary sort of project ascending will
# indent subprojects. If you use deeply nested subprojects, you'll probably
# like this setting.
#indent_subprojects = True

# Boolean. If true, display report rows with alternating background colors.
#row_striping = True


[marker]

# Boolean. Enables markers. Markers are configurable labels that appear on the
# left side of a report to indicate information about a task when the displayed
# report does not contain the related column.
# For example, let's suppose you have a 'notes' UDA configured. You'd like to
# see some indication that a task has a note, without displaying the full note
# column in reports. You could configure a marker for that custom UDA as
# follows:
#   uda.notes.label = (N)
# Then, when a listed task has a note associated with it, you'll see the
# marker '(N)' displayed in the leftmost column of any report that displays the
# task in question.
#enabled = True

# What columns to generate markers for. Can either be 'all' for all columns, or
# a comma separated list of columns to enable markers for. Possible columns
# are:
#  depends,description,due,project,recur,scheduled,start,status,tags,until
#columns = all

# The header label for the markers column when it is displayed.
#header_label =

# Boolean. If true, an associated color value must be configured in the
# Taskwarrior configuration in order for the marker to be displayed. If false,
# and no Taskwarrior color configuration is present for the matching marker,
# then it is not displayed.
# For example, if this is set to True, then for the above-mentioned 'notes'
# marker to be displayed, a matching Taskwarrior color configuration for the
# 'notes' UDA must be present, e.g.:
#   color.uda.notes=yellow
#require_color = True

# Boolean. If true, subprojects of a project will also display the configured
# root project's marker, if the subproject itself does not have its own marker
# configured.
# For example, given the following projects:
#   Foo
#   Foo.Bar
# If this value is set to True, and the Foo project has a configured marker,
# then Foo.Bar would also display Foo's marker.
#include_subprojects = True

# Below are listed all of the available markers, with their default label.
# To disable a specific marker, set its label to empty. Any section enclosed
# in brackets should be replaced by the appropriate identifier, eg.
# [project_name] with the actual name of a project.
#active.label = (A)
#blocked.label = (BD)
#blocking.label = (BG)
#completed.label = (C)
#deleted.label = (X)
#due.label = (D)
#due.today.label = (DT)
#keyword.label = (K)
#keyword.[keyword_name].label =
#overdue.label = (OD)
#project.label = (P)
#project.none.label =
#project.[project_name].label =
#recurring.label = (R)
#scheduled.label = (S)
#tag.label = (T)
#tag.none.label =
#tag.[tag_name].label =
#uda.label =
#uda.priority.label = (PR)
#uda.[uda_name].label =


[color]

# Boolean. If true, use the colors in Taskwarrior's configuration to colorize
# reports. Note that VIT uses a fundamentally different paradigm for
# colorization, which combines tying coloring to associated report columns in
# combination with markers (see above). This setting works independently of
# Taskwarriors 'color' config setting.
#enabled = True

# Boolean. If true, subprojects of a project will also display the configured
# root project's color, if the subproject itself does not have its own color
# configured.
# For example, given the following projects:
#   Foo
#   Foo.Bar
# If this value is set to True, and the Foo project has a configured color,
# then Foo.Bar would also display Foo's color.
#include_subprojects = True

# For the Taskwarrior color configuration, there are three special values:
#   color.project.none
#   color.tag.none
#   color.uda.[uda_name].none
# If any of these are configured for color, then the label below will be used
# in the related column to display the color configuration.
#none_label = [NONE]


[keybinding]

# This section allows you to override the configured keybindings, associate
# additional keybindings with VIT actions, and set up macros triggered by a
# keybinding.

# Meta keys are enclosed in angle brackets, variables are enclosed in curly
# brackets. Keybindings here can either be:
#   - Associated with a single VIT action
#   - A macro that describes a series of key presses to replay

# For VIT actions, the form is:
#   keys[,keys] = {ACTION_NAME}
# For example, to associate the keybinding 'zz' with the undo action:
#   zz = {ACTION_TASK_UNDO}
# To only disable a keybinding, use the special noop action:
#   w = {ACTION_NOOP}
#   wa = {ACTION_TASK_WAIT}
# The above would disable the task wait action for the 'w' key, and instead
# assign it to the 'wa' keybinding.
# For capital letter keybindings, use the letter directly:
#   D = {ACTION_TASK_DONE}

# For a list of available actions, run 'vit --list-actions'.
# A great reference for many of the available meta keys, and understanding the
# default keybindings is the 'keybinding/vi.ini' file.

# For macros, the form is:
#   keys[,keys] = keypresses
# For example, to map the 'o' key to opening the OneNote script, passing it
# the currently focused task UUID:
#   o = :!wr onenote {TASK_UUID}<Enter>

# The special '{TASK_[attribute]}' variable can be used in any macro, and it
# will be replaced with the value of the attribute for the currently
# highlighted task. Any attribute listed in 'task _columns' is supported, e.g.
#   o = :!wr echo project is {TASK_PROJECT}<Enter>

# Multiple keybindings can be associated with the same action/macro, simply
# separate the keybindings with a comma:
#   <Ctrl> z,zz = {ACTION_TASK_UNDO}

# 'Special' keys are indicated by enclosing them in brackets. VIT supports the
# following special keys on either side of the keybinding declaration, by
# internally translating them into the single character:
#
#     <Colon>
#     <Equals>
#     <Space>
#     <Semicolon>
#
# Under the hood, VIT uses the Urwid mappings for keyboard input:
#   http://urwid.org/manual/userinput.html
#
# Any modifier, navigation, or function keys can be described in the VIT
# keybinding configuration by wrapping them in angle brackets, matching the
# correct Urwid keyboard input structure:
#
#   <Ctrl> e = :!wr echo do something
#   <Shift> <Ctrl> <F5> = :!wr echo you used a function key

