Nowfocus
Open-source task timer for Linux

Avoid multifailing. Master your todo lists. Track your time.

Nowfocus is a clean, keyboard-driven time management dashboard that flexibly connects multiple todo lists with multiple time trackers and displays your current task and time spent in the status bar.

Features


Currently Supported Todo List Backends

Currently Supported Time Tracker Backends

Installation

  1. Run the following in terminal:

    # Install dependencies
    sudo apt install pipx gir1.2-ayatanaappindicator3-0.1 libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev xprintidle 
    
    # Set up pipx (not necessary if you already use pipx)
    pipx ensurepath
    source ~/.bashrc 
    
    # Install
    pipx install nowfocus
    
    # and now Focus!
    nowfocus
    
  2. Check for errors, if all looks good you can leave terminal running or quit Nowfocus with Ctrl + C on the terminal and launch Nowfocus from your app launcher menu.

  3. Set up a keybinding (on Ubuntu or Linux Mint), open System Settings > Keyboard > Keyboard Shortcuts > Custom Shortcuts, set the keystroke to Ctrl + Space (or the combination of your choice) set the command to:

    bash -c "echo 'open_task_window' > /tmp/nowfocus-pipe"

Updating

  1. Quit Nowfocus from the system tray menu
  2. Run the following command in terminal: pipx upgrade nowfocus
  3. Start Nowfocus from app launcher

Usage

Set up todo lists and time trackers:

Open Nowfocus > Settings > Todo lists and Time Trackers pick the type of backend you'd like to add from Connect a new todo lists menu click go and fill in the necessary fields.

Task Window Keybindings

Time Targets

Task Commands

Task Commands can be used to run your chosen shell command when a task is started. Nowfocus will wait until the process completes (if it is a long running process) and stops timing the task and open when the command finishes.

Warning: Task Commands are run with subprocess.run using shell option, so use at your own risk and please don't enter something stupid! (Also — it's not recommended for sensetive tasks like backups because if Nowfocus crashes the subprocess will be effected.)

To set up a command use Nowfocus > Settings > Task Commands or the task window right click menu for a task.

Commandline Interface

Reporting Issues

Open an issue on Codeberg (Please include as much detail as you can.)

Development

Fork nowfocus source code on Codeberg (GPL)

Install From Source

git clone https://codeberg.org/AltruistEnterprises/nowfocus.git
cd nowfocus
python3 -m venv .venv/nowfocus-build
source .venv/nowfocus-build/bin/activate
pip install -r build-requirements.txt
python3 -m build
pipx install -e --force YOUR_INSTALL_PATH
Fork me on Codeberg