GTG’s integration with GNOME Shell

by Baptiste Saleil

GTG is simply the better soft to manage personnal tasks with all features a user needs. Also, I use the so friendly Gnome-Shell since the begining of his young age. So, my idea is to work on GTG software, to create the better link as possible between GTG in one side and Gnome-Shell in the other one, to improve usage and rapidity. By this way, the user could manage his tasks (Create, edit,…) directly from the shell with a friendly and unified interface.

Project page | Full proposal - pdf | Extension repository | Plugin repository | Blog

Contact Information

Email: baptiste.saleil@gmail.com
Website : http://bsaleil.org/
Github profile : https://github.com/bsaleil
Mentor : http://www.lucainvernizzi.net/ (Luca Invernizzi)

Extension for GNOME Shell

Installation

This extension is available on GNOME Shell extensions website with the name “GTG Integration”. To install it, you can simply go to the website, search for the extension, change the switch button to “ON”, and accept download. It is now installed. This extension bring many features described in next section.

Usage

Search in overview

search.png
This feature is simple to use. Open the overview by pressing “super” key or move your mouse on top left corner or click on “Activities” button, type some letters to search in your tasks, and the extension will displays results. The task editor will be open if you click on a task.

Calendar menu

calendar.png
The second feature bring with the extension is the calendar menu which can be open by clicking on the date in the topbar. For now, the GTG calendar menu will replace the existing, synchornization of both is planned for the future. This menu can be split in two others, tasks menu and todo list.

Tasks menu

This menu shows GTG’s tasks to do for selected day in calendar menu, on the left. You can see two different colors for your tasks. The first one (Grey) displays tasks which has start date identic to the day selected and the second one (Dark grey) displays only tasks with a start date before the day selected and/or a due date after the day selected.

Todo list

On the right side of the calendar menu is the todo list. This menu displays only tasks without start date AND without due date. By this way, every tasks are listed to user.

Preferences

preferences.png

Plugin for GTG

Installation

This plugin add possibility to be notified about your tasks on GTG.

* Download archive, or clone repo
* Copy content on GTG plugins folder
* Active it on GTG

Usage

Open time picker

gtgtaskeditor.png
If you open task editor for a task, you’ll se a new button (“Notification”) When you click it, the time picker is opened.

Select time/date


Here you can chose a date/time to be notified for this task. Now you just have to confirm and an job will be remotly created with at command.

Notification

gtg-notification.png
When job is executed, a python script (notifify.py) will be lauch and notification will appear with “Edit” and “Done” button. For now, if GTG is closed when you click on one of the two buttons, nothing will happen so, GTG must stay open. If you click on “Edit” button, the task editor will be open for this task. If you click on “Done” button, the task will be mark as done on GTG.

Reports

Reports are written directly by mail to my mentor every week. More information about features on repos or blog.

Week Done
#1 - Set up new architecture (modules) for extension
- Search provider for the overview working
#2 - Add new tasks list menu with basics features :
List tasks,
Open gtg button,
Today and tomorrow keywords,
Clickable tasks
- Css system theme
- Hide the old menu
#3 - Add Todo list
- Fix CPU bug
- Fix disable bug
- List all of the tasks for day selected
- User experience stuffs
- Unit tests
#4 - Set up translation system
- Import infos from Gnome-Shell ‘.po’ files.
- Split long name tasks
- Clean up
#5 - Set up preferences system with ‘prefs.js’
- ‘Theme’ and ‘Hide menu’ preferences working
- Scrollbar on todo menu
- Tought about fuzzy keywords
#6 - Scrollbar on tasks list menu
- ‘Long task’ and ‘number of days’ preferences working
- Align widgets and replace checkbox with switch button
- Some calendar menu UI improvement
- Cleanup
#7 - Continue to work on calendar menu to fix known bugs, cleanup,...
#8 - Prepare GUADEC
- Write documentation
- Try new algorithms to improve performance
- Thinking about the notification system
#9 - GUADEC week
- Training with python, gtk, at command,...
- Implement basics of notification system.
#10 - First prototype :
- Possibility to select time/date for a task and record it into the task
- New script to launch notification with given infos and two buttons
#11 - Notification system is now working with :
- Possibility to chose a date/time for a task
- Notification infos are correctly recorded in the task
- A job is created with a script which launch at command
- This job launch notify script to display notification
- "Edit" and "Done" button are working
#12 Last week!
- Fix known bugs
- Add features (remove notification, disable UI when notification displayed,...)
- Write documentation on repos and wiki page
- Crying because the GSoC is over

Blogged reports

Project category in blog

And after GSoC ?

After this summer, I’ll continue to work on the extension and the plugin. There are known bugs, and requested features. So, this is only the beginning of my work. Moreover, I have some ideas for GTG and I’ll continue to work on it in the future.

Thanks Luca
Thanks GNOME
Thanks GSoC