Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Meson
_build/

# Nix
result*
42 changes: 42 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
include:
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "build-and-test"

build-and-test:
image: nixpkgs/nix:latest
variables:
MESON_BUILD_DIR: _build
script:
- nix-shell --run "meson setup '${MESON_BUILD_DIR}'"
- nix-shell --run "meson compile -C '${MESON_BUILD_DIR}'"
- nix-shell --run "meson test -C '${MESON_BUILD_DIR}'"
- nix-shell --run "meson dist -C '${MESON_BUILD_DIR}' --include-subprojects"
- cp -r "${MESON_BUILD_DIR}/meson-dist/" "${CI_PROJECT_DIR}/public-dist/"
artifacts:
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: "always"
paths:
- "public-dist"

build-nix-derivation:
image: nixpkgs/nix:latest
script:
# Build the project including docs.
- nix-build -A all
- cp -r result-devdoc/share/gtk-doc/html/nautilus-python/ public/
artifacts:
paths:
- public/

pages:
stage: deploy
dependencies:
- build-nix-derivation
script:
- echo "Re-using public artifact from build job"
artifacts:
paths:
- public/
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
6 changes: 6 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
nautilus-python is written by
Johan Dahlin <johan@gnome.org>

Somewhat on nautilus-mono by:
Dave Camp <dave@ximian.com>
Calvin Gaisford <cgaisford@novell.com>
339 changes: 339 additions & 0 deletions COPYING

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Adam Plumb
E-mail: adamplumb@gmail.com
Userid: adamplumb
165 changes: 165 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
## 4.1.0 (2025-10-04)

- Added support for Nautilus 49 (https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/13)
- Removed `MenuItem.icon`, `MenuItem.priority`, `MenuItem.tip` from docs. These were unsupported for a long time and now Nautilus officially deprecated them.

## 4.0.1 (2024-04-19)

- Fixed build failure due to underlinking. (https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/13)
- Fixed build failure with Python 3.13 (Patrick Monnerat)

## 4.0 (2022-09-17)

- Updated migration docs and rewrote overview.

## 4.0.alpha (2022-08-12)

- The extension was ported to Nautilus 43 (https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/11)
- Notably, this removes any direct access to GTK widgets from the API. **Most scripts will need to be modified.** Please check the migration guide in the docs on how to update your scripts.
- Switched to Meson build system (https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/10)
- Removed support for Python 2
- Fixed build with `-fno-common` (Andreas Henriksson)
- Added missing parent constructor calls to examples
- Decorated the examples with typehints
- Fixed several memory leaks (Michael Webster)

## 1.2.3 (2019-07-17)

- First release from gitlab
- Fixed open-terminal example extension (Maximillian Schambach)
- Fixed invalid DOAP file category (Andre Klapper)
- Fixed bug https://gitlab.gnome.org/GNOME/nautilus-python/-/issues/3, setting `argv[0]` to thunar
- Fixed bug https://gitlab.gnome.org/GNOME/nautilus-python/-/issues/4, allow overriding the build date to enable reproducible builds
- Removed build warnings (Christian Stadelman)
- Fix to work with python 3.8 (stratakis)

## 1.2.2 (2018-01-14)

