Giter Club home page Giter Club logo

soji's Introduction

Soji Build Status

Soji is a terminal based tool for helping you stay mindful at work.

Alt text

Concepts

Soji is based on concepts originating in the fields of Psychology, Productivity, and Zen Buddhism.

These include:

Installation

soji requires the Guile programming language to be installed

Fedora

sudo dnf install guile

Ubuntu

sudo apt install guile

Mac

brew install guile

Mac also requires brightness and terminal-notifier. They can be installed with

brew install brightness
brew install terminal-notifier

NOTE: I am developing soji on Ubuntu and am currently unsure that it works on any other platform. Please feel free to lend a hand getting it working on your Platform :)

git clone [email protected]:joecannatti/soji.git
cd soji
sudo make install

Setup your prompt

Soji is design to interact with you primarily through your command prompt (as pictured above).

The standard prompt setup is built into soji. You just need to add to you .bashrc or .bash_profile

PROMPT_COMMAND='PS1="`soji header`"'

I use a very up to date version of GNU bash. I do not know if this will work with other shells, including zsh

Soji may be usable without this step, but I've not really tried. You could not have the info in your prompt and just run the commands soji and soji status to see what's going on.

The note taking system

A special note file is created for each day called the the engineering-log. It's just a markdown file named like, $SOJI_NOTES_DIR/engineering-log-2016-06-19.md

Beginning any soji activity adds an entry into this file in the form of

** start -- Write Soji README.md -- 01:15PM

You are free to add your own notes in that file in between soji's log entries.

Running the soji command with no args will open this file in $EDITOR. (I only use vi, so I'm not sure how well this works currently with other editors)

$ soji

I open this file many times everyday. I recommend aliasing soji to s.

In you .bashrc

alias s='soji'

Then, you can easily pop this file open by running

$ s

The Pomodoro System

Soji uses the start subcommand to begin a pomodoro.

$ soji start 'Write README.md'
  • You will see your current pomodoro status in the prompt (see screenshot above).

  • After 25 min, soji will dim you screen(s) to 25%. (only verified as working on Ubuntu currently)

  • After another 5 min for the break, it will return the screen brightness to 100%

  • The pomodoro count in the command prompt will increment with each pomodoro that you begin.

  • The count is color coded based on the number of poms for the day

  • 0-3 (Red)

Alt text

  • 4-7 (Yellow)

Alt text

  • 8-up (Green)

Alt text

All commands

  • soji start

Begins a pomodoro. This commands creates an entry in the engineering-log and schedules a screen dim and break for 25 min

  • soji dim

Dims the screen to 30% brightness. (Only works on Ubuntu)

  • soji report

Displays a summary for the day's data

  • soji log

Sort of a private function. Handles writing to the engineering-log file

  • soji note

Opens today's log file. Can also open one off notes by supplying an arg for the name of the file

  • soji header

Prints the colorized header to be added to your bash prompt

  • soji break

Begins a break. Dims the screen. Schedules the screen to return to full brightness in 5 min.

  • soji meeting

Begins a meeting

  • soji bright

Brings the screen to 100% brightness. (Only works on Ubuntu)

  • soji heart-sutra

Begins the Heart Sutra chant in the terminal

  • soji lunch

Begins lunch

  • soji meditate

Begins unguided meditation

  • soji note journal

Write a journal entry for the day

Tech Stuff

Soji is written in pure bash (for the time being) It uses a library called bats for automated testing. Tests can be run locally with make

soji's People

Contributors

joecannatti avatar iacobus42 avatar

Watchers

James Cloos avatar Andy Almand-Hunter 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.