GithubHelp home page GithubHelp logo

sepandhaghighi / mytimer Goto Github PK

View Code? Open in Web Editor NEW
86.0 4.0 5.0 869 KB

A Geeky Timer for Terminal Enthusiasts

License: MIT License

Python 96.81% Batchfile 1.57% Shell 1.61%
cli console console-app console-application python stopwatch terminal terminal-app terminal-based timer

mytimer's Introduction

MyTimer: A Geeky Timer for Terminal Enthusiasts


PyPI version built with Python3

Table of contents

Overview

MyTimer is a Python project that aims to provide a simple yet efficient timer for terminal users, particularly targeting the geek community. This project allows users to set timers directly from their command line interface, making it convenient for those who spend a significant amount of time working in the terminal!

The main objective of MyTimer is to offer a minimalistic and distraction-free timer experience. It provides a clean and straightforward interface, ensuring that users can focus solely on tracking time without any unnecessary clutter or distractions.

PyPI Counter
Github Stars
Branch main dev
CI
Code Quality CodeFactor codebeat badge

Installation

Source Code

PyPI

Usage

⚠️ You can use mytimer or python -m mytimer to run this program

Version

mytimer --version

Basic

⚠️ Press Ctrl + C to exit

mytimer

Time Limit

mytimer --minute=7 --second=30
mytimer --hour=2 --minute=20

Timer Mode

⚠️ The default mode is count-up

mytimer --minute=7 --second=30 --countdown
mytimer --minute=7 --second=30 --countup

Alarm

⚠️ This mode may not be supported on all systems

mytimer --minute=7 --second=30 --alarm

Alarm Repeat

⚠️ The default value is 1

mytimer --minute=7 --second=30 --alarm --alarm-repeat=5

Tone

⚠️ The default tone is 1

mytimer --minute=7 --second=30 --alarm --tone=2

Face

mytimer --minute=7 --second=30 --face=3

Vertical/Horizontal shift

⚠️ The vertical and horizontal shift both have default values of 0

mytimer --v-shift=20 --h-shift=30

Program

mytimer --program=black-tea

Message

mytimer --minute=7 --second=30 --message="Test message"

Screen Record

Issues & Bug Reports

Just fill an issue and describe it. We'll check it ASAP!

  • Please complete the issue template

References

1- Mixkit Free Alarm Sound Effects
2- Online Timer
3- Media College
4- Pomodoro Technique
5- The Rule of 52 and 17: It's Random, But it Ups Your Productivity
6- Desktime’s Productivity Research: An Overview of Our Finds Throughout the Years

Show your support

Star this repo

Give a ⭐️ if this project helped you!

Donate to our project

Bitcoin

1KtNLEEeUbTEK9PdN6Ya3ZAKXaqoKUuxCy

Ethereum

0xcD4Db18B6664A9662123D4307B074aE968535388

Litecoin

Ldnz5gMcEeV8BAdsyf8FstWDC6uyYR6pgZ

Doge

DDUnKpFQbBqLpFVZ9DfuVysBdr249HxVDh

Tron

TCZxzPZLcJHr2qR3uPUB1tXB6L3FDSSAx7

Ripple

rN7ZuRG7HDGHR5nof8nu5LrsbmSB61V1qq

Binance Coin

bnb1zglwcf0ac3d0s2f6ck5kgwvcru4tlctt4p5qef

Tether

0xcD4Db18B6664A9662123D4307B074aE968535388

Dash

Xd3Yn2qZJ7VE8nbKw2fS98aLxR5M6WUU3s

Stellar

GALPOLPISRHIYHLQER2TLJRGUSZH52RYDK6C3HIU4PSMNAV65Q36EGNL

Zilliqa

zil1knmz8zj88cf0exr2ry7nav9elehxfcgqu3c5e5

Coffeete

mytimer's People

Contributors

dependabot[bot] avatar ghazalrafiei avatar sadrasabouri avatar sepandhaghighi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mytimer's Issues

Add continue

Description

Add continue flag in countdown mode

Input type

Description

hour, minute, and second types should be int

Add version flag

Description

Add version flag to mytimer.

Example:

mytimer --version

Add `noodle` program

Description

Add Noodle program

