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
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
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
115原码播放服务Kodi插件

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

92 Jan 01, 2023
🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

ArchiveBox Open-source self-hosted web archiving. ▶️ Quickstart | Demo | Github | Documentation | Info & Motivation | Community | Roadmap "Your own pe

ArchiveBox 14.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
A simple shared budget manager web application

I hate money I hate money is a web application made to ease shared budget management. It keeps track of who bought what, when, and for whom; and helps

The spiral project. 829 Dec 31, 2022
A collection of self-contained and well-documented issues for newcomers to start contributing with

fedora-easyfix A collection of self-contained and well-documented issues for newcomers to start contributing with How to setup the local development e

Akashdeep Dhar 8 Oct 16, 2021
🦉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
Automatic music downloader for SABnzbd

Headphones Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, µTorrent, De

3.2k Dec 31, 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
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
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
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
Plugin-based, unopinionated membership administration software

byro is a membership administration tool for small and medium sized clubs/NGOs/associations of all kinds, with a focus on the DACH region. While it is

123 Nov 16, 2022
Free and open-source digital preservation system designed to maintain standards-based, long-term access to collections of digital objects.

Archivematica By Artefactual Archivematica is a web- and standards-based, open-source application which allows your institution to preserve long-term

Artefactual 338 Dec 16, 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
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
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
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
SENAITE Meta Package

SENAITE LIMS Meta Installation Package What does SENAITE mean? SENAITE is a beautiful trigonal, oil-green to greenish black crystal, with almost the h

SENAITE 135 Dec 14, 2022