PyXDG
PyXDG is a python library to access freedesktop.org standards. Currently supported are:
- Base Directory Specification Version 0.6
- Menu Specification Version 1.0
- Desktop Entry Specification Version 1.0
- Icon Theme Specification Version 0.8
- Recent File Spec 0.2
- Shared-MIME-Database Specification 0.13
Development
Development takes place in a git repository, with a Github mirror. Freedesktop.org hosts the bug tracker.
Download
- PyXDG 0.27; October 2020
- Menu: Fix compatibility with Python >= 3.8.4
- Menu: Fix several AttributeErrors
- Menu: Fix duplication of menu entries due when Layout is provided
- MenuEditor: Fix fromstring typo
- Certain tests are more independent of external system conditions
- Standardise shebangs to
/usr/bin/env python3
- PyXDG 0.26; February 2018
- The primary source of release files is now PyXDG on PyPI, not this page.
- IconTheme: Add support for Scale and ScaledDirectories keys.
- DesktopEntry: New method
findTryExec()
- Menu: More efficient processing of filter rules by building a Python AST
- Mime: Prefer the first mimetype found for a file extension, instead of the last
- Mime: Allow unknown magic-matching rule formats
- Mime:
GlobDB
has new methodsfirst_match
andall_matches
for matching paths - Mime: New function
get_extensions
to get extensions for a given mime type - Mime: Fix
MagicDB.match_data
crashing with an unknown 'possible' mimetype - Mime: Correctly handle
__NOMAGIC__
rule removing previous magic matches - Menu: XML parsing reworked
- BaseDirectory: More secure creation of a fallback runtime directory with
get_runtime_dir(strict=False)
- Various miscellaneous improvements to testing.
- pyxdg-0.25.tar.gz (pgp; December 2012)
- Add support for $XDG_RUNTIME_DIR, Debian bug #656338.
- Allow desktop entry files that are not encoded in UTF-8, Debian bug #693855.
- Mime: Add support for subclasses and aliases.
- pyxdg-0.24.tar.gz (pgp; October 2012)
- Update allowed DesktopEntry categories following changes to the specification.
- Fix removal of empty submenu, freedesktop bug #54747.
- Documentation is now available on RTD: http://pyxdg.readthedocs.org/
- A few more tests, and some code cleanup.
- Fix failure to parse some menu files when kde-config is missing, freedesktop bug #56426.
- pyxdg-0.23.tar.gz (pgp; July 2012)
- Fix a test for non-UTF-8 locales.
- pyxdg-0.22.tar.gz (pgp; July 2012)
- Better unicode handling in several modules.
- Fix for sorting non-ASCII menu entries, freedesktop bug #52492.
- More tests.
- pyxdg-0.21.tar.gz (pgp; July 2012)
- Tests can now be run conveniently using nosetests, and cover more of the code.
- BaseDirectory: New
save_cache_path()
function, freedesktop bug #26458. - Config: Default icon theme is 'hicolor', not 'highcolor', freedesktop bug #29294.
- Menu: Obsolete
Rule.compile()
method removed. - DesktopEntry: Corrected spelling of
checkCategories()
method, freedesktop bug #24974. - DesktopEntry: Consider
Actions
andKeywords
keys standard. - DesktopEntry: Accept non-ASCII Keywords.
- DesktopEntry: Update list of environments valid for
OnlyShowIn
. - Mime: Fix
get_type_by_contents()
in Python 3. - RecentFiles: Minor bug fixes.
- pyxdg-0.20.tar.gz (June 2012)
- Compatible with Python 3; requires Python 2.6 or later
- Clean up accidental GPL license notice in Menu.py
- Add test scripts for xdg.Mime, xdg.Locale and xdg.RecentFiles
- Fixes for icon theme validation
- Fix exception in xdg.Mime
- Replace invalid string exceptions
- Fall back to default base directories if $XDG* environment variables are set but empty.
- Remove use of deprecated os.popen3 in Menu.py
- Correct URLs in README
- pyxdg-0.19.tar.gz
IniFile.py
: add support for trusted desktop files (thanks to karl mikaelsson)DesktopEntry.py
: Support spec version 1.0, Debian bug #563660MimeType.py
: Fix parsing of in memory data, Debian bug #563718DesktopEntry.py
: Fix constructor, Debian bug #551297, #562951, #562952
- pyxdg-0.18.tar.gz
DesktopEntry.py
: Add getMimeTypes() method, correctly returning stringsDesktopEntry.py
: Deprecated getMimeType() returning list of regex (AdamB)Menu.py
: Add support for XDG_MENU_PREFIX (Piotr Lewandowski)Mime.py
: Add get_type_by_contents() (Tony Houghton)
- pyxdg-0.17.tar.gz
- Bugfixes around
- pyxdg-0.16.tar.gz
- Bugfixes around
- pyxdg-0.15.tar.gz
Menu.py
: Bugfixes, support forTryExec
MenuEditor.py
: Bugfixes, pretty output for applications.menuIconTheme.py
: Performance improvements, Bugfixes
- pyxdg-0.14.tar.gz
Menu.py
,MenuEditor.py
: Bugfixes
- pyxdg-0.13.tar.gz
Menu.py
,MenuEditor.py
: Bugfixes...Config.py
: Add root_mode
- pyxdg-0.12.tar.gz
MenuEditor.py
: New in this release, use to edit MenusMenu.py
,IniFile.py
,DesktopEntry.py
: Lot of bugfixing...BaseDirectory.py
: Add xdg_cache_homeIconTheme.py
,Config.py
: More caching stuff, make cachetime configurable- thx to Travis Watkins <alleykat@gmail.com> and Matt Kynaston <mattkyn@gmail.com> for their help
- pyxdg-0.11.tar.gz
Config.py
: Module to configure Basic Settings, currently available:- Locale,
IconTheme
,IconSize
,WindowManager
- Locale,
Locale.py
: Internal Module to support LocalesMime.py
: Implementation of the Mime SpecificationMenu.py
: Now supportsLegacyDirs
RecentFiles.py
:Implementation of the Recent Files Specification- A lot of bugfixes, thx to Travis Watkins <alleykat@gmail.com>
- pyxdg-0.10.tar.gz
- various bugfixes
- validate against menu-spec-1.0.draft-1
- pyxdg-0.9.tar.gz
- various bugfixes
- various performance improvements
- validate against menu-spec-0.91
- thx to Matt Kynaston <mattkyn@gmail.com> for some suggestions
- pyxdg-0.8.tar.gz
xdg/IconTheme.py
(getIconPath): The "hicolor" theme has to be used as the fallback.xdg/IniFile.py
(IniFile.getList): Fixed bug in splitting up strings.- Don't read .desktop-* files, only .desktop
- Add . to the literal
FileExtensions
so that the checks work. - thx to
- Martin Grimme (martin@pycage.de)
- Ross Burton (ross@burtonini.com)
- pyxdg-0.7.tar.gz
- add 'import codecs' to
IniFile
, needed by write support - Fix parsing of lists with only one entry
- add 'import codecs' to
- pyxdg-0.6.tar.gz
- Performance Improvements
- pyxdg-0.5.tar.gz
- License change to LGPL
- Support for write operations in
IniFile
- Support for menu-spec-0.7
- Validates
OnlyShowIn
and Categories - Performance improvements (e.g. 5 times faster in menu parsing)
- A lot of bugfixes (e.g.
IconTheme
parsing) - Python 2.3 support
- pyxdg-0.4.tar.gz
- Bugfix release
- pyxdg-0.3.tar.gz
- Basedir Spec updated to version 0.6
- First part of separating Desktop Entry backend in
IniFile
- added getPath(...) function to
Menu.py
- Complete Icon Theme Spec implementation, including cache and validation
- pyxdg-0.2.tar.gz
- Rewrite of Menu Spec code
- Use Basedir Spec code from ROX
- pyxdg-0.1.tar.gz
- Initial release.