AIGHT is a command-line tool for getting todo tasks quickly.
Make sure you've installed the dlang compiler (dmd) on your system.
git clone https://github.com/theonesean/aight.git
sudo make install
The program looks for its config file in ~/.aight.conf
, ~/.config/aight.conf
, and /etc/aight.conf
, in that order. It uses an INI-like format, with each group representing a different project/task implementation (Trello, GitHub Projects, etc...).
There are two "predefined" groups that can only exist once. These should appear at the start of your file. [settings]
refers to global settings that affect the entire program, such as the table width or separation characters. The [defaults]
group specifies default values for all of the groups that follow it. For instance, if you are defining many Trello configurations for the same account, you may not want to repeat the API key/token each time.
[settings]
listWidth=40
displayMode=table
[defaults]
trelloApiKey=a Trello API developer key
trelloApiToken=your Trello token
By default, aight
will attempt to display multiple task lists (for example, multiple lists within a single Trello board) in ASCII table format, using the listWidth
and border*
settings and your terminal window width. If you would prefer to have multiple lists displayed one after the other, set displayMode=list
.
The border settings use unicode values by default. To change this behavior, specify three-character strings in your config file with each index representing the left, middle, and right char in the border.
borderTop=╔═╗
borderContent=║ ║
borderMiddle=╟─╢
borderBottom=╚═╝
Note: While in displayMode=list
, by default, tasks in a list will not respect listWidth
. To force a width in list mode, set listModePreserveWidth=true
.
Task providers are triggered based on a set of conditional attributes such as matchDir
(to match the current working directory) or matchRemote
(to match the upstream git URL). The first group to match the current conditions will be executed, and all others will be ignored. As an example, here is a group that will open a URL whenever aight
is used in one of my repositories:
[exec]
matchRemote[email protected]:theonesean/*
command=open https://youtu.be/dQw4w9WgXcQ
Here is a list of all implemented providers and their configuration values:
[github]
githubApiToken=a GitHub API token
githubRepo=the repository to fetch (optional, defaults to matched remote URL)
If the provider is matched by a remote URL of a GitHub repository (using matchRemote
), the githubRepo
value will default to its repository name if it is unset.
Note: because of various limitations, the GitHub Projects implementation is currently very slow. The API is also a developer preview, so it will likely change at some point in the future.
[github-projects]
githubApiToken=a GitHub API token
githubRepo=the repository to fetch (optional, defaults to matched remote URL)
githubProjectId=the project ID (optional, defaults to first project available)
See trello.com/app-key to obtain an API key / token for this program to use.
[trello]
trelloApiKey=a Trello API developer key
trelloApiToken=your Trello token
trelloBoardId=the board to display
This just executes the given command.
[exec]
command=cat ./TODO.md