Home

Awesome

<picture> <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/71736629/193433608-82c23055-3556-40e4-b98f-ab4c47c9460c.png"> <img alt="Representative screenshot of arttime" src="https://user-images.githubusercontent.com/71736629/193433617-c3c683ff-ea4a-4cc2-91f6-e8ffeea18ac5.png"> </picture>

Contents

<!-- Created by https://github.com/ekalinin/github-markdown-toc -->

arttime

Beauty of text-art meets functionality of a feature-rich clock / timer / pattern-based time manager in terminal. In addition to its functional/productivity features, arttime brings curated text-art to otherwise artless terminal emulators of starving developers and other users who can use terminal. It is a cross-platform application with native notifications/sounds that runs well on macOS, Linux, BSD Unixes, and Windows WSL.

Arttime is rooted in Unix philosophy. You can also feed keystrokes into it from a file, pipe, string or unrelated process instead of just typing them; control gets cleanly transferred to your keyboard when the respective file, pipe, or string ends. Among other features, this allows using arttime to display dynamic information like system metrics, weather, stock market feed, and etc using a simple external feeder program.

Purpose/features

Note: arttime is tuned to consume less power and memory. It uses only about ~0.1% of CPU time while running, and only around 6MB of RAM in steady state on my machine.

Call for artists

Much good ascii art was created during web 1.0, but the artform declined after that. arttime intends to be a platform/repository for hosting/displaying ascii/ansi art, as ascii/ansi does have its natural home on a terminal (instead of a wall of an arts museum). In doing so it also encourages sharing art, a not so common drift with the arrival of NFTs (where monkey stickers are being priced at hundreds of thousands of US dollars). The repository already provides a curated library of good ascii art (mixed at times with computer-generated text version of digital images). If you are a text artist, or find a treasure trove of libre ascii/text art, please feel free to leave a link to the work in arttime discussions.

What does and doesn't constitute text art?

Screenshots

  1. Default start page. $ arttime

    <img width="1016" alt="Screenshot 2023-02-09 at 1 19 25 PM" src="https://user-images.githubusercontent.com/71736629/217941620-4fd18160-4364-4f08-aa8d-936bb2bf7743.png">
  2. Default art. $ arttime then press h, or arttime --nolearn

    <img width="1019" alt="Screen Shot 2022-05-21 at 10 17 59 PM" src="https://user-images.githubusercontent.com/71736629/169680963-0cd5027d-5e21-4d3e-8eda-c21939f5d89d.png">
  3. Animated art clock: $ arttime --nolearn -a military -b military2 -t "Say no to wars, yes to peace" --ac 4. Note: animation works only if a-art and b-art file height is same, which it is for many related arts. arttime_animation

  4. Another animated art clock. $ arttime --nolearn -a kissingcats -b kissingcats2 -t "Since we found love within, we don't bother rats - Wise cats" --ac 3. Note: transparency is an artifact of one's terminal emulator application. kissingcats1

  5. Timer and notification. arttime --nolearn -a colorowl2 -b colorowl3 -t "We don't sleep at night - Owls" then press g to enter a goal time like 10s for 10 seconds, 1h 6s for 1 hour 6 seconds. Check more formats supported by reading help documentation $ arttime -h, or even better by passing 'help' as goal time while arttime is running (press g, enter help). This is an example of multi-colored art too. ColorOwl3

  6. Multiple timers, repeating time management program like Pomodoro Technique. a) From the commandline, run: arttime --nolearn -a magic -b magic2 -g "25m;30m;55m;1h;1h25m;1h30m;1h55m;2h25m;loop2" or b) From within application, run: arttime --nolearn -a magic -b magic2, then press g and enter 25m;30m;55m;1h;1h25m;1h30m;1h55m;2h25m;loop2. Change loop2 to loop4 or sprint4 for approximately 10 hour work day. Progressbar shows that we are 20% done with our program.

    <img width="1015" alt="Screen Shot 2022-07-05 at 10 01 43 PM" src="https://user-images.githubusercontent.com/71736629/177472467-34c93118-65f3-434a-bbe2-306fe1e5e4ac.png">
  7. Expressive timers: The following GIF shows some preinstalled expressive timers. Insipired from pomodoro (tomato) technique, some of them are named after other fruits. It's very simple to create your own expressive timer or time management program. Start arttime, press k, type t followed by Tab to see all the preinstalled timers.

