diego-ivan / flowtime Goto Github PK
View Code? Open in Web Editor NEWSpend your time wisely
License: GNU General Public License v3.0
Spend your time wisely
License: GNU General Public License v3.0
A feature like Window's 10's task manager, a tiny widget that takes tiny amount of space, maybe even a option to position itself over a window
for a person with adhd even fighting against a simple timer can make a person much more productive, a feature like this could help me greatly
When you start a timer and close the lid of the laptop to relocate, the timer is paused and then resumed when the lid is open again. This is not necessarily the desired behavior. Perhaps Flowtime should be able to keep track of the wall clock to update the timer when needed?
We should provide an option to create backups for Statistics, either allowing to copy the XML file or by allowing importing data from the CSV files.
This would require creating a UI tool to import/export them.
The "See Details" button will reproducibly crash the app when no activity has been recorded yet.
flowtime killed by SIGTRAP
Let me know if you need any further debug info.
I'm back with another issue 😅
Clicking on the "Break is over" notification opens a new window even when the old one is still there.
I think clicking it should take me to the old window.
I'm using gnome 44 xorg if that's relevant to the issue.
If I start a break, when the break is finished, and I click the next button, the timer doesn't start. I have to press the play/pause button a couple times to get it to start, and sometimes it starts incrementing by 2 seconds at a time.
I'm using Zorin OS 16 (built on Ubuntu 20.04) and it's installed through Flatpak.
uhhh, idk why this exist, maybe just some dependency thing in the aur package flowtime
?
[ayhe@Oxygen ~]$ neofetch
-` ayhe@Oxygen
.o+` -----------
`ooo/ OS: Arch Linux x86_64
`+oooo: Host: Jiguang Air Series GM5AGEO Standard
`+oooooo: Kernel: 6.5.9-arch2-1
-+oooooo+: Uptime: 6 hours, 9 mins
`/:-:++oooo+: Packages: 2049 (pacman)
`/++++/+++++++: Shell: bash 5.1.16
`/++++++++++++++: Resolution: 1080x1920, 1920x1080
`/+++ooooooooooooo/` DE: GNOME 45.0
./ooosssso++osssssso+` WM: Mutter
.oossssso-````/ossssss+` WM Theme: Adwaita
-osssssso. :ssssssso. Theme: Adwaita [GTK2/3]
:osssssss/ osssso+++. Icons: Adwaita [GTK2/3]
/ossssssss/ +ssssooo/- Terminal: kgx
`/ossssso+/:- -:/+osssso+- CPU: 12th Gen Intel i7-12700H (20) @ 4.600GHz
`+sso+:-` `.-/+oso: GPU: Intel Alder Lake-P GT2 [Iris Xe Graphics]
`++:. `-/+/ GPU: NVIDIA GeForce RTX 3050 Mobile
.` `/ Memory: 2590MiB / 15738MiB
Program msgfmt found: YES (/usr/bin/msgfmt)
Program desktop-file-validate found: YES (/usr/bin/desktop-file-validate)
Program appstream-util found: YES (/usr/bin/appstream-util)
Program glib-compile-schemas found: YES (/usr/bin/glib-compile-schemas)
Found pkg-config: /usr/bin/pkg-config (1.8.1)
Run-time dependency gio-2.0 found: YES 2.78.1
Run-time dependency gtk4 found: YES 4.12.3
Run-time dependency gstreamer-1.0 found: YES 1.22.6
Run-time dependency gstreamer-player-1.0 found: YES 1.22.6
Run-time dependency libadwaita-1 found: YES 1.4.0
Run-time dependency libxml-2.0 found: YES 2.11.5
Run-time dependency libportal-gtk4 found: YES 0.7.1
Configuring config.h using configuration
Program blueprint-compiler found: NO
flowtime/src/meson.build:58:21: ERROR: Program 'blueprint-compiler' not found or not executable
A full log can be found at /home/ayhe/.cache/yay/flowtime/src/build/meson-logs/meson-log.txt
==> ERROR: A failure occurred in build().
Aborting...
-> error making: flowtime-exit status 4
-> Failed to install the following packages. Manual intervention is required:
flowtime - exit status 4
After Installed blurprint-compiler
the terminal output this:
[13/39] Generating src/flowtime-resources_c with a custom command
FAILED: src/flowtime-resources.c
/usr/bin/glib-compile-resources ../flowtime/src/flowtime.gresource.xml --sourcedir src --sourcedir ../flowtime/src --c-name flowtime --internal --generate --target src/flowtime-resources.c --dependency-file src/flowtime-resources.c.d
../flowtime/src/flowtime.gresource.xml: Failed to locate “ui/window.ui” in any source directory.
[14/39] Generating src/flowtime-resources_h with a custom command
FAILED: src/flowtime-resources.h
/usr/bin/glib-compile-resources ../flowtime/src/flowtime.gresource.xml --sourcedir src --sourcedir ../flowtime/src --c-name flowtime --internal --generate --target src/flowtime-resources.h
../flowtime/src/flowtime.gresource.xml: Failed to locate “ui/window.ui” in any source directory.
[15/39] Compiling Vala source ../flowtime/src/main.vala ....idgets/TimerPage.vala ../flowtime/src/Widgets/Window.vala
FAILED: src/flowtime.p/main.c src/flowtime.p/Application.c src/flowtime.p/XmlUtils.c src/flowtime.p/Models/Day.c src/flowtime.p/Models/State.c src/flowtime.p/Models/StatObject.c src/flowtime.p/Models/InformationHolder.c src/flowtime.p/Services/Timer.c src/flowtime.p/Services/ColorProvider.c src/flowtime.p/Services/Statistics.c src/flowtime.p/Services/Alarm.c src/flowtime.p/Services/Settings.c src/flowtime.p/Widgets/PreferencesWindow.c src/flowtime.p/Widgets/SoundRow.c src/flowtime.p/Widgets/StatGraph.c src/flowtime.p/Widgets/StatInfo.c src/flowtime.p/Widgets/StatList.c src/flowtime.p/Widgets/StatPage.c src/flowtime.p/Widgets/StatRow.c src/flowtime.p/Widgets/StatsWindow.c src/flowtime.p/Widgets/TimerPage.c src/flowtime.p/Widgets/Window.c
valac -C --pkg libportal-gtk4 --pkg libxml-2.0 --pkg libadwaita-1 --pkg gstreamer-player-1.0 --pkg gstreamer-1.0 --pkg gtk4 --pkg gio-2.0 --color=always --directory src/flowtime.p --basedir ../flowtime/src --gresources=../flowtime/src/flowtime.gresource.xml /home/ayhe/.cache/yay/flowtime/src/flowtime/src/vapi/config.vapi --target-glib=2.50 --enable-checking --gresourcesdir=src/ --vapidir /home/ayhe/.cache/yay/flowtime/src/flowtime/vapi ../flowtime/src/main.vala ../flowtime/src/Application.vala ../flowtime/src/XmlUtils.vala ../flowtime/src/Models/Day.vala ../flowtime/src/Models/State.vala ../flowtime/src/Models/StatObject.vala ../flowtime/src/Models/InformationHolder.vala ../flowtime/src/Services/Timer.vala ../flowtime/src/Services/ColorProvider.vala ../flowtime/src/Services/Statistics.vala ../flowtime/src/Services/Alarm.vala ../flowtime/src/Services/Settings.vala ../flowtime/src/Widgets/PreferencesWindow.vala ../flowtime/src/Widgets/SoundRow.vala ../flowtime/src/Widgets/StatGraph.vala ../flowtime/src/Widgets/StatInfo.vala ../flowtime/src/Widgets/StatList.vala ../flowtime/src/Widgets/StatPage.vala ../flowtime/src/Widgets/StatRow.vala ../flowtime/src/Widgets/StatsWindow.vala ../flowtime/src/Widgets/TimerPage.vala ../flowtime/src/Widgets/Window.vala
gstreamer-player-1.0.vapi:250.3-250.32: warning: Instance methods are not supported in error domains yet
250 | public unowned string get_name ();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Services/ColorProvider.vala:67.13-67.28: warning: `Gtk.StyleContext' has been deprecated since 4.10
67 | Gtk.StyleContext.add_provider_for_display (Gdk.Display.get_default (),
| ^~~~~~~~~~~~~~~~
../flowtime/src/Services/ColorProvider.vala:77.13-77.28: warning: `Gtk.StyleContext' has been deprecated since 4.10
77 | Gtk.StyleContext.remove_provider_for_display (Gdk.Display.get_default (), current_provider);
| ^~~~~~~~~~~~~~~~
../flowtime/src/Services/ColorProvider.vala:89.13-89.41: warning: `Gtk.CssProvider.load_from_data' has been deprecated since 4.12
89 | break_provider.load_from_data (
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Services/ColorProvider.vala:95.13-95.41: warning: `Gtk.CssProvider.load_from_data' has been deprecated since 4.12
95 | break_provider.load_from_data (
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/PreferencesWindow.vala:10.5-10.58: error: UI resource not found: `/io/github/diegoivanme/flowtime/preferenceswindow.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
10 | public class PreferencesWindow : Adw.PreferencesWindow {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/StatInfo.vala:9.1-9.40: error: UI resource not found: `/io/github/diegoivanme/flowtime/statinfo.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
9 | public class Flowtime.StatInfo : Adw.Bin {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/StatList.vala:10.5-10.48: error: UI resource not found: `/io/github/diegoivanme/flowtime/statlist.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
10 | public class StatList : Adw.PreferencesGroup {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/StatPage.vala:9.1-9.40: error: UI resource not found: `/io/github/diegoivanme/flowtime/statpage.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
9 | public class Flowtime.StatPage : Adw.Bin {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/StatRow.vala:10.5-10.34: error: UI resource not found: `/io/github/diegoivanme/flowtime/statrow.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
10 | public class StatRow : Adw.Bin {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/StatsWindow.vala:10.5-10.41: error: UI resource not found: `/io/github/diegoivanme/flowtime/statwindow.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
10 | public class StatsWindow : Adw.Window {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/TimerPage.vala:10.5-10.36: error: UI resource not found: `/io/github/diegoivanme/flowtime/timerpage.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
10 | public class TimerPage : Adw.Bin {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../flowtime/src/Widgets/Window.vala:9.1-9.52: error: UI resource not found: `/io/github/diegoivanme/flowtime/window.ui'. Please make sure to specify the proper GResources xml files with --gresources and alternative search locations with --gresourcesdir.
9 | public class Flowtime.Window : Adw.ApplicationWindow {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compilation failed: 8 error(s), 5 warning(s)
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
Aborting...
-> error making: flowtime-exit status 4
-> Failed to install the following packages. Manual intervention is required:
flowtime - exit status 4
Personally, I find it convenient to have the screen locked for the duration of the break time (GNOME Pomodoro has this option) to get me out of the desk. The lock could be bypassed, but it would be an extra action.
Do you think it's something you would want to implement?
The accessibility would be improved if there were tooltips for the buttons. For example, "Start / Stop Timer" and "Toggle Work and Pause Stage" would help to identify the function of the buttons without clicking on them.
Recoloring has been problematic at the time of development, replacing the accent color change with the old green accent that Flowtime had must be considered.
HI,
I sow that Italian language is not available. Something wrong?
Thanks.
A.
Basically just having an applet in the top bar in gnome or the equivalent in kde would be amazing, kinda like in the pomodoro gnome app (extension).
This at least for me would completely replace the pomodoro app, for the activities i actually like to do, and surely would be good for other people too.
Keep up men, this app is really amazing.
Hi,
First, thanks for the app it's the best one I've found for this kind of timer on Linux!
I think it would be a nice addition to be able to add short labels or tags to work blocks, potentially with longer comments in a separate field. This enters more in the time-tracking side of things, so maybe it's out of scope for this app, but I think it would pair nicely with the current Statistics summary.
Thanks!
I'd like a setting which causes break times to be "saved for later", whenever I decide to start working again before the break is actually over. The scenario often looks like: I worked 2 hours, switch to break, notice after 2 minutes that my lunch is not ready (just an example) and go back to work. My well deserved break time is lost and if I want to take a break 10 minutes later, it will only give me 2 minutes. :(
I'm not sure if this is just a problem with the project's Libadwaita version. The AdwDemo does not seem to have this.
Since upgrading to Pop!_OS 22.04, I have been unable to run Flowtime either by clicking on the application icon or by running it from the command line. When trying to run your application from the command line, I get the following output:
flatpak run io.github.diegoivanme.flowtime
/home/patrick/.var/app/io.github.diegoivanme.flowtime/data/statistics.xml:1: parser error : Document is empty
Hopefully this is something that can be easily fixed, I really do enjoy using your application.
Just a bit more information about my system:
OS: Pop!_OS 22.04
Kernel: 5.17.5
DE: Gnome 42
GPU: Nvidia (x11)
If I set the "Time until break" to five minutes, then try taking a break after that time, the app does not respond and instead keeps me in the working mode.
Thanks for rolling out the Statistics feature I requested. One aspect that was lost in translation is the detailed view. Rather than adding all of the work time up for each day, I would like a list of each work session. This allows me to both keep track of what I've done (eg: last work session I was designing a wireframe. I see here that I spent 25 minutes on it) and notice patterns (eg: I see I worked 3 fifteen minute sessions in the morning, but worked for an hour straight in the afternoon).
Currently when prematurely stopping a break (e.g. 5 min spent, 15 min left), the whole time of the break (5 + 15 = 20 min) gets counted in the break time statistics.
In my opinion, this should probably be changed to only include actually spent time in break.
The window is draggable only from the headerbar. But since there isn't any border on the bottom of the headerbar, it's hard to figure out.
For example Amberol or Kooha supports it.
Sometimes I forget to switch to work stage and notice after half hour. Would be great to have a (very simple) option to manually add work time for the current day, like a "+"-Button on the work stage page or something. When you're at it, the opposite might be useful as well, i.e, you forgot to switch to break but are busy with lunch for 20 min already. In such case you could press "-", remove some time and switch the stage. So far I've compensated for these cases "manually" by starting the work stage later than when I really started to work again.
Currently it just divides by five, which is a little bit too less for me
I would like to be able to have a custom "formula" to caluclate the break time
If that's too complicated to implement, I would just accept a different number other than 5.
This is a feature, improvements request. Application icon looks inconsistent, all other application have one instance of something, and this beautiful app have two of them. Two sand watches I mean.
While dividing works well for controlling how much break you get per work, it currently lacks a lot of granularity.
Current values allow for: 50%, 33%, 25%, 20%, 17%, 14%, 12.5%, 11%, 10%
Say I wanted something like 40%, or a 3 divisor felt too long but 4 too short?
I therefore propose that you allow users to enter any decimal value in the text field, but keep the (+) and (-) buttons so it is user friendly
If I enable autostart and then close the app, the changed setting isn't restored at re-opening
Before I describe my problem, let me to tell, that this is a very good app, I like it very! Thank you! :)
So, looks like the "Autostart" behavior changed since the last update and I'm not sure that the new behavior the expected or it is just a bug.
Before:
After:
Again, I'm not sure what the expected behavior here, but I think, the 'Before' behavior is better. The "Autostart" checkbox doesn't mention that the stage will change automatically, just to the timer will start automatically. Actually a little annoying to start the work stage automatically - the timer maybe start earlier than the user actually get beck to the laptop. But very convenient that the counter start when I change switch work stage (or switch to the break stage).
Flowtime version: 3.0
Website and Report an issue buttons from 'about' menu don't work.
Nothing happens on click.
Flatpak version, Fedora 39.
Would it be possible to notice when the system is about to shutdown? My impression is that if I work for a while and suddenly decide to leave (i.e., shutdown my system), the work time is not saved. I got used to switch to break for no reason from time to time to not lose the work time I've spent but that seems wrong. A kind of "auto save" functionality might do as well.
@Diego-Ivan Could you assist me in adding Hindi translation to this project. I don't have knowledge to open merge request.
I have uploaded it as a zip file here.
Will really appreciate your help.
The statistics page has currently a nice display, yet it has caused many troubles with the circles as they are made with CSS. It may also be problematic in regards of accessibility.
The layout should be reconsidered
The title explains the issue. I'm using fedora Workstation 38 and the app crashes when I click the next button at 00:00.
I have the flatpak of the app.
In the GNOME problem reporting app I see:
reason: flowtime killed by SIGSEGV
Since AdwSqueezer will be deprecated in the next major release of Libadwaita, we have to migrate to the new AdwBreakpoint API, which does not seem very complicated and I think it will simplify how the current implementation works.
libportal
allows flowtime
to talk to xdg-desktop-portals
, providing integration into the host system when running as a container.
Installed natively, libportal is not needed to access host resources. It seems therefore useful to add an compile time option whether the artefact is containerised.
Thank you
The current ColorProvider implementation is obsolete, as Gtk.StyleContext has been deprecated in Gtk 4.10. We have to look for an alternative implementation
I'm really enjoying Flowtime. One feature that would help me is being able to refer back to a log of my work and break times.
One reason is because I track my time for work, so having a log to refer back to would make this easier than remembering to enter my time after every work period.
The other reason is so I can observe any behaviors that would be helpful to know. For example, see if there is a particular type of day I work for longer periods of time.
I work across two machines primarily and would really like to sync my Flowtime data. I believe that Flowtime stores its data in $HOME/.var/app/io.git...flowtime/data/statistics.xml
and wanted to know if you think there would be any issue syncing this file across machines with something like Resilio or Syncthing?
Would this work as long as I don't have a timer running on both machines simultaneously? I guess it depends on when Flowtime reads/writes to this file. Could you provide some insight into whether this would work?
Thank you for the great app by the way, it introduced me to Flowtime when I came across your app searching for a Pomodoro app. I hadn't heard of Flowtime before but it seems to alleviate many of the issues I had with Pomodoros.
Latest git code ('main' branch):
gstreamer-player-1.0.vapi:250.3-250.32: warning: Instance methods are not supported in error domains yet
250 | public unowned string get_name ();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/Application.vala:88.29-88.43: error: The name `AboutWindow' does not exist in the context of `Adw' (libadwaita-1)
88 | var about = new Adw.AboutWindow () {
| ^~~~~~~~~~~~~~~
Compilation failed: 1 error(s), 1 warning(s)
ninja: build stopped: subcommand failed
libadwaita 1.1.0 installed (Ubuntu 22.04)
I really like the simple and clean design of the app… however it would be great, if it could be a little bit more self exploratory.
What happens when pressing the play button?
What happens when pressing the fast forward button?
Maybe a mouse over could help?
Or sth in the header?
Flowtime has never had a proper symbolic icon, despite my numerous and failed attempts to create one. It is needed for the app's own identity, but I'm not able to come up with something nice. Any contributions are welcomed!
When changed in the Preferences window, the break time percentage isn't saved once the Preferences are closed.
Edit: it happens only when going under 20%, above 20 the percentage is taken in account
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.