I just released a new app (in beta) for macOS called git-annex-turtle. It provides badges in finder, context menus and very limited status updates via a menubar icon. Requires macOS 10.12 or later.
Badges indicate whether files are present or not, how many copies they have and if they are lacking copies. Context menus (currently very limited) allow for add/get/drop/lock and unlock. A menubar icon gives (currently very limited) feedback on current operations.
The is definitely a preview beta release so there are bound to be bugs. Please report any feature requests or bugs with github issues, by emailing me directly at public@andrewringler.com or posting comments to this thread.
Thanks!
Andrew
Thanks very much for building this. It looks great.
I especially appreciated the notes in DESIGN.md about how it uses git-annex interfaces and what is fast/too slow. Please do file todo requests if there are interface improvements that git-annex can offer to query for the data you need.
I suppose it does not make sense to integrate the code into git-annex, as is done for the much simpler Nautilus and Konqueror file manager integration. git-annex-turtle is something like 33M large with all the assets, and has a significant quantity of source code that I would only get in the way of maintaining.
And it looks like it's easy enough to install it from the zip file. But I do wonder if it would make sense for the git-annex.app to bundle git-annex-turtle, so users don't need that extra step. What do you think?
Thanks for the positive feedback!
Will do. I think I have most of the queries I need right now. I really wanted to show nice, meaningful icons for folders; I ended up showing some measure of the number of copies of all files contained within folders. This is something I decided to cache in a database since, to my knowledge, neither git nor git-annex tracks folders directly. I don't think it would make sense to cache folder level queries in git-annex anytime soon?
Great! Yes, that sounds like an excellent idea! Yes, as you mentioned git-annex-turtle.app is ~30mb with all the icon assets. I believe this is because the icons are uncompressed PDFs exported from Adobe Illustrator, oops. I'll see if I can compress them and get the .app size down. Currently, zipping git-annex-turtle.app brings down the size to ~8mb.
Thanks,
—Andrew
wow, that is absolutely gorgeous. i wish we had the same in linux! it would make git-annex so much simpler to use... but i don't know if contrib plugins can add graphic stuff like that in file manager displays in nautilus/etc?
seems like we're clearly lagging behind when I look at the finder... can't believe we still don't have a proper file manager in linux yet... --anarcat
Thanks anarcat!
RabbitVCS provides Nautilus 3 icons for git, that might be a reasonable starting point for enhanced git-annex icons on Linux. Also, nautilus-git is minimal and quite pretty. I don't know what flavor of file manager they were using when they took their screenshots.
I guess what would be helpful is if you can take the current git-annex.app and copy its files to a directory and then add in the git-annex-turtle.app's files in a way that combines them both. I don't currently have an OSX desktop to play with that, but if you can show me the changes that need to be made to the file tree in git-annex.app to merge turtle into it, I can update the build scripts.
Ooops…, I missed this comment.
I am not exactly sure what the best approach will be, but I have some thoughts. Yes, I can make an example of a folder structure I think could work well. I'll try to explain all the positives and negatives of various approaches below.
The standard for application installation on the mac is to deliver a dmg that when double-clicked opens a small Finder window that contains the application (.app bundle), a link to /Applications and a background image with an arrow hinting that users should drag the .app file onto to the /Applications link (which causes Finder to initiate a copy).
Currently, after installing git-annex from the dmg, when you double-click the git-annex.app folder git-annex-webapp is launched.
1) One approach, to bundling git-annex-turtle would be to place git-annex-turtle inside the git-annex.app folder. That would mean, however, users need to ctrl-click then click
Show Package Contents
then browse the file structure until they find git-annex-turtle, then double-click it to launch it. That would be a bit confusing, and not very Mac-y. This could be slightly mitigated by adding an installer for git-annex that asks users if they want to auto-launch git-annex-turtle on login-in, but then we still have the issue of them not being able to re-launch it if they ever quit it. Also, installers are not very popular on the Mac.2) Another approach would be for the dmg file to contain a folder that contains two items git-annex.app and git-annex-turtle.app. Users would then drag the entire folder to their /Applications folder. Then git-annex-webapp would be launchable (from Finder) by double-clicking on /Applications/git-annex/git-annex.app, and git-annex-turtle would be launch-able by double-clicking on /Applications/git-annex/git-annex-turtle.app. The biggest drawback with this approach is that it would change all of the absolute paths to the binaries inside git-annex.app.
For example, I currently have the following line in my bash_profile:
This would need to change to
I think we probably don't want to make all users have to update all their paths to git-annex binaries.
This approach, of having a folder with multiple apps is quite rare. Users, really expect their /Applications folder to only contain .app files with nice icons that they can double-click to launch things. I could only find a handful of examples of apps that are doing this (all cross-platform apps): Blender, Supercollider, Unity, Adobe (sometimes), Autodesk.
3) Another approach would be to just include both the existing git-annex.app and git-annex-turtle.app (as they are) in the git-annex.dmg file. Then I could create a nice background image that suggests users should drag both git-annex.app and git-annex-turtle.app to their /Applications folder. Then users would have /Applications/git-annex.app and /Applications/git-annex-turtle.app installed. The main drawback here is that users need to know to drag both files to their /Applications folder, and they are slightly more likely to not always upgrade them, and there is the potential for them to just drag git-annex-turtle to /Applications and not git-annex, and wonder why one doesn't work. Or uninstall git-annex at some point, and then again, wonder why git-annex-turtle no longer works.
Currently I am leaning towards this last option. But, I think 2) could work as well, although it would be unfortunate to break people's paths.
Andrew