Skip to content

fieldghost/Bashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Bashboard

A pure bash dashboard for when you absolutely refuse to leave your CLI. It runs in an infinite loop, refreshing your terminal every 60 seconds with exactly what you need to know and nothing more.


Features

  • Weather: Real-time updates via wttr.in (configured via ~/.config/bashboard/config.conf).
  • News Feeds: Pulls the top 3 headlines from BBC World, Economy, and Tech RSS feeds.
  • Price Widget: Optional JSON+jq price display (configured URL + jq filter).
  • Tasks: Reads your local tasks file (TodoMe / todo.txt style / legacy pipe format).
  • System Stats: CPU, RAM, and Disk usage.
  • Secure Config Parsing: Uses a zero-trust, pure-bash line-by-line parser to completely prevent Arbitrary Code Execution (no unsafe sourceing!).

Requirements

Your machine needs to know how to fetch and parse the web. Make sure you have these installed:

  • curl (to fetch the goods)
  • jq (to parse the JSON from the custom price API)
  • Standard coreutils (grep, sed, awk)

Ubuntu/Debian installation:

sudo apt-get install curl jq

How to install

  1. Copy the code (or clone the repo).
  2. Save it as script.sh in a /path/that/you/can/find.
  3. Create a config file so you never edit the script:
 mkdir -p ~/.config/bashboard
 cp ./config.example.conf ~/.config/bashboard/config.conf
  1. Edit ~/.config/bashboard/config.conf to match your life (weather location, optional tasks file, optional price widget, etc).
  2. Add an alias to your ~/.bashrc:
 alias dashboard="$HOME/path/that/you/still/can/find/script.sh"
  1. Completely forget that you have to source your ~/.bashrc.
  2. Remember, and actually source it:
 source ~/.bashrc
  1. Type dashboard in your terminal.
  2. Win. (Press Ctrl+C to exit the dashboard when you're done pretending).

Config

Bashboard reads settings from ~/.config/bashboard/config.conf (or $XDG_CONFIG_HOME/bashboard/config.conf).

Start with:

mkdir -p ~/.config/bashboard
cp ./config.example.conf ~/.config/bashboard/config.conf

Tasks file formats

Set TASKS_FILE in your config.

Note: Task tags are defined in the config using a safe, space-separated string, e.g., TASK_KINDS="backup update deadline".

todo.txt style (recommended):

  • Add tags matching your TASK_KINDS (like +backup, +update, +deadline)
  • Add due:YYYY-MM-DD (or due:YYYY/MM/DD) so Bashboard can pick the next one

Example lines:

(B) Update packages +update due:2026-04-12
Backup home dir +backup due:2026-04-08
Tax filing +deadline due:2026-04-30

Legacy pipe format:

backup|2026/04/08|Backup home dir
update|2026/04/12|Update packages
deadline|2026/04/30|Tax filing

LICENSE

MIT. Free. Open-source.

About

Pure bash dashboard to keep up with stuff

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages