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
Find duplicate files

dupeGuru dupeGuru is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in a system. It is written mostly in Python 3 and has th

Andrew Senetar 3.3k Jan 04, 2023
Automatic Movie Downloading via NZBs & Torrents

CouchPotato CouchPotato (CP) is an automatic NZB and torrent downloader. You can keep a "movies I want"-list and it will search for NZBs/torrents of t

CouchPotato 3.9k Jan 04, 2023
Indico - A feature-rich event management system, made @ CERN, the place where the Web was born.

Indico Indico is: 🗓 a general-purpose event management tool; 🌍 fully web-based; 🧩 feature-rich but also extensible through the use of plugins; ⚖️ O

Indico 1.4k Jan 09, 2023
Invenio digital library framework

Invenio Framework v3 Open Source framework for large-scale digital repositories. Invenio Framework is like a Swiss Army knife of battle-tested, safe a

Invenio digital repository framework 562 Jan 07, 2023
🦉Data Version Control | Git for Data & Models

Website • Docs • Blog • Twitter • Chat (Community & Support) • Tutorial • Mailing List Data Version Control or DVC is an open-source tool for data sci

Iterative 10.9k Jan 05, 2023
cherrytree

CherryTree A hierarchical note taking application, featuring rich text and syntax highlighting, storing data in a single XML or SQLite file. The proje

Giuseppe Penone 2.7k Jan 08, 2023
A time tracking application

GTimeLog GTimeLog is a simple app for keeping track of time. Contents Installing Documentation Resources Credits Installing GTimeLog is packaged for D

GTimeLog developers 224 Nov 28, 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
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
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database

About Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. This softw

Jan B 8.2k Jan 02, 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
: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
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
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
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
Small and highly customizable twin-panel file manager for Linux with support for plugins.

Note: Prefered repository hosting is GitLab. If you don't have an account there and don't wish to make one interacting with one on GitHub is fine. Sun

Mladen Mijatov 407 Dec 29, 2022
115原码播放服务Kodi插件

115proxy-for-kodi 115原码播放服务Kodi插件,需要kodi 18以上版本,需配合 https://github.com/feelfar/115-for-kodi 使用 安装 由于release包尚未释出,可直接下载源代码zip包安装。 20210202:由于正调试kodi19兼

92 Jan 01, 2023
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
:bookmark: Browser-independent bookmark manager

buku buku in action! Introduction buku is a powerful bookmark manager written in Python3 and SQLite3. When I started writing it, I couldn't find a fle

Mischievous Meerkat 5.4k Jan 02, 2023