* WTF-1031 Rename WtfApp.app to WtfApp.tviewApp
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-1031 Add scaffolding for main to support multiple WtfApp instances
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-1031 WIP
Signed-off-by: Chris Cummer <chriscummer@me.com>
* Remove common functionality from KeyboardWidget and into Base
Signed-off-by: Chris Cummer <chriscummer@me.com>
* Augment with some descriptive comments
Signed-off-by: Chris Cummer <chriscummer@me.com>
* Add full support for multiple app instances via the AppManager.
Still to do:
* Config support for multiple apps/multiple config files
* The ability to switch between apps
Signed-off-by: Chris Cummer <chriscummer@me.com>
* Move SetTerminal out of main and into its own file
Signed-off-by: Chris Cummer <chriscummer@me.com>
This needs to work for all modules, which means effectively
every module just became a keyboard module, if it is focusable.
That's an interesting development.
Signed-off-by: Chris Cummer <chriscummer@me.com>
golangci-lint can run all the currently enabled linters, and as far as I
can tell, does it in under 5 seconds as opposed to over 180 seconds
(compare `time make cilint` and `time make lint`).
Some of the linters that are listed in the "enabled" section but
commented out looked like a good idea to me, and fairly low hanging
fruit to fix, but they are not passing at the moment.
All the linters covered in the current Makefile are run.
TODO:
- replace lint target in Makefile with golangci-lint
- remove .github/workflow/errcheck.yml
* Add gosec to the Makefile
Signed-off-by: Chris Cummer <chriscummer@me.com>
* Fix some issues found by gosec
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-484 DigitalOcean module stubbed out
* WTF-484 Delete droplets via Ctrl-d
* WTF-484 Rebasing off master after a long time away
* WTF-484 Improve DigitalOcean display
* WTF-484 Can shutdown and restart the selected droplet
* WTF-484 Display info about the selected droplet using the ? key
* WTF-484 Display info about the selected droplet using the Return key
* WTF-484 Greatly improve the utils.Truncate function
* WTF-484 Display a droplet's features in the info modal
* WTF-484 Change reboot key from r to b to not conflict with refresh
* WTF-484 Panic if a keyboard control is mapped to the same character more than once
* WTF-484 Colorize droplet status indicator
* WTF-484 Extract view.InfoTable out into a reusable component
* WTF-730 Fix missing color key config error
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-730 Add Subheading color formatting to modules
Users can now set a `subheading` color in their config to change the
color of subheadings in widget display.
Defaults to `red`.
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-730 Fix oustanding color issues
Clean up missing color config changes not addressed in earlier commits.
Signed-off-by: Chris Cummer <chriscummer@me.com>
* Remove unused dependency
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-730 Base cleanup
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-730 Fix a few bugs related to color config changes
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-730 Fix issues with PagerDuty subheading display
Signed-off-by: Chris Cummer <chriscummer@me.com>
* WTF-730 Fix bug with Todo list colour rendering
Signed-off-by: Chris Cummer <chriscummer@me.com>
Currently, when deleting, we jump 2 positions, since we are calling next.
However, the next item becomes the current selected position, so handle better
Properly set selected in some edge cases where we may go from a list to 0
Have all instances take a function
Update the remaining modules to take this into account
Numerous smaller refactors to make some widgets work more or less the same
GetRect can lead to a race condition
Add a RenderFunc method so that we can call try to
wrap even more of our rendering in the thread safe
`QueueUpdateDraw` method