Skip to main content

nowfocus: the open source task-tracking self-control panel.

Project description

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

  • Unlimited, flexible combinations of todo lists and time tracking apps
  • Inactivity detection that automatically pauses time tracking
  • Task prioritization
  • Infinitely nestable lists
  • Pomodoro timer
  • Time targets: set a minimum or maximum time for any task or list of tasks and get reminded to follow-through
  • Randomness interrupt bell (optional) to keep you on track with tracking your time
  • Keyboard-driven interface
  • Offline todo list cache
  • CLI interface
  • Run a command (or launch an application) when a task is started
  • Not built with Electron ♥
  • Follows system dark-mode
  • Lightening fast task search

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

  • F11 Toggle fullscreen
  • Esc Close task window
  • Enter Start top/selected task (or make a new task with current search phrase if no results)
  • Shift Enter or Shift Click Transfer current session time to selected task (or top task if none selected)
  • Control Enter or Control Click show options menu for selected (or top) task
  • Alt Enter or Alt Click Open external todo list for selected (or top) task
  • Conrol + S Stop and save current session
  • Conrol + D Stop current session and mark task Done
  • Conrol + Q Quit and discard current session
  • Ctrl + N New task
  • Ctrl + R Refresh todolists
  • Ctrl + L or Ctrl + F Focus the task search

Time Targets

  • From the task window use a tasks right click menu (Ctrl + Enter) click Set Time Target

  • Choose between targeting a maximum and minimum amount of time for the task.

    • Max: Task will be displayed as done and a reminder bell will ring one a minute once that amount of time has been spent on th task
    • Min: Task will be displayed as priority 1 until the chosen amount of time has been spent on th task
  • To set a target for a list of tasks open Nowfocus > Settings > Time Targets and Add List Time Target. List targets are timed recursively

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

  • To raise the task window use simply: nowfocus
  • If nowfocus has crashed or failed to shut down nicely use nowfocus --force
  • To start timing a task: add the task name as the first positional argument. nowfocus "checking email"
  • To stop timing use nowfocus stop
  • Start with verbose logging use: nowfocus -l 3
  • Start with targeted verbose logging use: nowfocus -s trello

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nowfocus-0.7.7.tar.gz (426.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nowfocus-0.7.7-py3-none-any.whl (456.1 kB view details)

Uploaded Python 3

File details

Details for the file nowfocus-0.7.7.tar.gz.

File metadata

  • Download URL: nowfocus-0.7.7.tar.gz
  • Upload date:
  • Size: 426.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nowfocus-0.7.7.tar.gz
Algorithm Hash digest
SHA256 ea30253575aa04848cdbe38a72fedd4fba08b0d4c41126b1cdf6a1cac2151205
MD5 2b063bac1b9d73d2b31458bda9161844
BLAKE2b-256 7253bc7e9b022d7b37d3c18dbeb29ab7e5d4ea1afdcd6686a1dbc27929521e32

See more details on using hashes here.

File details

Details for the file nowfocus-0.7.7-py3-none-any.whl.

File metadata

  • Download URL: nowfocus-0.7.7-py3-none-any.whl
  • Upload date:
  • Size: 456.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nowfocus-0.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6791d8493905eae6a7ba130a7a5679457ad114dc093ecce2c6c8ab26f39f913c
MD5 8d9604e5f14d31d3278cfa1e51a66437
BLAKE2b-256 dab4600373ccaae1f0f4271fa77809e9cc50f79123cd390e5fb5086b9751d041

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page