Quod Libet Changelog

What's new in Quod Libet 4.6.0

Feb 4, 2024
  • General:
  • Audiofeeds: enable clipboard when adding feed #4128 (Nick Boultbee)
  • Fix aggregate units on numeric comparisons #4089 (Nick Boultbee)
  • Fix playlist renaming bug #4079 (Nick Boultbee)
  • Remove some senf helpers that are more or less the same in the Python 3 stdlib #4041 (lazka)
  • Require Python 3.8 #3956 (lazka)
  • Move to libsoup3 #4294 (Nick Boultbee)
  • Add Stop command to Control menu #4213 (Markus Koller)
  • Allow disabling of songlist sorting #4273 (Nick Boultbee)
  • Add human time tags #4275 (Nick Boultbee)
  • Nicer prefs switches #4274 (Nick Boultbee)
  • Fix shuffle history #4255 (Thomas Leberbauer)
  • Fix pop-up menu for Podcasts #4193 (Nick Boultbee)
  • Add CLI arg: –with-pattern #4166 (Felicián Németh)
  • Modernise entire preferences UI ?? #4175 (Nick Boultbee)
  • Allow songlist editing of simple text tags in-place ?? #4173 (Nick Boultbee)
  • Make –rating-up work when song has no previous rating #4172 (Felicián Németh)
  • Don’t make the WaitLoadWindow modal #4171 (David Greaves)
  • Prompt on attempting to extend a playlist with DnD’ed tracks #2746 (Meriipu)
  • Stop query date regex from matching > 4 digit year #4162 (afontenot)
  • Add “edit” button to column tag editor window #4148 (afontenot)
  • Track List: Add shortcut Ctrl-Return to the searchbar #4141 (Felicián Németh)
  • Fix crash when using covergrid + default art size #4151 (afontenot)
  • Disable ordering when active order disappears #4156 (afontenot)
  • Improve notif progress bar #4147 (Nick Boultbee)
  • Playlists: log about potential import failures #4146 (Nick Boultbee)
  • Fix regression of –print-query #4142 (Felicián Németh)
  • Rename feeds -> podcasts #3513 #4139 (Nick Boultbee)
  • Audiofeeds: handle non-feed URLs #4126 (Nick Boultbee)
  • Fix image size scaling when cover is reloaded #4115 (Thomas Leberbauer)
  • Covergrid using FlowBox #4101 (Thomas Leberbauer)
  • Softer cover art outline #4096 (Nick Boultbee)
  • Disable editing for Soundcloud tracks #4097 (Nick Boultbee)
  • Fix lots of browser padding issues #4066 (Nick Boultbee)
  • Make songs heading entries editable #4047 (Nick Boultbee)
  • XSPF formatting #4028 (Nick Boultbee)
  • Support library watching in the core #3654 (Nick Boultbee)
  • Write XSPFs with proper namespace (internal v2) #3984 (Nick Boultbee)
  • Move library: don’t force source dir to exist #3980 (Nick Boultbee)
  • Fix add playlists errors (#3973) #3974 (TheMelmacian)
  • Fix display pattern not updating in browsers #3975 (Thomas Leberbauer)
  • Developer:
  • osx: fix installation with setuptools (Christoph Reiter)
  • osx: update jhbuild (Christoph Reiter)
  • osx: fix cargo/rustup usage in jhbuild (Christoph Reiter)
  • osx_bundle: move to 10.13+ (Christoph Reiter)
  • Plugins:
  • Improve and fix Sonos plugin #4290 (Nick Boultbee)
  • Tidy export to folder plugin (Nick Boultbee)
  • Unique filters plugin #4264 (LoveIsGrief)
  • playlist export: prefix relative paths with ‘.’ if the path starts with ‘#’ #4236 (Felix Krull)
  • Add a new internal tag: ~json #4195 (Felicián Németh)
  • ?? Bookmarks notifications plugin #4174 (Nick Boultbee)
  • Move listenbrainz plugin to the right location #4192 (Felicián Németh)
  • the sync_to_device plugin shouldn’t delete files named ‘cover.jpg’ #4083 (Jan)
  • Album art downloader: improve GUI #4106 (Nick Boultbee)
  • Album art downloader: remove Amazon #4105 (Nick Boultbee)
  • Embed Images plugin: allow choosing a file from disk #4071 (Nick Boultbee)
  • Add plugin for rich presence in Discord. #3998 (Aditi K)
  • Translations:
  • Thanks to all our translators old and new.
  • These are now listed on the Weblate QL project.

New in Quod Libet 4.5.0 (Mar 29, 2022)

  • Packaging Changes:
  • Quodlibet should now support Python 3.10
  • This will be the last release supporting Windows 7
  • General:
  • Allow auto-playing added songs in Queue Only mode (#3947) (afontenot)
  • Soundcloud: Better Stream fetching (#3949) (Nick Boultbee)
  • Don’t clear queue when set_explicit returns None (#3913) (afontenot)
  • Waveform plugin improvements: (#3944) (Nick Boultbee)
  • Strip blank tags out from metadata lists (#3914) (afontenot)
  • Edit tags: Hide multi-line tags if selected (#3941) (Nick Boultbee)
  • Lyrics pane: switch to genius.com (Nick Boultbee)
  • Validate units for tag expressions (#3932) (Nick Boultbee)
  • Support downloading remote files (#3926) (Nick Boultbee)
  • Improve the console plug-in in a number of ways (#3923) (afontenot)
  • Wrap ‘tags’ into a link to the tags wiki page (#3920) (Tobi)
  • Add an option to set how missing titles are displayed (#3905) (Jej)
  • Increase space between icon and text (#3918) (Jej)
  • Icon relooking proposal (#3889) (Jej)
  • Plugin window GUI improvements (#3900) (Jej)
  • A new option to set how a song is considered as played (#3873) (Jej)
  • Rewrite Soundcloud interaction a bit (#3893) (Nick Boultbee)
  • New config option for search bar historic count (#3885) (Jej)
  • Clear queue icon and config button improvement (#3879) (Jej)
  • Less annoying autosave of play queue (#3649) (Nick Boultbee)
  • Make current file react to changes on the current song (#3731) (#3871) (Nick Boultbee)
  • Tracks count UI enhacement (#3867) (Jej)
  • Reworked “Stop on pause” language (#3809) (Allan Nordhøy)
  • Pass entered playlist title through (Nick Boultbee)
  • Scrobble plugin: autosave cache more (#2951 / #3649) (#3857) (Nick Boultbee)
  • Save play queue batched or periodically (#3649) (#3854) (Nick Boultbee)
  • Add a keyboard shortcut for rescanning the library (#3781) (Marcin Mielniczuk)
  • Make some overlooked strings translatable (#3782) (Till Berger)
  • Make link text translatable in plugin descriptions (#3806) (Till Berger)
  • Feature: Support description and language in lyrics (USLT) [WIP, comments appreciated] (#3769) (h88e22dgpeps56sg)
  • Allow markup in plugin descriptions (#3792) (Nick Boultbee)
  • ReplayGain: Disambiguate column heading (#3788) (Till Berger)
  • Set empty input shape for hints window (#3749) (Thomas Leberbauer)
  • Add autocompletion to console plugin (#3728) (halfbrained)
  • New plugin to send a stop signal to the player backend on pause (#2848) (othalan)
  • Added a unified and flexible ImportExport plugin (#3705) (Joschua Gandert)
  • Add Album column to plugin dialog window (#3650) (Maksim Liauchuk)
  • Moved Burn CD plugin commands into custom commands plugin (#3636) (Joschua Gandert)
  • Closes #3631: Remove Web Lyrics plugin (#3633) (Joschua Gandert)
  • Playlists library (#518) (#3532) (Nick Boultbee)
  • Prioritise IDs in album keys (#3617) (Nick Boultbee)
  • Remove tracks when scandirs removed (#3621) (Nick Boultbee)
  • Support .m4b (AudioBook)files (#3602) (Nick Boultbee)
  • Ignore auto_sort when shuffle is enabled (#3581) (luk1337)
  • Finish up collections -> collections.abc migration #3800 (luk1337)
  • Follow-up to #3749 #3766 (slosd)
  • Fixes:
  • Fix Soundcloud auth (a bit) (Nick Boultbee)
  • Exfalso: fix prefs (#3838) (Nick Boultbee)
  • Handle missing playlist library better (Nick Boultbee)
  • Fix excess minimum height of plugin window with long description (#3785) (Till Berger)
  • Fix string that should not be translatable (#3783) (Till Berger)
  • Remove some superfluous tooltip text (#3784) (Till Berger)
  • Fix hidden files (#3916) (#3917) (Nick Boultbee)
  • fix ‘Convert Encoding’ plugin (#3825) (Sergey)
  • Make missing pixbufs less fatal (#3758) (Nick Boultbee)
  • Do not start dragging from empty treeview area (#3538) (#3751) (Thomas Leberbauer)
  • Fix translated menu labels for playorder plugins and add accelerators (#3787) (Till Berger)
  • Fix RG wikipedia link (Nick Boultbee)
  • Soundcloud: rework API (#3768) (Nick Boultbee)
  • Soundcloud: ignore tracks with no URL (Nick Boultbee)
  • Fix info area not updating on songlist removal (#3663) (Nick Boultbee)
  • EF: Fix double-calling of header bar code (#3711) (Nick Boultbee)
  • Fix soundcloud parsing (#3721) (Nick Boultbee)
  • Ignore dotfiles in Playlist dir (Nick Boultbee)
  • Bugfix and clean up for utils.fifo (#3761) (Martijn Pieters)
  • Players: Only query song from a source if there is one (Nick Boultbee)
  • Fix icon for library removal prompt (Nick Boultbee)
  • Fix #3611: assert that __fav_stations is not None (Joschua Gandert)
  • Propagate repeat options properly in mpris2 plugin (#3723) (luk1337)
  • Tray Icon: Better errors / logging for import failures (Nick Boultbee)
  • PL library: only filter out dotfile-like files (Nick Boultbee)
  • CLI: better error for unmodifiable files (Nick Boultbee)
  • reload(): only migrate actual internal tags (#3618) (Nick Boultbee)
  • Various fixes around lyrics and remote files (Nick Boultbee)
  • Ex Falso prefs: fix missing parent bug (Nick Boultbee)
  • Don’t throw when no song is playing (Nick Boultbee)
  • Developer:
  • Improve release notes script (Nick Boultbee)
  • test_setup: fix with newer setuptools (Christoph Reiter)
  • tests: don’t disable gstreamer registry updates under flatpak (Christoph Reiter)
  • Lastfmsync tidy (#3937) (Nick Boultbee)
  • Inkscape –export-png deprecated option (#3870) (Jej)
  • Mypy - change directory in tests (Nick Boultbee)
  • Formats: various lint improvements (Nick Boultbee)
  • Scrobbler: small linting / refactorings (Nick Boultbee)
  • Xiph: modernise some Python (Nick Boultbee)
  • tests: skip test_libc on osx (Christoph Reiter)
  • Refactor gettext code (#3737) (Nick Boultbee)
  • Fix some test signal handling (#3774) (Nick Boultbee)
  • Small Soundcloud refactors, split out: (#3773) (Nick Boultbee)
  • Tidy gettext tests (Nick Boultbee)
  • dmgbuild: port from biplist to plistlib (Christoph Reiter)
  • macos: more updates; switch from gnutls to openssl (Christoph Reiter)
  • macos: a round of jhbuild package updates (Christoph Reiter)
  • checkupdates: reduce threadpool workers to not hit arch api rate limit (Christoph Reiter)
  • checkupdates: port to pypi json api (Christoph Reiter)
  • Support flaky tests (#3695) (Nick Boultbee)
  • Added ObjectListMatcher utility class (#3656) (Joschua Gandert)
  • CI: fix Windows test directory detection (#3646) (Nick Boultbee)
  • Remove PicklingLibrary & better library typing (Nick Boultbee)
  • Tests: dump flake8 output better on failure (Nick Boultbee)
  • Update the contact options (Christoph Reiter)
  • rtd: enforce a newer sphinx-rtd-theme version (Christoph Reiter)
  • rtd: try installing a newer sphinx_rtd_theme (Christoph Reiter)
  • Fix copool tests, extract common code (#3657) (Nick Boultbee)
  • Tweak test_terms_letter_case to account for query-syntax examples (#3813) (Till Berger)
  • Fixed Code Quality Issues (#3583) (Ankit Dobhal)
  • Add release infos in appdata files (Christoph Reiter)
  • Fix distcheck (Christoph Reiter)
  • Commit .pot file to git #3665 (lazka)
  • setup.py: add a create_pot command #3664 (lazka)
  • wininst: stop pinning pypi deps (Christoph Reiter)
  • wininst: remove frei0r (Christoph Reiter)
  • Create GitHub Actions automated testing for Fedora 33 (resolves #3542) (#3558) (Phillip Julien)
  • downloads: remove all unstable repos (Christoph Reiter)
  • Update universe (but lock) (#3607) (Nick Boultbee)
  • Docs:
  • Corrected description of ~people internal tag. (#3938) (Alexander Browne)
  • Docs: Update release checklist / maintenance (Nick Boultbee)
  • Tidy docs around queue (Nick Boultbee)
  • Docs: tidy some images (Nick Boultbee)
  • Update exfalso.rst (#3845) (Steve Harris)
  • Update quodlibet.rst (#3846) (Steve Harris)
  • Update patterns.rst (#3819) (everdred)
  • Update macos devenv setup documentation (#3759) (Martijn Pieters)
  • Update the translation guide for the weblate switch (Christoph Reiter)
  • docs: show the translation status (Christoph Reiter)
  • docs: mention weblate in the translation guide (Christoph Reiter)
  • Lots of README updated :book: (#3625) (Nick Boultbee)
  • FAQ: where QL store data outdated (#3878) (Jej)
  • Translations:
  • Galician
  • Turkish
  • German
  • Danish
  • Greek
  • Ukrainian
  • Portuguese
  • English (United Kingdom)
  • Indonesian
  • Dutch
  • Spanish
  • French
  • Finnish
  • Korean
  • Slovak
  • Chinese (Simplified)

New in Quod Libet 4.3.0 (Feb 23, 2020)

  • Packaging Changes:
  • Various installed files have been renamed (“exfalso” -> “io.github.quodlibet.ExFalso”) to work better with Flatpak
  • zsh completion file installation location changed to site-functions #3300
  • Installs a new bash completion file #3126 #3128
  • Windows: Moved everything from 32 bit to 64 bit. This means QL will no longer work with 32 bit Windows.
  • Translations:
  • Update brazilian portuguese translations #3123 (Hugo Gualandi)
  • Bulgarian translation fixes :pr`3147` (cybercop-montana)
  • Update Hebrew translation #3164 #3274 (Avi Markovitz)
  • French translation update #3183 (Bundy01)
  • Update German translation (Till Berger)
  • Various translation related spelling/formatting/text improvements #3208 #3207 #3206 #3214 #3215 #3218 #3219 (Till Berger)
  • New Serbian translation #3245 (leipero)
  • Update Finnish translation #3199 (Kristian Laakkonen)
  • General:
  • Simplify launcher for macOS #3101 (a-vrma)
  • Add original date sort option to album browser #3103 (Ruud van Asseldonk)
  • Option for multiple queries in Search Browser #3082 (blimmo)
  • Improved VGM Metadata Tag Parsing (GD3 Support) #3100 (Eoin O’Neill)
  • cover: Always scale down to parent window size #3114 (Fredrik Strupe)
  • tags: Support loading lyrics from ‘unsyncedlyrics’ tag #3115 (Fredrik Strupe)
  • browsers: Focus album list on album filtering #3122 (Fredrik Strupe)
  • Add bash completion #3126 #3128 (Arnaud Rebillout)
  • Docs fixes #3133 #3192 (Petko Ditchev, CreamyCookie)
  • player: Make external volume cubic by default #3151 (Fredrik Strupe)
  • desktop: Accept all selected files when opened from file browser #3159 (Fredrik Strupe)
  • Tracks without track number are now sorted before first track #3196 (CreamyCookie)
  • Add option for ignoring characters in queries #3221 (blimmo)
  • Disable the file trash support under flatpak for now #3093
  • zsh completion improvements #3300 (Matthew Martin)
  • Add poetry support #3306 (Nick Boultbee)
  • Plugins:
  • Import metadata plugin: Fix file renaming #3071 (Fredrik Strupe)
  • Scale player volume properly in mpris2 API #3098 (luk1337)
  • mpris: Drop MPRIS1 support #3102
  • Add new Banshee import plugin #3141 (Phidica)
  • Library update plugin: Update on file modifications #3168 (Fredrik Strupe)
  • Add “Record Stream” to default custom commands plugin #1617 (CreamyCookie)
  • Custom Commands: Don’t modify command when using parameters #3185 #3232 (CreamyCookie)
  • Import/export plugin: accept full filenames when renaming #3282 (Fredrik Strupe)
  • acoustid: fix queries always returning “unknown” #3269
  • Fix embed images plugin submenu not showing sometimes :pr`3303` (Nick Boultbee)

New in Quod Libet 4.2.1 (Jan 23, 2019)

  • Translations:
  • Hebrew translation update #3027 (Avi Markovitz)
  • German translation update #3036 (Till Berger)
  • Fixes:
  • Fix freezes when opening the shortcuts window with i3wm #3055 (Fredrik Strupe)
  • xinebe: Fix error when pausing a non-local stream #3057
  • Fix mmkeys error (preventing QL to start) when mate-settings-daemon is running outside of a mate session #3056
  • Fix some panels/docks not being able to match the app with the desktop file #3029
  • Migrate metadata plugin fixes #3070 (Fredrik Strupe)

New in Quod Libet 4.2.0 (Dec 27, 2018)

  • Translations:
  • Hebrew translation update #3027 (Avi Markovitz)
  • German translation update #3036 (Till Berger)
  • Fixes:
  • Fix freezes when opening the shortcuts window with i3wm #3055 (Fredrik Strupe)
  • xinebe: Fix error when pausing a non-local stream #3057
  • Fix mmkeys error (preventing QL to start) when mate-settings-daemon is running outside of a mate session #3056
  • Fix some panels/docks not being able to match the app with the desktop file #3029
  • Migrate metadata plugin fixes #3070 (Fredrik Strupe)

New in Quod Libet 4.1.0 (Jun 4, 2018)

  • Various improvements and fixes to make Quod Libet ready for Flatpak/Flathub #2842 #2851 (Felix Krull)
  • Show confirmation dialog when removing songs from playlists #2667 (zsau)
  • Map bare performer tags to a “Performance” role in ~people:roles #2674 (zsau)
  • Add wildcard support to albumart filename preferences #2814 (zsau)
  • Fix various typos #2786 (luzpaz) #2750 (Tom McCleery)
  • waveformseekbar: Improve hover time indication #2690 (Eyenseo)
  • Add shuffle-by-grouping plugin #2788 (archy3)
  • Album List - sorting by album average playcount #2794 (Uriel Zajaczkovski)
  • Recognize rating/playcount tags in vorbis comments #2761 (Thomas Leberbauer)
  • Handle error when writing empty replaygain tag #2838 (Thomas Leberbauer)
  • waveformseekbar: Clamp seek time to valid range #2729 (Peter Simonyi)
  • tag editor: don’t use inline separators when changing multiple tag values #2684 (Peter F. Patel-Schneider)
  • Improve the lyrics file search #2567 (Pete Beardmore)
  • Added advanded_preferences config for scrollbar visibility #2697 (Meriipu)
  • cli: Allow floating point arguments for volume #2661 (Jonas Platte)
  • code quality: Fix raising NotImplementedError #2772 (Jakub Wilk)
  • paned browser: Add shortcut Ctrl-Return to the searchbar #2745 (Felician Nemeth)
  • Fix translations on systems with translations spread across multiple directories like with NixOS/Flatpak. #2819
  • Fix setting the process name on Linux to “quodlibet” (4.0 regression) #2826
  • Fix a case where a deadlocked QL would prevent new instances from being started #2754
  • Directory browser: fix not showing Gnome bookmarks
  • Various Python 3.7 compatibility fixes
  • id3: always ignore TLEN frames #2758
  • wayland: fix errors when showing the seek popup widget #2644
  • Add cli options for setting repeat and shuffle type #2799 (Fredrik Strupe)
  • Queue stop once empty: do check at end of song instead #2801 (Fredrik Strupe)
  • searchbar: Don’t save indeterminate search queries in the history #2871 (Fredrik Strupe)
  • browsers/playlist: Make the side pane take up less space #2765 (Fredrik Strupe)
  • Make songs menu key accels work across all browsers #2863 (Fredrik Strupe)
  • shuffle: fix shuffle no longer working after one complete run #2864 (Fredrik Strupe)
  • tag editor: Allow saving tag if present in all songs but value differ #2686 (Fredrik Strupe)
  • iradio: assume http if no protocol specified #2731 (Nick Boultbee)
  • tag split: Allow non-word characters around tag separators #1088 #2678 (Nick Boultbee)
  • Various improvements to the cover source plugin system (Nick Boultbee)
  • gstreamer: Disable gapless for .mod files #2780
  • gstreamer: Store the GStreamer registry/cache in our own cache directory to avoid conflicts with the system cache #2839
  • Packaging Changes:
  • No dependency changes compared to 4.0
  • Various installed files have been renamed (“quodlibet” -> “io.github.quodlibet.QuodLibet”) to work better with Flatpak
  • We’ve added some new icon resolutions
  • Translations:
  • Update Norwegian (bokmål) translation #2833 (Åka Sikrom)
  • Update German translation #2860 (Till Berger)
  • Update Polish translation #2857 (Piotr Drąg)
  • Some Russian translation improvements #2670 (Kirill Romanov)
  • Plugins:
  • Add a new cover download plugin using the cover sources #2812 (Nick Boultbee)
  • headphonemon: fix headphone detection (4.0 regression) #2868
  • plugin search: handle search for multiple words better
  • importexport: pass a default value for ~#track when sorting. #2694
  • equalizer: Fix scales in the preferences not showing the initial values #2722
  • randomalbum: Various Python3 fixes #2721 #2726
  • trayicon: hide the (useless) scrolling preferences on Windows. #2718
  • Move the app/system/dependency info from the about dialog into a plugin.
  • Tap BPM plugin: Handle non-numeric BPMs #2824 (Fredrik Strupe)
  • plugins: Make random album work on non-album browsers again #2844 (Fredrik Strupe)
  • alarm plugin: Port to Python 3 #2735 (Nick Boultbee)
  • Website search: support ~filename #2762 (Nick Boultbee)
  • Move Browse Files to core (fully) #2835 #1859 (Nick Boultbee)
  • qlscrobble: Fix a potential error when upgrading from 3.9 and older #2768
  • Windows:
  • Fix sys.argv not being set by exe launchers (4.0 regression) #2781
  • The portable app now uses a local cache directory instead of the system one in more cases.
  • Always show the scrollbars like we do on macOS #2717

New in Quod Libet 4.0.2 (Jan 17, 2018)

  • Bug fixes:
  • Search in album list somehow broken
  • AttributeError: 'generator' object has no attribute 'next'
  • Not stored equalizer in visual
  • album list: acitvating a row with random album plugin active leads to jumpy UI and starts playing the wrong song
  • Edit controls to enter e.g. tag patterns don't show scrollbars
  • TypeError: '<' not supported between instances of 'int' and 'str'

New in Quod Libet 4.0.0 (Dec 28, 2017)

  • Packaging Changes:
  • Python 3.5 required (was 2.7)
  • All Python dependencies need to be switched to their Python 3 variants. In case there is a “py” in the package name it likely needs to be changed.
  • Mutagen 1.34 required (was 1.32)
  • GTK+ 3.18 required (was 3.14)
  • PyGObject 3.18 required (was 3.14)
  • GStreamer 1.8 required (was 1.4)
  • media-player-info no longer required
  • udisks2 no longer required
  • python-futures no longer required
  • Project:
  • Ported from Python 2 to Python 3 #1580 #2467
  • Relicensed all code under “GPLv2 only” to “GPLv2 or later” #2276
  • Translations:
  • Update German translation #2651 (Till Berger)
  • Update Polish translation #2646 (Piotr Drąg)
  • Update Norwegian (bokmål) translation #2506 #2621 (Åka Sikrom)
  • Russian translation fixes #2608 Kirill Romanov
  • Update Finnish translation #2606 Kristian Laakkonen
  • Various:
  • Allow cover image pop-up to scale up to maximum size #2634 (Peter F. Patel-Schneider)
  • Draw a drag handle for the pane separator with newer GTK+ #2402
  • Soundcloud: Add “my tracks” category (Nick Boultbee)
  • Workaround Ubuntu theme bug which results in drawing artefacts with treeview separators. #2541
  • Added support for custom date column timestamp formats (advanced prefs) #2366 (Meriipu)
  • Fix filter function (e.g. max, min) doesn’t work correctly with lastplayed #2504 (Thomas Leberbauer)
  • Multimeida keys: make “previous” always go to the previous song #2494
  • Prefer userdir in XDG_CONFIG_HOME #138 #2466 (Sauyon Lee)
  • Fix error on start under LXDE with its “org.gnome.SessionManager” re-implementation
  • Improve visibility of the active state of toggle buttons in the bottom bar #2430
  • Remove device support #2415
  • Filesystem browser: Allow selecting multiple folders #2399 (Nick Boultbee)
  • CLI: Allow floating point arguments for --volume #2661 (Jonas Platte)
  • Windows: SIGINT handling support
  • Sentry.io error reporting now available on all platforms
  • Playback:
  • GStreamer: Fix gain adjustments are not applied during the first split second of a song on macOS/Windows. #1905
  • GStreamer: Seeking performance improvements #2420
  • Tagging:
  • Add option for moving album art when renaming #2560 (Pete Beardmore)
  • Add DSF tagging support #2491
  • Plugins:
  • Add support for sidebar plugins #152 (Nick Boultbee)
  • LyricsWindow: convert to a sidebar plugin #2553 (Nick Boultbee)
  • Fix synchronized lyrics window not showing #1743 #2492 (elfalem)
  • Add more preferences for the album cover search #2511 (Pete Beardmore)
  • Waveform seekbar hoover time indication #2419 #2550 (Muges)
  • New automatic seekpoint plugin (seeking based on bookmarks) #2437 (Meriipu:)
  • CI:
  • Run Windows tests on appveyor #2619
  • Submit coverage reports to codecov.io
  • Move to circleci for Docker tests #2443
  • Dockerize Windows-under-Wine tests #2444
  • Various improvements, fixes and Python 3 porting fixes, thanks to:
  • Kristian Laakkonen: #2607 #2605 #2593 #2586 #2578 #2576 #2521
  • Emanuele Baldino: #2622
  • CreamyCookie: #2574
  • Muges: #2425
  • Till Berger: #2531 #2530 #2474
  • Meriipu: #2486 #2449 #2616
  • Fredrik Strupe: #2476

New in Quod Libet 3.9.1 (Jun 7, 2017)

  • Danish translation update #2394 (scootergrisen)
  • Various bug fixes: #2409 #2364 #2406 #2401 #2410 #2414 #2387 #2411 #2386 #2400 #2404 (Nick Boultbee et al.)

New in Quod Libet 3.9.0 (May 26, 2017)

  • Changes:
  • python-zeitgeist no longer used
  • python-feedparser required (no longer optional)
  • python-faulthandler required
  • GTK+ 3.14 required (was 3.10)
  • PyGObject 3.14 required (was 3.12)
  • GStreamer 1.4 required (was 1.2)
  • No longer installs icons to “/usr/share/pixmaps”
  • Installs more icons into “/usr/share/icons/hicolor/” theme
  • Translation Updates:
  • Czech #2175 (Marek Suchánek)
  • Danish #2185 (scootergrisen)
  • French #2206 (Olivier Humbert)
  • Czech #2209 (Honza Hejzl)
  • Norwegian Bokmål #2232 #2354 (Åka Sikrom)
  • French #2240 (Jean-Michel Pouré)
  • German #2388 (Till Berger)
  • Polish #2391 (Piotr Drąg)
  • General:
  • Windows: Use native file choosers #2324
  • operon: add “–all” option for the “tags” command. #2335
  • Queue: Add checkbox to stop after queue is empty #2340 (Fredrik Strupe)
  • Opt-in online crash reporting using sentry.io #2313
  • Allow resizing of panes in PanedBrowser #2301 (Fredrik Strupe)
  • Plugins: Add UI for plugin type filtering #2218 (Nick Boultbee)
  • Add accelerators for “Open Browser” Menu #2305 (Uriel Zajaczkovski)
  • replaygain: save selected replaygain profiles to config #2279 (Didier Villevalois)
  • Allow != in queries #2056 (Nick Boultbee)
  • Add ~#channels #1686
  • songlist: make “space” trigger play/pause. See #1288
  • Add --start-hidden and remove visibility restoring from the tray icon #814
  • Add non-python crash reporting on the next start #1853
  • mp3: include lame preset in ~encoding
  • Fixes:
  • Fix queue height not getting restored in some cases #2330 (Fredrik Strupe)
  • macOS: Fix URL launching from labels #2306
  • Windows: Fix crash when the 65001 code page is used #2333
  • Windows: Fix crash with French locale in some cases. #2364
  • MPRIS: Fix metadata changes not getting emitted #2359 (IBBoard)
  • Tray icon: Fix rating menu #2355 (IBBoard)
  • Player: Fix “previous” not working with radio streams #2198
  • gstbe: increase default buffer duration. #2191
  • macOS: Fix meta key for accelerators not working #2271
  • Fix error in case stdout gets closed before QL #2205
  • Fix icon size of app menu embedded in gnome-shell decoration #2320 #2334 (Vimalan Reddy)
  • Plugins:
  • Windows: Enable crossfeed plugin
  • Add a plugin to export a playlist to a folder #2307 (Didier Villevalois)
  • Add skip by rating plugin #2201 (Jason Heard)
  • Advanced Prefaulthandlerfs: add a configuration for the window title pattern #2272 (Didier Villevalois)
  • waveformseekbar: add hidpi detection #2261 (Didier Villevalois)
  • waveformseekbar: smoother drawing updates #2289 (Didier Villevalois)
  • Add a tap bpm plugin #2264 (Didier Villevalois)
  • Add plugin for changing the user interface language #2154
  • Add external visualisations plugin #737 (Nick Boultbee)
  • EQ Plugin: various improvements #1913 (Nick Boultbee)
  • Add a plugin to toggle the menubar’s visibility using “alt” #2263 #2267 (Didier Villevalois)
  • Further Contributions:
  • #2282 (David Pérez Carmona) #2284 (Jakub Wilk) #2294 #2326 (Fredrik Strupe), #2270 #2302 #2280 #2385 (Didier Villevalois) #2308 #2314 (Uriel Zajaczkovski) #2331 (CreamyCookie)
  • Development:
  • tests: use xvfbwrapper if available #2287
  • gdist: relicense to modern style MIT
  • Use docker on travis-ci #2269 #2290

New in Quod Libet 3.9.0 Development (May 19, 2017)

  • Packaging Changes:
  • python-zeitgeist no longer used
  • python-feedparser required (no longer optional)
  • python-faulthandler required
  • GTK+ 3.14 required (was 3.10)
  • PyGObject 3.14 required (was 3.12)
  • GStreamer 1.4 required (was 1.2)
  • No longer installs icons to “/usr/share/pixmaps”
  • Installs more icons into “/usr/share/icons/hicolor/” theme
  • Translation Updates:
  • Czech #2175
  • Danish #2185
  • French #2206
  • Czech #2209
  • Norwegian Bokmål #2232 #2354
  • French #2240
  • German #2388
  • General:
  • Windows: Use native file choosers #2324
  • operon: add “–all” option for the “tags” command. #2335
  • Queue: Add checkbox to stop after queue is empty #2340
  • Opt-in online crash reporting using sentry.io #2313
  • Allow resizing of panes in PanedBrowser #2301
  • Plugins: Add UI for plugin type filtering #2218
  • Add accelerators for “Open Browser” Menu #2305
  • replaygain: save selected replaygain profiles to config #2279
  • Allow != in queries #2056
  • Add ~#channels #1686
  • songlist: make “space” trigger play/pause. See #1288
  • Add --start-hidden and remove visibility restoring from the tray icon #814
  • Add non-python crash reporting on the next start #1853
  • mp3: include lame preset in ~encoding
  • Fixes:
  • Fix queue height not getting restored in some cases #2330
  • macOS: Fix URL launching from labels #2306
  • Windows: Fix crash when the 65001 code page is used #2333
  • Windows: Fix crash with French locale in some cases. #2364
  • MPRIS: Fix metadata changes not getting emitted #2359
  • Tray icon: Fix rating menu #2355
  • Player: Fix “previous” not working with radio streams #2198
  • gstbe: increase default buffer duration. #2191
  • macOS: Fix meta key for accelerators not working #2271
  • Fix error in case stdout gets closed before QL #2205
  • Fix icon size of app menu embedded in gnome-shell decoration #2320 #2334
  • Plugins:
  • Windows: Enable crossfeed plugin
  • Add a plugin to export a playlist to a folder #2307
  • Add skip by rating plugin #2201
  • Advanced Prefaulthandlerfs: add a configuration for the window title pattern #2272
  • waveformseekbar: add hidpi detection #2261
  • waveformseekbar: smoother drawing updates #2289
  • Add a tap bpm plugin #2264
  • Add plugin for changing the user interface language #2154
  • Add external visualisations plugin #737
  • EQ Plugin: various improvements #1913
  • Add a plugin to toggle the menubar’s visibility using “alt” #2263 #2267
  • Further Contributions:
  • #2282 #2284 #2294 #2326, #2270 #2302 #2280 #2385 #2308 #2314 #2331
  • Development:
  • tests: use xvfbwrapper if available #2287
  • gdist: relicense to modern style MIT
  • Use docker on travis-ci #2269 #2290

New in Quod Libet 3.8.1 (Feb 8, 2017)

  • GStreamer: increase default buffer duration. #2191
  • Fix acoustid plugin #2192
  • Fix new playlists from menu #2183 (Nick Boultbee)
  • mpdserver: Make it work with the M.A.L.P Android client #2179
  • Waveform plugin fixes #2195 (Nick Boultbee)
  • Covergrid context menu fixes #2197 (Joel Ong)
  • Translations:
  • Norwegian Bokmål #2194 (Åka Sikrom)
  • German #2188 (Till Berger)

New in Quod Libet 3.8.0 (Jan 24, 2017)

  • Packaging Changes:
  • concurrent.futures required (usually called python-futures, python-concurrent.futures or python2-futures in distros)
  • libgpod4 is no longer used
  • Testing now requires py.test
  • Installs a new zsh completion file
  • General:
  • Preferences: Add option for changing the duration display format #2021 #1727 #1967 (Nick Boultbee)
  • Locale-dependent number formatting #2018 (Nick Boultbee)
  • Fi updates across browsers on changes to ~playlists #2017 (Nick Boultbee)
  • Don’t wake up when idle #2068 #2067
  • Covergrid Browser #241 #2071 #2115 #2125 #2110 #2130 (brunob, Joel Ong, knockoutMice)
  • Play order (shuffle / repeat) rewrite to be more modularised / powerful #2043 #2059 #2121 #2123 #2125 (Nick Boultbee)
  • Improvements / additions to Information window #2119 #1558 (Nick Boultbee)
  • Search: Fi error when query divides by 0 #2025 (faubiguy)
  • Fi crash on tag edit abort #2081
  • Library scan: ignore hidden files #2074
  • Remove iPod support
  • Log the filename in case something crashes #2143
  • MP4: Handle empty trkn/disk #2143
  • Library: support autofs mounts #2146
  • Various small GTK+/Ubuntu theme related updates
  • Fi crash when parsing feeds #2144 (Peter Schwede)
  • Song list: ctrl+drag will now force a song copy #1952
  • MP4: round bpm to nearest int. #2028 (Nick Boultbee)
  • Songsmenu icons improved (Nick Boultbee)
  • Basic zsh completion
  • Translation Updates:
  • Polish #2141 (Piotr Drag)
  • Norwegian Bokmål #2031 #2064 (Åka Sikrom)
  • Danish #2169 (scootergrisen)
  • Czech #2173 (Marek Suchánek)
  • Plugins:
  • Discogs Cover Source #2136 (knockoutMice)
  • Add register-date filter to lastfmsync plugin #2127 (knockoutMice)
  • Wikipedia plugin - search instead of direct URL #2112 (urielz)
  • Notification plugin: add option to mask ‘Net’ #2026 #2045 (Corentin Néau)
  • Waveform seek bar #2046 (01777), related performance improvements (Nick Boultbee)
  • Add playlists to tray menu #2006 (Nick Boultbee)
  • Random album plugin fies #2085 (drail)
  • Custom commands: minor improvements (Nick Boultbee)
  • Some Auto Library Update plugin fies #1315 (Nick Boultbee)
  • Seek bar plugin: invert scrolling directions #2052 (Corentin Néau)
  • Windows:
  • Switch to msys2 #1718
  • Allow opening audio files with quodlibet.ee #1607
  • Enable pitch plugin again #1534
  • Windows regressions: crossfeed plugin missing (will be back in the net version)

New in Quod Libet 3.7.1 (Sep 28, 2016)

  • tests: Use dbus-daemon instead of dbus-launch for creating a session bus. #2022
  • Fix 100% CPU when no song column is expanded. #2030
  • Fix SoundCloud login with Ubuntu 14.04 #2034
  • MP4: Fix crash when saving certain bpm tags #2028 (Nick Boultbee)
  • Windows: Make lastfmsync plugin work #1777

New in Quod Libet 3.7.0 (Aug 29, 2016)

  • Packaging Changes:
  • Mutagen 1.32 required
  • udisks1 support removed
  • PyGObject 3.12 required
  • Add Soundcloud browser #1828 #1990 (Nick Boultbee)
  • Make F11 toggle fullscreen mode
  • Add --refresh to the man page. #1914
  • Add --stop-after. #1909
  • Remove support for loading browsers from ~/.quodlibet/browsers #1919
  • Added shortcut of Delete for moving files to trash #1921 (Victoria Hayes)
  • gstbe: always use pulsesink if pulseaudio is running. #1926
  • Remove udisks1 support
  • Add a “Check for Updates” dialog
  • Windows: Port mmkeys support from pyhook to ctypes. Fixes accents not working when QL is running. #1168
  • Add selection tick (check) for rating(s) that are selected #1891 (Nick Boultbee)
  • Support composersort #1795 (Nick Boultbee)
  • Rework application menu #1598 (Nick Boultbee)
  • Add a ~#playcount equalizer play order plugin #1626 (Ryan Turner)
  • Fix too large cover art border radius with Ubuntu themes
  • songlist columns: handle font size changes at runtime. #1420
  • Fix song list column label fade out in RTL mode
  • Fix seek bar getting stuck when releasing the button outside of the widget. #1953
  • Add default keyboard shortcuts for browsers/views #1540
  • Restore queue state. #1605
  • Add a queue toggle button to the status bar and remove the view menu
  • docs: Clarified function of the queue #2004 (Bernd Wechner)
  • Translations:
  • Updated Polish translation #2009 (Piotr Drąg)
  • French translation update #1932 (Ludovic Druette)
  • Fully update British English “translation” (Nick Boultbee)
  • Tagging:
  • AIFF support #1801
  • Support musicbrainz_releasetrackid #1992
  • Support musicbrainz_releasegroupid #1896
  • operon: Fix image-set when passing multiple files. #1729
  • ASF: add WM/AlbumArtistSortOrder #1936
  • MP4: Support saving replaygain tags #1916 (bp0)
  • MP4: support replaygain_reference_loudness. #1928
  • Plugins:
  • lyricswindow: Restart WebKit when crashed #1923 (CreamyCookie)
  • lyricswindow: Prevent alert windows. #1927 (CreamyCookie)
  • tray icon: Improve unity detection #1999
  • musicbrainz: Add option to write labelid. #1929
  • musicbrainz: Write musicbrainz release track ids #1992
  • Rename Force Write plugin to “update tags in files” #1938 (Nick Boultbee)
  • tray icon: Use App indicator when running under Enlightenment #1941 (Jakob Gahde)
  • replaygain: delete tags written by bs1770gain. #1942
  • Development:
  • py.test support
  • Some Python 3 porting progress: 47% tests passing #1580

New in Quod Libet 3.6.1 (Apr 6, 2016)

  • Tray icon: Don’t use the app indicator for Ubuntu GNOME and KDE 4. [1904]
  • Tray icon: Present the window when showing the window through the app indicator menu item. [1904]
  • Paned browser: Fix crash with numeric tags in patterns [1903]
  • Paned browser: Fix missing “Unknown” entry for patterns
  • OS X: Fix TLS for real
  • Lyrics window: Also support webkitgtk2 3.0 (for Ubuntu 14.04)

New in Quod Libet 3.6.0 (Mar 26, 2016)

  • Add a keyboard shortcut window. [1837]
  • Add ~language, which shows the language name for iso639 codes
  • Allow cross-device moves to trash. [pr-1782] [1339] (Andrew Chadwick)
  • CLI: allow backslash-escaped commas in –enqueue-files. [1773] (Nick Boultbee)
  • Fix custom accels read from ~/.quodlibet/accels [1726] [pr-1818]
  • Fix determination of tag patterns in songlist [pr-1830] (Peter F. Patel-Schneider)
  • Fix ratings not being stored if they are the same as the default [1461] [pr-1846]
  • ID3: read lyrics from USLT frame, make ~lyrics read lyrics and form files [pr-1810] (Ivan Shapovalov)
  • Make test suite run (and fail) under Python 3 [1580]
  • MP4: support conductor, discsubtitle, language & mood [323] (Nick Boultbee)
  • Paned browser: Allow filters to be reset by clicking heading. [1284]
  • Paned browser: use sort tags [1785], [pr-1796] (Peter F. Patel-Schneider)
  • Patterns: Allow proper escaping in nested queries. ()
  • Player controls: use a normal button with two icons instead of a toggle button. [1814]
  • Playlist browser: implement scroll to playing song [1426]
  • Playlist browser: Make display configurable [1780] (Nick Boultbee)
  • Remove rounded cover preference and make border radius depend on theme. [1864]
  • Search: make “ae” match “æ” and “ss” match “ß” etc.
  • Search: numeric expressions and query plugins [pr-1799]
  • Song info display: show delete option to context menu. [1869]
  • Songlist: Highlight the current song. See [1809]
  • Support sort tags in song list patterns [pr-1783] (Peter F. Patel-Schneider)
  • Various GTK+ 3.20 related fixes
  • Translations:
  • Updated Dutch and Norwegian Bokmål translation [pr-1784] (Nathan Follens)
  • Updated Polish translation [pr-1898] (Piotr Drąg)
  • Plugins:
  • Remove cddb plugin; it’s broken
  • New plugin: Pause on headphone unplug. [1753]
  • New events plugin: Shows synchronized lyrics from .lrc file with same name as the track [pr-1723]
  • Add a seekbar plugin. See [204]
  • lyricwiki: port to WebKit2
  • tray icon: support Ubuntu Unity and KDE Plasma (using libappindicator) [1756]
  • musicbrainz: port to musicbrainzngs. This fixes tagging of multi disc releases. [829]
  • Make LyricsWindow an events plugin; Add zoom level preference [pr-1709]
  • Add authentication for MPDServer plugin [pr-1789]
  • Wayland:
  • Fix seek bar window position (needs gtk+ 3.20)

New in Quod Libet 3.5.2 (Jan 14, 2016)

  • Polish translation update (Piotr Drąg)
  • ID3: don’t write albumartistsort twice [1732]
  • Use the stream song for --print-playing. [1742]
  • Fix background color of some context menus with the Ubuntu 12.04 theme
  • Fix adding new tags failing in some cases [1757]
  • OSX: make cmd+w close windows [1715]
  • Fix a crash with numerics in tag pattern conditionals [1762] (Nick Boultbee)
  • Fix tests with newer Perl (through intltool)

New in Quod Libet 3.5.1 (Oct 22, 2015)

  • Fix volume / mute state resetting on song change with some configurations [1703]
  • Fix crash when G_FILENAME_ENCODING is set [1699]

New in Quod Libet 3.5.0 (Oct 9, 2015)

  • General:
  • Add –print-query-text to get the current query for browsers that support it [1634]
  • Support conditional patterns with QL Query syntax [1604]
  • Playlist content search in the playlist browser [pr-1593]
  • Disable app menu under Unity [1599]
  • Allow users to optionally bypass the trash even if it is available on their operating system [pr-1573]
  • Try to prevent fifo timeouts for slow operations [1616]
  • Fix border drawing with CSD/wayland
  • Use float for ~#length [1483]
  • Add a setting to enable/disable rating hotkeys [pr-1625]
  • Display all tags in tag list editor not just the non-default ones [1660]
  • Add a new ~codec and ~encoding tag (library reload needed) [9]
  • Add ~bitrate tag including the unit
  • Asymmetric search improvements e.g. ‘o’ now matches ‘ø’
  • Various custom column header dialog improvements [1660]
  • Prefer txxx replaygain over rva2 [1587]
  • Support reading RG when ID3 tag key is in uppercase [1502]
  • Playback:
  • Implement direct sink volume control (e.g. for pulsesink, directsoundsink). Changing volume will now control the PA stream volume and result in less delay [1389] [1512]
  • Allow muting by middle clicking the volume button. Controls the pulseaudio stream mute property directly.
  • Increased GStreamer pipeline buffer size to reduce CPU usage [1687]
  • Hide seek slider when not seekable
  • Plugins:
  • Add a plugin for editing ~#playcount and ~#skipcount. [pr-1624]
  • Advanced preferences plugin [1050]
  • Allow to configure cover size in animosd plugin [1049]
  • Add plugin for removing TLEN frames from ID3 based files. [1655]
  • mpd: fix state sync with mpdroid 0.8. [1636]
  • Fix screensaver inhibit plugin. [1692]
  • qlscrobbler: fix offline mode check box. [1688]
  • lyrics window: use mobile wikia version
  • Translations:
  • Update Dutch translation [pr-1618]
  • Updated greek translation [1684]
  • setup.py: add a new create_po command for starting new translations

New in Quod Libet 3.4.1 (May 25, 2015)

  • Fixes:
  • setup.py: respect –install-data [1575]
  • Suppress deprecation warnings with newer glib
  • Regressions:
  • Fix error when invoking a plugin with many songs/albums [1578]
  • Fix main window sometimes not showing under Ubuntu 12.04
  • Fix search not working with non-ASCII text in some cases

New in Quod Libet 3.4.0 (Apr 10, 2015)

  • Improved Gnome 3.16 compatibility
  • Fixes for the list tooltips in combination with GTK 3.16 scrollbars
  • Include symbolic icons for gnome-shell 3.16
  • Album browser: faster cover loading
  • Devices: fix detection of Sansa Clip+ with some setups [1523]
  • Prefs: restore active tab
  • Songlist: support patterns in the filter song list menu
  • New shortcut ctrl+shift+j, like ctrl+j but refilters the browser always
  • Make build reproducible [1524]
  • MP4: include codec information in ~format (needs a library reload) [1505]
  • GStreamer: fix a deadlock when seeking right at a song change
  • Queue: don’t decide the next song too early [1496]
  • Song info widget: provide the full song context menu [1527]
  • CLI: --run to make QL start if it isn’t already. Useful for pairing with other commands like --play-file. [67]
  • Add supported mime types to desktop file [67]
  • CLI: --play-file doesn’t add songs to the library anymore [1537]
  • Fix QL starting twice if started in quick succession
  • Tooltips: don’t span multiple monitors [1554]
  • MPD-Server: Fix a crash when changing the port number [1559]
  • Fix short hang on shutdown with GStreamer plugins active [1567]
  • Fix setting an embedded image in case the file doesn’t have tags [1531]
  • OSX: add a menu bar for Ex Falso
  • Fifo: Fix commands failing in case QL is busy [1542]
  • Translations:
  • Use msgctx for message contexts

New in Quod Libet 3.3.1 (Jan 12, 2015)

  • Regressions:
  • Fix occasional errors when closing menus (with the plugin menu in Ex Falso for example)
  • Fix operon info
  • Fix operon fill error in case a tag doesn’t match
  • Fixes:
  • Fix HiDPI DnD images when dragging multiple rows

New in Quod Libet 3.3.0 (Jan 3, 2015)

  • General:
  • Support --query with all browsers that have a search entry.
  • Songlist: Scroll to playing song when replacing the list.
  • Songlist: Scroll to first selected song and restore selection for it on re-sort.
  • Consider all songs in an album for finding (embedded) album art.
  • Support month (30 days) in time queries (#(lastplayed < 1 month).
  • Support playing a song that is not in the song list.
  • Support numeric date search e.g. #(2004-01 < date < 2004-05)
  • Playlists browser: make delete key remove the selected songs from the current playlist
  • File tree: Show XDG desktop/downloads/music folders if available
  • File tree: List mountpoints on linux
  • Show the filter menu in secondary browser windows (filter shortcuts work there as well now)
  • Add alt+[1-9] shortcut for notebook widgets to jump the a specific page
  • Support loading ADTS/ADIF files (*.aac). Needs mutagen 1.27.
  • Search: New regex modifier "d" which makes all letters match variants with diacritic marks (accents etc.). Enabled by default for normal text searches. Sigur Ros will now find songs containing Sigur Rós. For regex and exact searches use /Sigur Ros/d and "Sigur Ros"d to enable.
  • New ~people:real tag which filters out “Various Artists” values
  • Prefer artist over albumartist for single songs in ~people
  • Fixes:
  • Update for theming changes in gtk3.15
  • Fix seek slider not working with newer gtk+ and some themes
  • Fix playing song not restoring on start with radio/filesystem browser
  • Translations:
  • Russian translation update
  • Updated Greek translation
  • Tagger:
  • WMA: support multiple values for producer, conductor, artist, lyricist, albumartist, composer, genre and mood (needs mutagen 1.26)
  • APEv2: Support reading/writing embedded album art for APEv2 based formats (Wavpack, Musepack, Monkey’s Audio)
  • Allow removing and renaming from tag names which not all selected formats support.
  • Allow toggling of programmatic tags in the tagging UI
  • Plugins:
  • Various translation related fixes (
  • New simple lyricwiki plugin using a WebKitGtk webview
  • New Rhythmbox import plugin.
  • MPD server: make work again with newer MPDroid (MPDroid crashed on start)
  • Trayicon: add option to quit when closing the main window instead of hiding
  • Theme switcher: add option to enable/disable client side decorations
  • ReplayGain: add option to skip albums with existing ReplayGain values
  • Notifications: Make cover art display work under e19
  • Operon:
  • new ‘edit’ command for editing tags with a text editor (VISUAL=vi operon edit song.flac)
  • new ‘fill’ command for filling tags using parts of the file path (operon fill --dry-run ". " *.flac)
  • Windows:
  • Newer mutagen (1.27)
  • Newer GTK+/Gstreamer (Tumagonx)
  • Fix loading cover art from non-ansi paths
  • Starting QL will now focus the first instance if one exists
  • quodlibet.exe now passes command arguments to the running instance (quodlibet.exe –next)
  • New quodlibet-cmd.exe which is the same as quodlibet.exe but can be executed in the Windows console with visible stdout

New in Quod Libet 3.2.2 (Oct 4, 2014)

  • Fixes:
  • Fix a crash when seeking streams in some cases
  • Fix a crash in case Windows Explorer favourites link to a non ASCII path
  • Fix playback stopping when playing chained ogg streams
  • Fix context menus not showing sometimes with GTK+3.14.1
  • Translations:
  • Russian translation update (Anton Shestakov

New in Quod Libet 3.2.1 (Aug 25, 2014)

  • Fixes:
  • Fix Ex Falso not starting in some cases. [1448]
  • Album art download plugin: Fix image file extension [1435]
  • Translations:
  • Russian translation update [1441]

New in Quod Libet 3.2 (Aug 2, 2014)

  • Tags:
  • ~people and ~performer don’t show roles anymore, which makes them more useful in the paned browser for example. Instead ~people:roles and ~performer:roles will include roles and merge roles like “Artist (Role1, Role2)”. Furthermore composer, lyricist, arranger and conductor will be merged with performer roles in ~people:roles. so “performer:role1=Foo, composer=Foo” will result in “Foo (Role1, Composition)”. (qjh)
  • ~#rating in the song list is now a numeric column, ~rating shows the stars (Jan Path) [1381]
  • UI:
  • HiDPI support (start with GDK_SCALE=2, needs cairo trunk)
  • Various display fixes for GTK+ 3.13 and non-Adwaita based themes
  • Seek slider width scales with song length to some extend
  • Seek slider shows remaining time
  • Play order plugins are now split in random/non-random and the UI was replaced by a toggle button + menu. [1411]
  • Removing of songs from a playlist through the context menu (Nick Boultbee)
  • Song list columns now remember their width/state (qjh)
  • Song list columns provide an option to toggle if they expand.
  • The multi sort dialog is gone, instead it’s now possible to sort by multiple tags by holding down ctrl and clicking on multiple columns.
  • Plugins:
  • New MPD Server plugin to remote control QL, e.g. through MPDroid [1377]
  • New acoustid.org fingerprint tagger (basic functionality, but works)
  • “Show File” merged into “Browse Folders”, it will now try to select the files if the interfaces allows it.
  • Exact rating plugin (Jan Path) [1383]
  • Player:
  • Improved GStreamer error reporting.
  • Error recording is gone, since it was just annoying. [1400]
  • Windows:
  • Fix slow startup [1389]
  • Windows Explorer folder context menu entry for Ex Falso
  • Misc:
  • Keyboard shortcuts are now documented: https://quodlibet.readthedocs.org/en/latest/guide/shortcuts.html
  • Developers:
  • Due to the inclusion of the plugins into the core, the symlink from
  • ~/.quodlibet/plugins is no longer needed.
  • Fixes:
  • Fix tray icon crashing or not showing under Gnome Shell 3.12 [1429]
  • Packaging:
  • UDisks2 supported, in addition to UDisks1
  • Plugins are now included in the main tarball and will be installed by setup.py, the quodlibet-plugins tarball is gone. (Load path switched from quodlibet/plugins to quodlibet/ext for system wide plugins, loading from ~/.quodlibet/plugins is the same) [1396]
  • For BSDs: setup.py has a new “–mandir” to select the man page location
  • Packaging guide: https://quodlibet.readthedocs.org/en/latest/packaging.html

New in Quod Libet 3.1.2 (Jun 21, 2014)

  • Fix 3.1.1 regression causing folders in the file browser to show up in reverse order

New in Quod Libet 3.1.1 (Apr 29, 2014)

  • Fix a crash with GTK+ 3.12
  • Handle invalid flac picture blocks
  • Fix “setup.py install –record”

New in Quod Libet 3.1.0 (Apr 28, 2014)

  • Windows is supported again. And it should be in better shape than with 2.6 in many aspects. Embedded images work now, newer GStreamer with more codecs, operon is included etc. The file browser and EF now show the favorite folders from the Windows Explorer. The installer will now uninstall any existing installation first and as with 2.6.3 there is a portable version available.
  • There is still an unsolved problem regarding miss-placed context menus with multiple monitors [1319].
  • Thanks goes to Bakhtiar Hasmanan for providing a working PyGObject stack.
  • Initial Wayland support is here (only tested under weston). This was mostly fixing weird usage of GTK+ that just happened to work under X11 and not using the screen size for calculations since there is no real screen under Wayland.
  • Piotr Drąg, Rüdiger Arp, Diego Beraldin and Dimitris Papageorgiou worked on improving the translations.
  • Nick Boultbee worked on a plugin system for playlist plugins and moved the duplication/shuffle actions to it. He also moved the rating configuration from the plugin into the core.
  • Simonas Kazlauskas worked on a plugin system for cover art sources currently supporting last.fm and musicbrainz (exposed as two plugins). If active it will fetch covers in case no local cover is found. In the future we might implement the album art downloader on top of that.
  • Thomas Vogt made transparency work again with GTK+3 in the OSD plugin. (fake transparency now also works again, which was the last known regression from the PyGObject port)
  • operon gained new commands (image-extract, image-set, image-clear) for manipulating and extracting embedded images for all formats supporting embedded images in QL (id3, ogg, flac, wma, mp4). See the manpage [0] for examples. There is also a QL plugin which allows removing all embedded images and embed the active one. This should get better integrated into the tag editor at some point.
  • Display patterns now support specifying the markup using square brackets to not need escaping in the common case. “” can now be written as “[b][/b]” (the old way still works).
  • In the radio browser the radio list now contains icecast and shoutcast2 stations in addition to shoutcast1 ones and only one additional mirror is included for each station. QL now shows ~4100 stations of ~30000 we know about. Use “Update stations” to get the new list.
  • Other changes:
  • QL now remembers additional open browsers and reopens them on start.
  • The main tool bar is better integrated with GTK+ themes.
  • We use symbolic icons in many places.
  • Added a simple GNOME app menu.
  • ‘albumartist’ is now used for album identification.
  • space enables “stop after the current song”.
  • Warning before opening too many plugin windows (Nick Boultbee) [1231]
  • New –unqueue-all command [1234]
  • Fixes:
  • Config gets saved atomically and handle a corrupted one [1042]
  • editing:id3encoding option was ignored [1290]
  • album browser: Fix sorting by rating [1352]
  • search: Fix results for “&(foo, !bar)” [1327]
  • Various crashes caused by code not being ported to PyGObject properly.
  • Dependencies & Packaging:
  • No dependency changes compared to 3.0
  • We now install appdata.xml files
  • We now install a dbus service file
  • setup.py build_sphinx builds the html user guide

New in Quod Libet 2.6.3 (Sep 25, 2013)

  • Fix library saving [1230] (Sebastian Thürrschmidt)

New in Quod Libet 2.6.2 (Aug 13, 2013)

  • General:
  • Device backend: Correctly detect udisks1 if it isn’t running
  • Fix play button not starting playback if no song is active
  • Don’t forget newly created bookmarks in some cases
  • Various fixes
  • Plugins:
  • Fix HTML export plugin
  • Fix Bookmarks plugin