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.
![]() |
![]() |
![]() |
![]() |
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
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.
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"pipx upgrade nowfocusOpen 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.
F11 Toggle fullscreenEsc Close task windowEnter 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) taskAlt Enter or Alt Click Open external todo
list for selected (or top) taskConrol + S Pause and save current
sessionConrol + D Pause current session and mark task
DoneConrol + Q Quit and discard current
sessionCtrl + N New taskCtrl + R Refresh todolistsCtrl + L or Ctrl + F
Focus the task searchFrom 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.
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 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.
nowfocusnowfocus --forcenowfocus "checking email"nowfocus stopnowfocus -l 3nowfocus -s trelloOpen an issue on Codeberg (Please include as much detail as you can.)
Fork nowfocus source code on Codeberg (GPL)
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