bashsimplecurses: Simple curses library made in bash to draw terminal interfaces

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • bashsimplecurses

    A simple curses library made in bash to draw terminal interfaces

  • InfluxDB

    Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.

    InfluxDB logo
  • steam-for-linux

    Issue tracking for the Steam for Linux beta client

    This is cool, I've used curses UIs to build various small things that need to be a) vaguely easy to use (so, complicated CLIs are out. oncalls need to be able to use this at 3am while half their brain is still sleeping) and b) accessible over ssh because we have secure ssh access to these envs but ~nothing else.

    So I love TUIs.

    That said, I'm always a little puzzled about why people build these libraries in bash. Is it simply curiosity? Maybe, and if so, godspeed.

    But if it's driven by pragmatism, let me assure the reader that if there are limits to the extents I will go to get python somewhere instead of writing even a somewhat nontrivial bash script, I have yet to find them. Not only is bash just kind of really annoying to program in, it's also nearly unethical to program in. Let me link the 2 I always link to when someone tells me they're "working on" a bash script.

    Steam deleted my entire system (empty variable expansion): https://github.com/valvesoftware/steam-for-linux/issues/3671

    Bumblebee deletes /usr due to space: https://www.reddit.com/r/softwaregore/comments/2hsdo6/giant_...

    So I warn people: if you use python, you'll categorically avoid being the third entry in my list.

  • zsh

    Mirror of the Z shell source code repository.

    Zsh users get a bundled curses module; see zsh/curses¹ in zshmodules(1). It is a very thin wrapper, so it works how you'd expect from other uses. There is a tetris implementation using zsh/curses that ships with zsh², and you can use it as a nice comparison to the non-curses implementation that also comes with zsh³.

    I've used zsh/curses a few times to hack together little interfaces, and it is quite workable. It makes things far simpler once you start reaching for terminfo's capabilities that require you to think about state too much. A friend of mine wrote a little mblaze⁴ frontend using it, and it felt like using single mailbox mutt with less than a hundred lines of code.

    I was expecting the linked project to be a loadable module too given that bash also supports them, but it is actually a little more interesting to look at given it implements a bunch of the behaviour itself using tput calls.

    ¹ https://zsh.sourceforge.io/Doc/Release/Zsh-Modules.html#The-...

    ² https://github.com/zsh-users/zsh/blob/master/Functions/Misc/...

    ³ https://github.com/zsh-users/zsh/blob/master/Functions/Misc/...

    ⁴ https://git.vuxu.org/mblaze/about/

  • bed

    bash only text editor (by comfies)

    I have a fondness for bash abuse and those odd sort of people who get fixated on bash. bed [0] the bash editor is one of my favorite examples, always surprised by how short and concise it is, far from a great editor but a great exercise and I learned a thing or two about the bash way from it.

    0. https://github.com/comfies/bed

  • viddy

    👀 A modern watch command. Time machine and pager etc.

    There is also viddy¹ for a slightly more featureful watch alternative, if you're open to a new non-default package. Being able to recall old output and search within it can be extremely useful.

    ¹ https://github.com/sachaos/viddy/

  • bash-term

    Bash library for terminal escape sequences.

    I've made a similar library called bash-term[1], which is similar, but only has functions for lower-level operations, like moving the cursor to the end of the line, etc. It's also cleaner and has almost no global variables.

    [1] https://github.com/bash-bastion/bash-term

  • mprocs

    Run multiple commands in parallel

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • 7 TUI libraries for creating interactive terminal apps

    4 projects | dev.to | 20 Jun 2024
  • Running an efficient node

    2 projects | /r/Monero | 28 Feb 2023
  • Monero-bash: wish I had known!

    1 project | /r/Monero | 14 Oct 2022
  • Fastest/Cheapest way start mining and support the blockchain

    1 project | /r/Monero | 12 Aug 2022
  • Best way to upgrade p2pool linux server

    1 project | /r/Monero | 5 Aug 2022

Did you konow that Shell is
the 9th most popular programming language
based on number of metions?