Quod Libet Changelog

What's new in Quod Libet 4.4.0

Jul 19, 2021
  • Packaging Changes:
  • One quodlibet/ subdirectory has been removed - e.g. quodlibet/tests/ -> tests/ (#3238)
  • Move to Python 3.7 (closing #3433) #3438 (Nick Boultbee)
  • macos: bundle.sh: clone from ../.. rather than .., fixing #3393. (#3394) (Sam Hathaway)
  • win_installer: pass options to build script on env switch #3328 (Gabor Karsay)
  • Depend on musicbrainzngs>=0.6 (Christoph Reiter)
  • General:
  • Switch to XSPF for Playlists (closing #1122) #3242 (Nick Boultbee)
  • Renamed “Search Library” to “Track List” browser (Joschua Gandert)
  • Support moving library folders (scandirs) #3506 (Nick Boultbee)
  • Support JACK via Gstreamer #3511 (Nick Boultbee)
  • Make ID3 Replaygain ALL_CAPS :pr:`3475 (Nick Boultbee)
  • MP4: Support description tag (Nick Boultbee)
  • Advanced prefs: use checkboxes (Nick Boultbee)
  • Add comment to track headers (Nick Boultbee)
  • Change None to empty string to fix TypeError in missing.py #3548 (Ironbalden)
  • Plugin window: don’t appear on top (Nick Boultbee)
  • Info Area: Allow space to play / pause (Nick Boultbee)
  • Allow ctrl-[shift]-tab in Notebook windows (Edit Tags, Song Info, Prefs etc) (#3496) (Nick Boultbee)
  • Playlists: don’t clear on deletion (fixing #3491) (Nick Boultbee)
  • IRadio - do station updates in background #3310 (Nick Boultbee)
  • Improve plugin window style #3481 (Nick Boultbee)
  • Query: allow validation from extensions :up: (Nick Boultbee)
  • Plugins: improve query plugins #3485 (Nick Boultbee)
  • Saved list editor: improve style (Nick Boultbee)
  • Tag Editor: Add smart replacer for colon delimiters (#3456) (Nick Boultbee)
  • Improve local cover art detection (#3454) (#3459) (Nick Boultbee)
  • Add support for TKEY ‘Initial Key’ column (#3420) (Cole Robinson)
  • add ability to sort by date added to Album List Browser (#3410) (Uriel Zajaczkovski)
  • Add originalartistsort (Nick Boultbee)
  • add check to Missing.py, fix #3336 (#3382) (Ironbalden)
  • Add support for ~elapsed and ~#elapsed (#3379) (Nick Boultbee)
  • Format date panes (closing #3346) #3349 (Nick Boultbee)
  • Update song order in song list when modified #2509 (Thomas Leberbauer)
  • Restyle the search query #3517 (Nick Boultbee)
  • Fix non-splitter EditTags plugins (fixing #3468) #3470 (Nick Boultbee)
  • Support feedparser 6.0 #3464 (Christoph Reiter)
  • formats: Don’t return lyrics with embedded nulls #3402 (Christoph Reiter)
  • Fix setting pane mode #3365 (Michael Kuhn)
  • windows: Fix playing files on network shares (fixing #3361) #3371 (d10n)
  • Restarting #3211 (blimmo)
  • Closes #946: Rename cover filename option #3235 (Joschua Gandert)
  • Closes #1769: Allow multiple entries for cover files #3236 (Joschua Gandert)
  • Plugins:
  • Add listenbrainz scrobbling plugin. #3528 (Ian Campbell)
  • First version of Musicbrainz Sync plugin that sends ratings (#3180) (LoveIsGrief)
  • add plugin ‘synchronize to device’ #636 (Jan)
  • Fix weighted shuffle not shuffling when total rating is zero. #3397 (blimmo)
  • ext/inhibit: Add option to inhibit suspend #3309 (antigone-xyz)
  • trayicon: only check for org.kde.StatusNotifierWatcher for the appindicator #3313 (Christoph Reiter)
  • MQTT authentication #3391 (Jeroen7V)
  • Add “Rate” to D-Bus API #3455 (LoveIsGrief)
  • Prettier sync lyrics (Nick Boultbee)
  • Synchronizedlyrics: Rewrite lyrics parsing, supporting >60min songs (Nick Boultbee)
  • Add Sonos playlist export plugin #3487 (Nick Boultbee)
  • Plugin: fix Cover Art window persistence (Nick Boultbee)
  • Skip songs: rename & naming / text updates (Nick Boultbee)
  • Cover Art Downloader: remove failing downloads from results (Nick Boultbee)
  • Cover Art: Improve Musicbrainz downloader (Nick Boultbee)
  • Cover Art download: only trigger plugin if album tag available (Nick Boultbee)
  • Added AutoUpdateTagsInFiles plugin #3200 (Joschua Gandert)
  • Translations:
  • Update Polish translation #3323
  • Update italian translation #3405 (dprimon)
  • Updated Dutch translation #3441 (Vistaus)
  • Update British English translation #3483 (Nick Boultbee)
  • Documentation:
  • Update plugin development page (Nick Boultbee)
  • Update plugins.rst to include locations on MacOS. #3562 (BraveSentry)
  • Fixed documentation URLs #3425 (TehPsychedelic)
  • Fix link to contributing guide #3416 (remvee)
  • Various docs updates / improvements (Nick Boultbee)
  • Docs: Improve / tidy renaming files examples (Nick Boultbee)
  • docs: fix the windows dev environ instructions (Christoph Reiter)
  • Developer:
  • Various Python 2 leftovers and updates #3440 (Nick Boultbee)
  • tests/operon: make argument names meaningful #3294 (Jan Tojnar)
  • gettextutil: warn on gettext warnings instead of erroring out #3545 (Christoph Reiter)
  • CI: re-enable flatpak tests #3501 (Christoph Reiter)
  • CI: install MSYS2 packages via the GHA #3458 (Christoph Reiter)
  • Tests: improve source scanning (Nick Boultbee)
  • Refactor: tidy Gstreamer player code #3489 (Nick Boultbee)
  • Add .editorconfig that agrees with PEP-008 and our Flake8 config (Nick Boultbee)
  • Refactor ID3 tag writing for readability pr:3476 (Nick Boultbee)
  • More type hints (Christoph Reiter)
  • CI: Port more things to github actions (Christoph Reiter)
  • Switch from pycodestyle/pyflakes to flake8 (Christoph Reiter)
  • Move the main sources into the repo root (Christoph Reiter)
  • Remove pipenv support (Christoph Reiter)

New in Quod Libet 4.3.0 (Feb 25, 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 (Feb 11, 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 14, 2018)

  • Packaging Changes:
  • gettext 0.19.8 required (was 0.15)
  • intltool no longer required
  • Translations:
  • Finnish translation update #2894 (Kristian Laakkonen)
  • Russian translation update #2965 (Arkadiy Illarionov)
  • Danish translation update #2983 (scootergrisen)
  • Polish translation update #3015 (Piotr Drąg)
  • Codebase:
  • Port lots of dbus related code from python-dbus to GDBus #2876 #2879 #2885 #2887 #2886 #2901 #2903 #2904 #2905 #2917 #2918 #2925 (Arkadiy Illarionov)
  • Ported from intltool to gettext
  • CI: moved from appveyor to azure-pipelines for Windows testing
  • CI: Add junit test reporting #2960 (Nick Boultbee)
  • Various test suite fixes for NixOS #2820 (Jan Tojnar)
  • Removed most Python 2 compatibility code #2957
  • Add a Pipefile for pipenv #2977
  • Various minor Python 3.7 compatibility fixes
  • General:
  • queue: Add option to keep songs after playing them #2865 (Fredrik Strupe)
  • queue: Add option to not play songs from the queue #2865 (Fredrik Strupe)
  • Fix non-deterministic ordering of album list and cover grid browsers #2945 (dpitch40)
  • multimedia keys: add support for forward/rewind/repeat/shuffle keys #2954 (Druette Ludovic)
  • tag editor: Fix a context menu crash #2968 (Eoin O’Neill)
  • Remove GNOME app menu #2846
  • cli: --add-location for adding a file/directory to the library #2970 (Fredrik Strupe)
  • cli: Remove deprecated --song-list option (Fredrik Strupe)
  • Update the big cover window on song changes #2972 (Eoin O’Neill)
  • wayland: Fix the application window icon under Plasma #2974
  • Various man page updates for missing commands etc #2971 (Fredrik Strupe)
  • Add support for importing m3u8 playlists (Fredrik Strupe)
  • tags: Don’t show generic Performance role description for ~performer:roles #2994 (zsau)
  • themes: Work around redraw issues with the Breeze gtk theme #2997
  • tag editor: Remember filelist scroll position on tag save #3005 (Olli Helin)
  • Windows: use SetDllDirectoryW to prevent loading clashing DLLs not shipped by us #2817
  • cover display: Fix the cover window size on multi monitor systems #2915 (Fredrik Strupe)
  • session: Add an XSMP session management backend to improve (but not fix) save on shutdown behavior under XFCE #2897
  • monkeysaudio: handle missing bits_per_sample for older format versions #2882
  • Various other fixes and improvements: #2998 (Olli Helin), #2909 (zsau)
  • Plugins:
  • waveformseekbar: Mouse scroll seeking #2930 (Peter Strulo)
  • waveformseekbar: Add option to hide time labels #2929 (CreamyCookie)
  • waveformseekbar: Fix freezes while playing streams #2987 (Olli Helin)
  • animocd: Add more preset positions #2937 (Fredrik Strupe)
  • New query plugin to match missing tags #2936 (Peter Strulo)
  • pitch: Add spin buttons for finer control #2950 (Druette Ludovic)
  • wikipedia: Unify Wikipedia plugins #2953 (Fredrik Strupe)
  • equalizer: Add option to save custom presets #2995 (Olli Helin)
  • mediaserver: Point out required rygel config adjustment in the plugin settings #3004 (Fredrik Strupe)
  • custom commands: Fix menu order #2659 (Fredrik Strupe)
  • random album: Make it Python 3 compatible #2922 (Stephan Helma)

New in Quod Libet 4.1.0 (Jun 6, 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
  • macOS: Fix cannot re-order playlist songs with DnD #2867 (David Morris)
  • 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
  • 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)

New in Quod Libet 4.0.2 (Jan 19, 2018)

  • Bug fixes:
  • Search in album list somehow broken #2723
  • AttributeError: 'generator' object has no attribute 'next' #2721
  • Not stored equalizer in visual #2722
  • album list: acitvating a row with random album plugin active leads to jumpy UI and starts playing the wrong song #2726
  • Edit controls to enter e.g. tag patterns don't show scrollbars #2717
  • TypeError: '

New in Quod Libet 4.0.1 (Jan 15, 2018)

  • Translation updates by Kirill Romanov and Honza Hejzl
  • Bug fixes: #2677 #2672 #2671 #2680 #2687 #2669 #2699 #2698 #2704 #2703 #2683 #2706 #2705 #2710 #2718 #2719 #2713 #2668 #2715 (CreamyCookie, Nick Boultbee, …)

New in Quod Libet 4.0.0 (Dec 29, 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 25, 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 (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 Dev (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 (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)
  • General:
  • 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
  • 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:
  • 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.8.1 (Jan 30, 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 (Dec 30, 2016)

  • 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)
  • Fix 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: Fix error when query divides by 0 #2025 (faubiguy)
  • Fix 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
  • Fix 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 Drąg)
  • 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 ‘Next’ #2026 #2045 (Corentin Néau)
  • Waveform seek bar #2046 (0x1777), related performance improvements (Nick Boultbee)
  • Add playlists to tray menu #2006 (Nick Boultbee)
  • Random album plugin fixes #2085 (draxil)
  • Custom commands: minor improvements (Nick Boultbee)
  • Some Auto Library Update plugin fixes #1315 (Nick Boultbee)
  • Seek bar plugin: invert scrolling directions #2052 (Corentin Néau)
  • macOS:
  • Allow opening audio files with the bundle
  • Really (really..) fix TLS #2108 #2107
  • Development:
  • Tests: switch to pytest as the main test runner
  • Tests: setup.py quality speedups
  • Tests: All tests pass now on Python 3 under Linux and Windows
  • All magic builtins gone #2044
  • macOS bundle and Windows installer include everything required for running the test suite.

New in Quod Libet 3.7.1 (Sep 26, 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)

New in Quod Libet 3.7.0 (Aug 29, 2016)

  • 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
  • OSX: Enable multimedia key handling by default #1817
  • 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
  • OSX: build dmgs

New in Quod Libet 3.6.1 (Apr 6, 2016)

  • 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

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]
  • OS X:
  • Add a simple dock menu
  • TLS support (https streams..) [1895]
  • Add option to enable experimental mmkeys support in the advanced prefs plugin. [1817]
  • Wayland:
  • Fix seek bar window position (needs gtk+ 3.20)

New in Quod Libet 3.5.2 (Jan 13, 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 :bug:`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 14, 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 8, 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] (Nick Boultbee)
  • Playlist content search in the playlist browser [pr-1593] (Nick Boultbee)
  • Disable app menu under Unity [1599]
  • Allow users to optionally bypass the trash even if it is available on their operating system (Eric Casteleijn) [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] (Ryan Turner)
  • 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] (Nick Boultbee)
  • 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
  • OS X:
  • Replace “Ctrl” with “Command” in all keyboard shortcuts [1677]
  • (already in 3.4.1-v2 build) HIDPI support
  • (already in 3.4.1-v2 build) Support for more audio formats
  • Plugins:
  • Add a plugin for editing ~#playcount and ~#skipcount. [pr-1624] (Ryan Turner)
  • Advanced preferences plugin [1050] (Bruno Bergot)
  • Allow to configure cover size in animosd plugin [1049] (Bruno Bergot)
  • 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] (Nathan Follens)
  • Updated greek translation [1684] (Dimitris Papageorgiou)
  • 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
  • Packaging:
  • See the Packaging Guide for changes

