1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00

First pass at new site template

This commit is contained in:
Chris Cummer
2018-08-03 05:03:26 -07:00
committed by Chris Cummer
parent 215c7e571f
commit d872a28cf7
392 changed files with 41395 additions and 222 deletions

View File

@@ -1,86 +0,0 @@
---
title: "Configuration"
date: 2018-04-15T21:17:16-07:00
draft: false
---
## Index
* [Configuration Files](#configuration-files)
* [Environment (ENV) Variables](#environment-env-variables)
* [Grid Layout](#grid-layout)
## Configuration Files
By default WTF looks in a `~/.config/wtf/` directory for a YAML file called
`config.yml`. If the `~/.config/wtf/` directory doesn't exist, WTF will create that directory
on start-up, and then display instructions for creating a new
configuration file.
In other words, WTF expects to have a YAML config file at: `~/.config/wtf/config.yml`.
#### Example Configuration Files
A couple of example config files are provided in the `_sample_configs/`
directory of the Git repository.
To try out WTF quickly, copy
`simple_config.yml` into `~/.config/wtf/` as `config.yml` and relaunch WTF. You
should see the app launch and display the <a href="/posts/modules/security/">Security</a>,
<a href="/posts/modules/clocks/">Clocks</a> and <a href="/posts/modules/status/">Status</a> widgets onscreen.
#### Custom Configuration Files
To try out different configurations (or run multiple instances of WTF),
you can pass the path to a config file via command line arguments on
start-up.
To load a custom configuration file (ie: one that's not
`~/.config/wtf/config.yml`), pass in the path to configuration file as a
parameter on launch:
```bash
$> wtf --config=path/to/custom/config.yml
```
#### Configuration Attributes
A number of top-level attributes can be set to customize your WTF
install. See <a href="/posts/configuration/attributes/">Attributes</a> for details.
## Environment (ENV) Variables
Some modules require the presence of environment variables to function
properly. Usually these are API keys or other sensitive data that one
wouldn't want to have laying about in the config files.
For modules that require them, the name of the required environment
variable(s) can be found in that module's "Required ENV Variables"
section of the documentation. See <a href="/posts/modules/opsgenie/">OpsGenie</a> for an example.
## Grid Layout
WTF uses the `Grid` layout system from [tview](https://github.com/rivo/tview/blob/master/grid.go) to position widgets
onscreen. It's not immediately obvious how this works, so here's an
explanation:
Think of your terminal screen as a matrix of letter positions, say `100` chrs wide and `58` chrs tall.
Columns breaks up the width of the screen into chunks, each chunk a specified number of characters wide. use
`[10, 10, 10, 10, 10, 10, 10, 10, 10, 10]`
Ten columns that are ten characters wide
Rows break up the height of the screen into chunks, each chunk a specified number of characters tall. If we wanted to have five rows:
`[10, 10, 10, 10, 18]`
The co-ordinate system starts at top-left and defines how wide and tall a widget is. If we wanted to put a 2-col, 2-row widget in the bottom of the screen, we'd position it at:
```
top: 4 // top starts in the 4th row
left: 9 // left starts in the 9th column
height: 2 // span down rows 4 & 5 (18 characters in size, total)
width: 2 // span across cols 9 & 10 (20 characters in size, total)
```

View File

@@ -1,85 +0,0 @@
---
title: "Configuration: Attributes"
date: 2018-05-16T21:51:23-07:00
draft: false
---
The following top-level attributes are configurable in `config.yml`.
See this <a href="https://github.com/senorprogrammer/wtf/blob/master/_sample_configs/simple_config.yml">example config file</a> for more details.
```yaml
wtf:
colors:
background: "red"
border:
Focusable: "darkslateblue"
focused: "orange"
normal: "gray"
grid:
# How _wide_ the columns are, in terminal characters. In this case we have
# six columns, each of which are 35 characters wide
columns: [35, 35, 35, 35, 35, 35]
# How _high_ the rows are, in terminal lines. In this case we have five rows
# that support ten line of text, one of three lines, and one of four
rows: [10, 10, 10, 10, 10, 3, 4]
# The app redraws itself once a second
openFileUtil: open
refreshInterval: 1
term: "xterm-256color"
```
### Attributes
`colors.background` <br />
The color to draw the background of the app in. Use this to match your
terminal colors. May be over-written by individual module
configurations. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.border.focusable` <br />
The color in which to draw the border of widgets that can accept
keyboard focus. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.border.focused` <br />
The color in which to draw the border of the widget that currently has
keyboard focus. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.border.normal` <br />
The color in which to draw the borders of the widgets that cannot accept
focus. <br/>
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`grid.columns` <br />
An array that defines the widths of all the columns. <br />
Values: See <a href="https://github.com/rivo/tview/wiki/Grid">tview's
Grid</a> for details.
`grid.rows` <br />
An array that defines the heights of all the rows. <br />
Values: See <a href="https://github.com/rivo/tview/wiki/Grid">tview's
Grid</a> for details.
`openFileUtil` <br />
Command to use to open a file or URL
`refreshInterval` <br />
How often, in seconds, the UI refreshes itself. <br />
**Note:** This implementation is probably wrong and buggy and likely to
change. <br />
Values: A positive integer, `0..n`.
`term` <br />
_Optional_. <br />
Sets a custom value for the terminal type this app runs in. Leave this entry out of the config if you simply want to use your terminal's
default setting. <br />
**Note:** If an invalid value is provided for this setting, the app will
crash with a `"terminal entry not found"` error. <br />
Values: Any valid terminal type (ie: vt100, xterm, xterm-256color, ansi,
etc.).

View File

@@ -1,27 +0,0 @@
---
title: "Configuration: iTerm2"
date: 2018-05-24T09:57:40-07:00
draft: false
---
Many terminal apps don't properly display multibyte emoji characters
properly. This **may** fix the issue for you in iTerm2, it also may not.
By default iTerm2 uses a unicode rendering format
that is not comletely compatible with some emoji characters. Instead what you'll
see is the emoji over-lapping normal text characters, or drawing outside
the bounds of where they should be.
In iTerm2 open:
```bash
Preferences -> Profiles -> Text
```
and check **on** the "Use Unicode Version 9 Widths" checkbox. Then
restart WTF.
<img src="/imgs/iterm2prefs.png" width="800" height="437" alt="iTerm2
Prefs" />
(*Note:* This issue is not unique to iTerm2. As of this writing it also
affects <a href="https://en.wikipedia.org/wiki/Terminal_(macOS)">Terminal</a>, and <a href="https://hyper.is">Hyper</a>.)

View File

@@ -1,17 +0,0 @@
---
title: "Glossary"
date: 2018-04-17T12:34:51-07:00
draft: false
---
### Module
A discreet unit of data collection and display. A data interface
concept. A package inside the app.
Examples: New Relic, Git, Weather.
### Widget
The onscreen representation of a Module. The widget is responsible for
being the interface between the app and the data collection.
Widgets are defined by a required `widget.go` file in a Module.

View File

@@ -1,35 +0,0 @@
---
title: "Installation"
date: 2018-05-18T09:59:40-07:00
draft: false
---
There are two ways to install WTF:
## From Source
Get this repo and install the dependencies:
```bash
go get -u github.com/senorprogrammer/wtf
cd $GOPATH/src/github.com/senorprogrammer/wtf
make install
make run
```
and that should probably do it.
## As a Binary
Grab the latest version from here:
```bash
https://github.com/senorprogrammer/wtf/releases
```
expand it, and `cd` into the resulting directory. Then run:
```bash
./wtf
```
and that should also do it.

View File

@@ -1,20 +0,0 @@
---
title: "Modules"
date: 2018-05-07T18:04:58-07:00
draft: false
---
The heart of WTF is the modules. A module is a discreet unit of
functionality that extracts data from some source and packages that data
for display.
For example, the <a href="/posts/modules/newrelic">New Relic</a> module
uses New Relic's API to retrieve a list of the latest deploys and
packages that information as a list for display in the "New Relic"
widget.
The <a href="/posts/modules/clocks">Clocks</a> module takes a list of
timezones and packages that information as a list of city/time pairs for
display in the "Clocks" widget.
See available modules at left.

View File

@@ -1,51 +0,0 @@
---
title: "BambooHR"
date: 2018-05-07T20:17:37-07:00
draft: false
---
Connects to the BambooHR API and displays who will be Away today.
## Source Code
```bash
wtf/bamboohr/
```
## Keyboard Commands
None.
## Configuration
```yaml
bamboohr:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 0
left: 1
height: 2
width: 1
refreshInterval: 900
subdomain: "testco"
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://www.bamboohr.com/api/documentation/">BambooHR API</a> token.
`enabled` <br />
Whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: Any positive integer, `0..n`.
`subdomain` <br />
Value: Your <a href="https://www.bamboohr.com/api/documentation/">BambooHR API</a> subdomain name.

View File

@@ -1,51 +0,0 @@
---
title: "CircleCI"
date: 2018-06-10T19:26:08-04:00
draft: false
---
Added in `v0.0.7`.
Displays build information for your CircleCI account.
<img src="/imgs/modules/circleci.png" width="609" height="150" alt="circleci screenshot" />
## Source Code
```bash
wtf/circleci/
```
## Keyboard Commands
None.
## Configuration
```yaml
circleci:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 4
left: 1
height: 1
width: 2
refreshInterval: 900
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://circleci.com/account/api">CircleCI API</a> token.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,85 +0,0 @@
---
title: "Clocks"
date: 2018-05-07T19:47:31-07:00
draft: false
---
Displays a configurable list of world clocks, the local time, and date.
<img src="/imgs/modules/clocks.png" width="320" height="191" alt="clocks screenshot" />
## Source Code
```bash
wtf/clocks/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
clocks:
colors:
rows:
even: "lightblue"
odd: "white"
enabled: true
locations:
# From https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Avignon: "Europe/Paris"
Barcelona: "Europe/Madrid"
Dubai: "Asia/Dubai"
New York: "America/New York"
Toronto: "America/Toronto"
UTC: "Etc/UTC"
Vancouver: "America/Vancouver"
position:
top: 4
left: 0
height: 1
width: 1
refreshInterval: 15
# Valid options are: alphabetical, chronological
sort: "alphabetical"
```
### Attributes
`colors.rows.even` <br />
The foreground color for even-numbered rows. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.rows.odd` <br />
The foreground color for the odd-numbered rows. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`locations` <br />
Defines the timezones for the world clocks that you want to display.
`key` is a unique label that will be displayed in the UI. `value` is a
timezone name. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">TZ database timezone</a>.
`position` <br />
Defines where in the grid this module's widget will be displayed.
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`sort` <br />
Defines the display order of the clocks in the widget. <br />
Values: `alphabetical` or `chronological`. `alphabetical` will sort in
acending order by `key`, `chronological` will sort in ascending order by
date/time.

View File

@@ -1,60 +0,0 @@
---
title: "CmdRunner"
date: 2018-05-17T17:17:10-07:00
draft: false
---
Runs a terminal command on a schedule.
## Source Code
```bash
wtf/cmdrunner/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
cmdrunner:
args: ["-g", "batt"]
cmd: "pmset"
enabled: true
position:
top: 6
left: 1
height: 1
width: 3
refreshInterval: 30
```
### Attributes
`args` <br />
The arguments to the command, with each item as an element in an array.
Example: for `curl -I cisco.com`, the arguments array would be `["-I", "cisco.com"]`.
`cmd` <br />
The terminal command to be run, withouth the arguments. Ie: `ping`,
`whoami`, `curl`. <br />
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed.
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,87 +0,0 @@
---
title: "Bittrex"
date: 2018-06-04T20:06:40-07:00
draft: false
---
Added in `v0.0.5`.
Get the last 24 hour summary of cryptocurrencies market using [Bittrex](https://bittrex.com).
<img src="/imgs/modules/bittrex.png" width="320" height="412" alt="bittrex screenshot" />
## Source Code
```bash
wtf/cryptoexchanges/bittrex/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
bittrex:
enabled: true
position:
top: 1
left: 2
height: 3
width: 1
refreshInterval: 5
summary:
BTC:
displayName: Bitcoin
market:
- LTC
- ETH
colors:
base:
name: orange
displayName: red
market:
name: red
field: white
value: green
```
### Attributes
`colors.base.name` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.base.dispayName` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.market.name` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.market.field` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.market.value` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`summary` <br />
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,75 +0,0 @@
---
title: "Blockfolio"
date: 2018-06-13T09:29:59-07:00
draft: false
---
Added in `v0.0.8`.
Display your Blockfolio crypto holdings.
<img src="/imgs/modules/blockfolio.png" width="320" height="185" alt="blockfolio screenshot" />
## Source
```bash
wtf/blockfolio/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
blockfolio:
colors:
name: blue
grows: green
drop: red
device_token: "device token"
displayHoldings: true
enabled: true
position:
top: 3
left: 1
width: 1
height: 1
refreshInterval: 400
```
### Attributes
`colors.name` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.grows` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.drop` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`device_token` <br />
Value: See [this gist](https://github.com/bob6664569/blockfolio-api-client) for
details on how to get your Blockfolio API token.
`displayHoldings` <br />
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,105 +0,0 @@
---
title: "CryptoLive"
date: 2018-06-03T20:06:40-07:00
draft: false
---
Added in `v0.0.5`.
Compare crypto currencies using [CryptoCompare](https://cryptocompare.com).
<img src="/imgs/modules/cryptolive.png" width="320" height="203" alt="cryptolive screenshot" />
## Source Code
```bash
wtf/cryptoexchanges/cryptolive/
```
## Required ENV Vars
None.
## Keyboard Commands
None.
## Configuration
```yaml
cryptolive:
enabled: true
position:
top: 5
left: 2
height: 1
width: 2
updateInterval: 15
currencies:
BTC:
displayName: Bitcoin
to:
- USD
- EUR
- ETH
- LTC
- DOGE
LTC:
displayName: Ethereum
to:
- USD
- EUR
- BTC
top:
BTC:
displayName: Bitcoin
limit: 5
to:
- USD
colors:
from:
name: coral
displayName: grey
to:
name: white
price: green
top:
from:
name: grey
displayName: coral
to:
name: red
field: white
value: green
```
### Attributes
`colors.from.name` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.from.dispayName` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.to.name` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.to.price` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`currencies` <br />
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,132 +0,0 @@
---
title: "Google Calendar"
date: 2018-05-10T08:25:33-07:00
draft: false
---
Displays your upcoming Google calendar events.
<img src="/imgs/modules/gcal.png" width="320" height="389" alt="gcal screenshot" />
**Not:** Setting up access to Google Calendars for Go is a bit unobvious. Check out Google's [Go Quickstart](https://developers.google.com/calendar/quickstart/go)
first and if you have problems, then take a look at this [comment by WesleydeSouza](https://github.com/senorprogrammer/wtf/issues/83#issuecomment-393665229) which offers a slightly different approach.
## Source Code
```bash
wtf/gcal/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
gcal:
colors:
title: "red"
description: "lightblue"
highlights:
- ['1on1|1\/11', 'green']
- ['apple|google|aws', 'blue']
- ['interview|meet', 'magenta']
- ['lunch', 'yellow']
past: "gray"
conflictIcon: "🚨"
currentIcon: "💥"
displayResponseStatus: true
email: "chriscummer@me.com"
enabled: true
eventCount: 12
multiCalendar: true
position:
top: 0
left: 0
height: 4
width: 1
refreshInterval: 300
secretFile: "~/.config/wtf/gcal/client_secret.json"
showDeclined: true
withLocation: true
```
### Attributes
`colors.title` <br />
The default colour for calendar event titles. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`colors.description` <br />
The default color for calendar event descriptions. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`colors.highlights` <br />
A list of arrays that define a regular expression pattern and a color.
If a calendar event title matches a regular expression, the title will
be drawn in that colour. Over-rides the default title colour. <br />
Values: [a valid regular expression, any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.]
`colors.past` <br />
The color for calendar events that have passed. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`conflictIcon` <br />
The icon displayed beside calendar events that have conflicting times
(they intersect or overlap in some way). <br />
Values: Any displayable unicode character.
`currentIcon` <br />
The icon displayed beside the current calendar event. <br />
Values: Any displayable unicode character.
`displayLocation` <br />
Whether or not to display the location of the calendar event. <br />
Values: `true`, `false`.
`displayResponseStatus` <br />
Whether or not to display your response status to the calendar event.
<br />
Values: `true`, `false`.
`email` <br />
The email address associated with your Google account. Necessary for
determining `responseStatus`. <br />
Values: A valid email address string.
`enabled` <br />
Whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`eventCount` <br />
The number of calendar events to display. <br />
Values: A positive integer, `0..n`.
`multiCalendar` <br />
Whether or not to display your primary calendar or all calendars you
have access to. <br />
Values: `true`, or `false`
`position` <br />
Where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`secretFile` <br />
Your <a href="https://developers.google.com/calendar/quickstart/go">Google client secret</a> JSON file. <br />
Values: A string representing a file path to the JSON secret file.
`showDeclined` <br />
_Optional_. Whether or not to display events you've declined to attend. <br />
Values: `true`, or `false`
`withLocation` <br />
Whether or not to show the location of the appointment. <br />
Values: `true`, or `false`

View File

@@ -1,123 +0,0 @@
---
title: "Gerrit"
date: 2018-06-27T15:55:42-07:00
draft: false
---
Displays information about your projects hosted on Gerrit:
#### Open Incoming Reviews
All open reviews that are requesting your approval.
#### My Outgoing Reviews
All open reviews created by you.
<img src="/imgs/modules/gerrit.png" width="640" height="167" alt="gerrit screenshot" />
## Source Code
```bash
wtf/gerrit/
```
## Keyboard Commands
<span class="caption">Key:</span> `/` <br />
<span class="caption">Action:</span> Open/close the widget's help window.
<span class="caption">Key:</span> `h` <br />
<span class="caption">Action:</span> Show the previous project.
<span class="caption">Key:</span> `l` <br />
<span class="caption">Action:</span> Show the next project.
<span class="caption">Key:</span> `j` <br />
<span class="caption">Action:</span> Select the next review in the list.
<span class="caption">Key:</span> `k` <br />
<span class="caption">Action:</span> Select the previous review in the list.
<span class="caption">Key:</span> `r` <br />
<span class="caption">Action:</span> Refresh the data.
<span class="caption">Key:</span> `←` <br />
<span class="caption">Action:</span> Show the previous project.
<span class="caption">Key:</span> `→` <br />
<span class="caption">Action:</span> Show the next project.
<span class="caption">Key:</span> `↓` <br />
<span class="caption">Action:</span> Select the next review in the list.
<span class="caption">Key:</span> `↑` <br />
<span class="caption">Action:</span> Select the previous review in the list.
<span class="caption">Key:</span> `[return]` <br />
<span class="caption">Action:</span> Open the selected review in the browser.
## Configuration
```yaml
gerrit:
colors:
rows:
even: "lightblue"
odd: "white"
domain: https://gerrit-review.googlesource.com
enabled: true
password: "mypassword"
position:
top: 2
left: 3
height: 2
width: 2
projects:
- org/test-project"
- dotfiles
refreshInterval: 300
username: "myname"
verifyServerCertificate: false
```
### Attributes
`colors.rows.even` <br />
Define the foreground color for even-numbered rows. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.rows.odd` <br />
Define the foreground color for odd-numbered rows. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`domain` <br />
Your Gerrit corporate domain. <br />
Values: A valid URI.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`password` <br />
Value: Your <a href="https://gerrit-review.googlesource.com/Documentation/user-upload.html#http">Gerrit HTTP Password</a>.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`projects` <br />
A list of Gerrit project names to fetch data for. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`username` <br />
Your Gerrit username.
`verifyServerCertificate` <br />
_Optional_ <br />
Determines whether or not the server's certificate chain and host name are verified. <br />
Values: `true`, `false`.

View File

@@ -1,97 +0,0 @@
---
title: "Git"
date: 2018-05-09T14:20:48-07:00
draft: false
---
Displays information about local git repositories: branch, changed
files, and recent commits.
<img src="/imgs/modules/git.png" width="720" height="292" alt="git screenshot" />
#### Branch
The name of the currently-active git branch.
#### Changed Files
A list of all the files that have changed since the last
commit, and their status.
#### Recent Commits
A list of `n` recent commits, who committed it, and when.
## Source Code
```bash
wtf/git/
```
## Required ENV Variables
None.
## Keyboard Commands
<span class="caption">Key:</span> `/` <br />
<span class="caption">Action:</span> Open/close the widget's help window.
<span class="caption">Key:</span> `h` <br />
<span class="caption">Action:</span> Show the previous git repository.
<span class="caption">Key:</span> `l` <br />
<span class="caption">Action:</span> Show the next git repository.
<span class="caption">Key:</span> `←` <br />
<span class="caption">Action:</span> Show the previous git repository.
<span class="caption">Key:</span> `→` <br />
<span class="caption">Action:</span> Show the next git repository.
## Configuration
```yaml
git:
commitCount: 5
commitFormat: "[forestgreen]%h [grey]%cd [white]%s [grey]%an[white]"
dateFormat: "%H:%M %d %b %y"
enabled: true
position:
top: 0
left: 3
height: 2
width: 2
refreshInterval: 8
repositories:
- "/Users/chris/go/src/github.com/senorprogrammer/wtf"
- "/Users/user/fakeapp"
```
### Attributes
`commitCount` <br />
The number of past commits to display. <br />
Values: A positive integer, `0..n`.
`commitFormat` <br />
_Optional_ The string format for the commit message. <br />
`dateFormat` <br />
_Optional_ The string format for the date/time in the commit message.
<br />
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`repositories` <br />
Defines which git repositories to watch. <br />
Values: A list of zero or more local file paths pointing to valid git repositories.

View File

@@ -1,101 +0,0 @@
---
title: "GitHub"
date: 2018-05-09T19:20:20-07:00
draft: false
---
Displays information about your git repositories hosted on GitHub:
#### Open Review Requests
All open code review requests assigned to you.
#### Open Pull Requests
All open pull requests created by you.
<img src="/imgs/modules/github.png" width="640" height="384" alt="github screenshot" />
## Source Code
```bash
wtf/github/
```
## Keyboard Commands
<span class="caption">Key:</span> `/` <br />
<span class="caption">Action:</span> Open/close the widget's help window.
<span class="caption">Key:</span> `h` <br />
<span class="caption">Action:</span> Show the previous git repository.
<span class="caption">Key:</span> `l` <br />
<span class="caption">Action:</span> Show the next git repository.
<span class="caption">Key:</span> `←` <br />
<span class="caption">Action:</span> Show the previous git repository.
<span class="caption">Key:</span> `→` <br />
<span class="caption">Action:</span> Show the next git repository.
## Configuration
```yaml
github:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
baseURL: ""
enabled: true
enableStatus: true
position:
top: 2
left: 3
height: 2
width: 2
refreshInterval: 300
repositories:
wesker-api: "UmbrellaCorp"
wtf: "senorprogrammer"
uploadURL: ""
username: "senorprogrammer"
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://developer.github.com/v3/oauth_authorizations/#create-a-new-authorization">GitHub API</a> token.
`baseURL` <br />
_Optional_ <br />
Value: Your <a href="https://developer.github.com/enterprise/2.13/v3/enterprise-admin/">GitHub Enterprise</a> API URL.
`enabled` <br />
Whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`enableStatus` <br />
Display pull request mergeability status ('dirty', 'clean', 'unstable',
'blocked').<br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`repositories` <br />
A list of key/value pairs each describing a GitHub repository to fetch data
for. <br />
<span class="caption">Key:</span> The name of the repository. <br />
<span class="caption">Value:</span> The name of the account or organization that owns the repository.
`uploadURL` <br />
_Optional_ <br />
Value: Your <a href="https://developer.github.com/enterprise/2.13/v3/enterprise-admin/">GitHub Enterprise</a> upload URL (often the same as API URL).
`username` <br />
Your GitHub username. Used to figure out which review requests you've
been added to.

View File

@@ -1,89 +0,0 @@
---
title: "GitLab"
date: 2018-06-08T13:14:11-07:00
draft: false
---
Added in `v0.0.8`.
<img src="/imgs/modules/gitlab.png" width="640" height="384" alt="gitlab screenshot" />
Displays information about your projects hosted on GitLab:
#### Open Approval Requests
All open merge requests that are requesting your approval.
#### Open Merge Requests
All open merge requests created by you.
## Source Code
```bash
wtf/gitlab/
```
## Keyboard Commands
<span class="caption">Key:</span> `/` <br />
<span class="caption">Action:</span> Open/close the widget's help window.
<span class="caption">Key:</span> `h` <br />
<span class="caption">Action:</span> Show the previous project.
<span class="caption">Key:</span> `l` <br />
<span class="caption">Action:</span> Show the next project.
<span class="caption">Key:</span> `←` <br />
<span class="caption">Action:</span> Show the previous project.
<span class="caption">Key:</span> `→` <br />
<span class="caption">Action:</span> Show the next project.
## Configuration
```yaml
gitlab:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 2
left: 3
height: 2
width: 2
refreshInterval: 300
projects:
tasks: "gitlab-org/release"
gitlab-ce: "gitlab-org"
username: "senorprogrammer"
```
### Attributes
`apiKey` <br />
Value: A <a href="https://docs.gitlab.com/ce/user/profile/personal_access_tokens.html">GitLab personal access token</a>. Requires at least `api` access.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`domain` <br />
_Optional_. Your GitLab corporate domain. <br />
Values: A valid URI.
`projects` <br />
A list of key/value pairs each describing a GitLab project to fetch data
for. <br />
<span class="caption">Key:</span> The name of the project. <br />
<span class="caption">Value:</span> The namespace of the project.
`username` <br />
Your GitLab username. Used to figure out which requests require your approval

View File

@@ -1,70 +0,0 @@
---
title: "Google Spreadsheets"
date: 2018-06-10T18:26:26-04:00
draft: false
---
Added in `v0.0.7`.
Display information from cells in a Google Spreadsheet.
```bash
wtf/gspreadsheets/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
gspreadsheets:
colors:
values: "green"
cells:
names:
- "Cell 1 name"
- "Cell 2 name"
addresses:
- "A1"
- "A2"
enabled: true
position:
top: 0
left: 0
width: 1
height: 1
refreshInterval: "300"
secretFile: "~/.config/wtf/gspreadsheets/client_secret.json"
sheetId: "id_of_google_spreadsheet"
```
### Attributes
`colors.values` <br />
The color to display the cell values in. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`cells.names` <br />
`cells.addresses` <br />
`enabled` <br />
Whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`secretFile` <br />
Your <a href="https://developers.google.com/sheets/api/quickstart/go">Google client secret</a> JSON file. <br />
Values: A string representing a file path to the JSON secret file.

View File

@@ -1,62 +0,0 @@
---
title: "IP-API"
date: 2018-06-10T19:41:52-04:00
draft: false
---
Added in `v0.0.7`.
Displays your current IP address information, from [IP-APIcom](http://ip-api.com).
**Note:** IP-API.com has a free-plan rate limit of 120 requests per
minute.
## Source Code
```bash
wtf/ipapi/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
ipinfo:
colors:
name: red
value: white
enabled: true
position:
top: 1
left: 2
height: 1
width: 1
refreshInterval: 150
```
### Attributes
`colors.name` <br />
The default colour for the row names. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`colors.value` <br />
The default colour for the row values. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,62 +0,0 @@
---
title: "IPInfo"
date: 2018-06-01T23:18:48-07:00
draft: false
---
Displays your current IP address information, from ipinfo.io.
**Note:** IPInfo.io has a free-plan rate limit of 1000 requests per day.
<img src="/imgs/modules/ipinfo.png" width="320" height="199" alt="ipinfo screenshot" />
## Source Code
```bash
wtf/ipinfo/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
ipinfo:
colors:
name: red
value: white
enabled: true
position:
top: 1
left: 2
height: 1
width: 1
refreshInterval: 150
```
### Attributes
`colors.name` <br />
The default colour for the row names. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`colors.value` <br />
The default colour for the row values. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,67 +0,0 @@
---
title: "Modules: Jenkins"
date: 2018-06-09T20:53:35-07:00
draft: false
---
Added in `v0.0.8`.
Displays jenkins status of given builds in a project or view
<img src="/imgs/modules/jenkins.png" alt="jenkins screenshot",
width="320" height="68" alt="jenkins screenshot" />
## Source Code
```bash
wtf/jenkins/
```
## Keyboard Commands
None.
## Configuration
```yaml
jenkins:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 2
left: 3
height: 2
width: 3
refreshInterval: 300
url: "https://jenkins.domain.com/jenkins/view_url"
user: "username"
verifyServerCertificate: true
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://wiki.jenkins.io/display/JENKINS/Remote+access+API">Jenkins API</a> key.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed.
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`user` <br />
Your Jenkins username. <br />
`url` <br />
The url to your Jenkins project or view. <br />
Values: A valid URI.
`verifyServerCertificate` <br />
_Optional_ <br />
Determines whether or not the server's certificate chain and host name are verified. <br />
Values: `true`, `false`.

View File

@@ -1,135 +0,0 @@
---
title: "Jira"
date: 2018-05-10T10:44:35-07:00
draft: false
---
Displays all Jira issues assigned to you for the specified project.
<img src="/imgs/modules/jira.png" width="640" height="188" alt="jira screenshot" />
## Source Code
```bash
wtf/jira/
```
## Keyboard Commands
<span class="caption">Key:</span> `[return]` <br />
<span class="caption">Action:</span> Open the selected issue in the browser.
<span class="caption">Key:</span> `j` <br />
<span class="caption">Action:</span> Select the next item in the list.
<span class="caption">Key:</span> `k` <br />
<span class="caption">Action:</span> Select the previous item in the list.
<span class="caption">Key:</span> `↓` <br />
<span class="caption">Action:</span> Select the next item in the list.
<span class="caption">Key:</span> `↑` <br />
<span class="caption">Action:</span> Select the previous item in the list.
## Configuration
### Single Jira Project
```yaml
jira:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
colors:
rows:
even: "lightblue"
odd: "white"
domain: "https://umbrellacorp.atlassian.net"
email: "chriscummer@me.com"
enabled: true
jql: "issueType = Story"
position:
top: 4
left: 1
height: 1
width: 2
project: "ProjectA"
refreshInterval: 900
username: "chris.cummer"
verifyServerCertificate: true
```
### Multiple Jira Projects
If you want to monitor multiple Jira projects, use the following
configuration (note the difference in `project`):
```yaml
jira:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
colors:
rows:
even: "lightblue"
odd: "white"
domain: "https://umbrellacorp.atlassian.net"
email: "chriscummer@me.com"
enabled: true
jql: "issueType = Story"
position:
top: 4
left: 1
height: 1
width: 2
project: ["ProjectA", "ProjectB"]
refreshInterval: 900
username: "chris.cummer"
verifyServerCertificate: true
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://confluence.atlassian.com/cloud/api-tokens-938839638.html">Jira API</a> key.
`colors.rows.even` <br />
Define the foreground color for even-numbered rows. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`colors.rows.odd` <br />
Define the foreground color for odd-numbered rows. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`domain` <br />
Your Jira corporate domain. <br />
Values: A valid URI.
`email` <br />
The email address associated with your Jira account. <br />
Values: A valid email address string.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`jql` <br />
_Optional_ <br />
Custom JQL to be appended to the search query. <br />
Values: See <a href="https://confluence.atlassian.com/jiracore/blog/2015/07/search-jira-like-a-boss-with-jql">Search Jira like a boss with JQL</a> for details.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`project` <br />
The Jira project to fetch information for. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`username` <br />
Your Jira username. <br />
`verifyServerCertificate` <br />
_Optional_ <br />
Determines whether or not the server's certificate chain and host name are verified. <br />
Values: `true`, `false`.

View File

@@ -1,58 +0,0 @@
---
title: "Logger"
date: 2018-06-16T14:22:18-07:00
draft: false
---
Displays the contents of the WTF log file.
To log to this file in your own modules:
```golang
require "github.com/senorprogrammer/wtf/logger"
logger.Log("This is a log entry")
```
## Source Code
```bash
wtf/logger/
```
## Required ENV Variables
None.
## Keyboard Commands
Arrow keys scroll through the log file.
## Configuration
```yaml
logger:
enabled: true
position:
top: 5
left: 4
height: 2
width: 1
refreshInterval: 1
```
### Attributes
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
**Note:** If you're using logging and logging is _disabled_, your logs
will still be written to file, the widget just won't be shown onscreen.
If you have `logger.Log` calls in your code, regardless of this setting,
they will be written out. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,61 +0,0 @@
---
title: "New Relic"
date: 2018-05-09T09:01:14-07:00
draft: false
---
Connects to the New Relic API and displays the last n deploys of the
monitored application: deploy ID, deploy time, and who deployed it.
<img src="/imgs/modules/newrelic.png" width="640" height="189" alt="newrelic screenshot" />
## Source Code
```bash
wtf/newrelic/
```
## Keyboard Commands
None.
## Configuration
```yaml
newrelic:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
applicationId: 10549735
deployCount: 6
enabled: true
position:
top: 4
left: 3
height: 1
width: 2
refreshInterval: 900
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://docs.newrelic.com/docs/apis/getting-started/intro-apis/access-rest-api-keys">New Relic API</a> token.
`applicationId` <br />
The integer ID of the New Relic application you wish to report on. <br
/>
Values: A positive integer, `0..n`.
`deployCount` <br />
The number of past deploys to display on screen. <br />
Values: A positive integer, `0..n`.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,55 +0,0 @@
---
title: "OpsGenie"
date: 2018-05-08T20:53:40-07:00
draft: false
---
Connects to the OpsGenie API and displays all your scheduled rotations
and who's currently on call.
<img src="/imgs/modules/opsgenie.png" width="320" height="389" alt="opsgenie screenshot" />
## Source Code
```bash
wtf/opsgenie/
```
## Keyboard Commands
None.
## Configuration
```yaml
opsgenie:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
displayEmpty: false
enabled: true
position:
top: 2
left: 1
height: 2
width: 1
refreshInterval: 21600
```
### Attributes
`apiKey` < br />
Value: Your <a href="https://docs.opsgenie.com/docs/api-integration">OpsGenie API</a> token.
`displayEmpty` <br />
Whether schedules with no assigned person on-call should be displayed. <br />
Values: `true`, `false`.
`enabled` <br />
Whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,51 +0,0 @@
---
title: "Power"
date: 2018-05-26T19:26:23-07:00
draft: false
---
Displays information about the current power source.
For battery, also displays the current charge, estimated time remaining,
and whether it is charging or discharging.
<img src="/imgs/modules/power.png" width="320" height="129" alt="power screenshot" />
## Source Code
```bash
wtf/power/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
power:
enabled: true
position:
top: 5
left: 0
height: 2
width: 1
refreshInterval: 15
```
### Attributes
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,72 +0,0 @@
---
title: "Pretty Weather"
date: 2018-06-02T05:32:04-07:00
draft: false
---
Displays weather information as ASCII art from
[Wttr.in](http://wttr.in).
<img src="/imgs/modules/prettyweather.png" width="320" height="191" alt="prettyweather screenshot" />
## Source Code
```bash
wtf/prettyweather/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
prettyweather:
enabled: true
city: "tehran"
position:
top: 3
left: 5
height: 1
width: 1
refreshInterval: 300
unit: "c"
view: 0
language: "en"
```
### Attributes
`city` <br />
_Optional_. It will grab the current location from your IP address if
omitted.<br />
Values: The name of any city supported by [Wttr.in](http://wttr.in).
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`unit` <br />
_Optional_. It will use metric if you are out of US and imperial for US.<br />
The temperature scale in which to display temperature values. <br />
Values: `F` for Fahrenheit, `C` for Celcius.
`view` <br />
_Optional_ Wttr.in view configuration. <br />
Values: See `curl wttr.in/:help` for more details.
`language` <br />
_Optional_ Wttr.in language configuration. <br />
Values: See `curl wttr.in/:translation` for more details.

View File

@@ -1,77 +0,0 @@
---
title: "Security"
date: 2018-05-08T20:33:28-07:00
draft: false
---
Displays some general information about the state of the machine's wifi
connection, firewall, DNS settings, and logged-in users.
<img src="/imgs/modules/security.png" width="320" height="192" alt="security screenshot" />
#### Wifi Network
<ul class="list-ornate">
<li>The name of the current network</li>
<li>Whether or not the network uses <a href="https://www.howtogeek.com/167783/htg-explains-the-difference-between-wep-wpa-and-wpa2-wireless-encryption-and-why-it-matters/">encryption</a> and if so, what flavour</li>
</ul>
#### Firewall
<ul class="list-ornate">
<li>Whether or not the <a href="https://support.apple.com/en-ca/HT201642">firewall</a> is enabled</li>
<li>Whether or not <a href="https://support.apple.com/en-ca/HT201642">Stealth Mode</a> is enabled</li>
</ul>
#### DNS
<ul class="list-ornate">
<li>Which <a hre="https://developers.cloudflare.com/1.1.1.1/what-is-1.1.1.1/">DNS resolvers</a> (servers) the machine is configured to use</li>
</ul>
#### Users
<ul class="list-ornate">
<li> Which users are logged into the machine. Note: Does not yet
show hidden users.</li>
</ul>
## Source Code
```bash
wtf/security/
```
## Required ENV Variables
None.
## Keyboard Commands
None.
## Configuration
```yaml
security:
enabled: true
position:
top: 1
left: 2
height: 1
width: 1
refreshInterval: 3600
```
### Attributes
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,57 +0,0 @@
---
title: "Textfile"
date: 2018-05-09T11:13:11-07:00
draft: false
---
Displays the contents of the specified text file in the widget.
<img src="/imgs/modules/textfile.png" width="320" height="133" alt="textfile screenshot" />
## Source Code
```bash
wtf/textfile/
```
## Required ENV Variables
None.
## Keyboard Commands
<span class="caption">Key:</span> `/` <br />
<span class="caption">Action:</span> Open/close the widget's help window.
<span class="caption">Key:</span> `o` <br />
<span class="caption">Action:</span> Opens the text file in whichever text editor is associated with that file type.
## Configuration
```yaml
textfile:
enabled: true
filePath: "~/Desktop/notes.md"
position:
top: 5
left: 4
height: 2
width: 1
refreshInterval: 15
```
### Attributes
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`filePath` <br />
The path to the file to be displayed in the widget. <br />
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,115 +0,0 @@
---
title: "Todo"
date: 2018-05-10T12:41:50-07:00
draft: false
---
An interactive todo list.
<img src="/imgs/modules/todo.png" width="320" height="388" alt="todo screenshot" />
## Source Code
```bash
wtf/todo/
```
## Required ENV Variables
None.
## Keyboard Commands
<span class="caption">Key:</span> `[return]` <br />
<span class="caption">Action:</span> Edit the selected item. <br />
<span class="caption">Action:</span> Close the modal item dialog and save changes. <br />
<span class="caption">Key:</span> `[esc]` <br />
<span class="caption">Action:</span> Remove focus from the selected item. <br />
<span class="caption">Action:</span> Close the modal item dialog without saving changes.
<span class="caption">Key:</span> `[space]` <br />
<span class="caption">Action:</span> Check/uncheck the selected item.
<span class="caption">Key:</span> `/` <br />
<span class="caption">Action:</span> Open/close the widget's help window.
<span class="caption">Key:</span> `j` <br />
<span class="caption">Action:</span> Select the next item in the list.
<span class="caption">Key:</span> `k` <br />
<span class="caption">Action:</span> Select the previous item in the list.
<span class="caption">Key:</span> `n` <br />
<span class="caption">Action:</span> Create a new list item.
<span class="caption">Key:</span> `o` <br />
<span class="caption">Action:</span> Opens the todo list file in
whichever text editor is associated with that file type.
<span class="caption">Key:</span> `↓` <br />
<span class="caption">Action:</span> Select the next item in the list.
<span class="caption">Key:</span> `↑` <br />
<span class="caption">Action:</span> Select the previous item in the list.
<span class="caption">Key:</span> `Ctrl-d` <br />
<span class="caption">Action:</span> Delete the selected item.
<span class="caption">Key:</span> `Ctrl-J` <br />
<span class="caption">Action:</span> Move the selected item down the list.
<span class="caption">Key:</span> `Ctrl-K` <br />
<span class="caption">Action:</span> Move the selected item up the list.
## Configuration
```yaml
todo:
checkedIcon: "X"
colors:
checked: gray
highlight:
fore: "black"
back: "orange"
enabled: true
filename: "todo.yml"
position:
top: 2
left: 2
height: 2
width: 1
refreshInterval: 3600
```
### Attributes
`checkedIcon` <br />
The icon used to denote a "checked" todo item. <br />
Values: Any displayable unicode character.
`colors.checked` <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`colors.highlight.fore` <br />
The foreground color for the currently-selected row. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`colors.highlight.back` <br />
The background color for the currently-selected row. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11 color</a> name.
`enabled` <br />
Whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`filename` <br />
The name for the todo file. <br />
Values: Any valid filename, ideally ending in `yml`.
`position` <br />
Where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,88 +0,0 @@
---
title: "Todoist"
date: 2018-07-05T22:55:55-03:00
draft: false
---
Added in `v0.0.11`.
Displays all items on specified project.
<img src="/imgs/modules/todoist.png" alt="todoist screenshot" />
## Source Code
```bash
wtf/todoist/
```
## Keyboard Commands
<span class="caption">Key:</span> `h` <br />
<span class="caption">Action:</span> Show the previous project.
<span class="caption">Key:</span> `←` <br />
<span class="caption">Action:</span> Show the previous project.
<span class="caption">Key:</span> `l` <br />
<span class="caption">Action:</span> Show the next project.
<span class="caption">Key:</span> `→` <br />
<span class="caption">Action:</span> Show the next project.
<span class="caption">Key:</span> `j` <br />
<span class="caption">Action:</span> Select the next item in the list.
<span class="caption">Key:</span> `↓` <br />
<span class="caption">Action:</span> Select the next item in the list.
<span class="caption">Key:</span> `k` <br />
<span class="caption">Action:</span> Select the previous item in the list.
<span class="caption">Key:</span> `↑` <br />
<span class="caption">Action:</span> Select the previous item in the list.
<span class="caption">Key:</span> `c` <br />
<span class="caption">Action:</span> Close current item.
<span class="caption">Key:</span> `d` <br />
<span class="caption">Action:</span> Delete current item.
<span class="caption">Key:</span> `r` <br />
<span class="caption">Action:</span> Reload all projects.
## Configuration
```yaml
todoist:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 0
left: 2
height: 1
width: 1
projects:
- 122247497
refreshInterval: 3600
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://developer.todoist.com/sync/v7/">Todoist API</a> token.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Where in the grid this module's widget will be displayed. <br />
`projects` <br />
The todoist projects to fetch items from. <br />
Values: The integer ID of the project.
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.

View File

@@ -1,72 +0,0 @@
---
title: "TravisCI"
date: 2018-07-18T14:36:08-04:00
draft: false
---
Added in `v0.0.12`.
Displays build information for your Travis CI account.
<img src="/imgs/modules/travisci.png" width="609" height="150" alt="travisci screenshot" />
## Source Code
```bash
wtf/travisci/
```
## Keyboard Commands
<span class="caption">Key:</span> `[return]` <br />
<span class="caption">Action:</span> Open the selected build in the browser.
<span class="caption">Key:</span> `j` <br />
<span class="caption">Action:</span> Select the next build in the list.
<span class="caption">Key:</span> `k` <br />
<span class="caption">Action:</span> Select the previous build in the list.
<span class="caption">Key:</span> `r` <br />
<span class="caption">Action:</span> Refresh the data.
<span class="caption">Key:</span> `↓` <br />
<span class="caption">Action:</span> Select the next build in the list.
<span class="caption">Key:</span> `↑` <br />
<span class="caption">Action:</span> Select the previous build in the list.
## Configuration
```yaml
travisci:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 4
left: 1
height: 1
width: 2
pro: false
refreshInterval: 900
```
### Attributes
`apiKey` <br />
Value: Your <a href="https://developer.travis-ci.org/authentication">Travis CI API</a> access token.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`pro` <br />
Determines whether or not this module will use the Pro version of Travis CI.<br />
Values: `true`, `false`.

View File

@@ -1,88 +0,0 @@
---
title: "Trello"
date: 2018-05-10T10:44:35-07:00
draft: false
---
Displays all Trello cards on specified lists.
<img src="/imgs/modules/trello.png" width="640" height="188" alt="trello screenshot" />
## Source Code
```bash
wtf/trello/
```
## Keyboard Commands
None.
## Configuration
### Single Trello List
```yaml
trello:
accessToken: "7b8b14f8743a408a93276d7155dd9ee2"
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
board: Main
enabled: true
list: "Todo"
position:
height: 1
left: 2
top: 0
width: 1
refreshInterval: 3600
username: myname
```
### Multiple Trello Lists
If you want to monitor multiple Trello lists, use the following
configuration (note the difference in `list`):
```yaml
trello:
accessToken: "7b8b14f8743a408a93276d7155dd9ee2"
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
board: Main
enabled: true
list: ["Todo", "Done"]
position:
height: 1
left: 2
top: 0
width: 1
refreshInterval: 3600
username: myname
```
### Attributes
`accessToken` <br />
Value: Your Trello access token.
`apiKey` <br />
Value: Your Trello API key.
`board` <br />
The name of the Trello board. <br />
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`list` <br />
The Trello lists to fetch cards from. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`username` <br />
Your Trello username. <br />
`position` <br />
Where in the grid this module's widget will be displayed. <br />

View File

@@ -1,47 +0,0 @@
---
title: "Twitter"
date: 2018-07-31T20:21:37-07:00
draft: false
---
Added in `v0.1.2`.
Connects to the Twitter API and displays a single user's tweets.
NOTE: This only works for single-application developer accounts for now.
## Source Code
```bash
wtf/twitter/
```
## Configuration
```yaml
twitter:
bearerToken: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 0
left: 1
height: 1
width: 1
refreshInterval: 20000
```
### Attributes
`bearerToken` <br />
Value: Your <a href="https://developer.twitter.com/en/docs/basics/authentication/overview/application-only.html">Twitter single-application Bearer Token</a>
`enabled` <br />
Whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: Any positive integer, `0..n`.

View File

@@ -1,100 +0,0 @@
---
title: "Weather"
date: 2018-05-09T11:44:13-07:00
draft: false
---
Displays a configurable list of current weather report, including
current temperature, sunrise time, and sunset time.
<img src="/imgs/modules/weather.png" width="320" height="187" alt="weather screenshot" />
## Source Code
```bash
wtf/weather/
```
## Required ENV Variables
<span class="caption">Key:</span> `WTF_OWM_API_KEY` <br />
<span class="caption">Action:</span> Your <a href="https://openweathermap.org/appid">OpenWeatherMap API</a> key. <br />
<span class="caption">Note:</span> DEPRECATED. See the `apiKey` config value, below.
## Keyboard Commands
<span class="caption">Key:</span> `/` <br />
<span class="caption">Action:</span> Open/close the widget's help window.
<span class="caption">Key:</span> `h` <br />
<span class="caption">Action:</span> Show the previous weather location.
<span class="caption">Key:</span> `l` <br />
<span class="caption">Action:</span> Show the next weather location.
<span class="caption">Key:</span> `←` <br />
<span class="caption">Action:</span> Show the previous weather location.
<span class="caption">Key:</span> `→` <br />
<span class="caption">Action:</span> Show the next weather location.
## Configuration
```yaml
weather:
apiKey: "2dfb3e3650a1950adddb6badf5ba1aaa"
# From http://openweathermap.org/help/city_list.txt
cityids:
- 6173331
- 3128760
- 6167865
- 6176823
colors:
current: "lightblue"
enabled: true
language: "EN"
position:
top: 0
left: 2
height: 1
width: 1
refreshInterval: 900
tempUnit: "C"
```
### Attributes
`apiKey` <br />
Your <a href="https://openweathermap.org/appid">OpenWeatherMap API</a> key.
`cityids` <br />
A list of the <a
href="http://openweathermap.org/help/city_list.txt">OpenWeatherMap city
IDs</a> for the cities you want to view. <br />
Values: A list of positive integers, `0..n`
`colors.current` <br />
The color to highlight the current temperature in. <br />
Values: Any <a href="https://en.wikipedia.org/wiki/X11_color_names">X11
color name</a>.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`language` <br />
The human language in which to present the weather data. <br />
Values: Any <a href="https://openweathermap.org/current">language identifier</a> specified by OpenWeatherMap.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`refreshInterval` <br />
How often, in seconds, this module will update its data. <br />
Values: A positive integer, `0..n`.
`tempUnit` <br />
The temperature scale in which to display temperature values. <br />
Values: `F` for Fahrenheit, `C` for Celcius.

View File

@@ -1,72 +0,0 @@
---
title: "Zendesk"
date: 2018-07-23T18:55:37-08:00
draft: false
---
Added in `v0.1.0`.
Displays tickets in the "New" status - i.e. have not yet been assigned.
## Source Code
```bash
wtf/zendesk/
```
## Keyboard Commands
<span class="caption">Key:</span> `[return]` <br />
<span class="caption">Action:</span> Open the selected ticket in the browser.
<span class="caption">Key:</span> `j` <br />
<span class="caption">Action:</span> Select the next item in the list.
<span class="caption">Key:</span> `k` <br />
<span class="caption">Action:</span> Select the previous item in the list.
<span class="caption">Key:</span> `↓` <br />
<span class="caption">Action:</span> Scroll down the list.
<span class="caption">Key:</span> `↑` <br />
<span class="caption">Action:</span> Scroll up the list.
## Configuration
```yaml
zendesk:
apiKey: "3276d7155dd9ee27b8b14f8743a408a9"
enabled: true
position:
top: 0
left: 2
height: 1
width: 1
status: "new"
subdomain: "your_domain"
username: "your_email@acme.com"
```
### Attributes
`apiKey` <br />
Value: Your Zendesk API token.
`enabled` <br />
Determines whether or not this module is executed and if its data displayed onscreen. <br />
Values: `true`, `false`.
`position` <br />
Defines where in the grid this module's widget will be displayed. <br />
`status` <br />
The status of tickets you want to retrieve.
Values: `new`, `open`, `pending`, `hold`.
`subdomain` <br />
Value: Your Zendesk subdomain.
`username` <br />
Your Zendesk username
Values: A valid Zendesk username (usually an email address).

View File

@@ -1,51 +0,0 @@
---
title: "Overview"
date: 2018-05-21T16:11:58-07:00
draft: false
---
<span style="font-family: monospace; font-size: 1.6em;">WTF</span> is a personal information dashboard for your terminal, developed for those who spend most of their day in the command line.
It allows you to monitor services and systems that you otherwise might
keep browser tabs open for, the kinds of things you don't always need
visible, but might check in on every now and then.
## Quick Start
1. <a href="https://github.com/senorprogrammer/wtf/releases">Download</a> the stand-alone, compiled binary.
2. Unzip the downloaded file.
3. From the command line, `cd` into the newly-created `/wtf` directory.
4. From the command line, run the app: `./wtf`
This should launch the app in your terminal using the default simple
configuration. See <a href="/posts/configuration/">Configuration</a> for
more details.
## Command-line Options
`--config, -c` <br />
Allows you to define a custom config file to use. See <a href="/posts/configuration/">Configuration</a> for more details.
`--help, -h` <br />
Shows help information for the command-line arguments that WTF
takes.
`--module, -m` <br />
Shows help information for the specific named module, if that module
supports help text. <br />
Example: `wtf --module=todo`.
`--version, -v` <br />
Shows version info.
## Keyboard Commands
<span class="caption">Key:</span> `Ctrl-R` <br />
<span class="caption">Action:</span> Force-refresh the data for all modules.
<span class="caption">Key:</span> `Esc` <br />
<span class="caption">Action:</span> Unfocus the currently-focused
widget.
<span class="caption">Key:</span> `Tab` <br />
<span class="caption">Action:</span> Move between focusable modules (`Shift-Tab` to move backwards).