Skip to content
Aleksey Lobanov edited this page May 23, 2022 · 34 revisions

General

What does TMSU stand for?

It stands for Tag My Shit Up.

How is TMSU pronounced?

It's somewhere between tiramisu and a sudden and unexpected sneeze.

How can I report a bug or make a suggestion?

Either log it in the issue tracker or email the mailing-list ml@tmsu.org.

What similar programs are there?

You should also look at:

Functionality

Why does TMSU not automatically detect file moves and renames?

To automatically detect files moved, renamed or changed would require a daemon process watching the file system for changes and support from the file system for these events. As some file systems cannot provide these events (e.g. remote file systems), a universal solution cannot be offered. Such a function may be added later for those file systems that do provide the necessary events, but adding support for this to TMSU is not a priority at this time.

The current solution is to run the repair command periodically or after changes to the repo. This will update fingerprints for modified files and may print a list of files that are missing due to having been moved/renamed. You need to supply a path to the repair command to find missing files by their fingerprint and fix them.

The limitation of this feature is that files that are both moved/renamed and modified cannot be detected, because they can not be found by their old fingerprint anymore. Running repair between changing and moving/renaming (or vice versa) would avoid this problem.

How do I exclude tags when listing files?

TMSU supports a simple query language consisting of the operators and, or and not. To exclude tags, simply prefix them with not:

For example, pull out your audio books:

$ tmsu files mp3 and not music

The and operator is implied if you omit it:

$ tmsu files mp3 not music

Excluding multiple tags is easiest with parentheses and the or operator:

$ tmsu files mp3 not rock not big-jazz not pop
$ tmsu files mp3 not (rock or big-jazz or pop)

Compatibility

Does TMSU work on GNU/Linux?

Yes. (It was developed on Arch Linux.)

Does TMSU work on BSD?

One of TMSU's dependencies, the go bindings for FUSE (http://github.com/hanwen/go-fuse) cannot be compiled on FreeBSD. See https://github.com/hanwen/go-fuse/issues/85 for more information.

Is TMSU available for Windows?

It now compiles for Windows but it's a little fiddly to do so. Plus there is no virtual filesystem support just yet.

Is a package available for my GNU/Linux distribution's package manager?

At this time probably not. Help with creating these would be very much appreciated.

  • Arch Linux package is available in the AUR.
  • Ubuntu stable and daily PPAs are available for Ubuntu 16.04.1+.
  • Gentoo emerge sys-fs/tmsu.
  • GNU Guix guix install tmsu

Is completion available for my shell?

If your shell is Zsh then yes, completion is in the misc directory of the source tree and binary distributable.

Interface

Does TMSU have a GUI?

No. Maybe one day, or else integration with popular file/media browsers could be provided.

(2016-09) There has been some effort integrating TMSU as a Nautilus extension.

Database

Where is the database stored?

Whenever you run tmsu init, a database file is created at .tmsu/db under the current working directory and will be used whenever you're at or beneath that path. For example, if you run init in your home directory, then you will get a database at $HOME/.tmsu/db and any files you tag in your home directory (or sub-directories) will go into this database.

To find out which database you are currently using, run tmsu info. This will show you the current database (if one can be found), amongst other details.

Note: Prior to v0.7.0, TMSU would create a default database at ~/.tmsu/default.db when you first use it.

How does TMSU find the database

Whenever you run TMSU, it will look for a database at .tmsu/db under the current working directory. If none can be found, TMSU will look for .tmsu/db in each parent directory in turn, up to and including the root directory.

If a database is not found in the current or a parent directory, TMSU will then look for the default database created by earlier (<v0.7.0) versions of TMSU at ~/.tmsu/default.db.

Can I specify the database explicitly?

Yes. See [Switching Databases](Switching Databases).

What format is the database?

The database is a SQLite3 database and can be read with the regular SQLite tooling.

$ sqlite3 ~/.tmsu/db
...
sqlite> .schema
...
sqlite> select * from file;
...
sqlite> .q

How do I export my data?

The database is a standard Sqlite3 database. There are several tools available that can read the database and which can export the rows as CSV, SQL, &c.

To dump to SQL text, you can use the Sqlite3 tooling:

$ sqlite3 ~/.tmsu/db .dump >dump.sql