Giter VIP home page Giter VIP logo

potato-c's Introduction

Potato-c

GitHub top language AUR version

A no BS pomodoro timer for GNU/Linux operating systems.

Getting startedInstallationConfigurationIntegrations

potato-c.in.waybar.mp4

Introduction

The Pomodoro method has made me very efficient and fast when doing my daily tasks, but all the pomodoro timer applications that existed, sucked in a way in my opinion. So I started Potato-c. Potato-c is a server-client application, inspired by many similar applications like mpd-mpc-ncmpc, I tried to keep the application simple, modular and as efficiant on resources as possible, so its kinda inspired by dwm and other suckless tools. But this doesn't make the application miss on any features that a pomodoro timer may need.

The Pomodoro method

This method is about breaking your tasks into small intervals so you don't get zoned out from not having enough TikTok videos. This can be very good for homeworks and tasks of your job, University or school that you are not really into.

Why potato-c

This program's base idea is from Tomato.C, "a pure C pomodoro timer", which after trying to fork it, the ideas behind it seemed problematic to me.
This program tries to be able to run on a potato (as the name suggests)

  • Blazingly fast and efficient
  • Is modular and simple
  • It is based on POSIX Philosophy, does one thing and one thing only.

Installation

Arch Linux (AUR)

You can install potato-c from the AUR.

You may use an AUR helper like yay to automate the process:

yay -S potato-c

Manually building

You can use make/git to build and install the package for yourself like so:

git clone https://github.com/nimaaskarian/potato-c
cd potato-c
sudo make install

Getting started

Simply put, this program consists of three binaries. Each intended for their own purposes:

  • potd: the daemon responsible for a pomodoro session. Managing the timers and keeping track of the progress.
  • potctl: the interface to interacting with the timers using commandline.
  • potui: the TUI to manage your timers with to-do lists.

In order to quickly set up a timer, do the following:

potd                # Starts a potato-c daemon (writes current remaining time to stdout by default)

potctl              # Get the status of the daemon
potctl -p           # Pauses the timer            
potctl -u           # Unpauses the timer            
potctl -t           # Toggle pauses the timer            
potctl -r           # Resets the timer             

potui               # Launch the TUI

For more detailed information on how to use the program refer to usage.

Configuration

For more configuration, you may edit the header file config.h (in suckless fashion) which is created after building the project. All the definitions have reasonable names and are easy to understand.

Make sure to recompile the project once you edit the configuration file for the changes to take effect:

sudo make clean install

Usage

Some features that potato-c has, and you may want to use them.

Controlling (Pausing, etc)

Even though the potd (potato-deamon) itself isn't able to get any inputs from the user, it can be controlled by potctl and potui. This control can be pausing, skipping, resetting, adding to timer, adding to pomodoros etc.

To-do list

potui binary has a to-do list. The to-do list data is from calcurse's to-do files; But potato-c doesn't depend on calcurse by any means. The to-do capabilites are limited compared to calcurse, for example you can't add notes to your todos with potato-c, but notes can be added and viewed with calcurse if you want it.

Commands on events

Specify a list of commands in config.h that will be ran for each event (pomodoro start, short break start, long break start).

Using another computer as your server

You can use another computer in your local network as your pomodoro server. You can't really control it, but you can view the timer. Refer to man potctl for further details.

If you want more information, please refer to the man pages. If I do a documentation in here, I will likely forget to update it. Just after installation, use the commands below to read the docs.

man potd
man potctl
man potui

Integration

Since this program is modular and simple, adding information about timers to your bars is a straight-forward process:

Polybar

[module/potato]
type = custom/script
exec = "potd -f"
tail = true

Waybar

"custom/potato": {
    "exec": "potd -fN"
},

This is of course, a very minimal implementation. You could add more with click events and potctl to make the bar module work like a charm.

Contributing

Code as modular as possible. I'm still learning, so thats the only suggestion and rule I can have for contributors.

potato-c's People

Contributors

nimaaskarian avatar miliaxe avatar

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.