Skip to content
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

Tested on Manjaro + looking for something similar to ManicTime #93

Closed
ghost opened this issue Aug 13, 2017 · 7 comments
Closed

Tested on Manjaro + looking for something similar to ManicTime #93

ghost opened this issue Aug 13, 2017 · 7 comments

Comments

@ghost
Copy link

ghost commented Aug 13, 2017

Hi there,

I just tested this on Manjaro linux and thought I should provide some feedback about my experience for you.

This looks like a pretty nice and promising project. Thanks for all your hard work! I am looking forward to what happens with it in the future.

I was going through every software I could find all over the internet trying to find something to replace ManicTime. Particularly something simliar to how it has a timeline where you can tag and auto tag time while also being able to store the data on my computer or at a server. Preferrably it would also be compatible with both Linux and Windows and potentially even be able to share a database between them since I dual boot and tend to switch between them. I've gone through dozens of them and nothing really works as simply and perfectly as ManicTIme does. So I'm having very little luck in doing all this and was starting to think I'd have to make my own which I had dabbled in a bit at one point but never got anywhere. I don't know if it's on the roadmap for ActivityWatch to do quite what I want but hopefully if not I can at least help modify it to do so.

I managed to get ActivityWatch running ok using node v6.11.2. I had tried 8.x which was the default for Manjaro but it seemed to not quite work and I noticed in the docs it said to use 5 to 7 so the LTS version seemed like a good plan. I had to install nvm from the AUR repos and install and use v6.11.2 and once I restarted from scratch with my virtualenv almost everything seemed to build correctly.

However I am having a couple issues. There seems to be a missing CSS file and maybe that's responsible for the Activity menu not dropping down. The missing file is http://localhost:5600/bootstrap.css.map

I suspect this is related to this error in the build:

npm WARN bootstrap@4.0.0-beta requires a peer of popper.js@^1.11.0 but none was installed.

I also had a similar looking warning:

npm WARN prefer global node-gyp@3.6.2 should be installed with -g

As well as these:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

I don't usually use node so I'm not really too sure how to fix all of those yet.

I did look at the activity page though and the timeline looks similar to what ManicTime does. Although I think it still would have to have the ability to tag and auto tag time. I'd love to just make a simple page which does a very similar behaviour as ManicTime and allows you to create auto tags and then create reports and maybe some day I will be able to do that.

Anyway, I guess that's about all I have for now. Thank you!

@johan-bjareholt
Copy link
Member

Awesome that you like the project, always fun to hear people having use for it and are interested!

The optional dependencies are as they should, but we certainly need to fix the popper.js. What to do about node-gyp though I'm not sure.

Regarding the missing css file, I think someone encountered this before but i don't remember the github issue on it. @ErikBjare do you know?

I am using node 8 on Arch Linux and it works fine, however @ErikBjare has had issues with node 8 so there might be something strange going on. Feel free to test it with node 8 and report the issues in the ActivityWatch/aw-webui repository if you do.

Preferrably it would also be compatible with both Linux and Windows and potentially even be able to share a database between them since I dual boot and tend to switch between them.

I have tried running aw-server on a raspberry pi and set my activity clients config to use that aw-server as the destination by changing the ip from localhost to my raspberry pis hostname. It works, but we currently do not officially support it yet, but we have thought about it. If you do that you will see a second host in the "Activity" dropdown in the webui.

So it doesn't merge the reports, only show each one for each computer or OS individually. If you have the same hostname on both your windows partition and linux partition it might merge automatically since it reports to the same bucket, but I don't recommend it due to the aw-clients have a queue in case you lose connection to the server and that could make events come in the wrong order and mess stuff up. But as long as you always have a stable connection to the computer you are running aw-server on, I don't see why it shouldn't work. Feel free to try it out if you want.

@ErikBjare
Copy link
Member

ErikBjare commented Aug 15, 2017

Regarding the missing css file, I think someone encountered this before but i don't remember the github issue on it. @ErikBjare do you know?

@Powersource mentioned it in passing here: ActivityWatch/aw-webui#38

I am using node 8 on Arch Linux and it works fine, however @ErikBjare has had issues with node 8 so there might be something strange going on.

I have no idea how you got it working with Node 8. I'm not the only one who it's not working for. It doesn't work on Travis and it didn't work for @Powersource.

What to do about node-gyp though I'm not sure.

  • node-gyp shouldn't be in package.json

Although I think it still would have to have the ability to tag and auto tag time. I'd love to just make a simple page which does a very similar behaviour as ManicTime and allows you to create auto tags and then create reports and maybe some day I will be able to do that.

