Prefer to have widgets force a draw when their data changes. This should
reduce draws (unless the user has a module installed that updates >=
1/sec, the old draw default).
This should also remove a source of some of the race conditions that
users were experiencing (though not all, there are still many).
When no widget has focus, press the letter key to focus on the widget
assigned to that letter.
Example:
GitHub (d)
Press "d" to focus on the GitHub widget.
The existing format for commit logs will remain the default, but
this change allows customization of the `--date=format:` and
`--pretty=format:` arguments passed to `git log`. For example, I
prefer having the time of day a commit was made, and having the
time in front, which can now be done with these options:
```
git:
dateFormat: "%H:%M %d %b %y"
commitFormat: "[forestgreen]%h [grey]%cd [white]%s [grey]%an[white]"
```
(sorry, this doesn't update documentation - if you let me know
what files to edit for those and how to "build" the docs to update
them, I can try to do that better in future changes)
After setting up the git module with multiple repos and switching
between them, I observed some graphical wonkiness in the display:
https://i.imgur.com/R3e7eij.png
After adding some log statements, I tracked it down to the
`GitRepo.Repository` field having a newline in it after it's set
from a command execution's stdout. This change strips the
repository path of spaces when assigning to the `Repository` field,
which fixes the display issues.
Widget titles can now be specified in the config file via a 'title' key.
Example:
wtf:
mods:
todo:
title: Tada
which can include emoji. No need to force everyone to look at my emoji,
now they can define their own.
Widgets can inform whether or not they should get tab focus.
Widgets that provide additional functionality should return true.
Widgets that have no extra capability should return false.
This allows the FocusTracker to only tab through and focus on widgets
for which it provides value.