Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/madmurphy/nautilus-annotations

Annotate files and directories
https://github.com/madmurphy/nautilus-annotations

annotations c desktop desktop-environment file-manager file-metadata gio gnome gnu gnu-linux gtk gtksourceview gvfs gvfs-metadata markdown metadata nautilus nautilus-extension notes

Last synced: 1 day ago
JSON representation

Annotate files and directories

Awesome Lists containing this project

README

        

Nautilus Annotations
====================

Annotate files and directories

Details
-------

Long time ago **GNOME Files** (**Nautilus**) had the ability to handle custom
annotations attached to files and directories. This ability has slowly gone
lost in the folds of time. Things however are rarely really unlearned, and an
ability rarely goes away for good.

**Nautilus Annotations** brings back **Nautilus**' annotation capabilities. It
exploits the same machinery that was used back then: that of relying on **GIO**
to store custom information about a file or a directory.

Each annotation is stored as a `metadata::annotation` entry in **GIO**'s
database. An “Annotations” column containing a short preview of what has been
annotated is made available to Nautilus. Annotated files are shown in the
viewport with an emblem attached.

To erase an annotation it is sufficient to leave the content blank, and the
extension will take care of erasing the database entry.

The dialog window for editing the annotations is very minimal, albeit polished
and with Markdown highlighting enabled.

Thanks to **GIO**, when a file is moved or renamed its annotations remain
synchronized with the new path.

Annotations are “per user”. This means that although Alice has the right to
annotate Bob's files, only Alice will have access to her own annotations.

Annotation emblems are displayed by the extension and will not be shown once
the extension is uninstalled (the `metadata::emblems` database entry for the
file is left untouched). The content of the annotations instead is managed by
**GIO** and will survive uninstalling the extension.

With version 2.0.0 an emblem picker has been added to the annotations window.
Differently than the text annotation emblem, this _will_ change the
`metadata::emblems` database entry for the file and the emblems set in this way
will survive uninstalling the extension.

Emblems and annotations are stored in `~/.local/share/gvfs-metadata`. It is
possible to access annotations via command line by launching:

``` sh
gio info -a metadata::annotation /path/to/file
```

To set an annotation via command line launch:

``` sh
gio set /path/to/file metadata::annotation 'Content of annotation goes here'
```

To unset an annotation via command line launch:

``` sh
gio set -t unset /path/to/file metadata::annotation
```

To set the group of emblems via command line launch:

``` sh
gio set -t stringv /path/to/file metadata::emblems emblem-one emblem-two \
emblem-three ... emblem-nth
```

To unset all emblems via command line launch:

``` sh
gio set -t unset /path/to/file metadata::emblems
```

Get involved
------------

The package needs help with internationalization. If a translation into your
language is missing and you wish to get involved, here is what to do.

Let's say you want to create a Dutch translation of **Nautilus Annotations**
(`nl`). First thing to do is to make sure that **GNU Autotools** and **GNU
gettext** are installed on your system. Then clone this repository and launch
the following commands:

``` sh
./bootstrap
make -C po nautilus-annotations.pot
(cd po && msginit -l nl)
./bootstrap --clean
```

Now edit the `po/LINGUAS` file and add a new line containing the abbreviated
name of the new language (`nl`).

Finally, open the `po/nl.po` file and translate the strings present. All you
have to do now is to commit your changes.

For any issue, [drop a message][1].

Installation
------------

On most Unix-like systems, you should be able to install this package using the
following common steps:

``` sh
./configure
make
make install-strip
```

If the `strip` utility is not available on your machine, use `make install`
instead (it will produce larger binaries).

If the `configure` script is missing from your package you need to generate it
by running the `bootstrap` script. By default, `bootstrap` will also run the
`configure` script immediately after having generated it, so you may type the
`make` command directly after `bootstrap`. To list different options use
`./bootstrap --help`.

For further information, see [INSTALL][2].

NExtGen
-------

This extension has been created using [NExtGen][3] Nautilus extension
generator.

Free software
-------------

**Nautilus Annotations** is free software. You can redistribute it and/or
modify it under the terms of the GPL license version 3 or any later version.
See [COPYING][4] for details.

[1]: https://gitlab.gnome.org/madmurphy/nautilus-annotations/issues
[2]: INSTALL
[3]: https://gitlab.gnome.org/madmurphy/nextgen
[4]: COPYING