Code Monkey home page Code Monkey logo

blimp's Introduction

Blimp

Customizable terminal UI for monitoring weather information, application status, network latency, and more

I built this to run on a RaspberryPi Zero inside a Macintosh 1 on my shelf to quickly see weather and uptime info.

Example 1Example 2

Widgets

  • Weather: Display current weather information and forecast
  • Network Latency: Display a live chart of the network latency / ping
  • Application Status: Monitor the status of web applications
  • RSS, Atom & JSON Feeds: Display the most recent items from multiple feeds
  • Public transit next departures: Display the next departures from public transit stations nearby
  • Random Quotes: Display a random quote that changes periodically

Installation

# Install from GitHub
go install github.com/merlinfuchs/blimp@latest
# Run blimp
blimp

Configuration

The app will look for a configuration file called blimp.toml. Blimp comes with pretty good defaults but you can adjust everything how you want.

Configure the widgets

[[widgets.status.targets]]
name = "Xenon Bot"
type = "https"
host = "xenon.bot"

[[widgets.status.targets]]
name = "Embed Generator"
type = "https"
host = "message.style"

[[widgets.status.targets]]
name = "Friendly Captcha API"
type = "https"
host = "eu-api.friendlycaptcha.eu"

[[widgets.status.targets]]
name = "Google DNS"
type = "ping"
host = "8.8.8.8"

[widgets.weather]
# You openweathermap.org API key
owm_api_key = ""
# The latitude and longitude of the weather location
owm_lat = 51.33
owm_lon = 12.37

[[widgets.feeds.targets]]
url = "https://hnrss.org/newest"

[widgets.transit]
# Your developer.here.com API key
here_api_key = ""
# The latitude and longitude of the location where blimp will look for the next public transit departures
here_lat = 51.33
here_lon = 12.37
# The search radius around the coordinates in meters
here_radius = 500

Configure the layout

Blimp supports multiple pages that it switches between on an interval. Each page can have a distinct grid layout with different widgets. If you don't want blimp to switch between pages, only define one page.

# How fast do you want blimp to switch between pages
page_interval = 30000 # 30 seconds is the default

# Your first page
[[pages]]
layout = [
    ["weather", "weather"],
    ["weather", "weather"],
    ["latency", "status"]
]

# Your second page
[[pages]]
layout = [
    ["feeds", "feeds"],
    ["feeds", "feeds"],
    ["feeds", "feeds"],
    ["quotes", "status"]
]

# Your third page
[[pages]]
...

Look at the default config for other values you can override.

Logging

Blimp will log errors and warning to STDERR. Because STDOUT is already used for the UI it can be hard to spot the errors.

To be able to see the log messages you can redirect the STDERR output to a file:

blimp 2>> blimp.log

Configure the display

If you are running this on a low resolution display and aren't happy about the readability and looks, you might want to reconfigure the font and font-size of the terminal output.

For example on a raspberry pi you can run sudo dpkg-reconfigure console-setup to change the font and font-size. For my personal setup I have found TerminusBold wiht 12x24 to have looked the best.

blimp's People

Contributors

erjanmx avatar merlinfuchs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

blimp's Issues

(Suggestion) RSS feed viewer!

I absolutely love this thing! have it running on my server display since it really adds an element of information that I was looking for! I definitely want to see where this thing goes in the future! I would suggest looking into the possibility to add another info display for RSS feeds. It would be quite an interesting component to have. With it being a side monitor, RSS feeds can carry a lot of information on their own, and I think it would work great with this!

Issue with Panic Error on First Run After Installation

I encountered an issue while trying to run the blimp application after installing it on my system. Here are the details:

Go Version: go1.21.0 linux/arm64
System Version: Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Issue:

Upon running the blimp application using the command blimp, I encountered a panic error with the following stack trace:
Issue:

pi@raspberrypi:~$ blimp
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/merlinfuchs/blimp/internal/widgets/weather.(*StatusView).updateView(0x40000cede0)
        /home/pi/go/pkg/mod/github.com/merlinfuchs/[email protected]/internal/widgets/weather/weather.go:92 +0x22a0
github.com/merlinfuchs/blimp/internal/widgets/weather.(*StatusView).updateData(0x40000cede0)
        /home/pi/go/pkg/mod/github.com/merlinfuchs/[email protected]/internal/widgets/weather/weather.go:75 +0x190
github.com/merlinfuchs/blimp/internal/widgets/weather.(*StatusView).Start(0x40000cede0)
        /home/pi/go/pkg/mod/github.com/merlinfuchs/[email protected]/internal/widgets/weather/weather.go:44 +0x20
github.com/merlinfuchs/blimp/internal.constructPages({0x40000945f0, 0x2, 0x44f9bb?}, 0x40001a5890)
        /home/pi/go/pkg/mod/github.com/merlinfuchs/[email protected]/internal/app.go:149 +0x55c
github.com/merlinfuchs/blimp/internal.AppEntry()
        /home/pi/go/pkg/mod/github.com/merlinfuchs/[email protected]/internal/app.go:35 +0x29c
main.main()
        /home/pi/go/pkg/mod/github.com/merlinfuchs/[email protected]/main.go:28 +0xe4

Upon running the blimp application using the command blimp, I encountered a panic error with the following stack trace:
It appears that the application is encountering an "index out of range" error during its execution.

Steps to Reproduce:
Install blimp using the command: go install github.com/merlinfuchs/blimp@latest
Run the blimp application: blimp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.