___________________________________________
title: Pocket CHIP Terminal Dashboard
tags: chip hack 100daystooffload
date: 2021-04-04
___________________________________________

Intro

When I first got my Pocket C.H.I.P. one of the first thoughts I had
was to use it as sort of a mini-desktop terminal to display things
like weather, new mail, etc. After doing some other tinkering with it
first, it has been on my desk the last couple of weeks displaying the
following information,

 [Pocket C.H.I.P.]: https://www.ecliptik.com/Pocket-CHIP/
 [other tinkering]: https://www.ecliptik.com/CHIP-Serial-Console/

-   Latest local toot in Fosstodon using Toot
-   Top 10 Hacker News posts using haxor-news
-   Current weather from wttr.in
-   Current time with tty-clock
-   Currenly playing track on Spotify using walt-grover

 [Fosstodon]: https://fosstodon.org/web/timelines/public/local
 [Toot]: https://github.com/ihabunek/toot
 [Hacker News]: https://news.ycombinator.com
 [haxor-news]: https://github.com/donnemartin/haxor-news
 [wttr.in]: https://wttr.in
 [tty-clock]: https://github.com/xorg62/tty-clock
 [walt-grover]: https://github.com/ecliptik/walt-grover

[Pocket C.H.I.P Terminal Dashboard]

 [Pocket C.H.I.P Terminal Dashboard]: /assets/images/posts/chip_terminal/IMG_6909.png

Pocket C.H.I.P. Terminal Dashboard
Setup

Tmux is the heart of the setup, with each applet in it’s own terminal
pane and then borders turned off so it looks like a single seamless
screen. Running in tmux has the added benefit of detaching the
dashboard, like when you want to watch some vaporwave on the
framebuffer or sharing the screen from ssh for remote control.

 [Tmux]: https://github.com/tmux/tmux
 [vaporwave on the framebuffer]: https://www.ecliptik.com/CHIP-Vaporwave/

The tools used in these panes are a combination of watch to refresh
every 60 seconds or a small shell script. I attempted to use watch for
everything, but some commands didn’t work well with the ASCII escape
codes even with the --color option.

It’s using tmuxinator to save the layout and restore the dashboard
after a reboot.

 [tmuxinator]: https://github.com/tmuxinator/tmuxinator

Tmuxinator config in ~/.config/tmuxinator/chip.yaml

   name: chip
   root: ~/

   windows:
     - CHIP:
         layout: 7bd9,60x33,0,0[60x7,0,0,0,60x13,0,8,3,60x7,0,22{27x7,0,22,4,32x7,28,22,9},60x3,0,30,6]
         panes:
           - watch -n60 -t --color "toot timeline --local --public --count 1 --once | sed '/^$/d' | grep -v '─────────────────' | grep -v 'ID ' | sed 's/\s\{2,\}/_TOKEN_/' | awk -F_TOKEN_ {'print \$1'}"
           - watch -n60 -t --color "hn top 10 | head -n -3 | sed 's/^[ \t]*//' | grep -v 'points by' | awk -F\( {'print \$1'} | sed -e 's/\.\s\s\s/. /g'"
           - /home/chip/bin/weather.sh
           - bin/tty-clock -m -B -D -C 5
           - watch -n120 -t --color "/home/chip/bin/spotify/spotify.rb"
     - amfora:
         - amfora
     - serial:

Additional configuration includes updating the pocketchip-batt utility
to better display charging and how much battery is remaining and
putting it and the CHIPs IP address into the right status of the tmux
toolbar.

 [pocketchip-batt]: https://github.com/aleh/pocketchip-batt

Terminal blanking is turned off so the display is always on.

   setterm -blank 0

Wifi powersave feature is turned off since there were issues with it
losing DNS and occasional loss of network connectivity

   sudo /sbin/iw dev wlan0 set power_save off

Tmux config in ~/.tmux.conf,

   #Switch Windows
   bind-key n next-window
   bind-key m previous-window

   #Set 256 colors
   set -g default-terminal "screen-256color"

   # start window numbering at 1
   set -g base-index 1

   # start pane numbering at 1
   set -g pane-base-index 1

   #Update default binding of `Enter` to also use copy-pipe
   unbind -T copy-mode-vi Enter

   #Clock
   set-option -g clock-mode-colour yellow

   #Switch panels with vi keybindings
   bind k selectp -U # switch to panel Up
   bind j selectp -D # switch to panel Down
   bind h selectp -L # switch to panel Left
   bind l selectp -R # switch to panel Right

   set-option -g status on
   set-option -g status-interval 1
   set-option -g status-keys vi
   set-option -g status-position bottom

   set-option -g visual-activity on
   set-window-option -g status-left ""
   set-window-option -g monitor-activity on
   set-window-option -g window-status-activity-style "none"
   set-option -g status-right "#( ~/bin/right-status.sh )"

   #### COLOUR (Solarized light)

   # default statusbar colors
   set-option -g status-style fg=yellow,bg=black #yellow and base02

   # default window title colors
   set-window-option -g window-status-style fg=brightblue,bg=default #base0 and default
   #set-window-option -g window-status-style dim

   # active window title colors
   set-window-option -g window-status-current-style fg=brightred,bg=default #orange and default
   #set-window-option -g window-status-current-style bright

   # pane border
   set-option -g pane-border-style fg=black #base02
   set-option -g pane-active-border-style fg=black #base01

   # message text
   set-option -g message-style fg=brightred,bg=black #orange and base01

   # pane number display
   set-option -g display-panes-active-colour blue #blue
   set-option -g display-panes-colour brightred #orange

   # clock
   set-window-option -g clock-mode-colour green #green

   # bell
   set-window-option -g window-status-bell-style fg=black,bg=red #base02, red