From f1964dcd3f55ae2fc0bd78521e6699528f876e54 Mon Sep 17 00:00:00 2001 From: Ed Lee Date: Fri, 26 Dec 2025 18:27:54 +0000 Subject: [PATCH 1/5] New extension for thumbnailing and showing details of .fits files --- nemo-fits/README-FITS.md.pdf | Bin 0 -> 58085 bytes nemo-fits/debian/changelog | 10 + nemo-fits/debian/control | 35 ++++ nemo-fits/debian/install | 3 + nemo-fits/debian/rules | 4 + nemo-fits/fits-thumbnailer.c | 174 ++++++++++++++++ nemo-fits/fits.thumbnailer | 4 + nemo-fits/meson.build | 73 +++++++ nemo-fits/nemo-fits-extension.c | 341 ++++++++++++++++++++++++++++++++ nemo-fits/nemo-fits-extension.h | 43 ++++ nemo-fits/po/POTFILES | 1 + nemo-fits/po/meson.build | 6 + 12 files changed, 694 insertions(+) create mode 100644 nemo-fits/README-FITS.md.pdf create mode 100644 nemo-fits/debian/changelog create mode 100644 nemo-fits/debian/control create mode 100644 nemo-fits/debian/install create mode 100755 nemo-fits/debian/rules create mode 100644 nemo-fits/fits-thumbnailer.c create mode 100644 nemo-fits/fits.thumbnailer create mode 100644 nemo-fits/meson.build create mode 100644 nemo-fits/nemo-fits-extension.c create mode 100644 nemo-fits/nemo-fits-extension.h create mode 100644 nemo-fits/po/POTFILES create mode 100644 nemo-fits/po/meson.build diff --git a/nemo-fits/README-FITS.md.pdf b/nemo-fits/README-FITS.md.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7b164c5d4b1df9090eed1ac38f4fe4d3f35aef85 GIT binary patch literal 58085 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 z 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 QP0dX$4Y^cRUH#p-0J61T@c;k- literal 0 HcmV?d00001 diff --git a/nemo-fits/debian/changelog b/nemo-fits/debian/changelog new file mode 100644 index 00000000..047fc821 --- /dev/null +++ b/nemo-fits/debian/changelog @@ -0,0 +1,10 @@ +nemo-fits-extension (6.4.0-1) wilma; urgency=medium + + * Initial release + * View FITS image metadata in properties tab + * Support for standard FITS keywords + * Display image dimensions, data type, observation details + * Display telescope, instrument, and coordinate information + * Written in C using CFITSIO library for robust FITS support + + -- Linux Mint Tue, 24 Dec 2024 12:00:00 +0000 diff --git a/nemo-fits/debian/control b/nemo-fits/debian/control new file mode 100644 index 00000000..c3dafd76 --- /dev/null +++ b/nemo-fits/debian/control @@ -0,0 +1,35 @@ +Source: nemo-fits-extension +Section: gnome +Priority: optional +Maintainer: Linux Mint +Build-Depends: debhelper-compat (= 13), + meson (>= 0.56.0), + libglib2.0-dev (>= 2.50.0), + libgtk-3-dev (>= 3.22.0), + libnemo-extension-dev (>= 3.0.0), + libcfitsio-dev (>= 3.0), + gettext, + intltool +Standards-Version: 4.6.0 +Homepage: https://github.com/linuxmint/nemo-extensions + +Package: nemo-fits-extension +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + nemo (>= 3.0.0), + libcfitsio9 | libcfitsio10 +Description: Nemo extension for FITS files + nemo-fits-extension is a Nemo extension that provides an "Image" tab + in the file properties dialog for FITS (Flexible Image Transport + System) files commonly used in astronomy. + . + The extension displays metadata from FITS headers including: + - Image dimensions and data type + - Object name and observation details + - Telescope and instrument information + - Date of observation and exposure time + - Filter and coordinate system information + . + FITS is the standard astronomical data format endorsed by NASA + and the International Astronomical Union. diff --git a/nemo-fits/debian/install b/nemo-fits/debian/install new file mode 100644 index 00000000..aff5c53b --- /dev/null +++ b/nemo-fits/debian/install @@ -0,0 +1,3 @@ +usr/lib/*/nemo/extensions-3.0/libnemo-fits-extension.so +usr/bin/fits-thumbnailer +usr/share/thumbnailers/fits.thumbnailer diff --git a/nemo-fits/debian/rules b/nemo-fits/debian/rules new file mode 100755 index 00000000..57e9720a --- /dev/null +++ b/nemo-fits/debian/rules @@ -0,0 +1,4 @@ +#!/usr/bin/make -f + +%: + dh $@ --buildsystem=meson diff --git a/nemo-fits/fits-thumbnailer.c b/nemo-fits/fits-thumbnailer.c new file mode 100644 index 00000000..616d6230 --- /dev/null +++ b/nemo-fits/fits-thumbnailer.c @@ -0,0 +1,174 @@ +/* + * fits-thumbnailer.c + * + * Copyright (C) 2024 Linux Mint + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include + +#define MAX_SIZE 256 + +static gboolean +create_thumbnail (const char *input, const char *output, int size) +{ + fitsfile *fptr = NULL; + int status = 0, naxis; + long naxes[10], width, height, npixels; + double *img_data = NULL; + guchar *rgb_data = NULL; + GdkPixbuf *pixbuf = NULL, *scaled = NULL; + GError *error = NULL; + gboolean success = FALSE; + + if (fits_open_file (&fptr, input, READONLY, &status)) + return FALSE; + + if (fits_read_key (fptr, TINT, "NAXIS", &naxis, NULL, &status) || naxis < 2) + goto cleanup; + + for (int i = 1; i <= naxis && i <= 10; i++) { + char key[9]; + g_snprintf (key, sizeof(key), "NAXIS%d", i); + status = 0; + if (fits_read_key (fptr, TLONG, key, &naxes[i-1], NULL, &status)) + goto cleanup; + } + + width = naxes[0]; + height = naxes[1]; + npixels = width * height; + + if (width == 0 || height == 0) + goto cleanup; + + img_data = g_malloc (npixels * sizeof(double)); + if (!img_data) + goto cleanup; + + long fpixel[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; + if (fits_read_pix (fptr, TDOUBLE, fpixel, npixels, NULL, img_data, NULL, &status)) + goto cleanup_data; + + double min_val = INFINITY, max_val = -INFINITY; + for (long i = 0; i < npixels; i++) { + if (isfinite(img_data[i])) { + if (img_data[i] < min_val) min_val = img_data[i]; + if (img_data[i] > max_val) max_val = img_data[i]; + } + } + + rgb_data = g_malloc (npixels * 3); + if (!rgb_data) + goto cleanup_data; + + double range = max_val - min_val; + if (range > 0) { + for (long i = 0; i < npixels; i++) { + guchar val = isfinite(img_data[i]) ? + (guchar)((img_data[i] - min_val) / range * 255.0) : 0; + + long row = i / width; + long col = i % width; + long idx = (height - 1 - row) * width + col; + + rgb_data[idx * 3] = rgb_data[idx * 3 + 1] = rgb_data[idx * 3 + 2] = val; + } + } else { + memset (rgb_data, 128, npixels * 3); + } + + pixbuf = gdk_pixbuf_new_from_data (rgb_data, GDK_COLORSPACE_RGB, FALSE, + 8, width, height, width * 3, + (GdkPixbufDestroyNotify)g_free, NULL); + if (!pixbuf) { + g_free (rgb_data); + goto cleanup_data; + } + + if (width > size || height > size) { + double scale = MIN((double)size / width, (double)size / height); + int new_w = MAX(1, (int)(width * scale)); + int new_h = MAX(1, (int)(height * scale)); + + scaled = gdk_pixbuf_scale_simple (pixbuf, new_w, new_h, GDK_INTERP_BILINEAR); + g_object_unref (pixbuf); + pixbuf = scaled; + } + + success = gdk_pixbuf_save (pixbuf, output, "png", &error, NULL); + if (!success && error) { + g_warning ("Save failed: %s", error->message); + g_error_free (error); + } + + g_object_unref (pixbuf); + +cleanup_data: + g_free (img_data); + +cleanup: + if (fptr) + fits_close_file (fptr, &status); + + return success; +} + +int +main (int argc, char **argv) +{ + int size = MAX_SIZE; + gboolean show_help = FALSE, show_version = FALSE; + + GOptionEntry entries[] = { + { "size", 's', 0, G_OPTION_ARG_INT, &size, "Thumbnail size (default: 256)", "SIZE" }, + { "help", 'h', 0, G_OPTION_ARG_NONE, &show_help, "Show help", NULL }, + { "version", 'v', 0, G_OPTION_ARG_NONE, &show_version, "Show version", NULL }, + { NULL } + }; + + GOptionContext *context = g_option_context_new ("INPUT OUTPUT"); + g_option_context_add_main_entries (context, entries, NULL); + + GError *error = NULL; + if (!g_option_context_parse (context, &argc, &argv, &error)) { + g_printerr ("Option parsing failed: %s\n", error->message); + g_error_free (error); + g_option_context_free (context); + return 1; + } + + g_option_context_free (context); + + if (show_version) { + g_print ("fits-thumbnailer 6.4.0\n"); + return 0; + } + + if (show_help || argc != 3) { + g_print ("Usage: fits-thumbnailer [OPTIONS] INPUT OUTPUT\n" + "Generate thumbnails for FITS image files\n\n" + "Options:\n" + " -s, --size SIZE Thumbnail size in pixels (default: 256)\n" + " -h, --help Show this help\n" + " -v, --version Show version\n"); + return show_help ? 0 : 1; + } + + if (size < 1 || size > 2048) { + g_printerr ("Invalid size: %d (must be 1-2048)\n", size); + return 1; + } + + return create_thumbnail (argv[1], argv[2], size) ? 0 : 1; +} diff --git a/nemo-fits/fits.thumbnailer b/nemo-fits/fits.thumbnailer new file mode 100644 index 00000000..14f7fb81 --- /dev/null +++ b/nemo-fits/fits.thumbnailer @@ -0,0 +1,4 @@ +[Thumbnailer Entry] +TryExec=fits-thumbnailer +Exec=fits-thumbnailer -s %s %i %o +MimeType=image/fits;image/x-fits;application/fits; diff --git a/nemo-fits/meson.build b/nemo-fits/meson.build new file mode 100644 index 00000000..89ef8c82 --- /dev/null +++ b/nemo-fits/meson.build @@ -0,0 +1,73 @@ +project('nemo-fits-extension', 'c', + version: '6.4.0', + license: 'GPL2', + meson_version: '>=0.56.0' +) + +i18n = import('i18n') +gnome = import('gnome') + +# Dependencies +glib_dep = dependency('glib-2.0', version: '>= 2.50.0') +gtk_dep = dependency('gtk+-3.0', version: '>= 3.22.0') +gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0') +nemo_extension_dep = dependency('libnemo-extension', version: '>= 3.0.0') +cfitsio_dep = dependency('cfitsio', version: '>= 3.0') + +# Configuration +conf_data = configuration_data() +conf_data.set_quoted('VERSION', meson.project_version()) +conf_data.set_quoted('GETTEXT_PACKAGE', meson.project_name()) +conf_data.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) + +config_h = configure_file( + output: 'config.h', + configuration: conf_data +) + +# Extension source files +extension_sources = files( + 'nemo-fits-extension.c', +) + +extension_headers = files( + 'nemo-fits-extension.h', +) + +extension_deps = [ + glib_dep, + gtk_dep, + nemo_extension_dep, + cfitsio_dep, +] + +# Include directories +include_dirs = include_directories('.') + +# Build the extension as a shared module +shared_module('nemo-fits-extension', + sources: [extension_sources, extension_headers, config_h], + dependencies: extension_deps, + include_directories: include_dirs, + install: true, + install_dir: join_paths(get_option('libdir'), 'nemo', 'extensions-3.0'), + name_prefix: 'lib', + name_suffix: 'so' +) + +# Build the thumbnailer executable +thumbnailer_sources = files('fits-thumbnailer.c') +executable('fits-thumbnailer', + sources: thumbnailer_sources, + dependencies: [glib_dep, gdk_pixbuf_dep, cfitsio_dep], + install: true, + install_dir: get_option('bindir') +) + +# Install thumbnailer definition +install_data('fits.thumbnailer', + install_dir: join_paths(get_option('datadir'), 'thumbnailers') +) + +# i18n +subdir('po') diff --git a/nemo-fits/nemo-fits-extension.c b/nemo-fits/nemo-fits-extension.c new file mode 100644 index 00000000..41267e10 --- /dev/null +++ b/nemo-fits/nemo-fits-extension.c @@ -0,0 +1,341 @@ +/* + * nemo-fits-extension.c + * + * Copyright (C) 2024 Linux Mint + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include +#include "nemo-fits-extension.h" + +#include +#include +#include +#include +#include +#include +#include + +static GType provider_types[1]; + +struct _NemoFitsExtension { + GObject parent_slot; +}; + +struct _NemoFitsExtensionClass { + GObjectClass parent_slot; +}; + +static void property_page_provider_iface_init (NemoPropertyPageProviderIface *iface); +static void info_provider_iface_init (NemoInfoProviderIface *iface); +static void name_and_desc_provider_iface_init (NemoNameAndDescProviderIface *iface); + +G_DEFINE_DYNAMIC_TYPE_EXTENDED (NemoFitsExtension, nemo_fits_extension, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE_DYNAMIC (NEMO_TYPE_PROPERTY_PAGE_PROVIDER, + property_page_provider_iface_init) + G_IMPLEMENT_INTERFACE_DYNAMIC (NEMO_TYPE_INFO_PROVIDER, + info_provider_iface_init) + G_IMPLEMENT_INTERFACE_DYNAMIC (NEMO_TYPE_NAME_AND_DESC_PROVIDER, + name_and_desc_provider_iface_init)) + +static void +nemo_fits_extension_init (NemoFitsExtension *fits) +{ +} + +static void +nemo_fits_extension_class_init (NemoFitsExtensionClass *class) +{ +} + +static void +nemo_fits_extension_class_finalize (NemoFitsExtensionClass *class) +{ +} + +static gboolean +is_fits (const char *uri) +{ + return g_str_has_suffix (uri, ".fits") || + g_str_has_suffix (uri, ".fit") || + g_str_has_suffix (uri, ".fts") || + g_str_has_suffix (uri, ".FITS") || + g_str_has_suffix (uri, ".FIT") || + g_str_has_suffix (uri, ".FTS"); +} + +static char * +read_keyword (fitsfile *fptr, const char *key) +{ + char value[FLEN_VALUE]; + int status = 0; + + return fits_read_key_str (fptr, key, value, NULL, &status) ? NULL : g_strdup (value); +} + +static void +add_row (GtkGrid *grid, int row, const char *label, const char *value) +{ + GtkWidget *label_widget, *value_widget; + char *markup; + + label_widget = gtk_label_new (NULL); + markup = g_markup_printf_escaped ("%s", label); + gtk_label_set_markup (GTK_LABEL (label_widget), markup); + g_free (markup); + gtk_widget_set_halign (label_widget, GTK_ALIGN_END); + gtk_grid_attach (grid, label_widget, 0, row, 1, 1); + + value_widget = gtk_label_new (value ? value : _("No Info")); + gtk_widget_set_halign (value_widget, GTK_ALIGN_START); + gtk_label_set_selectable (GTK_LABEL (value_widget), TRUE); + gtk_grid_attach (grid, value_widget, 1, row, 1, 1); +} + +static void +add_separator (GtkGrid *grid, int row) +{ + GtkWidget *sep = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); + gtk_widget_set_margin_top (sep, 6); + gtk_widget_set_margin_bottom (sep, 6); + gtk_grid_attach (grid, sep, 0, row, 2, 1); +} + +static GList * +get_pages (NemoPropertyPageProvider *provider, GList *files) +{ + NemoFileInfo *file; + GtkWidget *grid; + NemoPropertyPage *page; + char *uri, *path, *value; + fitsfile *fptr = NULL; + int status = 0, naxis, bitpix, row = 0; + long naxes[10]; + + if (!files || files->next) + return NULL; + + file = files->data; + uri = nemo_file_info_get_uri (file); + + if (!is_fits (uri)) { + g_free (uri); + return NULL; + } + + path = g_filename_from_uri (uri, NULL, NULL); + g_free (uri); + + if (!path) + return NULL; + + grid = gtk_grid_new (); + gtk_grid_set_column_spacing (GTK_GRID (grid), 12); + gtk_grid_set_row_spacing (GTK_GRID (grid), 6); + gtk_container_set_border_width (GTK_CONTAINER (grid), 12); + + if (fits_open_file (&fptr, path, READONLY, &status)) { + g_free (path); + add_row (GTK_GRID (grid), row++, _("Error:"), _("Could not open FITS file")); + goto done; + } + + if (!fits_read_key (fptr, TINT, "NAXIS", &naxis, NULL, &status) && naxis > 0) { + GString *dims = g_string_new (""); + for (int i = 1; i <= naxis && i <= 10; i++) { + char key[9]; + g_snprintf (key, sizeof(key), "NAXIS%d", i); + status = 0; + if (!fits_read_key (fptr, TLONG, key, &naxes[i-1], NULL, &status)) { + if (i > 1) g_string_append (dims, " × "); + g_string_append_printf (dims, "%ld", naxes[i-1]); + } + } + if (naxis == 2) + g_string_append (dims, _(" (width × height)")); + else if (naxis == 3) + g_string_append (dims, _(" (width × height × depth)")); + + add_row (GTK_GRID (grid), row++, _("Dimensions:"), dims->str); + g_string_free (dims, TRUE); + } + + status = 0; + { + int xbin = 0, ybin = 0; + int has_x = !fits_read_key (fptr, TINT, "XBINNING", &xbin, NULL, &status); + status = 0; + int has_y = !fits_read_key (fptr, TINT, "YBINNING", &ybin, NULL, &status); + + if (has_x || has_y) { + char *bin = g_strdup_printf ("%d × %d", has_x ? xbin : 0, has_y ? ybin : 0); + add_row (GTK_GRID (grid), row++, _("Binning:"), bin); + g_free (bin); + } + } + + status = 0; + if (!fits_read_key (fptr, TINT, "BITPIX", &bitpix, NULL, &status)) { + const char *type = NULL; + switch (bitpix) { + case 8: type = "8-bit unsigned integer"; break; + case 16: type = "16-bit signed integer"; break; + case 32: type = "32-bit signed integer"; break; + case 64: type = "64-bit signed integer"; break; + case -32: type = "32-bit floating point"; break; + case -64: type = "64-bit floating point"; break; + } + if (type) + add_row (GTK_GRID (grid), row++, _("Data Type:"), _(type)); + } + + add_separator (GTK_GRID (grid), row++); + + value = read_keyword (fptr, "OBJECT"); + add_row (GTK_GRID (grid), row++, _("Object:"), value); + g_free (value); + + value = read_keyword (fptr, "TELESCOP"); + add_row (GTK_GRID (grid), row++, _("Telescope:"), value); + g_free (value); + + value = read_keyword (fptr, "INSTRUME"); + add_row (GTK_GRID (grid), row++, _("Instrument:"), value); + g_free (value); + + value = read_keyword (fptr, "OBSERVER"); + add_row (GTK_GRID (grid), row++, _("Observer:"), value); + g_free (value); + + add_separator (GTK_GRID (grid), row++); + + value = read_keyword (fptr, "DATE-OBS"); + add_row (GTK_GRID (grid), row++, _("Date Observed:"), value); + g_free (value); + + status = 0; + { + double exp; + if (!fits_read_key (fptr, TDOUBLE, "EXPTIME", &exp, NULL, &status)) { + char *str = g_strdup_printf ("%.1f s", exp); + add_row (GTK_GRID (grid), row++, _("Exposure Time:"), str); + g_free (str); + } else { + add_row (GTK_GRID (grid), row++, _("Exposure Time:"), NULL); + } + } + + value = read_keyword (fptr, "FILTER"); + add_row (GTK_GRID (grid), row++, _("Filter:"), value); + g_free (value); + + value = read_keyword (fptr, "BAYERPAT"); + add_row (GTK_GRID (grid), row++, _("Bayer Pattern:"), value); + g_free (value); + + status = 0; + { + double gain; + if (!fits_read_key (fptr, TDOUBLE, "GAIN", &gain, NULL, &status)) { + char *str = g_strdup_printf ("%.2f", gain); + add_row (GTK_GRID (grid), row++, _("Gain:"), str); + g_free (str); + } else { + add_row (GTK_GRID (grid), row++, _("Gain:"), NULL); + } + } + + status = 0; + { + int offset; + if (!fits_read_key (fptr, TINT, "OFFSET", &offset, NULL, &status)) { + char *str = g_strdup_printf ("%d", offset); + add_row (GTK_GRID (grid), row++, _("Offset:"), str); + g_free (str); + } else { + add_row (GTK_GRID (grid), row++, _("Offset:"), NULL); + } + } + + status = 0; + { + double temp; + if (!fits_read_key (fptr, TDOUBLE, "CCD-TEMP", &temp, NULL, &status)) { + char *str = g_strdup_printf ("%.2f °C", temp); + add_row (GTK_GRID (grid), row++, _("CCD Temperature:"), str); + g_free (str); + } else { + add_row (GTK_GRID (grid), row++, _("CCD Temperature:"), NULL); + } + } + + add_separator (GTK_GRID (grid), row++); + fits_close_file (fptr, &status); + +done: + g_free (path); + gtk_widget_show_all (grid); + + page = nemo_property_page_new ("NemoFitsExtension::property_page", + gtk_label_new (_("Image")), grid); + + return g_list_append (NULL, page); +} + +static NemoOperationResult +update_file_info (NemoInfoProvider *provider, NemoFileInfo *file, + GClosure *update_complete, NemoOperationHandle **handle) +{ + return NEMO_OPERATION_COMPLETE; +} + +static void +property_page_provider_iface_init (NemoPropertyPageProviderIface *iface) +{ + iface->get_pages = get_pages; +} + +static void +info_provider_iface_init (NemoInfoProviderIface *iface) +{ + iface->update_file_info = update_file_info; +} + +static GList * +get_name_and_desc (NemoNameAndDescProvider *provider) +{ + return g_list_append (NULL, g_strdup_printf ("nemo-fits-extension:::%s", + _("View FITS image information from the properties tab"))); +} + +static void +name_and_desc_provider_iface_init (NemoNameAndDescProviderIface *iface) +{ + iface->get_name_and_desc = get_name_and_desc; +} + +void +nemo_module_initialize (GTypeModule *module) +{ + nemo_fits_extension_register_type (module); + provider_types[0] = NEMO_TYPE_FITS_EXTENSION; + + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); +} + +void +nemo_module_shutdown (void) +{ +} + +void +nemo_module_list_types (const GType **types, int *num_types) +{ + *types = provider_types; + *num_types = G_N_ELEMENTS (provider_types); +} diff --git a/nemo-fits/nemo-fits-extension.h b/nemo-fits/nemo-fits-extension.h new file mode 100644 index 00000000..6fdcc899 --- /dev/null +++ b/nemo-fits/nemo-fits-extension.h @@ -0,0 +1,43 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ +/* + * nemo-fits-extension.h + * + * Copyright (C) 2024 Linux Mint + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Linux Mint + * + */ + +#ifndef NEMO_FITS_EXTENSION_H +#define NEMO_FITS_EXTENSION_H + +#include + +G_BEGIN_DECLS + +#define NEMO_TYPE_FITS_EXTENSION (nemo_fits_extension_get_type ()) +#define NEMO_FITS_EXTENSION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), NEMO_TYPE_FITS_EXTENSION, NemoFitsExtension)) +#define NEMO_IS_FITS_EXTENSION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), NEMO_TYPE_FITS_EXTENSION)) + +typedef struct _NemoFitsExtension NemoFitsExtension; +typedef struct _NemoFitsExtensionClass NemoFitsExtensionClass; + +GType nemo_fits_extension_get_type (void); + +G_END_DECLS + +#endif /* NEMO_FITS_EXTENSION_H */ diff --git a/nemo-fits/po/POTFILES b/nemo-fits/po/POTFILES new file mode 100644 index 00000000..fad3a284 --- /dev/null +++ b/nemo-fits/po/POTFILES @@ -0,0 +1 @@ +nemo-fits-extension.c diff --git a/nemo-fits/po/meson.build b/nemo-fits/po/meson.build new file mode 100644 index 00000000..2b65bc0a --- /dev/null +++ b/nemo-fits/po/meson.build @@ -0,0 +1,6 @@ +i18n.gettext(meson.project_name(), + args: [ + '--directory=' + meson.project_source_root(), + '--from-code=UTF-8', + ] +) From e64d271997fba18ccc8dd6f5c8ba11aeb5536c83 Mon Sep 17 00:00:00 2001 From: Ed Lee Date: Sat, 27 Dec 2025 18:34:05 +0000 Subject: [PATCH 2/5] Tidying up --- makepot | 2 + nemo-extensions.pot | 1201 ++++++++++++++----------------- nemo-fits/README | 19 + nemo-fits/README-FITS.md.pdf | Bin 58085 -> 0 bytes nemo-fits/debian/changelog | 2 +- nemo-fits/fits-thumbnailer.c | 11 - nemo-fits/meson.build | 10 +- nemo-fits/nemo-fits-extension.c | 19 +- nemo-fits/nemo-fits-extension.h | 24 - nemo-fits/po/POTFILES | 1 - nemo-fits/po/meson.build | 6 - 11 files changed, 568 insertions(+), 727 deletions(-) create mode 100644 nemo-fits/README delete mode 100644 nemo-fits/README-FITS.md.pdf delete mode 100644 nemo-fits/po/POTFILES delete mode 100644 nemo-fits/po/meson.build diff --git a/makepot b/makepot index b949496f..992e990a 100755 --- a/makepot +++ b/makepot @@ -30,6 +30,8 @@ potfiles_c=( nemo-dropbox/src/*.h nemo-fileroller/src/*.c nemo-fileroller/src/*.h + nemo-fits/*.c + nemo-fits/*.h nemo-image-converter/data/*.ui.h nemo-image-converter/src/*.c nemo-image-converter/src/*.h diff --git a/nemo-extensions.pot b/nemo-extensions.pot index 62a78466..4fb48e3b 100644 --- a/nemo-extensions.pot +++ b/nemo-extensions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-15 14:48+0000\n" +"POT-Creation-Date: 2025-12-27 18:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,295 +18,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.py:41 -msgid "Audio" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.py:68 -msgid "No Info" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:1 -msgid "Title:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:2 -msgid "Artist:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:3 -msgid "Album:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:4 -msgid "Album Artist:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:5 -msgid "Genre:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:6 -msgid "Year:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:7 -msgid "Track #:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:8 -msgid "Length:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:9 -msgid "Bitrate:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:10 -msgid "Sample Rate:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:11 -msgid "Encoded by:" -msgstr "" - -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:12 -msgid "Copyright:" -msgstr "" - -#: nemo-compare/src/nemo-compare-preferences.py:99 -msgid "Nemo Compare" -msgstr "" - -#: nemo-compare/src/nemo-compare-preferences.py:107 -msgid "Normal Diff" -msgstr "" - -#: nemo-compare/src/nemo-compare-preferences.py:122 -msgid "Three-Way Diff" -msgstr "" - -#: nemo-compare/src/nemo-compare-preferences.py:137 -msgid "N-Way Diff" -msgstr "" - -#: nemo-compare/src/nemo-compare.py:112 nemo-compare/src/nemo-compare.py:135 -#: nemo-compare/src/nemo-compare.py:114 nemo-compare/src/nemo-compare.py:137 -msgid "Compare to: " -msgstr "" - -#: nemo-compare/src/nemo-compare.py:113 nemo-compare/src/nemo-compare.py:136 -#: nemo-compare/src/nemo-compare.py:115 nemo-compare/src/nemo-compare.py:138 -msgid "Compare to the file previously selected" -msgstr "" - -#: nemo-compare/src/nemo-compare.py:122 nemo-compare/src/nemo-compare.py:124 -msgid "Compare Later" -msgstr "" - -#: nemo-compare/src/nemo-compare.py:123 nemo-compare/src/nemo-compare.py:125 -msgid "Remember file for later comparison" -msgstr "" - -#: nemo-compare/src/nemo-compare.py:147 nemo-compare/src/nemo-compare.py:149 -msgid "Compare" -msgstr "" - -#: nemo-compare/src/nemo-compare.py:148 nemo-compare/src/nemo-compare.py:150 -msgid "Compare selected files" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Art" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Camera" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Danger" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Default" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Development" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Documents" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Downloads" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Favorite" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Games" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Generic" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Important" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Installed" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Mail" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Marketing" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Money" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Multimedia" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "New" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Note" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Ohno" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Package" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "People" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Personal" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Photos" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Plan" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Presentation" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Sales" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Sound" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "System" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Urgent" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Videos" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:50 -#: nemo-emblems/nemo-extension/nemo-emblems.py:58 -#: nemo-emblems/nemo-extension/nemo-emblems.py:55 -msgid "Web" -msgstr "" - -#: nemo-emblems/nemo-extension/nemo-emblems.py:88 -#: nemo-emblems/nemo-extension/nemo-emblems.py:100 -#: nemo-emblems/nemo-extension/nemo-emblems.py:108 -#: nemo-emblems/nemo-extension/nemo-emblems.py:105 -msgid "Emblems" +#: nemo-dropbox/src/nemo-dropbox.c:463 +msgid "Allows managing of Dropbox web service from the context menu" msgstr "" #: nemo-fileroller/src/nemo-fileroller.c:335 @@ -333,160 +46,93 @@ msgstr "" msgid "Create a compressed archive with the selected objects" msgstr "" -#: nemo-gtkhash/src/callbacks.c:47 -msgid "Save Digests" -msgstr "" - -#: nemo-gtkhash/src/callbacks.c:236 -msgid "A GTK+ utility for computing message digests or checksums." -msgstr "" - -#: nemo-gtkhash/src/callbacks.c:240 -msgid "translator-credits" -msgstr "" - -#: nemo-gtkhash/src/callbacks.c:262 -msgid "Select Files" -msgstr "" - -#: nemo-gtkhash/src/gui.c:293 -#, c-format -msgid "Failed to read \"%s\"" -msgstr "" - -#: nemo-gtkhash/src/gui.c:310 -#, c-format -msgid "" -"Failed to read \"%s\":\n" -"%s" -msgstr "" - -#: nemo-gtkhash/src/gui.c:359 -msgid "Not a regular file" -msgstr "" - -#: nemo-gtkhash/src/gui.c:381 -msgid "Unknown error" -msgstr "" - -#: nemo-gtkhash/src/gui.c:383 -#, c-format -msgid "" -"Failed to add \"%s\":\n" -"%s" -msgstr "" - -#: nemo-gtkhash/src/hash.c:74 nemo-gtkhash/src/nautilus/properties-hash.c:61 -#, c-format -msgid "%s of %s - 1 minute left (%s/sec)" -msgstr "" - -#: nemo-gtkhash/src/hash.c:77 nemo-gtkhash/src/nautilus/properties-hash.c:64 -#, c-format -msgid "%s of %s - %u minutes left (%s/sec)" -msgstr "" - -#: nemo-gtkhash/src/hash.c:81 nemo-gtkhash/src/nautilus/properties-hash.c:68 -#, c-format -msgid "%s of %s - 1 second left (%s/sec)" -msgstr "" - -#: nemo-gtkhash/src/hash.c:84 nemo-gtkhash/src/nautilus/properties-hash.c:71 -#, c-format -msgid "%s of %s - %u seconds left (%s/sec)" +#: nemo-fileroller/src/nemo-fileroller.c:398 +msgid "Allows managing of archives from the context menu" msgstr "" -#: nemo-gtkhash/src/main.c:86 -msgid "Check against the specified digest or checksum" +#: nemo-fits/nemo-fits-extension.c:93 +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.py:71 +msgid "No Info" msgstr "" -#: nemo-gtkhash/src/main.c:86 -msgid "DIGEST" +#: nemo-fits/nemo-fits-extension.c:143 +msgid "Error:" msgstr "" -#: nemo-gtkhash/src/main.c:90 -msgid "Read program data from the specified directory" +#: nemo-fits/nemo-fits-extension.c:143 +msgid "Could not open FITS file" msgstr "" -#: nemo-gtkhash/src/main.c:90 -msgid "DIRECTORY" +#: nemo-fits/nemo-fits-extension.c:159 +msgid " (width x height)" msgstr "" -#: nemo-gtkhash/src/main.c:94 -msgid "Hash the specified text" +#: nemo-fits/nemo-fits-extension.c:161 +msgid " (width x height x depth)" msgstr "" -#: nemo-gtkhash/src/main.c:94 -msgid "TEXT" +#: nemo-fits/nemo-fits-extension.c:163 +msgid "Dimensions:" msgstr "" -#: nemo-gtkhash/src/main.c:98 -msgid "Show version information" +#: nemo-fits/nemo-fits-extension.c:176 +msgid "Binning:" msgstr "" -#: nemo-gtkhash/src/main.c:102 -msgid "[FILE|URI...]" +#: nemo-fits/nemo-fits-extension.c:193 +msgid "Data Type:" msgstr "" -#: nemo-gtkhash/src/prefs.c:76 -msgid "Failed to enable any supported hash functions." +#: nemo-fits/nemo-fits-extension.c:199 +msgid "Object:" msgstr "" -#: nemo-gtkhash/src/nautilus/properties.c:436 -#: nemo-gtkhash/src/nautilus/properties.c:439 -#: nemo-gtkhash/src/nautilus/properties.c:441 -msgid "Digests" +#: nemo-fits/nemo-fits-extension.c:203 +msgid "Telescope:" msgstr "" -#: nemo-image-converter/src/nemo-image-converter.c:121 -msgid "_Resize Images..." +#: nemo-fits/nemo-fits-extension.c:207 +msgid "Instrument:" msgstr "" -#: nemo-image-converter/src/nemo-image-converter.c:122 -msgid "Resize each selected image" +#: nemo-fits/nemo-fits-extension.c:211 +msgid "Observer:" msgstr "" -#: nemo-image-converter/src/nemo-image-converter.c:131 -msgid "Ro_tate Images..." +#: nemo-fits/nemo-fits-extension.c:217 +msgid "Date Observed:" msgstr "" -#: nemo-image-converter/src/nemo-image-converter.c:132 -msgid "Rotate each selected image" +#: nemo-fits/nemo-fits-extension.c:225 nemo-fits/nemo-fits-extension.c:228 +msgid "Exposure Time:" msgstr "" -#: nemo-image-converter/src/nemo-image-resizer.c:211 -#: nemo-image-converter/src/nemo-image-rotator.c:208 -msgid "_Skip" +#: nemo-fits/nemo-fits-extension.c:233 +msgid "Filter:" msgstr "" -#: nemo-image-converter/src/nemo-image-resizer.c:213 -#: nemo-image-converter/src/nemo-image-rotator.c:210 -msgid "_Retry" +#: nemo-fits/nemo-fits-extension.c:237 +msgid "Bayer Pattern:" msgstr "" -#: nemo-image-converter/src/nemo-image-resizer.c:291 -#, c-format -msgid "Resizing image: %d of %d" +#: nemo-fits/nemo-fits-extension.c:245 nemo-fits/nemo-fits-extension.c:248 +msgid "Gain:" msgstr "" -#: nemo-image-converter/src/nemo-image-resizer.c:296 -#, c-format -msgid "Resizing \"%s\"" +#: nemo-fits/nemo-fits-extension.c:257 nemo-fits/nemo-fits-extension.c:260 +msgid "Offset:" msgstr "" -#: nemo-image-converter/src/nemo-image-resizer.c:314 -#: nemo-image-converter/src/nemo-image-rotator.c:313 -msgid "Please enter a valid filename suffix!" +#: nemo-fits/nemo-fits-extension.c:269 nemo-fits/nemo-fits-extension.c:272 +msgid "CCD Temperature:" msgstr "" -#: nemo-image-converter/src/nemo-image-rotator.c:290 -#, c-format -msgid "Rotating image: %d of %d" +#: nemo-fits/nemo-fits-extension.c:284 +msgid "Image" msgstr "" -#: nemo-image-converter/src/nemo-image-rotator.c:295 -#, c-format -msgid "Rotating \"%s\"" +#: nemo-fits/nemo-fits-extension.c:312 +msgid "View FITS image information from the properties tab" msgstr "" #: nemo-image-converter/data/nemo-image-resize.ui.h:1 @@ -620,112 +266,59 @@ msgstr "" msgid "_Rotate" msgstr "" -#: nemo-media-columns/nemo-media-columns.py:73 -#: nemo-media-columns/nemo-media-columns.py:92 -msgid "Title" +#: nemo-image-converter/src/nemo-image-converter.c:121 +msgid "_Resize Images..." msgstr "" -#: nemo-media-columns/nemo-media-columns.py:74 -#: nemo-media-columns/nemo-media-columns.py:93 -msgid "Album" +#: nemo-image-converter/src/nemo-image-converter.c:122 +msgid "Resize each selected image" msgstr "" -#: nemo-media-columns/nemo-media-columns.py:75 -#: nemo-media-columns/nemo-media-columns.py:94 -msgid "Artist" +#: nemo-image-converter/src/nemo-image-converter.c:131 +msgid "Ro_tate Images..." msgstr "" -#: nemo-media-columns/nemo-media-columns.py:76 -#: nemo-media-columns/nemo-media-columns.py:95 -msgid "Track" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:77 -#: nemo-media-columns/nemo-media-columns.py:96 -msgid "Genre" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:78 -#: nemo-media-columns/nemo-media-columns.py:97 -msgid "Date" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:79 -#: nemo-media-columns/nemo-media-columns.py:98 -msgid "Bitrate" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:80 -#: nemo-media-columns/nemo-media-columns.py:99 -msgid "Pages" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:81 -#: nemo-media-columns/nemo-media-columns.py:100 -msgid "Sample Rate" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:82 -#: nemo-media-columns/nemo-media-columns.py:101 -msgid "Length" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:83 -#: nemo-media-columns/nemo-media-columns.py:104 -msgid "EXIF Date" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:84 -#: nemo-media-columns/nemo-media-columns.py:105 -msgid "EXIF Software" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:85 -#: nemo-media-columns/nemo-media-columns.py:106 -msgid "EXIF Flash" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:86 -#: nemo-media-columns/nemo-media-columns.py:107 -msgid "EXIF Image Size" -msgstr "" - -#: nemo-media-columns/nemo-media-columns.py:87 -#: nemo-media-columns/nemo-media-columns.py:108 -msgid "EXIF Rating" +#: nemo-image-converter/src/nemo-image-converter.c:132 +msgid "Rotate each selected image" msgstr "" -#: nemo-media-columns/nemo-media-columns.py:88 -#: nemo-media-columns/nemo-media-columns.py:109 -msgid "Image Size" +#: nemo-image-converter/src/nemo-image-converter.c:153 +msgid "Allows image resizing and rotation from the context menu" msgstr "" -#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:1 -msgid "Nemo Pastebin" +#: nemo-image-converter/src/nemo-image-resizer.c:211 +#: nemo-image-converter/src/nemo-image-rotator.c:208 +msgid "_Skip" msgstr "" -#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:2 -msgid "Pastebin" +#: nemo-image-converter/src/nemo-image-resizer.c:213 +#: nemo-image-converter/src/nemo-image-rotator.c:210 +msgid "_Retry" msgstr "" -#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:3 -msgid "Open the browser" +#: nemo-image-converter/src/nemo-image-resizer.c:291 +#, c-format +msgid "Resizing image: %d of %d" msgstr "" -#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:4 -msgid "Show a notification" +#: nemo-image-converter/src/nemo-image-resizer.c:296 +#, c-format +msgid "Resizing \"%s\"" msgstr "" -#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:5 -msgid "Username" +#: nemo-image-converter/src/nemo-image-resizer.c:314 +#: nemo-image-converter/src/nemo-image-rotator.c:314 +msgid "Please enter a valid filename suffix!" msgstr "" -#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:6 -msgid "Password" +#: nemo-image-converter/src/nemo-image-rotator.c:291 +#, c-format +msgid "Rotating image: %d of %d" msgstr "" -#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:7 -msgid "Author" +#: nemo-image-converter/src/nemo-image-rotator.c:296 +#, c-format +msgid "Rotating \"%s\"" msgstr "" #: nemo-preview/src/libnemo-preview/nemo-preview-file-loader.c:639 @@ -739,50 +332,6 @@ msgstr[1] "" msgid "Empty Folder" msgstr "" -#: nemo-preview/src/js/ui/fallbackRenderer.js:123 -#: nemo-preview/src/js/ui/fallbackRenderer.js:125 -msgid "Type" -msgstr "" - -#: nemo-preview/src/js/ui/fallbackRenderer.js:124 -#: nemo-preview/src/js/ui/fallbackRenderer.js:133 -#: nemo-preview/src/js/ui/fallbackRenderer.js:139 -#: nemo-preview/src/js/ui/spinnerBox.js:60 -#: nemo-preview/src/js/ui/fallbackRenderer.js:126 -#: nemo-preview/src/js/ui/fallbackRenderer.js:135 -#: nemo-preview/src/js/ui/fallbackRenderer.js:141 -#: nemo-preview/src/js/ui/spinnerBox.js:61 -msgid "Loading..." -msgstr "" - -#: nemo-preview/src/js/ui/fallbackRenderer.js:132 -#: nemo-preview/src/js/ui/fallbackRenderer.js:134 -msgid "Size" -msgstr "" - -#: nemo-preview/src/js/ui/fallbackRenderer.js:138 -#: nemo-preview/src/js/ui/fallbackRenderer.js:140 -msgid "Modified" -msgstr "" - -#: nemo-preview/src/js/viewers/audio.js:176 -#: nemo-preview/src/js/viewers/audio.js:177 -#: nemo-preview/src/js/viewers/audio.js:179 -msgid "from" -msgstr "" - -#: nemo-preview/src/js/viewers/audio.js:178 -#: nemo-preview/src/js/viewers/audio.js:179 -#: nemo-preview/src/js/viewers/audio.js:181 -msgid "by" -msgstr "" - -#: nemo-preview/src/js/viewers/xreader.js:81 -#: nemo-preview/src/js/viewers/xreader.js:82 -#, javascript-format -msgid "%d of %d" -msgstr "" - #: nemo-repairer/src/encoding-dialog.c:195 #, c-format msgid "" @@ -836,6 +385,10 @@ msgstr "" msgid "Select a filename from sub menu items." msgstr "" +#: nemo-repairer/src/nemo-filename-repairer.c:523 +msgid "Allows filename encoding repair from the context menu" +msgstr "" + #: nemo-repairer/src/repair-dialog.c:82 msgid "Arabic - CP1256" msgstr "" @@ -939,6 +492,30 @@ msgstr "" msgid "Include _subdirectories" msgstr "" +#: nemo-seahorse/nemo-ext/nemo-seahorse.c:159 +msgid "Encrypt..." +msgstr "" + +#: nemo-seahorse/nemo-ext/nemo-seahorse.c:160 +msgid "Encrypt (and optionally sign) the selected file" +msgid_plural "Encrypt the selected files" +msgstr[0] "" +msgstr[1] "" + +#: nemo-seahorse/nemo-ext/nemo-seahorse.c:166 +msgid "Sign" +msgstr "" + +#: nemo-seahorse/nemo-ext/nemo-seahorse.c:167 +msgid "Sign the selected file" +msgid_plural "Sign the selected files" +msgstr[0] "" +msgstr[1] "" + +#: nemo-seahorse/nemo-ext/nemo-seahorse.c:181 +msgid "Allows encryption and decryption of OpenPGP files from the context menu" +msgstr "" + #: nemo-seahorse/tool/seahorse-notification.c:569 msgid "Key Imported" msgid_plural "Keys Imported" @@ -1405,33 +982,47 @@ msgstr "" msgid "Progress Title" msgstr "" -#: nemo-seahorse/nemo-ext/nemo-seahorse.c:159 -msgid "Encrypt..." +#: nemo-share/interfaces/share-dialog.ui.h:1 nemo-share/src/nemo-share.c:1235 +msgid "Folder Sharing" msgstr "" -#: nemo-seahorse/nemo-ext/nemo-seahorse.c:160 -msgid "Encrypt (and optionally sign) the selected file" -msgid_plural "Encrypt the selected files" -msgstr[0] "" -msgstr[1] "" +#: nemo-share/interfaces/share-dialog.ui.h:2 +msgid "Share this _folder" +msgstr "" -#: nemo-seahorse/nemo-ext/nemo-seahorse.c:166 -msgid "Sign" +#: nemo-share/interfaces/share-dialog.ui.h:3 +msgid "Share _name:" msgstr "" -#: nemo-seahorse/nemo-ext/nemo-seahorse.c:167 -msgid "Sign the selected file" -msgid_plural "Sign the selected files" -msgstr[0] "" -msgstr[1] "" +#: nemo-share/interfaces/share-dialog.ui.h:4 +msgid "Co_mment:" +msgstr "" + +#: nemo-share/interfaces/share-dialog.ui.h:5 +msgid "_Allow others to create and delete files in this folder" +msgstr "" + +#: nemo-share/interfaces/share-dialog.ui.h:6 +msgid "_Guest access (for people without a user account)" +msgstr "" + +#: nemo-share/interfaces/share-dialog.ui.h:7 +msgid "Install" +msgstr "" + +#: nemo-share/interfaces/share-dialog.ui.h:8 +msgid "" +"Samba needs to be installed, appropriate firewall rules need to be added and " +"your user account needs to join the 'sambashare' group." +msgstr "" -#: nemo-share/src/nemo-share.c:121 +#: nemo-share/src/nemo-share.c:119 #, c-format msgid "" "Nemo needs to add some permissions to your folder \"%s\" in order to share it" msgstr "" -#: nemo-share/src/nemo-share.c:129 +#: nemo-share/src/nemo-share.c:127 #, c-format msgid "" "The folder \"%s\" needs the following extra permissions for sharing to " @@ -1439,92 +1030,91 @@ msgid "" "%s%s%sDo you want Nemo to add these permissions to the folder automatically?" msgstr "" -#: nemo-share/src/nemo-share.c:133 +#: nemo-share/src/nemo-share.c:131 msgid " - read permission by others\n" msgstr "" -#: nemo-share/src/nemo-share.c:134 +#: nemo-share/src/nemo-share.c:132 msgid " - write permission by others\n" msgstr "" -#: nemo-share/src/nemo-share.c:135 +#: nemo-share/src/nemo-share.c:133 msgid " - execute permission by others\n" msgstr "" -#: nemo-share/src/nemo-share.c:139 +#: nemo-share/src/nemo-share.c:137 msgid "Add the permissions automatically" msgstr "" -#: nemo-share/src/nemo-share.c:165 +#: nemo-share/src/nemo-share.c:163 #, c-format msgid "Could not change the permissions of folder \"%s\"" msgstr "" -#: nemo-share/src/nemo-share.c:467 +#: nemo-share/src/nemo-share.c:465 msgid "The share name cannot be empty" msgstr "" -#: nemo-share/src/nemo-share.c:473 +#: nemo-share/src/nemo-share.c:471 msgid "The share name is too long" msgstr "" -#: nemo-share/src/nemo-share.c:486 +#: nemo-share/src/nemo-share.c:484 #, c-format msgid "Error while getting share information: %s" msgstr "" -#: nemo-share/src/nemo-share.c:494 +#: nemo-share/src/nemo-share.c:492 msgid "Another share has the same name" msgstr "" -#: nemo-share/src/nemo-share.c:505 +#: nemo-share/src/nemo-share.c:503 msgid "" "This folder is located in an encrypted directory. It will not be accessible " "by other users unless the option 'force user' is specified in /etc/samba/smb." "conf." msgstr "" -#: nemo-share/src/nemo-share.c:529 +#: nemo-share/src/nemo-share.c:527 #, c-format msgid "The permissions for %s prevent other users from accessing this share" msgstr "" -#: nemo-share/src/nemo-share.c:577 nemo-share/src/nemo-share.c:881 +#: nemo-share/src/nemo-share.c:575 nemo-share/src/nemo-share.c:879 msgid "Modify _Share" msgstr "" -#: nemo-share/src/nemo-share.c:577 nemo-share/src/nemo-share.c:883 +#: nemo-share/src/nemo-share.c:575 nemo-share/src/nemo-share.c:881 msgid "Create _Share" msgstr "" -#: nemo-share/src/nemo-share.c:613 +#: nemo-share/src/nemo-share.c:611 msgid "Please reboot to finalize changes" msgstr "" -#: nemo-share/src/nemo-share.c:616 +#: nemo-share/src/nemo-share.c:614 msgid "" "Something went wrong. You may need to install samba and add your user to " "the 'sambashare' group manually." msgstr "" -#: nemo-share/src/nemo-share.c:769 +#: nemo-share/src/nemo-share.c:767 msgid "There was an error while getting the sharing information" msgstr "" -#: nemo-share/src/nemo-share.c:1176 nemo-share/src/nemo-share.c:1177 -msgid "Share" +#: nemo-share/src/nemo-share.c:1113 +msgid "Allows you to quickly share a folder from the context menu" msgstr "" -#: nemo-share/src/nemo-share.c:1236 nemo-share/interfaces/share-dialog.ui.h:1 -#: nemo-share/src/nemo-share.c:1237 -msgid "Folder Sharing" +#: nemo-share/src/nemo-share.c:1175 +msgid "Share" msgstr "" -#: nemo-share/src/nemo-share.c:1277 nemo-share/src/nemo-share.c:1278 +#: nemo-share/src/nemo-share.c:1276 msgid "Sharing Options" msgstr "" -#: nemo-share/src/nemo-share.c:1278 nemo-share/src/nemo-share.c:1279 +#: nemo-share/src/nemo-share.c:1277 msgid "Share this Folder" msgstr "" @@ -1586,196 +1176,481 @@ msgid "" "first and add a new one" msgstr "" -#: nemo-share/interfaces/share-dialog.ui.h:2 -msgid "Share this _folder" +#: nemo-preview/src/js/ui/fallbackRenderer.js:125 +msgid "Type" msgstr "" -#: nemo-share/interfaces/share-dialog.ui.h:3 -msgid "Share _name:" +#: nemo-preview/src/js/ui/fallbackRenderer.js:126 +#: nemo-preview/src/js/ui/fallbackRenderer.js:135 +#: nemo-preview/src/js/ui/fallbackRenderer.js:141 +#: nemo-preview/src/js/ui/spinnerBox.js:61 +msgid "Loading..." msgstr "" -#: nemo-share/interfaces/share-dialog.ui.h:4 -msgid "Co_mment:" +#: nemo-preview/src/js/ui/fallbackRenderer.js:134 +msgid "Size" msgstr "" -#: nemo-share/interfaces/share-dialog.ui.h:5 -msgid "_Allow others to create and delete files in this folder" +#: nemo-preview/src/js/ui/fallbackRenderer.js:140 +msgid "Modified" msgstr "" -#: nemo-share/interfaces/share-dialog.ui.h:6 -msgid "_Guest access (for people without a user account)" +#: nemo-preview/src/js/viewers/audio.js:179 +msgid "from" msgstr "" -#: nemo-share/interfaces/share-dialog.ui.h:7 -msgid "Install" +#: nemo-preview/src/js/viewers/audio.js:181 +msgid "by" msgstr "" -#: nemo-share/interfaces/share-dialog.ui.h:8 -msgid "" -"Samba needs to be installed, appropriate firewall rules need to be added and " -"your user account needs to join the 'sambashare' group." +#: nemo-preview/src/js/viewers/xreader.js:82 +#, javascript-format +msgid "%d of %d" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:44 -msgid "Nemo-Terminal Preferences" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:1 +msgid "Title:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:70 -msgid "Visible by default" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:2 +msgid "Artist:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:74 -msgid "Top" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:3 +msgid "Album:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:75 -msgid "Bottom" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:4 +msgid "Album Artist:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:80 -msgid "Terminal position" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:5 +msgid "Genre:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:84 -msgid "Independent" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:6 +msgid "Year:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:85 -msgid "Terminal follows view location" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:7 +msgid "Track #:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:92 -msgid "Location mode" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:8 +msgid "Length:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:100 -msgid "Terminal bell" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:9 +msgid "Bitrate:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:109 -msgid "Default number of lines for the terminal" -msgstr "" - -#: nemo-terminal/src/nemo-terminal-prefs.py:149 -msgid "Keyboard shortcut" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:10 +msgid "Sample Rate:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:152 -msgid "Basic" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:11 +msgid "Encoded by:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:171 -msgid "Shell to use (leave blank for system default)" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.glade.h:12 +msgid "Copyright:" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:187 -msgid "Terminal erase line key sequence" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.py:44 +msgid "Audio" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:195 -msgid "Terminal restore line key sequence" +#: nemo-audio-tab/nemo-extension/nemo-audio-tab.py:199 +msgid "View audio tag information from the properties tab" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:203 -msgid "Change directory command" +#: nemo-compare/src/nemo-compare-preferences.py:99 +msgid "Nemo Compare" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:208 -msgid "Restore defaults" +#: nemo-compare/src/nemo-compare-preferences.py:107 +msgid "Normal Diff" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:217 -msgid "Sequences must be escaped according to python rules." +#: nemo-compare/src/nemo-compare-preferences.py:122 +msgid "Three-Way Diff" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:218 -#, python-format -msgid "'%s' is replaced by the quoted directory name." +#: nemo-compare/src/nemo-compare-preferences.py:137 +msgid "N-Way Diff" msgstr "" -#: nemo-terminal/src/nemo-terminal-prefs.py:225 -msgid "Advanced" +#: nemo-compare/src/nemo-compare.py:117 nemo-compare/src/nemo-compare.py:140 +msgid "Compare to: " msgstr "" -#: nemo-terminal/src/nemo_terminal.py:149 -msgid "Paste Filenames" +#: nemo-compare/src/nemo-compare.py:118 nemo-compare/src/nemo-compare.py:141 +msgid "Compare to the file previously selected" msgstr "" -#: nemo-media-columns/nemo-media-columns.py:102 -msgid "Composer" +#: nemo-compare/src/nemo-compare.py:127 +msgid "Compare Later" msgstr "" -#: nemo-media-columns/nemo-media-columns.py:103 -msgid "Description" +#: nemo-compare/src/nemo-compare.py:128 +msgid "Remember file for later comparison" msgstr "" -#: nemo-fileroller/src/nemo-fileroller.c:398 -msgid "Allows managing of archives from the context menu" +#: nemo-compare/src/nemo-compare.py:152 +msgid "Compare" msgstr "" -#: nemo-share/src/nemo-share.c:1115 -msgid "Allows you to quickly share a folder from the context menu" +#: nemo-compare/src/nemo-compare.py:153 +msgid "Compare selected files" msgstr "" -#: nemo-emblems/nemo-extension/nemo-emblems.py:19 -msgid "Nemo Emblems" +#: nemo-compare/src/nemo-compare.py:171 +msgid "Allows file comparison from the context menu" msgstr "" -#: nemo-emblems/nemo-extension/nemo-emblems.py:20 -#: nemo-emblems/nemo-extension/nemo-emblems.py:163 +#: nemo-emblems/nemo-extension/nemo-emblems.py:22 msgid "Change a folder or file emblem" msgstr "" -#: nemo-dropbox/src/nemo-dropbox.c:462 nemo-dropbox/src/nemo-dropbox.c:463 -msgid "Allows managing of Dropbox web service from the context menu" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Art" msgstr "" -#: nemo-image-converter/src/nemo-image-converter.c:153 -msgid "Allows image resizing and rotation from the context menu" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Camera" msgstr "" -#: nemo-repairer/src/nemo-filename-repairer.c:523 -msgid "Allows filename encoding repair from the context menu" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Danger" msgstr "" -#: nemo-seahorse/nemo-ext/nemo-seahorse.c:181 -msgid "Allows encryption and decryption of OpenPGP files from the context menu" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Default" msgstr "" -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.py:195 -msgid "View audio tag information from the properties tab" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Development" msgstr "" -#: nemo-compare/src/nemo-compare.py:168 -msgid "Allows file comparison from the context menu" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Documents" msgstr "" -#: nemo-media-columns/nemo-media-columns.py:369 -msgid "Provides additional columns for the list view" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Downloads" msgstr "" -#: nemo-terminal/src/nemo_terminal.py:579 -msgid "Embedded terminal for Nemo" +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Favorite" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Games" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Generic" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Important" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Installed" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Mail" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Marketing" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Money" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Multimedia" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "New" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Note" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Ohno" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Package" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "People" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Personal" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Photos" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Plan" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Presentation" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Sales" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Sound" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "System" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Urgent" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Videos" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:60 +msgid "Web" +msgstr "" + +#: nemo-emblems/nemo-extension/nemo-emblems.py:110 +msgid "Emblems" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:104 +msgid "Title" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:105 +msgid "Album" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:106 +msgid "Artist" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:107 +msgid "Track" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:108 +msgid "Genre" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:109 +msgid "Date" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:110 +msgid "Bitrate" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:111 +msgid "Pages" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:112 +msgid "Sample Rate" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:113 +msgid "Length" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:114 +msgid "Composer" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:115 +msgid "Description" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:116 +msgid "EXIF Date" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:117 +msgid "EXIF Software" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:118 +msgid "EXIF Flash" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:119 +msgid "EXIF Image Size" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:120 +msgid "EXIF Rating" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:121 +msgid "Image Size" +msgstr "" + +#: nemo-media-columns/nemo-media-columns.py:381 +msgid "Provides additional columns for the list view" msgstr "" -#: nemo-pastebin/src/nemo-pastebin.py:111 +#: nemo-pastebin/src/nemo-pastebin.py:114 msgid "Unable to read or parse the result page." msgstr "" -#: nemo-pastebin/src/nemo-pastebin.py:112 +#: nemo-pastebin/src/nemo-pastebin.py:115 msgid "It could be a server timeout or a change server side. Try later." msgstr "" -#: nemo-pastebin/src/nemo-pastebin.py:169 +#: nemo-pastebin/src/nemo-pastebin.py:172 #, python-format msgid "Pastebin to %s" msgstr "" -#: nemo-pastebin/src/nemo-pastebin.py:170 +#: nemo-pastebin/src/nemo-pastebin.py:173 #, python-format msgid "Send this file to %s" msgstr "" -#: nemo-pastebin/src/nemo-pastebin.py:196 +#: nemo-pastebin/src/nemo-pastebin.py:199 msgid "Send files to a paste service via the context menu" msgstr "" + +#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:1 +msgid "Nemo Pastebin" +msgstr "" + +#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:2 +msgid "Pastebin" +msgstr "" + +#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:3 +msgid "Open the browser" +msgstr "" + +#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:4 +msgid "Show a notification" +msgstr "" + +#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:5 +msgid "Username" +msgstr "" + +#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:6 +msgid "Password" +msgstr "" + +#: nemo-pastebin/data/nemo-pastebin-configurator.ui.h:7 +msgid "Author" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:44 +msgid "Nemo-Terminal Preferences" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:70 +msgid "Visible by default" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:74 +msgid "Top" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:75 +msgid "Bottom" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:80 +msgid "Terminal position" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:84 +msgid "Independent" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:85 +msgid "Terminal follows view location" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:92 +msgid "Location mode" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:100 +msgid "Terminal bell" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:109 +msgid "Default number of lines for the terminal" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:149 +msgid "Keyboard shortcut" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:152 +msgid "Basic" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:171 +msgid "Shell to use (leave blank for system default)" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:187 +msgid "Terminal erase line key sequence" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:195 +msgid "Terminal restore line key sequence" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:203 +msgid "Change directory command" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:208 +msgid "Restore defaults" +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:217 +msgid "Sequences must be escaped according to python rules." +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:218 +#, python-format +msgid "'%s' is replaced by the quoted directory name." +msgstr "" + +#: nemo-terminal/src/nemo-terminal-prefs.py:225 +msgid "Advanced" +msgstr "" + +#: nemo-terminal/src/nemo_terminal.py:153 +msgid "Paste Filenames" +msgstr "" + +#: nemo-terminal/src/nemo_terminal.py:583 +msgid "Embedded terminal for Nemo" +msgstr "" diff --git a/nemo-fits/README b/nemo-fits/README new file mode 100644 index 00000000..3e443fba --- /dev/null +++ b/nemo-fits/README @@ -0,0 +1,19 @@ +Nemo Extension For fits Files + +About +nemo-fits is a nemo extension which provides: +A thumbnail of .fits files. +Information from the .fits file header in the Image tab. + +Project page: +https://github.com/linuxmint/nemo-extensions/ + +Bug Tracker +https://github.com/linuxmint/nemo-extensions/issues/ + +Install +$ ./configure +$ make +# make install + +Please read INSTALL, for detailed installation instructions. diff --git a/nemo-fits/README-FITS.md.pdf b/nemo-fits/README-FITS.md.pdf deleted file mode 100644 index 7b164c5d4b1df9090eed1ac38f4fe4d3f35aef85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58085 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 z 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 QP0dX$4Y^cRUH#p-0J61T@c;k- diff --git a/nemo-fits/debian/changelog b/nemo-fits/debian/changelog index 047fc821..c5905d29 100644 --- a/nemo-fits/debian/changelog +++ b/nemo-fits/debian/changelog @@ -7,4 +7,4 @@ nemo-fits-extension (6.4.0-1) wilma; urgency=medium * Display telescope, instrument, and coordinate information * Written in C using CFITSIO library for robust FITS support - -- Linux Mint Tue, 24 Dec 2024 12:00:00 +0000 + -- Linux Mint Tue, 24 Dec 2024 12:00:00 +0000 diff --git a/nemo-fits/fits-thumbnailer.c b/nemo-fits/fits-thumbnailer.c index 616d6230..f8832901 100644 --- a/nemo-fits/fits-thumbnailer.c +++ b/nemo-fits/fits-thumbnailer.c @@ -1,14 +1,3 @@ -/* - * fits-thumbnailer.c - * - * Copyright (C) 2024 Linux Mint - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - */ - #include #include #include diff --git a/nemo-fits/meson.build b/nemo-fits/meson.build index 89ef8c82..71e82b4b 100644 --- a/nemo-fits/meson.build +++ b/nemo-fits/meson.build @@ -14,10 +14,10 @@ gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0') nemo_extension_dep = dependency('libnemo-extension', version: '>= 3.0.0') cfitsio_dep = dependency('cfitsio', version: '>= 3.0') -# Configuration +# Configuration - Use repository-wide translation domain conf_data = configuration_data() conf_data.set_quoted('VERSION', meson.project_version()) -conf_data.set_quoted('GETTEXT_PACKAGE', meson.project_name()) +conf_data.set_quoted('GETTEXT_PACKAGE', 'nemo-extensions') conf_data.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir'))) config_h = configure_file( @@ -57,6 +57,7 @@ shared_module('nemo-fits-extension', # Build the thumbnailer executable thumbnailer_sources = files('fits-thumbnailer.c') + executable('fits-thumbnailer', sources: thumbnailer_sources, dependencies: [glib_dep, gdk_pixbuf_dep, cfitsio_dep], @@ -67,7 +68,4 @@ executable('fits-thumbnailer', # Install thumbnailer definition install_data('fits.thumbnailer', install_dir: join_paths(get_option('datadir'), 'thumbnailers') -) - -# i18n -subdir('po') +) \ No newline at end of file diff --git a/nemo-fits/nemo-fits-extension.c b/nemo-fits/nemo-fits-extension.c index 41267e10..f18d658a 100644 --- a/nemo-fits/nemo-fits-extension.c +++ b/nemo-fits/nemo-fits-extension.c @@ -1,14 +1,3 @@ -/* - * nemo-fits-extension.c - * - * Copyright (C) 2024 Linux Mint - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - */ - #include #include "nemo-fits-extension.h" @@ -151,14 +140,14 @@ get_pages (NemoPropertyPageProvider *provider, GList *files) g_snprintf (key, sizeof(key), "NAXIS%d", i); status = 0; if (!fits_read_key (fptr, TLONG, key, &naxes[i-1], NULL, &status)) { - if (i > 1) g_string_append (dims, " × "); + if (i > 1) g_string_append (dims, " x "); g_string_append_printf (dims, "%ld", naxes[i-1]); } } if (naxis == 2) - g_string_append (dims, _(" (width × height)")); + g_string_append (dims, _(" (width x height)")); else if (naxis == 3) - g_string_append (dims, _(" (width × height × depth)")); + g_string_append (dims, _(" (width x height x depth)")); add_row (GTK_GRID (grid), row++, _("Dimensions:"), dims->str); g_string_free (dims, TRUE); @@ -172,7 +161,7 @@ get_pages (NemoPropertyPageProvider *provider, GList *files) int has_y = !fits_read_key (fptr, TINT, "YBINNING", &ybin, NULL, &status); if (has_x || has_y) { - char *bin = g_strdup_printf ("%d × %d", has_x ? xbin : 0, has_y ? ybin : 0); + char *bin = g_strdup_printf ("%d x %d", has_x ? xbin : 0, has_y ? ybin : 0); add_row (GTK_GRID (grid), row++, _("Binning:"), bin); g_free (bin); } diff --git a/nemo-fits/nemo-fits-extension.h b/nemo-fits/nemo-fits-extension.h index 6fdcc899..77a7e92d 100644 --- a/nemo-fits/nemo-fits-extension.h +++ b/nemo-fits/nemo-fits-extension.h @@ -1,27 +1,3 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ -/* - * nemo-fits-extension.h - * - * Copyright (C) 2024 Linux Mint - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Author: Linux Mint - * - */ - #ifndef NEMO_FITS_EXTENSION_H #define NEMO_FITS_EXTENSION_H diff --git a/nemo-fits/po/POTFILES b/nemo-fits/po/POTFILES deleted file mode 100644 index fad3a284..00000000 --- a/nemo-fits/po/POTFILES +++ /dev/null @@ -1 +0,0 @@ -nemo-fits-extension.c diff --git a/nemo-fits/po/meson.build b/nemo-fits/po/meson.build deleted file mode 100644 index 2b65bc0a..00000000 --- a/nemo-fits/po/meson.build +++ /dev/null @@ -1,6 +0,0 @@ -i18n.gettext(meson.project_name(), - args: [ - '--directory=' + meson.project_source_root(), - '--from-code=UTF-8', - ] -) From d24f8827d1c06fa273035e6f8eb3fa3adeed4753 Mon Sep 17 00:00:00 2001 From: Ed Lee Date: Mon, 29 Dec 2025 14:33:21 +0000 Subject: [PATCH 3/5] Renaming --- build-order | 1 + nemo-extensions.pot | 45 +++++++++--------- nemo-fits/debian/changelog | 2 +- nemo-fits/debian/control | 6 +-- nemo-fits/debian/install | 2 +- .../debian/nemo-fits/usr/bin/fits-thumbnailer | Bin 0 -> 30088 bytes .../nemo/extensions-3.0/libnemo-fits.so | Bin 0 -> 67464 bytes .../usr/share/thumbnailers/fits.thumbnailer | 4 ++ nemo-fits/meson.build | 14 +++--- .../{nemo-fits-extension.c => nemo-fits.c} | 4 +- .../{nemo-fits-extension.h => nemo-fits.h} | 0 11 files changed, 42 insertions(+), 36 deletions(-) create mode 100755 nemo-fits/debian/nemo-fits/usr/bin/fits-thumbnailer create mode 100755 nemo-fits/debian/nemo-fits/usr/lib/x86_64-linux-gnu/nemo/extensions-3.0/libnemo-fits.so create mode 100644 nemo-fits/debian/nemo-fits/usr/share/thumbnailers/fits.thumbnailer rename nemo-fits/{nemo-fits-extension.c => nemo-fits.c} (98%) rename nemo-fits/{nemo-fits-extension.h => nemo-fits.h} (100%) diff --git a/build-order b/build-order index 3cffa070..52efffcc 100644 --- a/build-order +++ b/build-order @@ -6,6 +6,7 @@ nemo-compare nemo-dropbox nemo-emblems nemo-fileroller +nemo-fits nemo-image-converter nemo-media-columns nemo-pastebin diff --git a/nemo-extensions.pot b/nemo-extensions.pot index 4fb48e3b..97cacfa0 100644 --- a/nemo-extensions.pot +++ b/nemo-extensions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-27 18:10+0000\n" +"POT-Creation-Date: 2025-12-29 14:12+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,88 +50,87 @@ msgstr "" msgid "Allows managing of archives from the context menu" msgstr "" -#: nemo-fits/nemo-fits-extension.c:93 -#: nemo-audio-tab/nemo-extension/nemo-audio-tab.py:71 +#: nemo-fits/nemo-fits.c:82 nemo-audio-tab/nemo-extension/nemo-audio-tab.py:71 msgid "No Info" msgstr "" -#: nemo-fits/nemo-fits-extension.c:143 +#: nemo-fits/nemo-fits.c:132 msgid "Error:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:143 +#: nemo-fits/nemo-fits.c:132 msgid "Could not open FITS file" msgstr "" -#: nemo-fits/nemo-fits-extension.c:159 +#: nemo-fits/nemo-fits.c:148 msgid " (width x height)" msgstr "" -#: nemo-fits/nemo-fits-extension.c:161 +#: nemo-fits/nemo-fits.c:150 msgid " (width x height x depth)" msgstr "" -#: nemo-fits/nemo-fits-extension.c:163 +#: nemo-fits/nemo-fits.c:152 msgid "Dimensions:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:176 +#: nemo-fits/nemo-fits.c:165 msgid "Binning:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:193 +#: nemo-fits/nemo-fits.c:182 msgid "Data Type:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:199 +#: nemo-fits/nemo-fits.c:188 msgid "Object:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:203 +#: nemo-fits/nemo-fits.c:192 msgid "Telescope:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:207 +#: nemo-fits/nemo-fits.c:196 msgid "Instrument:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:211 +#: nemo-fits/nemo-fits.c:200 msgid "Observer:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:217 +#: nemo-fits/nemo-fits.c:206 msgid "Date Observed:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:225 nemo-fits/nemo-fits-extension.c:228 +#: nemo-fits/nemo-fits.c:214 nemo-fits/nemo-fits.c:217 msgid "Exposure Time:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:233 +#: nemo-fits/nemo-fits.c:222 msgid "Filter:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:237 +#: nemo-fits/nemo-fits.c:226 msgid "Bayer Pattern:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:245 nemo-fits/nemo-fits-extension.c:248 +#: nemo-fits/nemo-fits.c:234 nemo-fits/nemo-fits.c:237 msgid "Gain:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:257 nemo-fits/nemo-fits-extension.c:260 +#: nemo-fits/nemo-fits.c:246 nemo-fits/nemo-fits.c:249 msgid "Offset:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:269 nemo-fits/nemo-fits-extension.c:272 +#: nemo-fits/nemo-fits.c:258 nemo-fits/nemo-fits.c:261 msgid "CCD Temperature:" msgstr "" -#: nemo-fits/nemo-fits-extension.c:284 +#: nemo-fits/nemo-fits.c:273 msgid "Image" msgstr "" -#: nemo-fits/nemo-fits-extension.c:312 +#: nemo-fits/nemo-fits.c:301 msgid "View FITS image information from the properties tab" msgstr "" diff --git a/nemo-fits/debian/changelog b/nemo-fits/debian/changelog index c5905d29..6c5f59e5 100644 --- a/nemo-fits/debian/changelog +++ b/nemo-fits/debian/changelog @@ -1,4 +1,4 @@ -nemo-fits-extension (6.4.0-1) wilma; urgency=medium +nemo-fits (6.6.0-1) wilma; urgency=medium * Initial release * View FITS image metadata in properties tab diff --git a/nemo-fits/debian/control b/nemo-fits/debian/control index c3dafd76..5952285f 100644 --- a/nemo-fits/debian/control +++ b/nemo-fits/debian/control @@ -1,4 +1,4 @@ -Source: nemo-fits-extension +Source: nemo-fits Section: gnome Priority: optional Maintainer: Linux Mint @@ -13,14 +13,14 @@ Build-Depends: debhelper-compat (= 13), Standards-Version: 4.6.0 Homepage: https://github.com/linuxmint/nemo-extensions -Package: nemo-fits-extension +Package: nemo-fits Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, nemo (>= 3.0.0), libcfitsio9 | libcfitsio10 Description: Nemo extension for FITS files - nemo-fits-extension is a Nemo extension that provides an "Image" tab + nemo-fits is a Nemo extension that provides an "Image" tab in the file properties dialog for FITS (Flexible Image Transport System) files commonly used in astronomy. . diff --git a/nemo-fits/debian/install b/nemo-fits/debian/install index aff5c53b..5990681d 100644 --- a/nemo-fits/debian/install +++ b/nemo-fits/debian/install @@ -1,3 +1,3 @@ -usr/lib/*/nemo/extensions-3.0/libnemo-fits-extension.so +usr/lib/*/nemo/extensions-3.0/libnemo-fits.so usr/bin/fits-thumbnailer usr/share/thumbnailers/fits.thumbnailer diff --git a/nemo-fits/debian/nemo-fits/usr/bin/fits-thumbnailer b/nemo-fits/debian/nemo-fits/usr/bin/fits-thumbnailer new file mode 100755 index 0000000000000000000000000000000000000000..3485e7eadc40a35e7b97eefc32a6cdbac68c3918 GIT binary patch literal 30088 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 literal 0 HcmV?d00001 diff --git a/nemo-fits/debian/nemo-fits/usr/lib/x86_64-linux-gnu/nemo/extensions-3.0/libnemo-fits.so b/nemo-fits/debian/nemo-fits/usr/lib/x86_64-linux-gnu/nemo/extensions-3.0/libnemo-fits.so new file mode 100755 index 0000000000000000000000000000000000000000..ab55657a631f13986234c5aed09c4447cbfe8d34 GIT binary patch literal 67464 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.56.0' ) +project_url = 'https://github.com/linuxmint/nemo-extensions' + i18n = import('i18n') gnome = import('gnome') @@ -27,11 +29,11 @@ config_h = configure_file( # Extension source files extension_sources = files( - 'nemo-fits-extension.c', + 'nemo-fits.c', ) extension_headers = files( - 'nemo-fits-extension.h', + 'nemo-fits.h', ) extension_deps = [ @@ -45,7 +47,7 @@ extension_deps = [ include_dirs = include_directories('.') # Build the extension as a shared module -shared_module('nemo-fits-extension', +shared_module('nemo-fits', sources: [extension_sources, extension_headers, config_h], dependencies: extension_deps, include_directories: include_dirs, diff --git a/nemo-fits/nemo-fits-extension.c b/nemo-fits/nemo-fits.c similarity index 98% rename from nemo-fits/nemo-fits-extension.c rename to nemo-fits/nemo-fits.c index f18d658a..ee43305c 100644 --- a/nemo-fits/nemo-fits-extension.c +++ b/nemo-fits/nemo-fits.c @@ -1,5 +1,5 @@ #include -#include "nemo-fits-extension.h" +#include "nemo-fits.h" #include #include @@ -297,7 +297,7 @@ info_provider_iface_init (NemoInfoProviderIface *iface) static GList * get_name_and_desc (NemoNameAndDescProvider *provider) { - return g_list_append (NULL, g_strdup_printf ("nemo-fits-extension:::%s", + return g_list_append (NULL, g_strdup_printf ("nemo-fits:::%s", _("View FITS image information from the properties tab"))); } diff --git a/nemo-fits/nemo-fits-extension.h b/nemo-fits/nemo-fits.h similarity index 100% rename from nemo-fits/nemo-fits-extension.h rename to nemo-fits/nemo-fits.h From b6074f475653b5eb4f0cc81d0dffe9db9e74bbd5 Mon Sep 17 00:00:00 2001 From: Ed Lee Date: Mon, 29 Dec 2025 14:59:04 +0000 Subject: [PATCH 4/5] Removed local install file --- .gitignore | 1 + nemo-fits/debian/install | 3 --- .../debian/nemo-fits/usr/bin/fits-thumbnailer | Bin 30088 -> 0 bytes .../nemo/extensions-3.0/libnemo-fits.so | Bin 67464 -> 0 bytes .../usr/share/thumbnailers/fits.thumbnailer | 4 ---- nemo-fits/debian/rules | 5 +++++ 6 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 nemo-fits/debian/install delete mode 100755 nemo-fits/debian/nemo-fits/usr/bin/fits-thumbnailer delete mode 100755 nemo-fits/debian/nemo-fits/usr/lib/x86_64-linux-gnu/nemo/extensions-3.0/libnemo-fits.so delete mode 100644 nemo-fits/debian/nemo-fits/usr/share/thumbnailers/fits.thumbnailer diff --git a/.gitignore b/.gitignore index c0622f45..12694605 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ nemo-compare/debian/nemo-compare/ nemo-dropbox/debian/nemo-dropbox/ nemo-emblems/debian/nemo-emblems/ nemo-fileroller/debian/nemo-fileroller/ +nemo-fits/debian/nemo-fits/ nemo-image-converter/debian/nemo-image-converter/ nemo-media-columns/debian/nemo-media-columns/ nemo-pastebin/debian/nemo-pastebin/ diff --git a/nemo-fits/debian/install b/nemo-fits/debian/install deleted file mode 100644 index 5990681d..00000000 --- a/nemo-fits/debian/install +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib/*/nemo/extensions-3.0/libnemo-fits.so -usr/bin/fits-thumbnailer -usr/share/thumbnailers/fits.thumbnailer diff --git a/nemo-fits/debian/nemo-fits/usr/bin/fits-thumbnailer b/nemo-fits/debian/nemo-fits/usr/bin/fits-thumbnailer deleted file mode 100755 index 3485e7eadc40a35e7b97eefc32a6cdbac68c3918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30088 zcmeHwdwi7Dng4ljGn1K+nOuM%x50wOONImx0YMWWFu?#Z1m#j0CUZ$fl9@Oc2#7!p zQKlFRt+uw+s%y1gsW!?InTMh?|Cn?v#w!@swhlu8oQJcbab4+)R=@Lo6HQ78a9WG!tq>o4zmE( zIZn`PL;|YVj;ljcn~B$ul3Y1uhDj#~G?S_HkW!KxY3p+cicFbHz$9l-)`auZAKL|= zOeH;I&n@UIFa1}ud@{|Iqu3n3P{{*^f%rk@2$uBo{YEw&B ztY)Z|KElcBRCftj>LXg2Nhkh`tCoE5#WzbU+n(L~hYJIRp$m-p4-pUfO)|to8|gEv zoWqo-u1P#19$!$&5yG8?{pX=qJ36i`9Yl86?NSJq3`1!JZa93~2>j%ydl)^x89~pJ zBjCR^0)Ed3cDIkf5B6dGX&yn(FGkR_Vg&xNBj8^iLC?t%@SP**nLYxZh5i3T$;FpYmUjw}Cy2xg>kC7WrKlAxoJ7Q5^BI%DOeLm)^Z(i;ThT@^t zNFo`EH!ok*9*c&W{VnYwK^vapLw5|AN;>?JDAWeJ{JwA`>Ti#13$a#TtTP#boj@#_ z40R=a(a@IDk^W%NN7BAfG#QVC5~p)?`s0aVw1wlL5DSN6oe&HqlE}7h+6w7Jv@;%w zCd0^f_}klK0itwvZ3fImT7#Q>osq7VRG1tBF4o}-`jdW^Lr4Vt?IB+x($R?!pd2mN zgaS!lDjE+#ZB{Y@~J`KSI!jWVm5+l)SE*qfiY__zae&HhD4A0D2 z*{mm<&*o-$E~3Vx4EfWBKv|k@;th<2Xy9BFI*aHkD>esLIX}yJ@c<2`*iM-9uf%tncv}r8Gl`e*(aQv$#%3DN z<#s#=Z=PCl(uo|rshZ>abMWS=3CEwz!Iw(qNI%KJm*?QCOuQ915jjDelY=)yzzH=u zcsZ95!JC8U=TSlpYs|rm`A87fg|5t=G|+&F&)EvPhV0UJnHR!!FGtN z9K7gL4`YMV{)VG-at$N?HlhstesFLwypO{)u?!r`!Ze`_JfDSWA{lr*3)93n@DEv- zCX|6MXJML125!j0G=U7nvoK8@11(vYCX9imEKC#Tz``s{6UV@eEKC!|z}Z=tCW?WQ zEKC!`fSQGAVi-8}S*E-+Aq@OJ3)4g}a4ZYc1TgS?7N&`M;PDJRIBf%>8Fo%y%y>Kp zr(Kx`f3$u?_R8ATwau%%y%Xn+0_qFz_oJ^~|9h$IUWxA9^45 z_8O0)WqErSyo=;;j}3weZ@Pye_4ab|d?>JVs$0autX>1%-`(M}*AqP(;H1#h}%BUqq-e1w2EN8l1up#N}B z8_=5}@FG~cknd0b$KYV~F>mja-0}1wZ~CSF*Mal)_Ijbo+j|>D&zt@oSa<|q>LEPE zqrVq?J$=sIe?%7tM}G(4?q_(AoIT^v&-dO*#p(IAvu6)jx_K37&YtT4EZ+MFMYy)N zZg9aMy1etI*GbFX9x_)wSXbRwSN-FL-ur3*dehG|686VGqQ36k+vr-H?%{;qCyB5; zeWD@VyM}Y#R!+&@Mq9rR-qfZK!@(YftL92juEkvBEtv53j&8?r@$6(O&EVhAN_r|l zB$4l980&t9SQY0j4*^)5e#Awpd+*$cr1nQN48FI%wtLW#+|bbb$N?Z1r~my~8lAY} zaZucl{!70XYO6o;rr%heek=VXc@4u2>36-|hcFIvpPoIB?C%64SzZ8RwcRf%i!b5k zciiFK%S|F;Bj}XV_xvg6)h{D|6#E85q?|GA{0kb|ui-c;I_3QQYhmZ~qs|*U;5Iq= zG+Ny9-Z*r;36W{t0FhoqX~W(gGWlNPsYP)8chx^0;=BvG4xMstfb(k)pK@M!q#=EL zdHMtA_ui=QKBRcRzUOD&k3XwF@3{u&W3SdLKfk>Eln)OgMPaSPWc^W=*4Kkl+2UeTrgszu-m%@_>kXKxNmb4?A}s zM!_5AzSfXFRv&oL>sW^k=N~)eb)HX= zKQ0Qg;SJOT@@rqi{xS-64EqOYe=CmmeB@klvi~>#ZdS&j{$hAkpMKN3_etuIyvct| z{X%rp-q9)w)Bm?mvRy7!jn2>eFwRP*dG~s4)#z-a-^AEZ-S;d_!u=gkj}j77f2}ap z{~%8X`|p9O#e1Km?kihy&tTHlkbbBCey}V~e^}jzE^}+&duNdw3%(A${dYj9y0810 zIgnzYdH1e967*hB#^(lS&+Rbk?F}7YU;Fvmt7|vZ`mR0%AH8IvcL9R}@7_*ZbzlEz z;TIA5AB0L83;jrWG~at@ar)2TccH-G9RU8lceo30;LN9g9CzWpo`&=X4e3+Q?t)3P zRrkLMlG!lPga`hF#@7Gz$Ag0dg*0%xL8bGt>Oa+|f4;$+{=K*R4<{R&5$Wn5!`xdS z502K(VeDVS9_QrU&`X6`Pyh_(4V99)pCm`)RPcM#kVnu922VIA?;^fKW(xi{h}e74 zF-p$+%$q*xeeTbfd7t}4^D2kEKmROQ1_ig73T%TX#Jnu!$-i9-h|E$KtoC*SUpJ?}E($`rr5nWeLL9!$t>Swt%yuRMXCiPW0%s!d zUy6W&HSh%8L1}JFb+klrXTVLMyCN70`%~@7dF~k(%|4H&OwMf~-#XTSN2Qr|DR~vaz{-<%(5TyK~*JFAYUQaep%8 z&e%)1!?Cz~NqzGwcccTlpsGETu-k>hiFtOnyE1X1yRwoOpUUgTmKT*s)Q#IYq4q>x zd`P&Bgef{C$2T6YWLqS`gGM}?iN}mv4v&eUOPTuUX57&V@=8G1g6@irR3hna3Aw8) zXH?Caa~?5ewv+s-i?NeCF(YF8%T7)@5v!3bboNG@OaMXn`9<;$FoEw)|kva{x%KXdBYz;gM|BRvjZ+=MVU(woG70{9wP z7{C`|zZts?KGOLYt1EKdsCq|P>c6DjqW2m%Te_{+Hn6wZ2at&;dyAW z{m^`fM?T{tpDP+~(y`>nH~FlOe7=aznQ4>sfBS4OM(_bFPVYIq!=z(B#Id6v-}$X zx^H$ac0<8UcWwW7w;P2#^T2jvEYEy_Rx0n7zZja@qdpcNS(0q+606PaEDJ_0~D zx2Xdg3f$NBAK9)IA~Oz^H#i zuo%GO$UKDIwi3WHb4Y22leBFju4WKEMCJqR#a9DZV{%;~n3%BvNNxY!*Q;G7UgB%{n=Qd^;IH8CFqA%#qWfI|RwBXa`*uL5`!neSp( zgQn~sQOFt~C@4E{Y*J>hf|yBspGSZQjM@JR@kh+rMp**Pa_vb7S|%f0ze4601e5|e ziOin~umYgl--7@O9ydkH&^dWjcTrTiNv>c00QzbBF^s+m33#N;11Gg^@(V#?1ogqbA=Rl|92)6&Bj-lcq;CvCf)!(!tu>i71qP@>;rhPQNO2+M$E4X@d9m; zo8v&fz$8Bn@()by6a`fANrV}}Vd^TA=SSe_AIftF%8VM>N3B8Ie{eff119qeV5XN; zs1YY%sLXWB4!0%?e1Y~r#*g(T*$MKclH4fC)>f0uBNa0NG7-ozaZ`?tJyOTMDWa$- z62=Rre$8YeKfWWGHf0RSSKlU6^z`R3spxmpVH+K4>7df#7-n4k03E(T2bzHODRg)n z6Ow+64iD4e7CJPOgp;Uo0xJm&<1o4g!}V>8_jOwb3oEW zIR$`qFVM;_#-0z@X0twkq06RQA3-v~W>ai!@Y<$YF9D}bv0TF;<7Ffh#cXP`8D9ji z9wBkXaxExDlrNw|4|Y2#E@gTr5-`&Q05kVe;?lp3Y1!&7KoIASsRo1fQy|n;+!^c7 z&@i-FE>cwVeIo7zqjs_DO3GIu(Apf=5z2oB%Cvdo<`LrwLQucd=8xk=(sgR)HgO7I zjgg8D=Nxe9hv>i+UqB@|r}!?Cy%QY91?4nFPPzkmmr-fsZ!KMA$7@_ufMzAF&|gKS z^^%Vp8OpWDgSl%`Hb?|Rz)?xsbCE9jStlt32TH!v9{8)Ozz&s^~4UwgOrqNLMYk z)!HjSSzm-{+uHG;Az$<-9L7?gwtgQbZP8*U81*t7&Yp^cas+gRN@%Jrs4rRuyk$DL znPoAtSiS?YYWXK9!P_2xg+Rdyjf8blZk>UH{VQX?2>$ZBuTuU7g7yGv)4o=*6Mz#P zNZQvaMe6~1wdDx8eZ69*k~M1A0%!lcpsmpgP#F8wN}&#m8?|4M<_!XB(-y)byH9X- zY8R2*M#Y|jmM-l#WWlf43n72Ab{isTZ&4gqgLb>JT)X{E*jC z0Zq{8Su%S}KyF@H_D)fv3hgIU+G_<=r5z-Daltu9d!Otj1g%DEA`3|Yc{M*3B_%i; zwM$6LW&t&81!R4TfYxYqdSdSq(C4))5o7yS0d3S?BYWEf6x6m7=XHvc0@0=|BYWG0 zy-tlDowHvrpf1ft)^`YKm-ZCVb_!^ZwwtW)5<2&3yGhFzl%lUg=k00*Xg3Jb0ZnZO zty@4(XzBob*)5bD)YKQi-y@(tO)W+wZWPcFP3;5cO-d16+8otXdeeB1pdHs#dR#9p zpc9%}2HGvcLcgY71L#YN{ZYuB)YK=SbD!e)4^*F9SKEQyFF2>_ss-`N=F+1*M=L&;u6rH_-B;fV@_wlfeQyQ1j)3Qw!5+ zU@D-xp?c*=LyTDDC5IhMC%R4(IOinooN_MXgViTlxO6X^JFI9G&|2;~qMQd%dmjh; zPee?Zb~PNfzpOZkgbAF4OW(oar;4frrF-Z=gswpO?lx zie^#pr9$F=i?IAa_7#4h>5A$9j@Xth#G!DRgCllEntxVy<7o$p*Lts&8;#9~H zp&_e_=lI1eH|-#9`ww(p+G|OimzHx;eJE6W3RQ$SP#8ok#yyQ}VY8jo+(d#8gNZrr zggc|km9a+vJVLm`z+>*X89eq9!LMV9Qj};h zMS$~jUpcGmRv;}-wYZ$vggMv0BHY$RO7R7Rdkj9avU0Q)FypcOQyAi~gGy8QAlxZRl|Ks!wcOi{Udk1w|RLGmhn!06cqWLstfbHQD)hNZs0$nSz-8Asp1p&x zQ+Rec94fY7M#{bcu@XC-qZz*fZ|NxN1jc#LTRM?vsUT&%AjVr@7|qLn*4Mz$VRS)5 z6}Nd-Gqhi0(5lm{0_w{~3LLX0^6ZU}tKrzu3*q0W2%E^`JZ99U&{j6d_B>rCvC&ru z+C_!rBO85-02huTaLgz?V#5|WP9Q%j9^1l}@PTPmAlA;7ifkm<#k@QVc4I$^vDVJb z+u_g~kvSqhQLGW2)#J z?yeJ6!CXT%2>D`Nxzyp9qSu!SKPV(6qHqTMn&Lv~V7-)kD$9#tWpu&!a}h6+8|_di z8AIbWR<*UF`B>2?FI5~45veH!L>@O(R2JkcI~9Zni7t-EXKR~kdIEw8HzsClc~YsO z6+ttP9_gLTql(7u&QK63qD(<~Y+w|11vO`nR?g)fe-6$WfCBpd<`CGLz9j7+Zk72D_?ER-KT*_5yY#fP=c3Kto{# zs=TeB{Tr?v6~p;?Luodg&l*Z+(s2G1iJ@BFHk_8xhQ)RP@^={yuub|FvUdZm7!&R@ zoZ8kTVD%|woG}3?b*(YsOF%5xZCEX(hTWC`@CfpXf$taS3eLhT>D`7wtd>^{3*p0t zi%2&BquGye&Bk{D{G(9;a-sJAj-+9kZrE!L%Vhw!0MZJQMuE0hq3oY_EZc6_zX|vj zz=}nCcL$`)O2t-2Hr5E^^P#jy*d&AM1tmtUudNJG zz`!YUpkHoG0jxTW(S%-ROt$!7;k(8txHfsdG0GMm>Ik`Pd}xfi+%PUN3aI9g1FraP zW9&_aBWBF&hSou&7&r&13>(EBk-K4;aqe_u#xi5xGLBHm6Lpy}zScOKa@w}AK%L`<}8Z(xe~*8#&Fn{0(Y4i zy-h|bF~gz4u*l9wjP@HPgn8B|nPXVj8HMYNl4fGFtpV|Jn0H!S^_SNh*2}Ll3fCLj zTBGn1P!_DEYNu8*+9-qq)J8=qH{>K~s$sM+&9c_kZK%)m{83aC$Dq1*&o?e64y~Fq zX>reQjB;pEw1TH0qy^No6qf_|dd>S?#hm6tTNUSNmjOp{Nc)Q+}{zZ?2O^YC!Ub5>`11f zp#`ns)9EfC+La#yzU|CKY`m9&RR4?a-S(V5Nr0}u)~)-S>_5U%Wu$CCKC z3?ABE5KgtX1L;p}jRxA{v1lxns7yt-M54jUBz=r0VJacV@_Y)1{ctu3Yy49+#L2%c zBh|;^m5C%&!ab7^X!j@DBpKF07}lHiWZWN3oc^sEpRXkqX;0$AJwv`}6X|FbU(@OE zceMpmY)NM_&JuV?-6tPS7vIYfU+ckgDLy=u2*e}&5q195yD!O>`WjYZue-9Y!MCWX zzPWx;Z3A1n_;O$UisrheM&H8vhWZtCwM`5a5c0L)8$X-)^YVeHZ`-y|JT^o@{fZ?k z8NT)t4+WyB4*Ez@n<=+78N!p}Eb8yVXNTgUYg71)kS`cXwuR!pL?{%58u28%ueNC^ z*=9?xNcrQNSi{N{OKE3;RGbQFepzS;`-+t->Ojc*1k!0=JL*6H>C_irTxxam1KnP4 zO$FNgaTafF5y8w-Q_)1EH5v-KIa}Trj_@HO{scX}JCNjoz(e(DKA|p#>Ik)mI#?1< z*hkUM{PDPdD_a`eR8Nh%vw3T0h_!|Moji`w7(Um8R+#j6o%Xq-Z3tH+!O)sW4XazR zxD%f`%Bh^@`i8nyY+E!K5!RBV8a30pEz&7UlZ=NtL;fV$3-WJJWrE)ph;?-O_}7;h zW#gd)KEl*Gv?9t51OyVSR&wwYRXZZlhg@U5s_UdOftIy!mmXna~!eewU! z;FKAah8sjMfM6K-Zww{Fju?M;{Q7T>N~na)_q>uk8o8g}3gmpH3oWdLH~CiHb#jN0 zt7@B8)T6iNhz|Yom+braXjfvZ4?PQ?EEA27#Zt-66h1D-hcU7jWUVc+80LkjsC{1) zlLJe((3L7R=ukAsA~7Fz3hIlT%3mJ|P!r?Ll~~aqdB6A3_?Kj8+B#M>H&ID)x|?@xV_g&Tp|LmekDBpj#(M@I1@MAR2Zj?GKu#Zx#Fy2=?J;yl z^J8W7kuo$=INpjb#J_2l+hCjO7Oietg_nD%N4JRnlJ|Wyn(q)lJgmfmk$7?|+tw0E z(m0#xCcJ_m?++wX{&ut4hI9gqwXN*GJ6|li_MH`4gS|_@qQ1giE5LQXNqiiBc07qOoq( zs@kP>__7@T&|5C4uBmBdldL>3-cdVf^GAdDmfUH6cZ8B{v0w(@mTC?8Xi7z<$6n&C!NTe38T)nWNj$vj)tzjI_9ZE!F!Q|CcyB3WxnIK1)8PrBAY4^7xRw)E@<_wk$M?&qG6tnX%&B1l6npu)h1*gRn z;T#gR#dQl;qZgVdQs`6k+7@f2>O%Xc`GQ^r<4(#?=lPb_(P#BASkqVYc-!_zw{mlt z7QYxBC?4CoB9@GVw^9#FrV{9a7;?j*IJHyRnbCK>i&vxiBXqhoG*)uhHKQf#Ns9V- zU}*B>p9ABG>Y6bgFU*nED%SQ&|$Hl+gj$;0Wb;^cLR zde&;r(+Oy3<>L`D9?$grw+=l48s95Lkt_L0D~)|%<^??67(TQpNXVRCh>TOFAR`2( z{cxm}96@`eL^zCGA{oTXnS@HALdjS158q-WCVp;9IgD2EO_ZSq!V8r3I1r16K;q7l zN3DUt>0VXOoG$$tTB@ubd^>V_HW18iuFT*vh;J6Tx}vi=%4&ViVO86I2R)x>lZ3;n z(kyuCs_AoOB98|^lt$gUN?E1fW&f!i$vgH>kO-ykXSl-3)q40ADBVR$X|rUBy4vZ| z_5C&tPipCp75olQYVF~+Gc3v#v|_|J%M0dXXgd3{276!D-qrAs*Sp&N2B2SBZ?Z}2 zFJ~BMD(m!__rv-p*Jbr&$!<%6ZDW(}(%m!hq}t4zxtsdU>iw!M!60LqbQi8tP4gL_ z*jH7x>Ms4O>M0c=IHi7SReaog#Yaz4@hzv2y*hFC>hJ2{epi3qK$ssZc(Fifq-SX8 z@>hu9m?M?8kW|`oy9H9W;{{1&gWheu(TbwpXnl{M#|mCAAfDF?-heLs4TMkGAXE-j z^%+<7ndJtmu^WUA3O0o4Spsv*vHhr(^ge2RiUgjrernbB-@aY{)Vkls%?e3~nVws| zIY#KvS%nhRD=L&0y<#15>wc)?@wDsoU6unD%8&@>%#oO?1c*7HulpXaCNSR*X4IG5 zEK{-MNt@2TsDSZ{$|Fh<81A>751lwpxJ&;SZ;^u3Yust%ksxPlGTXxe1vLa%`nwKQ zz&8}ca%INKOl7@3a~_I5uTi^h=UsZ^8f85^xAmGFS*Isd-0^Cvw}{Q$!v%GByHWjJ0?p|CNfcQG}~ zsZY4C^zU#|SS|7iQ=RF`6}s+3Yk)0@b!xUXbTz&ED zHvPkbd+p2^lPRaBm*1{1!;?W=rTe;=@lEq#J)M>4CFd}!96EO4Uc}$o$ZMT_FqqFm zjZy*SX57=E&CQQkcSkxLKi!Q{=@E1J!iLH3Ht|(?_?aeNzIS4>vwCC{C~?&YjA*QQ zIGE$dWWF;isN%VDvMb+Xk@!8Fe>9Wtl}P+Z{(pz_m$8#)OU`UMTzLg`B0GJ#_Ap$(coGFx@HUftUrM%ympOhc%YR?!pE(11WnRDgBk*|c_q6R}j(45* zp3C1j{xo(*H)@B|GYc-ljtFa;ryZ1@!{~@BjCR{0{$N0UGyslHPRE2KFaagaaB^E9zhSi&*#E8T%M=r zS0nKM4S2Uynv*)z;mcJHyjwkee3%71`R~fJOHV)!7oXY@@JmO)(}TFf>A7YE{I!Hv z@gNDNw%qMrUf$E=yk!JEH;jPa54<~9v6+7ucxs=vnxVvlBk1}02zdHknc>R&0qG}- zTj&?Jev!v~KO8?jcR3uMtqR1G)t(sEa{Mh3U((--Ro!GFi3@#P{bhf^z?basVO=JQ zRedb4#eA*pu@C2&B5(a7=)&@@ zug+`Aco#S2E>rR!7~snY!!E95R!MyL%?4@j@BNqq6$>VFf2N^E{yG4C{6A;4^)!Rx z#}mxoP{_ZpAyyI*ZLEHXpM-#!mP8_x=j*mF@o1^?#d|q%>5|{ z{=*p~{5VE15%Zagez`ZuG9{mhUto~G6Onaj=(@D8ekB4J#4Vy!f)<|T?H;UU4*ltk ztkzkKc@kSYaK8{~GA`0KnZr^WZuT%w6!#oGSj_R@?qg?&7HP96TBQkAMuH})c40m4 zKDIK>-iCXI%oE%ig$a>j*@;u+-Mw7E2Uz-*PAEQW_Gr=AhbzH=n%b5NXR@)`8y&|CdAPMnFniT9r%$D;6g2_R&df% z8}I^*M8h$e_qVjfLz^XpUl|I?JR&HwghsVw;aH#@Kb(?L7>{DDh~WR1Rpp_-ay<+;qbZsO_s zDpy`!-^tW%^2sD${wfgg-N~5rU%q!Q(+X2iF2dyd?*|zgd=}z$9nPd?!!7vsf_8)SV+s*?jo}z~$QC zXUfa8hKM;^zWh_5<;u%t5}6KA!^_#EyhQy7nOu2!-Y-*nWF~jZkKcc<~F%y znjr{$zWrB#9wL9XDQ~8jYldw3_J0j(uKXNRPNqK`BAsnN68$zZw4!8o+syik{M|U& z-Xy<-W%>aK&K&s@^9ARL3q>mV1eCQe@&5q=wOwgnUQf#30hGV@C#zA)$v8d?St`Gj zm)EJ~(}Bd+FOtkr%F7hbR1J}5H70A7NTnUAK*~wD5b}hR_FXlC;xgs)`N`MZjjm@2 zXR>EVQvQMrMr5SCOwTgq^VrxWrow!^Qcm)pH-h{oQ?Sxp=au~V@)wODe|w#fI7%6Lu^AhyVZp diff --git a/nemo-fits/debian/nemo-fits/usr/lib/x86_64-linux-gnu/nemo/extensions-3.0/libnemo-fits.so b/nemo-fits/debian/nemo-fits/usr/lib/x86_64-linux-gnu/nemo/extensions-3.0/libnemo-fits.so deleted file mode 100755 index ab55657a631f13986234c5aed09c4447cbfe8d34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67464 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 Date: Mon, 29 Dec 2025 15:08:11 +0000 Subject: [PATCH 5/5] Removed some unecessarily verbose description. --- nemo-fits/debian/changelog | 5 +---- nemo-fits/debian/control | 8 +++----- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/nemo-fits/debian/changelog b/nemo-fits/debian/changelog index 6c5f59e5..33f035f8 100644 --- a/nemo-fits/debian/changelog +++ b/nemo-fits/debian/changelog @@ -2,9 +2,6 @@ nemo-fits (6.6.0-1) wilma; urgency=medium * Initial release * View FITS image metadata in properties tab - * Support for standard FITS keywords - * Display image dimensions, data type, observation details - * Display telescope, instrument, and coordinate information - * Written in C using CFITSIO library for robust FITS support + * Provide thumbnails -- Linux Mint Tue, 24 Dec 2024 12:00:00 +0000 diff --git a/nemo-fits/debian/control b/nemo-fits/debian/control index 5952285f..9adb8571 100644 --- a/nemo-fits/debian/control +++ b/nemo-fits/debian/control @@ -20,9 +20,8 @@ Depends: ${shlibs:Depends}, nemo (>= 3.0.0), libcfitsio9 | libcfitsio10 Description: Nemo extension for FITS files - nemo-fits is a Nemo extension that provides an "Image" tab - in the file properties dialog for FITS (Flexible Image Transport - System) files commonly used in astronomy. + A Nemo extension that provides an "Image" tab + in the file properties dialog for FITS files commonly used in astronomy. . The extension displays metadata from FITS headers including: - Image dimensions and data type @@ -31,5 +30,4 @@ Description: Nemo extension for FITS files - Date of observation and exposure time - Filter and coordinate system information . - FITS is the standard astronomical data format endorsed by NASA - and the International Astronomical Union. + A thumbnailer is also provided.