A time tracking application

Related tags

Organizationgtimelog
Overview

GTimeLog

GTimeLog is a simple app for keeping track of time.

build status build status (on Windows) test coverage

screenshot

Installing

GTimeLog is packaged for Debian and Ubuntu:

sudo apt-get install gtimelog

For Ubuntu, sometimes a newer version can usually be found in the PPA:

https://launchpad.net/~gtimelog-dev/+archive/ppa

Fedora also holds a package of gtimelog to be installed with:

sudo dnf install gtimelog

You can fetch the latest released version from PyPI

$ pip install gtimelog
$ gtimelog

You can run it from a source checkout (without an explicit installation step):

$ git clone https://github.com/gtimelog/gtimelog
$ cd gtimelog
$ ./gtimelog

System requirements:

  • Python (3.6+)
  • PyGObject
  • gobject-introspection type libraries for Gtk, Gdk, GLib, Gio, GObject, Pango, Soup, Secret
  • GTK+ 3.18 or newer

Documentation

This is work in progress:

Resources

Website: https://gtimelog.org

Mailing list: [email protected] (archive at https://groups.google.com/group/gtimelog)

IRC: #gtimelog on irc.freenode.net

Source code: https://github.com/gtimelog/gtimelog

Report bugs at https://github.com/gtimelog/gtimelog/issues

There's an old bugtracker at https://bugs.launchpad.net/gtimelog

I sometimes also browse distribution bugs:

Credits

GTimeLog was mainly written by Marius Gedminas <[email protected]>.

Barry Warsaw <[email protected]> stepped in as a co-maintainer when Marius burned out. Then Barry got busy and Marius recovered.

Many excellent contributors are listed in CONTRIBUTORS.rst

Comments
  • Add tagging support.

    Add tagging support.

    Entries can include a (space-separated) list of tags, separated from the main entry title by -- (originally //).

    Reports include also per-tag totals, if any tags are found.

    opened by riccardomurri 24
  • gtimelog on Windows 7

    gtimelog on Windows 7

    Hello,

    I'm trying to run gtimelog on Windows 7, but no success so far. I installed PyGObject for Windows (https://sourceforge.net/projects/pygobjectwin32/files/pygi-aio-3.18.2_rev10-setup_84c21bc2679ff32e73de38cbaa6ef6d30c628ae5.exe/download) and then installed gtimelog via pip3. When I then run gtimelog in a command window, I get no output whatsoever and the command prompt just returns without any error. My Python version is 3.4.4.

    Any idea on how I can further troubleshoot this?

    help wanted 
    opened by lvets 15
  • Modernize the UI

    Modernize the UI

    I want gtimelog to look at home in a modern GNOME 3 desktop. This means

    • header bars
    • app menu
    • new-style about dialog

    Something like this: ./mockup.py from the experimental-ui branch

    Checklist:

    • [x] mock up some UI in glade
    • [x] implement it
    • [ ] ~~perhaps pay attention to gtk_application_prefers_app_menu() and keep the old menu bar if that returns False?~~ (nah, unless somebody convinces me)
    • [x] test in a non-GNOME environment
    • [x] test on stable versions of several distros (Ubuntu 14.04, ~~Debian stable, Fedora something?~~) to see if I'm using any bleeding-edge APIs unnecessarily

    Implementation in the experimental-ui branch (use ./mockup.py instead of ./gtimelog):

    • [x] basic UI
    • [x] history browsing
    • [x] task entry
    • [ ] ~~get rid of scrolling animations during task entry~~ (or don't, I think I can live with it)
    • [x] history completion
    • [x] task pane
    • [x] support for remote task lists (sort of; there are rough edges and no UI)
    • [x] previewing reports
    • [x] sending reports via email
    • [x] error handling when report sending fails
    • [x] help page documenting keyboard shortcuts
    • [x] preferences dialog
    • [x] persistent view settings (task pane on/off at the very least) in gsettings
    • [x] command-line option handling (--version)
    • [x] fix warnings
    • [x] add back Python 2 support
    • [x] remove custom CSS loading code; I didn't end up using any custom CSS
    • [ ] ~~access keys for all menus and other widgets~~ (not if I can't see them)
    enhancement 
    opened by mgedmin 14
  • Implement sort order

    Implement sort order

    I'm almost done but I have one small issue: I don't manage to have the logview redraw when the tasks list changes (especially when the order changes).

    i.e. I'd expect something like Alt-2 (grouped) -> Alt-0 (sort by task order) -> Ctrl-T (change the task order) to automatically change the task order in the LogView pane, but I need to press again e.g. Alt-0 to make it happen

    I also still need to update the shortcuts pane, and probably documentation and test cases, but wanted a first opinion.

    opened by ericzolf 11
  • Global refactoring proposal

    Global refactoring proposal

    • Extracting ui (views and components)
    • Extracting core functions
    • Redesigning dependencies (especially gi) (that's why there is no separates commits although. But if something is interesting i can do separates commits later on to allow collaborative work)
    • Separates tests
    • python PEP review

    This work is not proposed to be directly merged because it can't unless strong decision (but painfull it's been, painfull it'll be ^^ ). It's intend to discuss and to find a suitable architecture design to allow future modularity without loosing the masterword of this application : simplicity to use and maybe later on simplicity to extend. It's just my very own proposal and all reviews, critics and proposals will be much appreciated.

    Cheers

    opened by StephaneMangin 11
  • Make experimental-ui run on Ubuntu 14.04

    Make experimental-ui run on Ubuntu 14.04

    NB: add libglib2.0-bin to build-deps. Also install gnome-themes-standard gnome-icon-theme-full gnome-icon-theme-symbolic if you've got an X-less Vagrant instance.

    Fatal errors first:

    (gtimelog:19915): Gtk-ERROR **: failed to add UI: src/gtimelog/experiment.ui: required gtk+ version 3.16, current version is 3.10
    Trace/breakpoint trap (core dumped)
    

    Fixed by editing the required version in experiment.ui.

    Next:

    Traceback (most recent call last):
      File "./mockup.py", line 157, in do_command_line
        self.do_activate()
      File "./mockup.py", line 235, in do_activate
        window = Window(self)
      File "./mockup.py", line 344, in __init__
        copy_properties(main_window, self)
      File "./mockup.py", line 252, in copy_properties
        if prop.flags & GObject.ParamFlags.READWRITE != GObject.ParamFlags.READWRITE:
    AttributeError: type object 'PyGObjectParamFlags' has no attribute 'READWRITE'
    

    The docs don't say when READWRITE was introduced. There's READABLE and WRITABLE.

    Next:

    Traceback (most recent call last):
      File "./mockup.py", line 157, in do_command_line
        self.do_activate()
      File "./mockup.py", line 235, in do_activate
        window = Window(self)
      File "./mockup.py", line 394, in __init__
        self.actions = self.Actions(self)
      File "./mockup.py", line 300, in __init__
        self.detail_level = Gio.PropertyAction.new("detail-level", win, "detail-level")
    ValueError: Pointer arguments are restricted to integers, capsules, and None. See: https://bugzilla.gnome.org/show_bug.cgi?id=683599
    

    This might be hard to fix; I commented out all PropertyActions temporarily. Now it runs, but looks terrible (no theme? no icons? my vagrant is incomplete).

    BTW in runs on Python 2, but not 3:

    Traceback (most recent call last):
      File "./mockup.py", line 157, in do_command_line
        self.do_activate()
      File "./mockup.py", line 235, in do_activate
        window = Window(self)
      File "./mockup.py", line 412, in __init__
        self.load_settings()
      File "./mockup.py", line 457, in load_settings
        self.gsettings.set_string('name', old_settings.name)
    TypeError: Must be string, not bytes
    

    and on Python 2 some UI elements are out of order -- probably because of

    (gtimelog:20290): Gtk-WARNING **: /build/gtk+3.0-3sSotQ/gtk+3.0-3.10.8/./gtk/gtkcontainer.c:1166: child property `position' of container class `GtkHeaderBar' is not writable
    
    opened by mgedmin 10
  • output reports on the CLI

    output reports on the CLI

    I love the simplicity to enter things via the GUI. However, I do not mail my reports to anyone anymore. I did that for a while and it was nice and easy with gtimelog.

    I am looking for a way to get the report for a week output on the CLI, without the whole mail-overhead.

    Is something like this planned?

    I am willing to contribute, though I have not much python experience. If this is not planned, I would be happy about some pointer where and how to start.

    enhancement 
    opened by kronn 10
  • Segmentation fault on macOS Big Sur with M1

    Segmentation fault on macOS Big Sur with M1

    I've been trying to get gtimelog running on macOS (M1). After installing needed libraries via brew and using Python 3.9.4, I'm getting the following error on startup:

    Unable to configure translations: no locale.bindtextdomain()
    Created /Users/me/.local/share/gtimelog
    Settings from /Users/me/.config/gtimelog/gtimelogrc migrated to GSettings (org.gtimelog)
    [1]    52861 segmentation fault  gtimelog
    

    I've installed these packages via brew:

    pygobject3
    gtk+3
    py3cairo
    pango
    gobject-introspection
    libsoup
    

    As suggested in this issue, I've made the library path available via:

    export DYLD_LIBRARY_PATH=/opt/homebrew/lib
    

    Did anyone have more success?

    help wanted 
    opened by LyteFM 9
  • Add flatpak manifest

    Add flatpak manifest

    This PR contains the manifest file required to build GTimeLog as a Flatpak.

    Build

    1. Make sure flatpak is installed in your system.
    2. Clone the repository.
    3. Run flatpak-builder --user --install gflatlog gtimelog/flatpak/org.gtimelog.GTimeLog.json.

    This command will build the flatpak according to the manifest file gtimelog/flatpak/org.gtimelog.GTimeLog.json using gflatlog as the build directory. Then it will install it as the user.

    (For information on alternative ways to build (e.g. to a local repo), please refer to the Flatpak documentation)

    Issues

    For both of these issues, someone who has Distutils experience may be helpful.

    App icon does not work

    I tried installing the app icon the way the desktop file is installed but I could not make Flatpak see it.

    Setup file references /app directly

    In setup.py, /app is referenced directly for data_files. I thought setup would install relative to the installation prefix when it is left out but I could not get Flatpak to see the desktop file with a relative path.

    This issue prevents the patch from being upstreamed.

    opened by cagatay-y 9
  • What's that "hidden option in gsettings"?

    In the documentation, there's this paragraph that starts with:

    There's a hidden option in gsettings for fetching the task list from an Internet URL.

    Could you be more specific about how we set this up? I'm not quite familiar with gsettings.

    opened by ChameleonScales 8
  • Exceptions with GTK 3.22 (on OpenSUSE Tumbleweed)

    Exceptions with GTK 3.22 (on OpenSUSE Tumbleweed)

    I'm trying to run it on the latest OpenSUSE Tumbleweed and I get the following error:

      File "/tmp/gtimelog/src/gtimelog/main.py", line 1388, in set_up_completion
        self.completion_choices = Gtk.ListStore(str)
    TypeError: GObject.__init__() takes exactly 0 arguments (1 given)
    

    My package versions are as follows:

    libglib-2_0-0            2.56.1-2.2
    libgobject-2_0-0         2.56.1-2.2
    libgtk-3-0               3.22.30-3.1
    python2-cairo            1.15.1-1.2
    python2-gobject          3.28.3-1.2
    typelib-1_0-Gtk-3_0      3.22.30-4.1
    typelib-1_0-Soup-2_4     2.62.2-2.1
    

    I've tried both master, 0.11.1, 0.11 with the same error. (Tags 0.10.* give other errors.)

    invalid 
    opened by cipriancraciun 8
  • Does gschema.compiled really belong in the Git repository?

    Does gschema.compiled really belong in the Git repository?

    After modifying src/gtimelog/data/org.gtimelog.gschema.xml, I tripped over the error:

    $ ./gtimelog 
    
    (gtimelog:46277): GLib-GIO-ERROR **: 14:37:37.363: Settings schema 'org.gtimelog' does not contain a key named 'log-order'
    Trace/breakpoint trap (core dumped)
    

    I found out that calling make recreated src/gtimelog/data/gschemas.compiled which solved the issue, but I noticed that removing alltogether gschemas.compiled also solved the issue. According to https://stackoverflow.com/questions/56309056/is-gschemas-compiled-architecture-specific-can-i-ship-it-with-my-python-library it is only a cache file and shouldn't be shipped with the application but generated by packages on the fly.

    So, should I/someone remove this file from the Git repository? And place it on the ignore list...

    opened by ericzolf 1
  • Some Changes

    Some Changes

    First question, is this still being actively developed/maintained?

    First, I like the simple concept of keeping track of time, However the thing that goes against my brain is the fact that you need to enter activity after you finished. I understand the concept, but to me it would make much more sense to type the activity that you want to start and then when you are finished type done or finished.

    To me the logic just flows better. :)

    For example When I arrive at work or start working I would type; Arrived or Started

    The timer would start

    One hour later I go for breakfast so I would type; Breakfast**

    The timer would stop

    When finished with breakfast type; Work

    The timer would start again.

    and so on till the end of the day or till I finished my job, and then I would type Done/Going Home**.

    The timer would stop for the day.

    To make it easier yet I would make two buttons for each task "Start" and "Finished"

    If I click on the Breakfast start button before I finished the the task that was running it would stop the timer for that task, then after I clicked the Breakfast Finished button, the timer would start again for the same task that was running before.

    Just some thoughts on making this easier to use.

    opened by Ben7230 4
  • Pointer/solution for macos installation (brew)

    Pointer/solution for macos installation (brew)

    Hi, I wanted to share how I made the installation work on my mac with brew.

    I installed all the depedencies, but got stuck on an error that libsoup of version 2.4 was not found. Later, I solved it using the following commands:

    brew unlink libsoup
    brew install [email protected]
    brew link [email protected]   # makes this version accessible in /usr/bin or something like that for gtimelog's dependencies to find it
    brew install adwaita-icon-theme  # otherwise all the button icons were missing
    

    (It's not all of the dependencies to install, because I don't remember the commands, but that was easy. It's the most tricky part that I couldn't solve for a long time. I don't know brew that well. And I expect many mac's gtimelog users to be in a similar situation – if they've just transferred to mac from ubuntu like me.)

    opened by adam-kral 1
  • Shortcuts window does not show up on MacOS

    Shortcuts window does not show up on MacOS

    What I did

    I am using MacOS 12.3.1 I installed the necessary dependencies using MacPorts. I am using the main branch of gtimelog.

    What happened

    When accessing the Keyboard Shortcuts entry in the ꠵ menu the main gtimelog window gets inactive and I cannot enter anything. Pressing esc seems to end the invisible dialog.

    Preferences and "About Time Log" do not suffer from this problem.

    What I did to debug the problem

    I started gtimelog using --debug option. This just produced the following warning.

    src/gtimelog/main.py:340: Warning: The property GtkContainer:child is deprecated and shouldn't be used anymore. It will be removed in a future version.
      builder = Gtk.Builder.new_from_file(SHORTCUTS_UI_FILE)
    

    Questions

    • Is there a way to debug this kind of issues further?
    • Is there anyone out there who does not have this problem?
    opened by icemac 1
  • Add lines from tasks to completion menu

    Add lines from tasks to completion menu

    It seems that the completion only considers records within timelog.txt. It would be nice to also add the lines from tasks.txt to the completion menu.

    Version: 0.11.3

    enhancement 
    opened by nblock 0
Releases(0.11)
  • 0.11(Mar 13, 2018)

    • A complete rewrite of the user interface, to better fit GNOME 3 (GH: #31).
    • History browsing can show you weeks/months, not just days.
    • You can filter the displayed tasks, with a total shown at the bottom (GH: #88).
    • There’s a preferences dialog now (GH: #47).
    • Window size and task pane size/visibility are remembered across restarts (GH: #30).
    • Settings are stored in GSettings. The old config file will be migrated on first startup.
    • Work hours and office hours are separate settings now (GH: #46).
    • Native support for emailing reports. Requires a configured MTA on the local machine (i.e. /usr/sbin/sendmail).
    • There’s a help page listing all the keyboard shortcuts.
    • The user interface can be translated (and is translated into Lithuanian). Reports are an exception (GH: #45).
    • More efficient file change watching (GH: #11).
    • Dropped features:
      • No more tray icons.
      • Dropped –tray, –toggle, –quit, –sample-config command line options.
      • The “Reload” menu option and hot key are gone – reloading is automatic now.
      • Report for a custom date range is gone.
      • “Complete report in spreadsheet” is gone.
      • “Work/slacking stats in spreadsheet” is gone.
      • Setting for editor is gone: the default file association for text files will be used.
      • Settings for mailer is gone: mail sending is internal now.
      • Setting for spreadsheet is gone.
      • Separate setting to show remaining office hours is gone (set office hours to 0 to hide the estimate).
    Source code(tar.gz)
    Source code(zip)
  • 0.9.2(Sep 28, 2014)

  • 0.9.1(Apr 3, 2014)

  • 0.9.0(Apr 3, 2014)

Owner
GTimeLog developers
GTimeLog developers
Agile project management platform. Built on top of Django and AngularJS

Taiga Backend Documentation Currently, we have authored three main documentation hubs: API: Our API documentation and reference for developing from Ta

Taiga.io 5.8k Jan 05, 2023
Fava - web interface for Beancount

Fava is a web interface for the double-entry bookkeeping software Beancount with a focus on features and usability. Check out the online demo and lear

1.5k Dec 30, 2022
The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim through format.

The open-source core of Pinry, a tiling image board system for people who want to save, tag, and share images, videos and webpages in an easy to skim

Pinry 2.7k Jan 08, 2023
A Python library to manage ACBF ebooks.

libacbf A Python library to read and edit ACBF formatted comic book files and archives. XML Specifications here: https://acbf.fandom.com/wiki/Advanced

Grafcube 0 Nov 09, 2021
RedNotebook is a cross-platform journal

RedNotebook RedNotebook is a modern desktop journal. It lets you format, tag and search your entries. You can also add pictures, links and customizabl

Jendrik Seipp 417 Dec 28, 2022
Wikidata scholarly profiles

Scholia is a python package and webapp for interaction with scholarly information in Wikidata. Webapp As a webapp, it currently runs from Wikimedia To

Finn Årup Nielsen 181 Jan 03, 2023
A CalDAV/CardDAV server

Xandikos is a lightweight yet complete CardDAV/CalDAV server that backs onto a Git repository. Xandikos (Ξανδικός or Ξανθικός) takes its name from the

Jelmer Vernooij 255 Jan 05, 2023
The official source code repository for the calibre ebook manager

calibre calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book re

Kovid Goyal 14.1k Dec 27, 2022
Main repository of the zim desktop wiki project

Zim - A Desktop Wiki Editor Zim is a graphical text editor used to maintain a collection of wiki pages. Each page can contain links to other pages, si

Zim Desktop Wiki 1.6k Dec 30, 2022
Open source platform for the machine learning lifecycle

MLflow: A Machine Learning Lifecycle Platform MLflow is a platform to streamline machine learning development, including tracking experiments, packagi

MLflow 13.3k Jan 04, 2023
:mag: Ambar: Document Search Engine

🔍 Ambar: Document Search Engine Ambar is an open-source document search engine with automated crawling, OCR, tagging and instant full-text search. Am

RD17 1.9k Jan 09, 2023
Collect your thoughts and notes without leaving the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for your command line. Journals are stored as human readable plain t

Manuel Ebert 31 Dec 01, 2022
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 86 Oct 18, 2022
Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.

Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Exclusiv

pyMedusa 1.5k Dec 30, 2022
WikidPad is a single user desktop wiki

What is WikidPad? WikidPad is a Wiki-like notebook for storing your thoughts, ideas, todo lists, contacts, or anything else you can think of to write

WikidPad 176 Dec 14, 2022
This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click

This is your launchpad that comes with a variety of applications waiting to run on your kubernetes cluster with a single click.

M. Rehan 2 Jun 26, 2022
Source code for Gramps Genealogical program

The Gramps Project ( https://gramps-project.org ) We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete f

Gramps Project 1.6k Jan 08, 2023
Scan, index, and archive all of your paper documents

[ en | de | el ] Important news about the future of this project It's been more than 5 years since I started this project on a whim as an effort to tr

Paperless 7.8k Jan 06, 2023
One webpage for every book ever published!

Open Library Open Library is an open, editable library catalog, building towards a web page for every book ever published. Are you looking to get star

Internet Archive 4k Jan 08, 2023
A :baby: buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work.

Baby Buddy A buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs wit

Baby Buddy 1.5k Jan 02, 2023