-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Indicate Timer is Running #11
Comments
Yeah, I've been thinking that a mode line indicator would be nice, but it's difficult to provide much useful information without taking up too much space. Around here even the short project ids are too long for my taste for the mode line. Showing the tracked time for the currently running timer would be nice, especially when working on some timeboxed issue. Could show the project, task and description in the tooltip when mousing over. But I haven't gotten round to figuring out how to do this. I'm using doom-modeline myself, so I'd have to start doing it for vanilla emacs before figuring out how to get it in doom-modeline too. In the project list? It should indicate the current timer with a |
I do not see this. |
Now that's interesting. I've had an intermittent bug where I would loose the indicator, and pressing |
OK, just noticed that if I refresh the buffer ( |
Funny you mention that! I've just recently added Which looks like: There will be a cleaner way to "force update" the timer statuses, as well as scope to customize the format. I can attempt to come up with a more PR-able implementation "at some point soon" ™️? |
@elken that would be awesome... I'm using doom-mode-line myself and must admit that I'm pretty fuzzy on the whole mode-line configuration thing, both in doom-mode-line and vanilla emacs. |
Everyone has blind spots :D Regular emacs is basically just a string that you append things to, I'll see what I can do in the near future :D |
@elken Definitely something like that I had in mind, but isn't using async, which I gather starts an entirely new Emacs process, a bit heavy-handed? I guess the I guess we could make the requests to harvest asynchronous by starting a process running curl, but it would require some refactoring. Don't know if you've noticed, but I've made a few changes the last couple of week, don't think anything directly impacts your work though, apart from |
Not so much, it's a very minute impact and has the advantage of not blocking while ensuring that it's constantly up-to-date.
My previous implementation wouldn't properly handle the harvest timer changing outside of emacs, and every minute it would freeze emacs. Not good.
Using
I have not! I'll skim through the commits when I have some time
You mean duration? Yes, I was surprised to see it wasn't included 😛 |
But how many users is changing the timers outside of Emacs? The point of reaper is to avoid having to change out of Emacs to deal with timetracking, so I kind of expect users to use it exclusively. I guess the freeze was because you called |
Originally I had advice around |
Think our Harvest use is different. I find the initial pull and the built-in pull in start/stop/etc. quite sufficient most days. I might do a manual pull when I know I've started a timer while away from the computer, but I don't mind that. As I leave Emacs running for days, I'd rather avoid having it make network requests in the background when no timer is running. It might not be considered much by today's standards, but I like showing a bit of restraint with resources. Would be nice to run all network requests async, but getting the entries would be a good start (fetching projects and tasks have to be synchronous as it's invoked by functions that need them now). But there seem to be no need for curl, as we have Ah, to few hours in a day.... |
Slightly I think, most of my start/stops come from JIRA tickets until I sort my org-jira <=> reaper workflow out so for now it's just a modeline component and a useful reminder in my editor :P I will try and make a solution that satisfies everyone though, rather than a separate package. |
So you're tracking on Jira issues too. Do I remember correctly that the integration basically just preselects a project and add the issue ID to the notes? We're doing it a bit differently. Developers just copy the issue ID to the notes, and we have a tool that runs through everybody's entries that creates mirror worklog entries in Jira, and adds the issue title to the Harvest entry (to make Harvest reports more readable).
OK, a couple of pointers: Rather than eval'ing from the modeline, create a I'll look into fetching timeentries asynchronously. For starters it'll be handy being able open the reaper buffer and swap to another window while fetching entries. And you should be able to start your own timer that just calls |
@elken I've implemented async fetching of time entries in https://github.com/xendk/reaper/tree/async . Give it a spin. Fetching project/tasks async will require a bit more, as it still need to be synchronous when triggered from |
Basically, there's some more fields I have to send through the API but it's basically the same.
Nice! I'll have a look when I can. |
(time makes fools of us all) I've finally gotten around to refactoring my work emacs setup a bit to use the recently merged async stuff. Will try and pop back in a day or so to update on the performance of it :D EDIT: Config link |
It would be nice to have an something in the mode line to indicate the timer is running.
At least would be nice to indicate this in the project lest via an asterisk or something.
The text was updated successfully, but these errors were encountered: