nowfocus
Open-source task timer for linux
Avoid multifailing. Master your to-do lists. Track your time.
nowfocus is a clean, keyboard-driven project time tracker build with python + GTK that flexibly connects multiple to-do lists with multiple time trackers and displays your current task and time spent in the status bar.
Features
- Unlimited flexible combinations of to-do lists and time tracking systems
- Infinitely nestable lists
- Inactivity detection that automatically pauses time tracking
- Pomodoro timer
- Task prioritization
- Time targets: set a minimum or maximum time for any task or list of tasks and get reminded to follow though
- Randomness interrupt bell (optional) to keep you on track with tracking your time
- Keyboard-driven interface
- Offline to-do list cache
- CLI
- Run a command (or launch an application) when a task is started


Currently Supported To-do List Backends
- Simple text or markdown file with indentation based sub-lists
- Any to-do list that supports CalDav todos
- todotxt format
- TaskWarrior
- Vikunja
- Photosynthesis Timetracker
- Trello
Currently Supported Time Tracker Backends
Installation (using pipx)
Run the following in terminal to install and setup:
# Install dependencies
sudo apt install pip pipx install gir1.2-appindicator3-0.1 meson libdbus-glib-1-dev patchelf python3.12-venv libgirepository1.0-dev gcc libcairo2-dev pkg-config python3-dev
# Set up pipx
pipx ensurepath
# Install nowfocus
pipx install nowfocus
# Enter application directory
cd ~/.local/pipx/nowfocus
# Copy .desktop and icon to .local/share
cp src/desktop-extras/nowfocus.desktop ~/.local/share/applications/nowfocus.desktop
cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/nowfocus.png
cp src/desktop-extras/nowfocus.svg ~/.local/share/icons/hicolor/scalable/apps/nowfocus.svg
# Setup autostart
cp src/desktop-extras/nowfocus.desktop ~/.config/autostart/nowfocus.desktop
# Set Super space as keybinding to raise task window
chmod +x src/desktop-extras/set_gsettings_keybinding.sh
src/desktop-extras/set_gsettings_keybinding.sh "Open nowfocus" nowfocus "<Super>space"
# and now Focus!
nowfocus
Usage
Set up to-do lists and time trackers
Open nowfocus Settings from the indicator menu or tasks window and connect your to-do lists and time tracker(s)
Task Window Keybindings
F11Toggle fullscreenEscClose task windowEnterStart top task (or make a new task with current search phrase if no results)Ctrl + PPause current taskCtrl + DPause current task and mark it DoneCtrl + XCancel current taskCtrl + NNew taskCtrl + RRefresh todolistsCtrl + LorCtrl + FFocus the task search
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
Development
Install from Source
- Install dependencies from above.
- Clone this repo somewhere (referred to as
YOUR_INSTALL_PATH) - Change to
YOUR_INSTALL_PATHdirectory withcd YOUR_INSTALL_PATH/nowfocus - build python module with
python3 -m build(this should be done in a venv and will require some dependecies...) - pipx install -e --force YOUR_INSTALL_PATH/monotask/