If you use ranger, the console-based file manager, you can benefit of its plugin system to get it easily entangled with git-annex. As far as I know, there 2 main types of extensions:
:ga_whereisfor outputting whereis information;
:ga_tagfor metadata changing;
:ga_dropfor quick fetching from remotes and dropping them from local (really useful).
The small string of information that shows on each file line, aligned to the right, is called a
infostring. Linemodes in ranger lets you change between its default linemodes or add your own custom linemodes. I have written two git-annex linemodes:
- git-annex-metadata, which shows tags and metadata fields from git-annex; and
- git-annex-whereis, which shows the name of the repositories where each file is (except the current repository, as that should be clear from the ranger colours).
To switch linemodes, just type
:linemode git-annex-whereis or
You can also set
default_linemode path=/your/annex/path/.* git-annex-whereis, for example, to have that linemode automatically set whenever you browse your git-annex folder on ranger.
Beware of folders with too many files, as this will read output from git-annex for all the files, so ranger can freeze for some seconds.
As I didn't have any better place to put the code, eveything here is referenced in my dotfiles repository on GitHub. Just copy the two referenced files to your
~/.config/ranger/plugins/ folder and
~/.config/ranger/commands.py file to get this working.
Much other interesting commands and plugins can still be added. Modify this page if you come up with other ideas.