File: nautilus-python-overview.xml

package info (click to toggle)
nautilus-python 4.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 424 kB
  • sloc: xml: 1,713; ansic: 619; python: 250; makefile: 10
file content (41 lines) | stat: -rw-r--r-- 3,014 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" standalone="no"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<chapter id="nautilus-python-overview" xmlns:xi="http://www.w3.org/2001/XInclude">

    <title>Overview</title>

    <para>Writing a Nautilus-Python extension is a fairly straight-forward process. One simply imports the Nautilus module from the GObject Introspection repository and creates a class which is derived from a <classname>GObject.GObject</classname> and one or more of the Nautilus module’s abstract classes. When an extension derives a class, it becomes a “provider”, telling Nautilus to ask it for information.</para>

    <para>There are several types of providers available for extensions to use, all of which will be explained in more detail in later chapters:</para>

    <itemizedlist>
        <listitem><simpara><link linkend="class-nautilus-python-column-provider"><classname>ColumnProvider</classname></link></simpara></listitem>
        <listitem><simpara><link linkend="class-nautilus-python-info-provider"><classname>InfoProvider</classname></link></simpara></listitem>
        <listitem><simpara><link linkend="class-nautilus-python-menu-provider"><classname>MenuProvider</classname></link></simpara></listitem>
        <listitem><simpara><link linkend="class-nautilus-python-properties-model-provider"><classname>PropertiesModelProvider</classname></link></simpara></listitem>
    </itemizedlist>

    <para>Your class can be derived from multiple providers.</para>

    <para>Then the script needs to be installed to one of the paths nautilus-python looks for extensions to. That will be <filename>nautilus-python/extensions</filename> subdirectory of one of the following data directories:</para>
    <orderedlist>
        <listitem><simpara>the path in <envar>XDG_DATA_HOME</envar> environment variable , falling back to <filename><envar>$HOME</envar>/.local/share</filename> if not set</simpara></listitem>
        <listitem><simpara> <varname>datadir</varname> configured when building nautilus-python (such as <filename>/usr/local/share</filename>)</simpara></listitem>
        <listitem><simpara>Any path listed in the <envar>XDG_DATA_DIRS</envar> environment variable</simpara></listitem>
    </orderedlist>

    <para>After that, you will need to (re)start Nautilus, which will loads the nautilus-python C extension, which in turn will load all python extensions it can find.</para>

    <note>
        <para>Do not forget to have the extension class derive from a <classname>GObject.GObject</classname> in addition to the standard Nautilus classes.</para>
    </note>

    <note>
        <para>For now, some Nautilus class constructors require passing named arguments instead of a standard argument list.  This requirement may go away at some point.</para>
    </note>

    <xi:include href="nautilus-python-overview-example.xml"/>
    <xi:include href="nautilus-python-overview-methods.xml"/>

</chapter>