"noodle": {
        "hour": 0,
        "minute": 3,
        "second": 0,
        "alarm": 1,
        "alarm_repeat": 1,
        "face": 1,
        "tone": 1,
        "message": "Instant noodle (3 mins)"}

`japanese-green-tea` bug

Description

There seems to be an issue with the japanese-green-tea program.

Steps/Code to Reproduce

mytimer --program=japanese-green-tea

Expected Behavior

Work without problem

Actual Behavior

Traceback (most recent call last):
    ...
TypeError: inner_function() missing 1 required positional argument: 'tone'

Operating System

Windows 10

Python Version

3.8.2

MyTimer Version

MyTimer v0.9

Tone bug

Description

It seems some tones are too short and is not possible to hear them!!

Steps/Code to Reproduce

mytimer --second=2 --alarm --tone=4

Expected Behavior

Alarm

Actual Behavior

No alarm

Operating System

Windows 10

Python Version

Python 3.8

MyTimer Version

0.7

Add `programs-list` argument

Description

Add --programs-list argument to show the list of programs.
Something like this:

mytimer --programs-list
1. `poached-egg` - Poached egg (1.5 mins)
2. `boiled-egg` - Boiled egg (3 mins)
.
.
.

Add programs

Description

Add different programs

Steps/Code to Reproduce

mytimer --program="green tea"

The timer doesn't really works

Description

The timer is not correct. It fails counting time.
Launching a 20 minutes timer takes 19 minutes and 41 seconds instead of 20 minutes

Steps/Code to Reproduce

You can try this :

$ time mytimer --minute=20

Expected Behavior

We must get something like this :

mytimer --minute=20  2.36s user 0.99s system 0% cpu 20:00.00 total

Actual Behavior

When testing I got this :

mytimer --minute=20 --countdown  2.36s user 0.99s system 0% cpu 19:41.35 total

Add `work`/`break` programs

Description

Add work, short-break, and long-break programs.

"work": {
        "hour": 0,
        "minute": 25,
        "second": 0,
        "alarm": 1,
        "alarm_repeat": 1,
        "face": 1,
        "tone": 1,
        "message": "Time to Work (25 mins)"}
"short-break": {
        "hour": 0,
        "minute": 10,
        "second": 0,
        "alarm": 1,
        "alarm_repeat": 1,
        "face": 1,
        "tone": 1,
        "message": "Short Break (10 mins)"}
"long-break": {
        "hour": 0,
        "minute": 30,
        "second": 0,
        "alarm": 1,
        "alarm_repeat": 1,
        "face": 1,
        "tone": 1,
        "message": "Long Break (30 mins)"}

Auto alignment

Description

The feature of auto alignment adjusts the layout of the display based on the size of the terminal.

Add `pomodoro` program

Description

Add the Pomodoro timer program

  1. work program
  2. short-break program
  3. Go back to step 1 and repeat 4 times
  4. long-break program

Logo

Description

New logo

Add `v-shift` and `h-shift` arguments

Description

Add vertical/horizontal shift

Steps/Code to Reproduce

mytimer --v-shift=20 --h-shift=30

Expected Behavior

The starting position of the timer should be (30, 20).

Add `faces-list` argument

Description

Add --faces-list argument to show all faces with a sample.
Something like this:

mytimer --faces-list
Code: 1

 __  ___         ___   __         ___   _    
/  )(__ \   ()  (__ ) /. |   ()  | __) / )   
 )(  / _/        (_ \(_  _)      |__ \/ _ \  
(__)(____)  ()  (___/  (_)   ()  (___/\___/  

=============================================================================
Code: 2

 ,--.  ,---.           ,----.    ,---.          ,-----.   ,--.    
/   | '.-.  \   .--.   '.-.  |  /    |   .--.   |  .--'  /  .'    
`|  |  .-' .'   '--'     .' <  /  '  |   '--'   '--. `\ |  .-.    
 |  | /   '-.   .--.   /'-'  | '--|  |   .--.   .--'  / \   o |   
 `--' '-----'   '--'   `----'     `--'   '--'   `----'   `---'    

.
.
.

Zero padding

Description

Print 01:02:23 instead of 1:2:23
To avoid display stretching, implementing this solution will prove to be helpful.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.