Skip to content

Releases: poetaman/arttime

v1.9.0: Toggle between 24hr and 12hr time-format, multiple UI fixes, more text art...

24 Sep 01:08
Compare
Choose a tag to compare

Screen Shot 2022-09-23 at 5 39 37 PM

New features:

  • 12/24 hour time format: Arttime now supports 24 or 12 hour time format to serve parts of the world where 24-hr system is in use, feature was requested in #15. There are 2 changes in UI:
    1. A CLI new option --hours can be provided while invoking arttime with value 24 or 12 (default)*
    2. A new keybinding f is added to toggle between 12 and 24 hour formats. Pressing f quickly toggles all times shown by art-time to one of the formats.

* Note: Users who prefer 24-hour time format can alias arttime like this: alias arttime="arttime --hours 24" to make 24-hr format their default. Users who prefer 12-hour time format upon launch need not do anything as it is the default. In future arttime might parse user's locale to find whether they want 12 hour or 24 hour format if there is a compelling reason...

Update:

  • Added more ascii art (example: neptune's screenshot on top with his activism for water bodies on this planet)

Fixes:

  • Add to PATH in .profile instead of .bashrc when bash is user shell.
  • Exit status for normal exit should be 0, was 1. Fixed that.
  • Random art selection mode: Handle window size change.
  • Random art selection mode: Fixed an undesired "bounce flicker" by restricting the height of print string to height of terminal. It was observed when terminal height was smaller than art height, should be fixed now.
  • Random art selection mode: Don't print text art in free area of first line where a query string is printed. This might be a good idea for other cases where first line has a query.
  • Help mode: Fixed toggling between help mode and text art when user passed both a-art and b-art at launch time (with no --nolearn).

Installation:

v1.8.0: True progress bar shows where are we in time, etc

06 Jul 20:59
Compare
Choose a tag to compare

Screen Shot 2022-07-06 at 1 02 34 PM

New features:

  • Progress bar (■■■■■■□□□□) shows what percentage of time of goal/s is complete and what percentage is pending. It has many benefits: 1) adds visual cue of where we stand in time, 2) makes arttime's goal feature more usable on headless machines where we don't have desktop notifications. For instance, if the user has set a pomodoro-style program for 10-hour work day in an instance of arttime, they can see what percentage of their work day is complete/pending.
  • New arttime options: --pa, --pb, --pl. --pa is to specify a-string for denote completed section of progress bar, --pb is similar but to denote pending section of progress bar. The length of both --pb and --pa strings should be of same length. --pl is to set the length of the progress bar from as low as 1 character wide. Default length is 10 characters, and each character represents 10% of set program time.
  • Pause and un-pause: Now user can press p to pause a time program set by them, and press p to unpause it again. This allows user to take a step away from their time management program or interrupt any goal they are working on without wrongly accounting time where they take break. There can be as many pauses and unpauses as user intends.
  • Enabled desktop notifications for BSD Unixes. It depends on notify-send, pulse audio, and free desktop's standard sounds. All of which are either native way or reasonably standard way of doing things in BSD Unixes with free desktop's guided desktop environments.
  • Installer/Updater: Added 2 installers: 1) install.sh in arttime repository, and 2) arttime_online_installer.sh as a gist. arttime_online_installer.sh gist enables a single-command download, merge and update of arttime executables and art files. Install.sh installs locally from user's directory to directory of user's choice. Install scripts are also update scripts! Users can and are encouraged to edit the first line of art files in their install directory to a message of their choice. When install scripts run, they preserve the first line in previously installed art files, while possibly updating/correcting the art. Check ./install.sh -h to see installation options. By default local install is performed under ~/.local.
zsh -c '{url="https://gist.githubusercontent.com/poetaman/bdc598ee607e9767fe33da50e993c650/raw/8487de3cf4cf4a7feff5d3a0d97defad95164eb3/arttime_online_installer.sh"; zsh -c "$(curl -fsSL $url || wget -qO- $url)"}'

Update:

  • Full line editor for setting goal (keybinding g), and title message (keybinding m). User can now scroll using left/right arrow keys to edit a line to be entered as goal or title message. Previously only backspace was possible to edit a typo, and a user had to essentially delete and retype from the point of interest in a line. Now zsh/bash's full line editing is integrated.
  • Cleaned up error reporting behavior for errors that occur while setting art using keybindings a, b, x, y.
  • Added more text art.
  • Now pressing b or y shows only those art files whose height matches a-art. This should make it easier for user to find if there are any animation pair arts (they always have same height). Not all the files that will show up are a suggested animation match, it just happens to have same height. Most animation pairs start with the same word or two, and have a differing numeral or non-numeral suffix.

