An open API service indexing awesome lists of open source software.

https://github.com/n0kovo/termstopwatch

Multi-font ASCII art stopwatch for your terminal, written in Go
https://github.com/n0kovo/termstopwatch

Last synced: 3 months ago
JSON representation

Multi-font ASCII art stopwatch for your terminal, written in Go

Awesome Lists containing this project

README

          


[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![GPL License][license-shield]][license-url]




Logo

An incredible, elegant multi-font ASCII art CLI stopwatch


State-of-the-art terminal chrono-measurement boii. It starts. It stops. It's got all sorts of tricks.




·
Report Bug
·
Request Feature

## Demo

Logo



_"Why settle for an average, humdrum, run-of-the-mill stopwatch when you can dazzle your retinas with a text-based spectacle like no other?"_
   – Steve Jobs

`termstopwatch` is not just a stopwatch; it's an experience. Written in Go, this terminal app manifests the future of time-keeping through the cutting-edge technology of ASCII art. Yes, we went there.

### Features so magical, they'll turn you into a newt:

* **Stopwatch Reimagined**
* Behold the sheer elegance of elapsed time ticking away — in beautifully hand-crafted ASCII art.


* **Fonts Galore**
* Tired of regular old LCD displays? Choose from an overwhelming array of fonts stored in our luxury `fonts/` directory, in which you can also put your own `figlet` font files. It's basically like changing the drapes in a mansion.


* **Keyboard Shortcuts**
* With hotkeys so intuitive, you'd think they were telepathic. Pause, reset, toggle milliseconds like you're typing Shakespeare.


* **Help Text**
* For the unlikely event that a modern-day Einstein like yourself needs it. Toggle on and off for those "just in case I forget I'm a genius" moments.

## Getting Started

It almost couldn't be easier, my friend.

### Precompiled binaries

Download one of the binary packages from [Releases](https://github.com/n0kovo/termstopwatch/releases)

_(Supported platforms: Linux, macOS, Windows, Android, FreeBSD, OpenBSD, NetBSD, Plan9, AIX, Dragonfly, Solaris, Illumos, JS WASM)_

### Build from source
So you wanna hack at it, you little hacker you? Do it!

#### Prerequisites

You'll ned `go` to compile `termstopwatch`, so
* Install [Go](https://go.dev/doc/install)

#### Installation
When you have `go`, you can install `termstopwatch` like so:
```console
go install https://github.com/n0kovo/termstopwatch@latest
```

Or you can just clone the repo:
```console
git clone https://github.com/n0kovo/termstopwatch
cd termstopwatch
go build .
```

## Usage

When `termstopwatch` is running, you can use these carefully selected keys to change the behavior:
* **(SPACE)** - Start/Stop the timer
* **(M)** - Toggle displaying of milliseconds
* **(R)** - Reset to 00:00:00.000
* **(H)** - Hide help text
* **(ESC)** or **Ctrl-c** - Exit :(

You can also run it with these command line flags, which you probably will, since you're an _advanced_ user:
```console
Usage of ./termstopwatch:
-d, --debug Show debug text.
-f, --font string Font to use. Must be in fonts/ directory. (default "Georgia11")
-q, --hide-help Hide help text.
-n, --noms Hide milliseconds.
-p, --pause Start paused.
```

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

I know it's hard to imagine, but if you have a suggestion that would improve `termstopwatch`, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## License

Distributed under the GNU GPL 3 License. See `LICENSE` for more information.

## Contact

n0kovo - [Mastodon](https://infosec.exchange/@n0kovo)

Project Link: [https://github.com/n0kovo/termstopwatch](https://github.com/n0kovo/termstopwatch)

## Acknowledgments

* [Figlet](http://www.figlet.org/)
* [figlet4go](https://github.com/mbndr/figlet4go)
* Font authors <3

(back to top)

[contributors-shield]: https://img.shields.io/github/contributors/n0kovo/termstopwatch.svg?style=for-the-badge
[contributors-url]: https://github.com/n0kovo/termstopwatch/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/n0kovo/termstopwatch.svg?style=for-the-badge
[forks-url]: https://github.com/n0kovo/termstopwatch/network/members
[stars-shield]: https://img.shields.io/github/stars/n0kovo/termstopwatch.svg?style=for-the-badge
[stars-url]: https://github.com/n0kovo/termstopwatch/stargazers
[issues-shield]: https://img.shields.io/github/issues/n0kovo/termstopwatch.svg?style=for-the-badge
[issues-url]: https://github.com/n0kovo/termstopwatch/issues
[license-shield]: https://img.shields.io/github/license/n0kovo/termstopwatch.svg?style=for-the-badge
[license-url]: https://github.com/n0kovo/termstopwatch/blob/master/LICENSE