TaskPop is a fast, keyboard-first Ubuntu/GNOME task popup with local SQLite task lists and optional Google Tasks sync.
TaskPop is there just when you need it. Press Super+T to open (or configure your own. Quickly create, manage, and navigate tasks and lists. Add details and deadlines. Ctrl+O for settings and help. Esc to close.
See Changelog.md for release history.
- Fast popup task manager for Ubuntu/GNOME.
- Local-first task storage using SQLite.
- Optional Google Tasks sync.
- Separate local lists and Google Tasks lists.
- In-place task details panel.
- Task notes/details.
- Smart date and time entry.
- TaskPop-local due time and reminder fields.
- Keyboard navigation for tasks, lists, and commands.
- Command mode by typing
:. - Custom app icon and GNOME shortcut support.
cd taskpop_mvp
chmod +x install_ubuntu.sh install_shortcut_gnome.sh kill_taskpop_instances.sh debug_taskpop.sh
./install_ubuntu.sh
./install_shortcut_gnome.sh
taskpopThe shortcut installer binds Super + T to open TaskPop.
- Create or select a project in Google Cloud Console.
- Enable Google Tasks API.
- Configure OAuth consent.
- Add your Google account as a test user.
- Create OAuth Client ID → Desktop app.
- Download the JSON file.
- Save it as:
~/.config/taskpop/google_client_secret.json
Then open TaskPop → Settings → enable Google Tasks → Sync Now.
Note:
- Click
⚙️, type:settingsor pressCtrl+Oto open Settiongs - Once connected, TaskPop auto-syncs. You may also type
:syncany time to sync manually.
TaskPop keeps local lists and Google Tasks lists separate.
💻 Local lists stay local.
🌐 Google Tasks lists sync with Google Tasks.
Both can be enabled at the same time. Bbut ofcourse, we can't disable both at the same time.
New lists can be created from the Settings window. You can create Local Lists or Google Task Lists that sync. Commands:
- Type
:list-lfollowed by the list name to create a local list. - Type
:list-gtfollowed by the list name to create a Google Task list. - Type
:unlistto delete the current list you are on.
Notes:
- You will need to confirm the deletion by typing 'DELETE'.
- Google tasks contains a primary list that cannot be deleted (a warning will be shown).
Local lists can be converted to Google Task lists, and vice versa. TaskPop also lets you:
- Rename lists with
Ctrl+Lor the command:renamefollowed by new name - Reorder lists in alphabetical, local or google tasks on top, or completely rearrange them as you like.
- Switch lists using
Ctrl+TabborCtrl+Shift+Tab - Jump directly using
Ctrl + 1…Ctrl + 9andCtrl + 0
See 'Keyboard Shortcuts' and 'Commands' sections below for more.
To create a task, simply type the task name/title and press Ctrl+Enter
To Navigate the tasks in the list, use the up ↑ and down ↓ arrow keys.
Select a task and press Ctrl + D or Shift+Enter to open the task details panel. You can then edit/add:
- Task name
- Task details / notes
- Date & time
- Reminder options
Save with Ctrl + S or Ctrl+Enter (or the Save button).
Cancel anytime with Esc.
| App Shortcuts | Action |
|---|---|
Ctrl + O |
Open Settings |
Ctrl + S |
Save in details/settings; sync in list view |
Ctrl + Enter |
Add task / run selected command |
Esc |
Close popup or cancel current action |
| Tasks Shortcuts | Action |
|---|---|
Super + T |
Open/close TaskPop |
↑ / ↓ |
Navigate tasks or commands |
Space |
Tick/untick selected task when input is empty |
Ctrl + Enter |
Add task / run selected command |
Ctrl + K |
Clear completed tasks |
Ctrl + D / Shift + Enter |
Open task details panel |
Ctrl + E |
Quick edit selected task name |
Ctrl + C |
Copy selected task text |
| Lists Shortcuts | Action |
|---|---|
Ctrl + Tab |
Next list |
Ctrl + Shift + Tab |
Previous list |
Ctrl + 1 … Ctrl + 9 |
Jump to visible list number |
Ctrl + 0 |
Jump to last visible list |
Ctrl + L |
Rename current list |
Type : to show commands. Continue typing to filter command names and descriptions.
| Command | Action |
|---|---|
:list-l <name> |
Create local list |
:list-gt <name> |
Create Google Tasks list |
:unlist |
Delete current list after typing DELETE |
:rename <New List Name> |
Rename current list |
:reorder <number> |
Move current list to a visible position |
:order-az |
Order visible lists A to Z |
:order-za |
Order visible lists Z to A |
:order-lg |
Order local lists first, then Google Tasks lists |
:order-gl |
Order Google Tasks lists first, then local lists |
:clear |
Clear completed tasks from current list |
:settings |
Open Settings |
:list-c-gt |
Convert local list to Google Tasks |
:convert-to-google-task |
Same as :list-c-gt |
:list-c-l |
Convert Google Tasks list to local |
:convert-to-local |
Same as :list-c-l |
:enable-gt |
Show/enable Google Tasks lists |
:disable-gt |
Hide/disable Google Tasks lists |
:enable-l |
Show/enable local lists |
:disable-l |
Hide/disable local lists |
:shortcut <binding> |
Change global shortcut |
:sync |
Sync Google Tasks if connected |
The primary Google Tasks list cannot be deleted by Google. If you try to delete or convert it to local, TaskPop shows a warning and leaves it unchanged.
TaskPop accepts flexible date/time formats.
Examples:
23/08 6am
13jan 1600
tomorrw at 6pm
jan11 4pm
18:30
0830
6pm
Supported date styles include:
DD-MM-YYYY
DD/MM/YYYY
DD MM YYYY
DD-MM
DD/MM
DD MM
DD-MMM
DD MMM
13jan
jan13
Separator can be /, -, or a space.
If year is not entered, TaskPop uses the current year if the date is upcoming, otherwise next year.
If only time is entered, TaskPop uses today if the time is still upcoming, otherwise tomorrow.
Settings allow below formats:
- For dates you can choose either
Date-MonthorMonth-Dateformat - For time,
24 hrsorAM/PMformats can be chosen.
Google Tasks sync supports task title, notes, completion status, and due date.
Google Tasks API stores only the due date and discards due time. TaskPop therefore keeps due time and reminder timing locally.
If a synced task is deleted from Google Tasks outside TaskPop, TaskPop recreates the missing Google task on the next sync instead of getting stuck with an offline pending state.
- Desktop reminders and notifications.
- Reminder background checker using systemd user timer.
- Due today / upcoming / overdue task views.
- Set task priority and sort by priority.
- Search across all lists.
- Task descriptions formatting.
- Better recurring task support.
- Import/export.