Fixes:

  • If an error occurs while setting a/b art because of: 1) art not found, b) height of b-art does not match height of a-art. For such cases, prior to a fix, the state of arttime with regards to what art is being displayed was getting corrupted. Now such state corruption cannot happen because of user error.
  • Removed a spurious space before goal line for desktop notifications.

v1.5.0: Set multiple goals, configurable pattern-based time management, loop a pattern of goals multiple times, etc

20 Jun 04:28
Compare
Choose a tag to compare

New features:

  • Set multiple goals. Multiple goals can be specified by separating each one with a semi-colon. Example: 1h 30m; 2h; Dec 24 4PM EST
  • Repeat a goal or a collection/pattern of multiple goals forever or N number of times. To achieve this just add loop/sprint (to sprint/loop forever) or loopN/sprintN (where N is an integer number of times to repeat) the goals. Example: 10s;loop4 would generate 4 notifications, each spaced 10 seconds apart. Much more complexity of patterns is possible, look at section 3) of help page for goals (start arttime, press g, enter help, and scroll to section 3)
  • Configurable pattern-based time management: Set a repeating pattern of times to get notifications at. This makes Pomodoro Technique just one of billions of patterns possible for time management, and makes you set a pattern that works for you. Example pomodoro pattern that repeats every 2 and half hours for ~10 hours: 25m;30m;55m;1h;1h25m;1h30m;1h55m;2h25m;loop4.
  • Added new keybinding: e to restart previously set goals
  • Show delta time for all timers, expired or pending: Set multiple goals, and press i or I to see all goals. Capital I shows a scrollable view by default, lowercase i adapts to terminal size. If terminal size is large enough to show all goals, it does not start a scrollable view (only excitable by pressing q). If terminal size is smaller than the lines to be printed by information page started by I, it starts scrollable view.

Image below shows a forever running pomodoro. Goal in red is the current pending goal. Time since a goal expired or time that is pending to each a goal is shown for all goals set by user
Screen Shot 2022-06-19 at 6 06 39 PM

Updates:

  • Line editing for setting goal/s (keybinding g), and title message (keybinding m) is now scrollable with left/right arrow keys.
  • Added short form day to date/time format of DE notification, and information string.
  • Added more ascii art.

Fixes:

  • Added missing checks, and error conditions/messages for CLI arguments -a and -b.

v1.3.0

06 Jun 04:18
Compare
Choose a tag to compare

New features:

  • Timezone selector: Change timezones on the fly, provides user with an interactive interface with completion hints. Note: there is no need to add an option to arttime to specify timezone as starting the command by setting TZ environment variable for arttime like: TZ=Area/Location arttime does the job, and also provides completion hints from user's shell if they have them enabled.

Updates:

  • SIGINT/Ctrl-c is now ignored. This is because user can accidentally hit Ctrl-c instead of Ctrl-d due to adjacency of keys d and c on QWERTY keyboard. Ctrl-d is useful, and defined by zsh shell to show all possible completions.
  • Documentation, as usual

Fixes:

  • Screen redraws: There was a race condition in screen redraws called by terminal screen size change, and program's writes to terminal screen. Though it was rarely observed in testing, it nevertheless needed complete avoidance, and should never occur again!

v1.2.0

28 May 04:52
Compare
Choose a tag to compare

New features:

  • Prior limit of counting only up to 99 hrs, 99 min, 99 seconds has been removed. Now number of days elapsed/pending are displayed if time crosses 24hrs. Days are not displayed if elapsed/pending time is less than 24hrs (to avoid information overload).
  • Native time format now supports specifying Xd where X (an integer) stands for number of days.
  • Added a dedicated help page for specifying goal time (press g, enter help within arttime), it has a number of examples to help understand the recognized Native and External date/time formats.
  • Second increments are now always synchronized to system time updates. This has various advantages:
    • makes all the instances of arttime update time/animation at the same time
    • arttime's main loop's delay time gets accounted for in the timer, so error won't accumulate over time to later cause an increment of 2 seconds in the seconds dial. Error still always remains under 1 second.

Updates:

  • Removed command line argument (-s) and key-binding (s) to set sample rate. The original reason to set sample rate was to bypass the behavior that we could have an occasional increment of 2 seconds in seconds dial. The extra second was to offset the accumulated error. Setting sample rate to a number like 10 avoided that behavior at the expense of bumping CPU usage to 1.5%. Now with the change the logic of setting timer, this problem of accumulating error over time does not occur, while still keeping CPU usage to ~0.3%. So, there is no longer the need for sample rate.

Fixes:

  • Minor typos in code and documentation

v1.0.0

23 May 21:38
Compare
Choose a tag to compare

Version 1.0.0 released to the good world. Well tested on macOS and Linux, should be considered ready for use. Happy arttime!