I'm very interested in this, something similar was available for RescueTime and it's used to auto-classify time as "very productive", "productive", "neutral", "distracting", "very distracting". But RescueTime does it in a specific way: they have fixed set of categories which you can assign activities to, the categories in turn have productivity scores.

I'd prefer a tag-based system as you seem to indicate ManicTime has (I'm not familiar with it unfortunately) and from there classify which tasks are productive and which are not. If you want to try and build this, let me know.

A basic implementation of this would be pretty easy, we'd just filter away all AFK time, run a pattern matcher through all the window titles/apps and then return the tagged events.

The core idea of tagging is also central to an application of the ActivityWatch data that I have. See: https://github.com/ActivityWatch/thankful

Preferrably it would also be compatible with both Linux and Windows and potentially even be able to share a database between them since I dual boot and tend to switch between them.

Eventually we will solve this. The current plan is to integrate Syncthing support.

@ErikBjare ErikBjare changed the title Tested on Manjaro - feedback Tested on Manjaro + looking for something similar to ManicTime Aug 15, 2017
@ghost
Copy link
Author

ghost commented Aug 15, 2017

Thank you very much for the detailed responses!

The way ManicTime works is that it has a visual timeline where you can see everything throughout the day including the AFK time, since you may want to tag that as well, and the time spent on each window.

It has a few separate time lines where you can see the different details. When you click and drag you can select time and then tag it. It will also snap to the nearest start or end point of the activity you're hovering over if you get close to the end points. You can also double click one of the entries to select the entire thing and you can ctrl+click to select separate sections not attached to each other. You can then adjust your selections if necessary or deselect some.

You can enter whatever tags you like to the selected times and add notes to them as well. The way I used it is I would tag the client and enter a short description in notes about what I did and then when I went to bill clients I could create a report organized by tags and include the notes and exported to my clip board so that it gives me lines I can directly copy and paste into an invoice. Of course it would be nice if I could also integrate directly into an invoicing service but I think that's a whole other story.

You can also right click on the entries to create an auto tag based on it which includes things like the window title or url, etc. It makes it extremely effective and easy to use. I've used it for so many years and in fact it became the only reason I used windows for a time. I always seem to forget to start or stop timers like Project Hamster and it's pointless for me to try and use them. I also don't want to use a service which keeps all my data on their website. I really like the idea of Syncthing! I never heard of it before but sounds pretty sweet.

They appear to be developing a linux client, finally, but it's a deb file and I haven't tried making it work on Manjaro which is an Arch Linux based distribution that doesn't use deb files. I don't know how well it would work but it doesn't look very far along yet in comparison to the windows version.

They have a video on their site and they also have a free version you could check out but it's missing auto tagging and a couple other useful things.

https://youtu.be/OlfknjggACQ

I don't know when I will have time to do anything for it since I'm working on some other projects in dire need of updates. It seems like it wouldn't be too hard though since there's already a very similar timeline with the activities on it. I think it just had to have a drag to select feature and tags and auto tags and some other things eventually. But I do know that if nobody does it ever then I don't have much of a choice since I can't find anything like it and nothing does what I want. I've tried dozens of different things now.

I found this yesterday as well which might be of interest: https://gist.github.com/dufferzafar/1b5861c8c67be4cfc685726686836ca5

@ErikBjare
Copy link
Member

ErikBjare commented Aug 15, 2017

Alright, that video clarifies it. Looks pretty nice, I'm convinced.

It seems like it wouldn't be too hard though since there's already a very similar timeline with the activities on it. I think it just had to have a drag to select feature and tags and auto tags and some other things eventually.

You're right, it shouln't be that much work to get the core feature done (it's likely a lot more work to get it perfect however). So in ActivityWatch-terms this would be implemented by creating a user-annotation/tag bucket which would then be editable from the web UI as described and shown in the video. I'd be very interested in implementing something like this, but it might take a while since we have a bunch of other stuff on our todo-list with higher priority. But you definitely piqued my interest.

Syncthing is amazing, you should probably start using it. It's a pretty new idea to distribute application data between computers with it though, but the founder didn't see any reason why we couldn't.

@ErikBjare
Copy link
Member

Created an issue for the feature, feel free to add further details there: #95

@ErikBjare
Copy link
Member

By the way @TY2U, I found the reason for why the Activity dropdown didn't work as well as the cause for "npm WARN bootstrap@4.0.0-beta requires a peer of popper.js@^1.11.0 but none was installed".

Fixed in ActivityWatch/aw-webui#41

@ErikBjare
Copy link
Member

Closing this due to inactivity, please continue discussion related to tagging in #95.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants