desktop

Annotated README.txt

69:1bd81cc4989e
2009-06-21 Paul Boddie Added tag rel-0-4 for changeset dc20c296a651
paulb@11 1
Introduction
paulb@11 2
------------
paulb@11 3
paul@68 4
The desktop package provides desktop environment detection and resource
paul@68 5
opening support for a selection of common and standardised desktop
paul@68 6
environments.
paulb@20 7
paul@68 8
Currently, in Python's standard library, there is apparently no coherent,
paul@68 9
cross-platform way of getting the user's environment to "open" files or
paul@68 10
resources (showing such files in browsers or editors, for example) when
paul@68 11
requested by a Python program. There is an os.startfile function which works
paul@68 12
for Windows, but no equivalent function for other desktop environments - the
paul@68 13
webbrowser module seems to employ alternative mechanisms in choosing and
paul@68 14
running external programs and presumably does not seek to provide general
paul@68 15
support for non-URL resources anyway.  
paul@68 16
paul@68 17
Since desktop environments like KDE and GNOME provide mechanisms for running
paul@68 18
browsers and editors according to the identified type of a file or resource,
paul@68 19
just as Windows "runs" files or resources, it is appropriate to have a module
paul@68 20
which accesses these mechanisms. It is this kind of functionality that the
paul@68 21
desktop package aims to support. Note that this approach is arguably better
paul@68 22
than that employed by the webbrowser module since most desktop environments
paul@68 23
already provide mechanisms for configuring and choosing the user's preferred
paul@68 24
programs for various activities, whereas the webbrowser module makes
paul@68 25
relatively uninformed guesses (for example, opening Firefox on a KDE desktop
paul@68 26
configured to use Konqueror as the default browser).
paulb@11 27
paulb@33 28
Some ideas for desktop detection (XFCE) and URL opening (XFCE, X11) were
paulb@33 29
obtained from the xdg-utils project which seeks to implement programs
paulb@33 30
performing similar functions to those found in the desktop module. The
paulb@33 31
xdg-utils project can be found here:
paulb@33 32
paulb@33 33
http://portland.freedesktop.org/
paulb@33 34
paulb@33 35
Other information regarding desktop icons and menus, screensavers and MIME
paulb@33 36
configuration can also be found in xdg-utils.
paulb@33 37
paulb@11 38
Contact, Copyright and Licence Information
paulb@11 39
------------------------------------------
paulb@11 40
paulb@11 41
No Web page has yet been made available for this work, but the author can be
paulb@11 42
contacted at the following e-mail address:
paulb@11 43
paulb@11 44
paul@boddie.org.uk
paulb@11 45
paulb@11 46
Copyright and licence information can be found in the docs directory - see
paul@68 47
docs/COPYING.txt, docs/lgpl-3.0.txt and docs/gpl-3.0.txt for more information.
paulb@11 48
paulb@11 49
Notes
paulb@11 50
-----
paulb@11 51
paulb@4 52
Notes on desktop application/environment support:
paulb@4 53
paulb@4 54
KDE           Supports file and URL opening using kfmclient, where the openURL
paulb@4 55
              command opens the resource and the exec command runs the
paulb@4 56
              resource.
paulb@4 57
paulb@4 58
GNOME         Supports file and URL opening using gnome-open.
paulb@4 59
paulb@33 60
XFCE          Supports file and URL opening using exo-open.
paulb@33 61
paulb@4 62
ROX-Filer     Supports file opening using "rox <filename>" but not URL
paulb@4 63
              opening.
paulb@17 64
paul@68 65
New in desktop 0.4 (Changes since desktop 0.3)
paul@68 66
----------------------------------------------
paulb@60 67
paulb@60 68
  * Improved docstrings.
paulb@60 69
  * Fixed support for examining the root window.
paul@68 70
  * Changed the licence to the LGPL version 3 (or later).
paulb@60 71
paulb@54 72
New in desktop 0.3 (Changes since desktop 0.2.4)
paulb@54 73
------------------------------------------------
paulb@54 74
paulb@54 75
  * Made desktop a package.
paulb@54 76
  * Added support for graphical dialogue boxes through programs such as
paulb@54 77
    kdialog, zenity and Xdialog.
paulb@54 78
  * Added support for inspecting desktop windows (currently only for X11).
paulb@54 79
paulb@33 80
New in desktop 0.2.4 (Changes since desktop 0.2.3)
paulb@33 81
--------------------------------------------------
paulb@33 82
paulb@40 83
  * Added XFCE support (with advice from Miki Tebeka).
paulb@36 84
  * Added Ubuntu Feisty (7.04) package support.
paulb@33 85
paulb@27 86
New in desktop 0.2.3 (Changes since desktop 0.2.2)
paulb@27 87
--------------------------------------------------
paulb@27 88
paulb@27 89
  * Added Python 2.3 support (using popen2 instead of subprocess).
paulb@27 90
paulb@24 91
New in desktop 0.2.2 (Changes since desktop 0.2.1)
paulb@24 92
--------------------------------------------------
paulb@24 93
paulb@24 94
  * Changed the licence to LGPL.
paulb@24 95
paulb@20 96
New in desktop 0.2.1 (Changes since desktop 0.2)
paulb@20 97
------------------------------------------------
paulb@20 98
paulb@20 99
  * Added Debian/Ubuntu package support.
paulb@20 100
paulb@17 101
New in desktop 0.2 (Changes since desktop 0.1)
paulb@17 102
----------------------------------------------
paulb@17 103
paulb@18 104
  * Added support for waiting for launcher processes.
paulb@17 105
  * Added a tests directory.
paulb@20 106
paulb@20 107
Release Procedures
paulb@20 108
------------------
paulb@20 109
paulb@20 110
Update the desktop __version__ attribute.
paulb@20 111
Change the version number and package filename/directory in the documentation.
paulb@20 112
Update the release notes (see above).
paulb@20 113
Update the package information.
paulb@20 114
Check the release information in the PKG-INFO file.
paulb@20 115
Check the setup.py file.
paulb@20 116
Tag, export.
paulb@20 117
Archive, upload.
paul@65 118
Update PyPI entry.
paulb@20 119
paulb@20 120
Making Packages
paulb@20 121
---------------
paulb@20 122
paulb@20 123
To make Debian-based packages:
paulb@20 124
paulb@20 125
  1. Create new package directories under packages if necessary.
paulb@20 126
  2. Make a symbolic link in the distribution's root directory to keep the
paulb@20 127
     Debian tools happy:
paulb@20 128
paulb@20 129
     ln -s packages/ubuntu-hoary/python2.4-desktop/debian/
paul@68 130
     ln -s packages/ubuntu-feisty/python-desktop/debian/
paul@68 131
     ln -s packages/ubuntu-hardy/python-desktop/debian/
paulb@20 132
paulb@20 133
  3. Run the package builder:
paulb@20 134
paulb@20 135
     dpkg-buildpackage -rfakeroot
paulb@20 136
paulb@20 137
  4. Locate and tidy up the packages in the parent directory of the
paulb@20 138
     distribution's root directory.