- Fixed [bug #792427](https://bugzilla.gnome.org/show_bug.cgi?id=792427), Fix folder string comparison to prevent duplicate extension loading

## 1.2.1 (2018-01-08)

- Fixed [bug #792348](https://bugzilla.gnome.org/show_bug.cgi?id=792348), Fix syntax error when building docs using python3

## 1.2.0 (2018-01-02)

- Added capability to compile with python 3 support using PYTHON environment variable
- Fix [#781232](https://bugzilla.gnome.org/show_bug.cgi?id=781232), Improve extension path loading semantics to follow XDG recommendations
- Fix [#791208](https://bugzilla.gnome.org/show_bug.cgi?id=791208), require Nautilus 3.0 before importing extensions to prevent warnings
- Switch to using gtkdoc mkhtml for generating devhelp2 documentation

## 1.1.0 (2011-10-17)

- Added pygobject3 compatibility. Retained pygobject 2.28.x compatibility.
- Updated extension examples to support pygobject3.
- Fixed [bug #660290](https://bugzilla.gnome.org/show_bug.cgi?id=660290). Updated the FSF address
- Fixed [bug #660288](https://bugzilla.gnome.org/show_bug.cgi?id=660288). Fix autogen warnings with additional macro ACLOCAL_AMFLAGS
- Fixed [bug #660287](https://bugzilla.gnome.org/show_bug.cgi?id=660287). Make the docdir not hard-coded
- Fixed [bug #660286](https://bugzilla.gnome.org/show_bug.cgi?id=660286). Fixes m4 underquoting warning
- Fixed [bug #660283](https://bugzilla.gnome.org/show_bug.cgi?id=660283). Fixes html docs installation issue
- Fixed [bug #653169](https://bugzilla.gnome.org/show_bug.cgi?id=653169). Upated the COPYING file with the most recent GPLv2 license

## 1.0.0 (2011-04-17)

- Use the gobject instrospection dynamic bindings, breaks compatibility for existing extensions.
- For Nautilus3, the `get_toolbar_items` methods have been removed. (Only reporting that change, it isn't up to us). Should still work with Nautilus 2.x annotations.
- No longer look in the old `~/.nautilus/python-extensions` or `/usr/lib/nautilus/extensions2.0/python` folders for extensions. Now look in `~/.local/share/nautilus-python/extensions` or `$XDG_DATA_DIR/nautilus-python/extensions`. Extensions should be arch-independent now.
- General clean up of the repository, removed old .cvsignore files
- Updated the gtk-doc documentation and examples to work with new dynamic bindings.

## 0.7.3 (2011-03-28)

- Use `PyCapsule_Import` for pygobject as well as pygtk
- Fixed bug [#644399](https://bugzilla.gnome.org/show_bug.cgi?id=644399), in the property page example plugin, get the md5sum of the file contents, not the file name
- Removed extraneous `.cvsignore` files
- Fixed the update-file-info-async example plugin

## 0.7.2 (2011-03-04)

- Fix to get the PyCapsule patch to work even if there is no PyCapsule object set up for pygtk.

## 0.7.1 (2011-03-02)

- Fixed AM_CHECK_PYTHON_LIBS usage of test (GNOME [bug #619440](https://bugzilla.gnome.org/show_bug.cgi?id=619440))
- Cleaned up the docs Makefile.am to make it more consistent
- Fix some python3 syntax issues in the python.m4 script
- Add python 2.7 support (GNOME [bug #633171](https://bugzilla.gnome.org/show_bug.cgi?id=633171))

## 0.7.0 (2010-05-21)

- Added methods:
- `nautilus.InfoProvider.update_file_info_full`
- `nautilus.InfoProvider.update_complete_invoke`
- `nautilus.InfoProvider.cancel_update`
- `nautilus.MenuProvider.get_file_items_full`
- `nautilus.MenuProvider.get_background_items_full`
- `nautilus.MenuProvider.get_toolbar_items_full`
- `nautilus.MenuProvider.emit_items_updated_signal`
- Added complete gtk-doc documentation: tutorial and reference. Enable by adding the `--enable-gtk-doc` argument to `./configure` or `./autogen.sh`
- Updated the `autogen.sh` file so it is not a copied-over obsolete version of gnome-autogen.sh, but a shell that calls the user's installed gnome-autogen.sh.
- Removed obsolete .spec file
- Removed obsolete `examples/documentation.py` file
- Added an example plugin for the LocationWidgetProvider
- Look for python plugins in `$XDG_DATA_DIR/nautilus-python/extensions`. This includes `~/.local/share` and `/usr/share` (or whatever `$XDG_DATA_DIR` is set to)

## 0.6.1 (2010-01-19)

- Look for `libpython2.6.so.1.0` instead of `libpython2.6.so`, the latter is general available from -devel packages only.
- Re-added the missing spec and pc files
- Free pygobject data directly after using file objects. Stops segfaults from occurring when nautilus wants to free pygobject data after `Py_Finalize()` is called.

## 0.6.0 (2010-01-15)

- Remove eel dependency (Vincent Untz)
- Sanitize python search path (Mark Lee)
- Remove gnomevfs dependency and unused code (Daniel Holbach)
- Load python from lib64 in 64 bit multilib distributions (Ted Toth)
- Fix segfault when a plugin doesn't implement the `__init__` method
- Added the `can_write`, `get_mount`, `get_file_type`, `get_location`, and `get_parent_location` methods to the `NautilusFileInfo` object
- Added the `NautilusMenu.get_items` method
- Updated some example plugins
- Bug fix for some `PyThreadState_New` segmentation faults
- Use the nautilus prefix by default for distfiles, rather than /usr
- Require nautilus-2.22 and pygobject-2.16 now that we support GIO

## 0.5.2 (2010-03-01)

- Look for libpython2.6.so.1.0 instead of libpython2.6.so, the latter is general available from -devel packages only.
- Remove eel dependency (Vincent Untz)
- Sanitize python search path (Mark Lee)
- Load python from lib64 in 64 bit multilib distributions (Ted Toth)
- Updated some example plugins
- Added explicit gnome-vfs build dependency
- Removed obsolete .spec file

## 0.5.1 (2008-09-16)

- Add support for location widgets (Tim Cole)

## 0.5.0 (2008-01-11)

- Add support for submenus (Lukáš Lalinský, Sylvain Baubeau, Erik Wien)
- Make it work with nautilus 2.22 (Brian Pepple)
- Initialize gnomevfs explicitly (Scott Tsai)
- Compilable with Python 2.5 (Jonathan Rogers)
- Shutdown Python (Gustavo Carneiro)
- Initialize PyGObject/PyGTK/PyGNOMEVFS on demand (Gustavo Carneiro)

## 0.4.3 (2006-02-15)

- Make debugging messages a run-time option
- Fix bug in loading extensions from system extensions dir
- Fix crash when no extensions were loaded

## 0.4.2 (2006-02-10)

- Make it work again with nautilus ≥ 2.13.4
- Minor bug fixes

## 0.4.1 (2005-09-22)

(missing)

## 0.4.0 (2005-05-30)

First public release
32 changes: 31 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,31 @@
# template-repository
# nautilus-python

This is an extension for Nautilus that allows further extending it with Python scripts with the help of Nautilus’s GObject API.

Documentation, including an API reference, is available through the [Devhelp app](https://apps.gnome.org/app/org.gnome.Devhelp/), if you have `nautilus-python` package installed, or [on-line](https://gnome.pages.gitlab.gnome.org/nautilus-python/). For sample extensions, check the `examples/` subdirectory in the source distribution. Note that some distros move the documentation into a separate package.

## Requirements

- Nautilus ≥ 43.beta
- Python 3.x
- PyGObject 3

## Running Extensions

Scripts are loaded in the following order:

1. `$XDG_DATA_HOME/nautilus-python/extensions` (i.e. `~/.local/share/…`)
2. `nautilus_prefix/share/nautilus-python/extensions` (i.e. `~/Development/…`)
3. `$XDG_DATA_DIRS/nautilus-python/extensions` (i.e. `/usr/share/…`)

Simply copy your Python scripts into one of those directories and restart Nautilus.

## Issues

It is currently not possible to reload a Python script without restarting Nautilus.

Run Nautilus with the `NAUTILUS_PYTHON_DEBUG=misc` environment variable to print out debug information.

## License

nautilus-python is released under the terms of the GNU General Public License, either version 2.0 or, at your option, any later version.
14 changes: 14 additions & 0 deletions debian/NEWS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
nautilus-python (1.1-1) unstable; urgency=low

The extensions should now be arch-independent, the system-wide extension
directory has changed to /usr/share/nautilus-python/extensions/.

-- Laurent Bigonville <bigon@debian.org> Tue, 18 Oct 2011 11:51:17 +0200

nautilus-python (0.5.0-1) experimental; urgency=low

This version of nautilus-python requires Nautilus 2.22. Because there
have been API/ABI changes, the extension directory has changed to
/usr/lib/nautilus/extension-2.0/python.

-- Ross Burton <ross@debian.org> Sun, 20 Apr 2008 16:43:55 +0100
12 changes: 12 additions & 0 deletions debian/README.Debian
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
nautilus-python for Debian
--------------------------

Plugins are loaded by default from two locations:

/usr/share/nautilus-python/extensions - all-user plugin directory
~/.local/share/nautilus-python/extensions - per-user plugin directory

Sample plugins can be found in /usr/share/doc/python-nautilus/examples. To use
them, copy them to one of the locations above and restart nautilus--this can
be done gracefully by running 'nautilus --quit'.

Loading
Loading