New in Quod Libet 3.3.1 (Jan 13, 2015)

  • Regressions:
  • Fix occasional errors when closing menus (with the plugin menu in Ex Falso for example) [1515]
  • Fix operon info [1514]
  • Fix operon fill error in case a tag doesn’t match [1520]
  • 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. [1437]
  • Songlist: Scroll to playing song when replacing the list. [568]
  • Songlist: Scroll to first selected song and restore selection for it on re-sort. [568]
  • Consider all songs in an album for finding (embedded) album art. [924]
  • Support month (30 days) in time queries (#(lastplayed < 1 month). [706]
  • Support playing a song that is not in the song list. [1358]
  • Support numeric date search e.g. #(2004-01 < date < 2004-05) [1455]
  • Playlists browser: make delete key remove the selected songs from the current playlist [1481] (Nick Boultbee)
  • 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. [133]
  • New ~people:real tag which filters out “Various Artists” values (Nick Boultbee) [1034]
  • Prefer artist over albumartist for single songs in ~people (Nick Boultbee) [1034]
  • Fixes:
  • Update for theming changes in gtk3.15
  • Fix seek slider not working with newer gtk+ and some themes [1477]
  • Fix playing song not restoring on start with radio/filesystem browser
  • Translations:
  • Russian translation update (Anton Shestakov) [1441]
  • Updated Greek translation (Dimitris Papageorgiou). [1491]
  • 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 (Anton Shestakov) [1442] [1445]
  • New simple lyricwiki plugin using a WebKitGtk webview
  • New Rhythmbox import plugin. [1463]
  • 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 [619]
  • Theme switcher: add option to enable/disable client side decorations
  • ReplayGain: add option to skip albums with existing ReplayGain values (Nick Boultbee) [1471]
  • Notifications: Make cover art display work under e19 [1504]
  • Operon:
  • new ‘edit’ command for editing tags with a text editor (VISUAL=vi operon edit song.flac) [1084]
  • new ‘fill’ command for filling tags using parts of the file path (operon fill --dry-run ". " *.flac)
  • OS X:
  • Multimedia key support (Eric Le Lay)
  • Global menu support / OS X integration. (Eric Le Lay)
  • Various fixes / improvements

New in Quod Libet 3.2.2 (Oct 3, 2014)

  • Fixes:
  • Fix a crash when seeking streams in some cases [1450]
  • Fix a crash in case Windows Explorer favourites link to a non ASCII path [1464]
  • Fix playback stopping when playing chained ogg streams [1454]
  • 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 (Nick Boultbee) [1435]
  • Translations:
  • Russian translation update (Anton Shestakov) [1441]

New in Quod Libet 3.2.0 (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]
  • 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 (Jul 3, 2014)

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

New in Quod Libet 3.1.1 (Jul 3, 2014)

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

New in Quod Libet 3.1.0 (Apr 11, 2014)

  • 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 3.0.2 (Aug 13, 2013)

  • General:
  • Device backend: Correctly detect udisks1 if it isn’t running [1200]
  • mmkeys: Really make libkeybinder work again [1203] (Hans Scholze)
  • Fix play button not starting playback if no song is active [863]
  • Don’t forget newly created bookmarks in some cases
  • Fix “Refresh” in the file tree browser [1201]
  • Fix menu separator drawing with PyGObject 3.2 (Ubuntu 12.04)
  • Various fixes
  • Plugins:
  • Forward library events to event plugins again
  • Fix bookmarks plugin, playlist export plugin, HTML export plugin
  • animosd: Handle multiple monitors (Nick Boultbee)