[SOLVED] Is There Any Word on the Catfish File Search Program?

The Catfish program has been inoperative for several days now and I would like to know if there is any progress or information about it.

I should also like to know if there is another program which does the same thing as Catfish. So far, I have been unable to find an equivalent one. I hope that someone here can enlighten me as to a substitute.

Thanks in advance to anyone who has some information.


The fix was merged yesterday by the xfce devs but it hasn’t made it into a release.

There are a couple of simple ways you can work around this:

  1. Downgrade catfish until it is updated
  2. Use the workaround in the Arch bug report which only requires changing one line of a single file

While I suppose you could switch tools I don’t think that makes a lot of sense in this particular circumstance.


Dear dalto,

Thanks for the quick reply. If a fix is coming in the very near future, I’ll be happy to wait.


I am not sure when the fix will make it into Arch because I don’t really follow xfce at all. It will depend on a couple factors:

  • If the Arch maintainer decides to pull the fix in via a patch or wait for a new release from the xfce team
  • If it is the latter, how long the xfce team takes to make a release of catfish
1 Like

Dear dalto,

Thank you. I’ll just have to be patient. The Catfish program is not an essential one for me but it certainly is convenient for the occasions when I wish to use it (it saves a lot of time).

I’ll just wait.


I applied this workaround but it didn’t work around…
Same error remains.

Looks like there is a typo there. The first " should just be ’

"/usr/share/catfish' >> '/usr/share/catfish'

1 Like

I noticed that but it didn’t matter.

I just tested it and it works fine here.

Can you share a copy of the file /usr/lib/python3.9/site-packages/catfish_lib/catfishconfig.py

Works here as well after applying the workaround.

The whole file, Dalto?

#!/usr/bin/env python
# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
#   Catfish - a versatile file searching tool
#   Copyright (C) 2007-2012 Christian Dywan <christian@twotoasts.de>
#   Copyright (C) 2012-2020 Sean Davis <bluesabre@xfce.org>
#   This program is free software: you can redistribute it and/or modify it
#   under the terms of the GNU General Public License version 2, as published
#   by the Free Software Foundation.
#   This program is distributed in the hope that it will be useful, but
#   WITHOUT ANY WARRANTY; without even the implied warranties of
#   PURPOSE.  See the GNU General Public License for more details.
#   You should have received a copy of the GNU General Public License along
#   with this program.  If not, see <https://www.gnu.org/licenses/>.

import os

__all__ = [

# Where your project will look for your data (for instance, images and ui
# files). By default, this is ../data, relative your trunk layout
__catfish_data_directory__ = '/usr/share/catfish'
# Location of locate.db file
__locate_db_path__ = '/var/lib/mlocate/mlocate.db'
__license__ = 'GPL-2+'
__version__ = '4.16.1'
__url__ = 'https://docs.xfce.org/apps/catfish/start'

class project_path_not_found(Exception):

    """Raised when we can't find the project directory."""

def get_data_file(*path_segments):
    """Get the full path to a data file.

    Returns the path to a file underneath the data directory (as defined by
    `get_data_path`). Equivalent to os.path.join(get_data_path(),
    return os.path.join(get_data_path(), *path_segments)

def get_data_path():
    """Retrieve catfish data path

    This path is by default <catfish_lib_path>/../data/ in trunk
    and /usr/share/catfish in an installed version but this path
    is specified at installation time.

    # Get pathname absolute or relative.
    path = os.path.join(
        os.path.dirname(__file__), __catfish_data_directory__)

    abs_data_path = os.path.abspath(path)
    if not os.path.exists(abs_data_path):
        raise project_path_not_found

    return abs_data_path

def get_locate_db_path():
    """Return the location of the locate.db file
    return __locate_db_path__

def get_version():
    """Return the program version number."""
    return __version__

def get_about():
    from locale import gettext as _

    return {
        'version': __version__,
        'program_name': _('Catfish File Search'),
        'icon_name': 'org.xfce.catfish',
        'website': __url__,
        'comments': _('Catfish is a versatile file searching tool.'),
        'copyright': 'Copyright (C) 2007-2012 Christian Dywan <christian@twotoasts.de>\n'
                     'Copyright (C) 2012-2020 Sean Davis <bluesabre@xfce.org>',
        'authors': [
            'Christian Dywan <christian@twotoasts.de>',
            'Sean Davis <bluesabre@xfce.org>'],
        'artists': ['Nancy Runge <nancy@twotoasts.de>']}

Wait, I am able to start it from a terminal, but not with its starter.

Check the Exec line of its .desktop file. Mine was oddly set to:
Exec=/build/catfish/pkg/catfish/usr/bin/catfish %f
I changed it to
Exec=catfish %f
and the launcher started to work.


I had to change it to catfisf %f to make it start.

As of today, August 10, 2021, Catfish has been upgraded to version 4.16.2-1 and the program is now working perfectly again.