arttime_expressivetimers5

  1. A 24-bit color art example $ arttime --nolearn -a obama2 -t "Yes we can, yes we can drink better teas". Note: terminal emulator must support 24-bit RGB colors.

    <img width="1019" alt="Screen Shot 2022-05-22 at 12 14 22 AM" src="https://user-images.githubusercontent.com/71736629/169683524-a63a5a9c-aa66-4ecd-a036-97b8bfa0f243.png">
  2. Random art selection. $ arttime --nolearn then press and hold j for a few seconds. After some time arttime will settle on some randomly selected art. Press y to select it, or c to cancel. Click on mp4 video below to play it (Note: following video playback works in Safari on macOS, but for some reason not in Safari on iPhone 8, perhaps because of a github.com bug?).

https://user-images.githubusercontent.com/71736629/206934934-25b4632f-ee56-421a-a120-1c44bcf64ac4.mp4

  1. And more... For more information read help documentation $ arttime -h, and start in learn mode (default) to understand keybindings $ arttime.

Installation

There are three installation methods: 1) Simple, 2) Manual, 3) Package manager. As the name suggests, 1) Simple method should be used by users who want a simple install experience (also no password required), 2) Manual method is for users who are fluent in using terminal and want the most customize install experience (check any optional dependencies at arttime dependencies), 3) Package manager method automates dependency installation, though mostly requires admin password to install.

<!-- There are three installation methods: 1) Simple, 2) Manual. As the name suggests, 1) Simple method should be used by users who want a simple install experience (also no password required), 2) Manual method is for users who are fluent in using terminal and want the most customize install experience (check any optional dependencies at [arttime dependencies](https://github.com/poetaman/arttime/wiki#dependencies). -->
  1. Simple install method:
zsh -c '{url="https://gist.githubusercontent.com/poetaman/bdc598ee607e9767fe33da50e993c650/raw/d0146d258a30daacb9aee51deca9410d106e4237/arttime_online_installer.sh"; zsh -c "$(curl -fsSL $url || wget -qO- $url)"}'

Note: The simple install method installs arttime under ~/.local, which is a standard install directory for local installation.


  1. Manual install method:

  1. Package manager method: Arttime might also be available as a package or build receipe in your favorite system distribution.

Packaging status

For Debian, Ubuntu, etc Linuxes that use apt, please download and install latest .deb package: arttime_2.3.4-1_all.deb. Instructions:

$ mv arttime_2.3.4-1_all.deb /tmp
$ sudo apt install /tmp/arttime_2.3.4-1_all.deb

If you don't see your favorite distribution and would like to volunteer then get in touch. Useful links: arttime dependencies, arttime discussions, @ehaupt's FreeBSD PR/FreeBSD port/FreeBSD art. Once you have added a package, open a pull request with some representative art like FreeBSD mascot to get representation for your favorite distribution/OS (mascots are preferred over logos).

Try arttime in docker?

Docker™ being a containerized environment can be a preferred way of trying applications for some geeks. With docker already installed you can give arttime a quick try in a docker container, though without arttime's sounds/notifications. Copy-Paste-Enter the following command in a terminal application after starting Docker Desktop on your computer. Note: arttime, its committers or artists don't endorse docker™ in any form or manner. It's presented here only for geeks who know what they are doing and prefer to try it in a container before installing; for everybody else its recommended to jump directly to Installation.

Note to docker geeks: arttime will start in UTC timezone unless you have environment variable TZ set to a preferred timezone before running the following command. For a normal installation (not docker), arttime automatically starts in users timezone. There is no clean and portable docker interface to inherit host timezone. You can change the timezone from within arttime, after it launches, by pressing z and following the instructions (e.g.: California time can be set by entering US/Pacific [tab based auto-completion hints are provided] after pressing z).

docker run -e TERM -e LC_ALL=C.UTF-8 -e TZ -it --rm zshusers/zsh:5.8 zsh -c '
  export SHELL=$(command -v zsh)
  apt update
  apt install -y curl less
  curl -fsSL https://gist.githubusercontent.com/poetaman/bdc598ee607e9767fe33da50e993c650/raw/d0146d258a30daacb9aee51deca9410d106e4237/arttime_online_installer.sh | TERM=xterm-256color zsh
  TERM=xterm-256color ~/.local/bin/arttime
  echo "For more information, please check https://github.com/poetaman/arttime"'

Troubleshooting

Acknowledgements

  1. text artists: mostly great text artists of web 1.0 era like jgs (Joann Stark), et al.
  2. ascii-image-converter: So far the best digital image to colored text converter
  3. aewan: free ascii text coloring tool. Project seems stalled, but works. Tested on Linux VM running on aarch64 Macbook.

Arttime stargazers with known locations (August 2024): arttime_stargazers