From 50fe487a18d80a85e462a7ba7da1828b575b7865 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Wed, 14 Jul 2021 21:53:03 +1000 Subject: [PATCH] Add support for vit, an Vimmish Taskwarrior client --- config/vit/config.ini | 234 ++++++++++++++++++++++++++++++++++++++++++ config/zsh/login/task | 3 + 2 files changed, 237 insertions(+) create mode 100644 config/vit/config.ini diff --git a/config/vit/config.ini b/config/vit/config.ini new file mode 100644 index 0000000..fdd23f2 --- /dev/null +++ b/config/vit/config.ini @@ -0,0 +1,234 @@ +# 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 = True + + +# 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 = True + +# 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 + +[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} + +# 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} + +# Multiple keybindings can be associated with the same action/macro, simply +# separate the keybindings with a comma: +# 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: +# +# +# +# +# +# +# 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: +# +# e = :!wr echo do something +# = :!wr echo you used a function key + diff --git a/config/zsh/login/task b/config/zsh/login/task index bfe8bf3..1e4263c 100644 --- a/config/zsh/login/task +++ b/config/zsh/login/task @@ -5,3 +5,6 @@ fi if [[ -z $TIMEWARRIORDB ]]; then export TIMEWARRIORDB=$XDG_DATA_HOME/timew fi +if [[ -z $VIT_DIR ]]; then + export VIT_DIR=$XDG_CONFIG_HOME/vit +fi