diff --git a/.DS_Store b/.DS_Store
deleted file mode 100644
index c815196b..00000000
Binary files a/.DS_Store and /dev/null differ
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000..ca3324c1
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,21 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+max_line_length=120
+
+[*.go]
+indent_style = tab
+indent_size = 4
+charset = utf-8
+trim_trailing_whitespace = true
+
+[*.html]
+indent_style = tab
+indent_size = 4
+charset = utf-8
+trim_trailing_whitespace = false
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/.github/ISSUE_TEMPLATE/Bug.md b/.github/ISSUE_TEMPLATE/Bug.md
new file mode 100644
index 00000000..25eef495
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Bug.md
@@ -0,0 +1,20 @@
+---
+name: Bug Report
+about: Something is broken?
+---
+
+### Bug Report
+
+#### Summary
+
+
+##### What is the current behaviour?
+
+
+### How to reproduce
+
+##### If the current behaviour is a bug, please provide the steps to reproduce it.
+
+
+##### What do you think the expected behaviour should be?
+
diff --git a/.github/ISSUE_TEMPLATE/Feature.md b/.github/ISSUE_TEMPLATE/Feature.md
new file mode 100644
index 00000000..9adde8b4
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Feature.md
@@ -0,0 +1,16 @@
+---
+name: Feature Request
+about: You have a neat idea that should be implemented?
+---
+
+### Feature Request
+
+
+| Q | A
+|------------ | ------
+| New Feature | yes
+| RFC | yes/no
+| BC Break | yes/no
+
+#### Summary
+
diff --git a/.github/ISSUE_TEMPLATE/Support.md b/.github/ISSUE_TEMPLATE/Support.md
new file mode 100644
index 00000000..8e127f00
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Support.md
@@ -0,0 +1,11 @@
+---
+name: ❓ Support Question
+about: Have a problem that you can't figure out?
+---
+
+| Q | A
+|------------ | -----
+| Version | 0.0.4
+#### Support Question
+
+
diff --git a/.github/PULL_REQUEST_TEMPLATE/Improvement.md b/.github/PULL_REQUEST_TEMPLATE/Improvement.md
new file mode 100644
index 00000000..8b616076
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE/Improvement.md
@@ -0,0 +1,16 @@
+---
+name: Improvement
+about: You have some improvement to make wtf better?
+---
+
+### Improvement
+
+
+| Q | A
+|------------ | ------
+| New Feature | yes
+| RFC | yes/no
+| BC Break | yes/no
+
+#### Summary
+
diff --git a/.github/PULL_REQUEST_TEMPLATE/Other.md b/.github/PULL_REQUEST_TEMPLATE/Other.md
new file mode 100644
index 00000000..65da67ee
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE/Other.md
@@ -0,0 +1,18 @@
+---
+name: Other
+about: You have some other ideas you want to introduce?
+---
+
+
+
+**What kind of change does this PR introduce?**
+
+
+**Summary**
+
+
+
+**Does this PR introduce a breaking change?**
+
+
+**Other information**
diff --git a/.gitignore b/.gitignore
index d5e25ce0..7ff72253 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,21 @@
+### Go ###
+# Binaries for programs and plugins
+*.exe
+*.exe~
+*.dll
+*.so
+*.dylib
+
+# Test binary, build with `go test -c`
+*.test
+
+# Output of the go coverage tool, specifically when used with LiteIDE
+*.out
+
+# Misc
.DS_Store
gcal/client_secret.json
+#intellij idea
+.idea/
+
+dist/*
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..0eef35b1
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,46 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at chriscummer+wtf@me.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
+
+[homepage]: http://contributor-covenant.org
+[version]: http://contributor-covenant.org/version/1/4/
diff --git a/Makefile b/Makefile
index 60ef00cf..0828bf38 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@ dependencies:
go get -v ./...
install:
- which wtf | xargs rm
+ which wtf | xargs rm || true
go install -ldflags="-X main.version=$(shell git describe --always --abbrev=6)_$(BRANCH) -X main.date=$(shell date +%FT%T%z)"
which wtf
diff --git a/README.md b/README.md
index 5148713e..6ed53242 100644
--- a/README.md
+++ b/README.md
@@ -17,12 +17,21 @@ displaying infrequently-needed, but very important, daily data.
work with Go versions < 1.7, and only _may_ work on other versions.
```bash
-go get github.com/senorprogrammer/wtf
+go get -u github.com/senorprogrammer/wtf
cd $GOPATH/src/github.com/senorprogrammer/wtf
make install
make run
```
+Or [download the latest binary](https://github.com/senorprogrammer/wtf/releases).
+
+## Support
+
+Chat on Gitter:
+[](https://gitter.im/wtfutil/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+## Documentation
+
See [https://wtfutil.com](https://wtfutil.com) for the definitive
documentation. Here's some short-cuts:
@@ -38,15 +47,19 @@ And a "probably up-to-date" list of currently-implemented modules:
* [Google Calendar](http://wtfutil.com/posts/modules/gcal/)
* [Git](http://wtfutil.com/posts/modules/git/)
* [GitHub](http://wtfutil.com/posts/modules/github/)
+* [IPInfo](http://wtfutil.com/posts/modules/ipinfo/)
* [Jira](http://wtfutil.com/posts/modules/jira/)
* [New Relic](http://wtfutil.com/posts/modules/newrelic/)
* [OpsGenie](http://wtfutil.com/posts/modules/opsgenie)
* [Power](http://wtfutil.com/posts/modules/power/)
+* [PrettyWeather](http://wtfutil.com/posts/modules/prettyweather/)*
* [Security](http://wtfutil.com/posts/modules/security/)
* [Textfile](http://wtfutil.com/posts/modules/textfile/)
* [Todo List](http://wtfutil.com/posts/modules/todo/)
* [Weather](http://wtfutil.com/posts/modules/weather/)
+*experimental
+
## Contributing
Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests.
@@ -78,3 +91,7 @@ Many thanks to all these developers.
* [openweathermap](https://github.com/briandowns/openweathermap)
* [tcell](https://github.com/gdamore/tcell)
* [tview](https://github.com/rivo/tview)
+
+
+
+
diff --git a/_site/content/posts/configuration/attributes.md b/_site/content/posts/configuration/attributes.md
index d709a8fb..2850875e 100644
--- a/_site/content/posts/configuration/attributes.md
+++ b/_site/content/posts/configuration/attributes.md
@@ -25,6 +25,7 @@ wtf:
rows: [10, 10, 10, 10, 10, 3, 4]
# The app redraws itself once a second
refreshInterval: 1
+ term: "xterm-256color"
```
### Attributes
@@ -69,3 +70,12 @@ How often, in seconds, the UI refreshes itself.
**Note:** This implementation is probably wrong and buggy and likely to
change.
Values: A positive integer, `0..n`.
+
+`term`
+_Optional_.
+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.
+**Note:** If an invalid value is provided for this setting, the app will
+ crash with a `"terminal entry not found"` error.
+Values: Any valid terminal type (ie: vt100, xterm, xterm-256color, ansi,
+etc.).
diff --git a/_site/content/posts/installation.md b/_site/content/posts/installation.md
index 24829498..dcc4aafa 100644
--- a/_site/content/posts/installation.md
+++ b/_site/content/posts/installation.md
@@ -11,7 +11,7 @@ There are two ways to install WTF:
Get this repo and install the dependencies:
```bash
-go get github.com/senorprogrammer/wtf
+go get -u github.com/senorprogrammer/wtf
cd $GOPATH/src/github.com/senorprogrammer/wtf
make install
make run
diff --git a/_site/content/posts/modules/cryptocurrencies/cryptolive.md b/_site/content/posts/modules/cryptocurrencies/cryptolive.md
new file mode 100644
index 00000000..7d511c0b
--- /dev/null
+++ b/_site/content/posts/modules/cryptocurrencies/cryptolive.md
@@ -0,0 +1,88 @@
+---
+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).
+
+## Source Code
+
+```bash
+wtf/cryptocurrencies/cryptolive/
+```
+
+## Required ENV Vars
+
+None.
+
+## Keyboard Commands
+
+None.
+
+## Configuration
+
+```yaml
+cryptolive:
+ colors:
+ from:
+ name: coral
+ displayName: grey
+ to:
+ name: white
+ price: green
+ currencies:
+ BTC:
+ displayName: Bitcoin
+ to:
+ - USD
+ - EUR
+ - ETH
+ ETH:
+ displayName: Ethereum
+ to:
+ - USD
+ - EUR
+ - ETH
+ enabled: true
+ position:
+ top: 5
+ left: 2
+ height: 1
+ width: 2
+ refreshInterval: 30
+ updateInterval: 15
+```
+
+### Attributes
+
+`colors.from.name`
+Values: Any X11
+color name.
+
+`colors.from.dispayName`
+Values: Any X11
+color name.
+
+`colors.to.name`
+Values: Any X11
+color name.
+
+`colors.to.price`
+Values: Any X11
+color name.
+
+`currencies`
+
+`enabled`
+Determines whether or not this module is executed and if its data displayed onscreen.
+Values: `true`, `false`.
+
+`position`
+Defines where in the grid this module's widget will be displayed.
+
+`refreshInterval`
+How often, in seconds, this module will update its data.
+Values: A positive integer, `0..n`.
diff --git a/_site/content/posts/modules/gcal.md b/_site/content/posts/modules/gcal.md
index 29860761..3376f814 100644
--- a/_site/content/posts/modules/gcal.md
+++ b/_site/content/posts/modules/gcal.md
@@ -8,6 +8,9 @@ Displays your upcoming Google calendar events.
+**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
diff --git a/_site/content/posts/modules/ipinfo.md b/_site/content/posts/modules/ipinfo.md
new file mode 100644
index 00000000..f1c40c79
--- /dev/null
+++ b/_site/content/posts/modules/ipinfo.md
@@ -0,0 +1,60 @@
+---
+title: "Module: IPInfo"
+date: 2018-06-01T23:18:48-07:00
+draft: false
+---
+
+Displays your current IP address information, from ipinfo.io.
+
+
+
+## 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: 15
+```
+
+### Attributes
+
+`colors.name`
+The default colour for the row names.
+Values: Any X11 color name.
+
+`colors.value`
+The default colour for the row values.
+Values: Any X11 color name.
+
+`enabled`
+Determines whether or not this module is executed and if its data displayed onscreen.
+Values: `true`, `false`.
+
+`position`
+Defines where in the grid this module's widget will be displayed.
+
+`refreshInterval`
+How often, in seconds, this module will update its data.
+Values: A positive integer, `0..n`.
diff --git a/_site/content/posts/modules/jira.md b/_site/content/posts/modules/jira.md
index 008db39a..0f40d4b3 100644
--- a/_site/content/posts/modules/jira.md
+++ b/_site/content/posts/modules/jira.md
@@ -34,6 +34,7 @@ jira:
domain: "https://umbrellacorp.atlassian.net"
email: "chriscummer@me.com"
enabled: true
+ jql: "issueType = Story"
position:
top: 4
left: 1
@@ -68,6 +69,11 @@ Values: A valid email address string.
Determines whether or not this module is executed and if its data displayed onscreen.
Values: `true`, `false`.
+`jql`
+_Optional_
+Custom JQL to be appended to the search query.
+Values: See Search Jira like a boss with JQL for details.
+
`position`
Defines where in the grid this module's widget will be displayed.
diff --git a/_site/content/posts/modules/prettyweather.md b/_site/content/posts/modules/prettyweather.md
new file mode 100644
index 00000000..3a11fe8f
--- /dev/null
+++ b/_site/content/posts/modules/prettyweather.md
@@ -0,0 +1,64 @@
+---
+title: "Prettyweather"
+date: 2018-06-02T05:32:04-07:00
+draft: false
+---
+
+**🔬 Experimental**
+
+Displays weather information as ASCII art from
+[Wttr.in](http://wttr.in).
+
+
+
+## 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"
+```
+
+### Attributes
+
+`city`
+_Optional_. It will grab the current location from your IP address if
+omitted.
+Values: The name of any city supported by [Wttr.in](http://wttr.in).
+
+`enabled`
+Determines whether or not this module is executed and if its data displayed onscreen.
+Values: `true`, `false`.
+
+`position`
+Defines where in the grid this module's widget will be displayed.
+
+`refreshInterval`
+How often, in seconds, this module will update its data.
+Values: A positive integer, `0..n`.
+
+`unit`
+_Optional_. It will use metric if you are out of US and imperial for US.
+The temperature scale in which to display temperature values.
+Values: `F` for Fahrenheit, `C` for Celcius.
diff --git a/_site/static/imgs/modules/ipinfo.png b/_site/static/imgs/modules/ipinfo.png
new file mode 100644
index 00000000..45eb5831
Binary files /dev/null and b/_site/static/imgs/modules/ipinfo.png differ
diff --git a/_site/static/imgs/modules/prettyweather.png b/_site/static/imgs/modules/prettyweather.png
new file mode 100644
index 00000000..77c06b7b
Binary files /dev/null and b/_site/static/imgs/modules/prettyweather.png differ
diff --git a/_site/themes/hyde-hyde/layouts/partials/sidebar.html b/_site/themes/hyde-hyde/layouts/partials/sidebar.html
index 7922fbc7..dbf4b12b 100644
--- a/_site/themes/hyde-hyde/layouts/partials/sidebar.html
+++ b/_site/themes/hyde-hyde/layouts/partials/sidebar.html
@@ -1,5 +1,5 @@