- 🛠️ Improved announcements feature to allow for scopes.
- 🚩 Warn users when auto-updates are disabled or beta updates are enabled.
- 💻 Improved macOS icons for better visual consistency.
- 🎥 Added time entry for custom durations
- 🎥 Display elapsed/remaining time during video playback (#3661).
- 🖥️ Restricted media window maximization to when using multiple screens.
- 🌐 Immediately applied urlVariables upon change.
- 🔄 Resolved issues with spinning loader icon and refresh button placement in media dialogs.
- 🎨 Improved drag-and-drop loader styling for consistency.
- 🖼️ Adjusted about modal update toggle placement and logo styling.
- 🎛️ Removed size notification from media window and replaced it with a tooltip in the display popup.
- 🖼️ Unified grid styling for song, Study Bible, and audio Bible views.
- 📜 Fixed missing strings for Hebrew and Greek scriptures.
- 📜 Resolved Bible book name display issues in certain cases.
- 🖼️ Fixed long filename layout issues in media items.
- 🛠️ Ensured dynamic modal height with friendly overflow.
- 📦 Fixed download popup scroll issue and spinner icon glitches.
- 🎨 Improved banner color consistency.
- 📜 Correctly handle media language fallback order.
- 🖼️ Displayed intro pictures from lff and bt and lmd when appropriate.
- 🌐 Initial support for Haitian Creole.
- 📦 Improved error handling and messaging across the app.
- 🛠️ Enhanced code structure by moving and optimizing utility functions.
- 📄 Updated documentation for contributing guidelines and download links.
- 🛠️ Improved workflows for beta release cleanup and CI schedules.
- 🚀 Made event listeners passive for better performance.
- 🌐 Cleaned up old locales and removed incomplete translations.
- 🧹 Added cache folder customization in settings and the wizard for better data control.
- 🎤 Introduced audio Bible import functionality (#3569).
- 📂 Added auto-export media to folder functionality (#3474).
- 📖 Included non-book media (e.g., appendices, introductions) from the study Bible (#3559).
- 🌐 Enabled Italian language support.
- 🎨 Updated icon assets and introduced new media player icon.
- 🖼️ Move subtitle settings to ensure better grouping in settings.
- 🖱️ Resolved hover color issues for list items.
- 📜 Fixed study Bible style tweaks and harmonized video title displays with study Bible tiles.
- 🎬 Corrected ordering issues for meetings with extra media.
- 🖥️ Fixed window offscreen issues by resetting window position when necessary.
- 🎛️ Fixed slider tooltip position glitch to ensure proper display.
- 🚪 Properly handled public talk media so it is displayed correctly in the list.
- 🔄 Resolved issues with combined properties from JWPUB files.
- 🎵 Fixed S-34mp menu position for better usability.
- 🛠️ Fixed menu actions to disable them as needed when media is active and adjusted menu icon placement.
- 🖼️ Corrected window flicker issues during screen transitions.
- ⚙️ Fixed media access status logic to avoid unnecessary calls on Linux.
- 🛠️ Resolved zoom limit enforcement for better usability while presenting the website.
- 🔨 Refactored and optimized code for reusability.
- 📚 Improved documentation.
- 🖼️ Implemented custom scrolling styles and logic instead of using
q-scroll-area
repeatedly (#3525). - ✏️ Cleaned up SVGs and resolved typos in the documentation.
- 🛠️ Refactored error handling across Electron processes, including thumbnails and fetch contexts.
- 🚀 Improved DX (Developer Experience) with streamlined workflows and templates.
This release includes critical fixes, exciting new features, and numerous under-the-hood improvements to enhance performance, usability, and developer experience. Enjoy!
- 🌐 Added a notification to offer translation help for missing translations (#3426).
- 🖼️ Implemented extra media indicators and improved visual feedback for media items (#3452).
- 🎤 Added support for missing media from JW playlist files and ensured they are added correctly from the watched folder.
- 📚 Added support for Study Bible media.
- 🖋️ Added context menu button for easy access to media actions in the media list.
- 🎧 Added a portable Windows version of the app for easier use on portable setups when needed.
- 🎶 Ensured JW playlist item repeat settings are honored.
- 🖼️ Fixed hover effects to work across the entire media item and properly set the menu target.
- 🎤 Resolved incorrect song attributes by setting the default to
false
. - 🎬 Correctly handled watched playlist files to prevent issues with media management.
- 🖥️ Fixed duplicate fetch calls to optimize media fetching logic.
- 📅 Corrected calendar day labels that were appearing incorrectly in certain scenarios.
- 🎧 Fixed media permission prompts on macOS to only appear when needed.
- 📝 Fixed CSP font-src issues and ensured fonts are correctly handled.
- 📜 Prevented duplicate error messages from being shown during media fetch.
- 🖼️ Fixed thumbnail file handling by preventing unnecessary writes to watched folders.
- 🛑 Prevented excessive window jumping on macOS by adjusting fullscreen logic.
- 🧭 Fixed congregation finder scroll positioning to ensure correct navigation in modals.
- 🌍 Corrected URL search params parsing to fix incorrect URL behavior.
- ⚙️ Improved code readability across the app to make the codebase cleaner and more maintainable.
- ⚡ Optimized performance of Quasar imports for faster app startup and reduced bundle size.
- 📜 Updated contributing guidelines for clearer instructions on how to contribute.
- 🛠️ Refactored locale handling to make it more efficient and reliable when migrating locales.
- 📚 Added direct download links in the docs for easier access to required files.
- 🖥️ Updated the installation documentation for clarity and ease of access.
- 🎼 Added song grid view to replace the song list for easier navigation and selection.
- ✏️ Minor rephrasing of various UI text for better clarity.
- 🛑 Implemented quit verification logic for macOS
Cmd-Q
to prevent accidental exits. - 🎵 Added loading indicator to song picker when refreshing songs for a smoother experience.
- 🎶 Improved search and filters in public talk media and song pickers to allow for partial text matches.
- 🌐 Adjusted website aspect ratio on macOS for better display (#3283).
- 🖼️ Fixed thumbnail file path errors that caused media thumbnails to fail in some cases.
- 📜 Properly reset media import progress and drag-and-dropper.
- 🎬 Ensured new watched media is added to the bottom of the list when sorted.
- 🖋️ Improved fetch error handling for more robust error messages.
- 🌐 Fixed font URLs to default to empty when
urlVariables
are missing. - 🔗 Fixed base URL checks to skip unnecessary fetches when everything is already configured properly.
- 🎶 Improved font-src CSP for dynamic font loading.
- 🖼️ Fixed cursor indicator errors during website presentation.
- 📂 Caught folder watcher errors to prevent unexpected app behavior.
- 🌐 Request media permissions on macOS before showing the website window.
- 🚀 Greatly improved performance responsiveness on remote video popup and added pagination for better UX.
- 🌍 Moved from localeCompare to Intl.Collator for enhanced sorting and locale handling.
- 🛠️ Improved types for better type safety across the app.
- 🗂️ Added missing publication file types for better compatibility.
- 🖱️ Added mouse cursor indicator and click animation during website presentation.
- 📅 Fixed calendar day labels to display accurately based on user settings.
- 🎶 Ensure the the requested section was used when adding extra media for the midweek meeting.
- 🎵 Updated opening song button to ignore watched media.
- 🔢 Fixed an issue where incorrect values would show up in some menus.
- 🔗 Added base URL validation for improved setup accuracy.
- 🌐 Cleared up language inconsistencies across the interface.
- 🗄️ Improved user data folder management.
- 📂 Added folder watcher feature to monitor a specified folder for new media, useful for syncing media from a cloud folder.
- ➕ Added feature to add media to specific meeting sections using a new button on the Public Talk, Circuit Overseer, and Living as Christians headers.
- 🎬 OBS Studio scenes can now be activated either immediately, or after media has stopped playing.
- 🖼️ Improved audio file management to show thumbnails and enable time slider and custom durations.
- 📅 Added first day of the week setting to customize the starting day in calendar views.
- 🎶 Changed "concluding song" label to "closing song".
- 🔒 Added prompt to request media access for website presentations on macOS.
- 🌐 Adjusted website window behavior to avoid forced-on-top setting when presenting a website.
- 📋 Improved handling of long filenames
- 🖥️ Fixed handling of multiple monitors on Windows
- 🔗 Fixed URL handling to correctly process
urlVariables
errors. - 🌍 Fixed JWPUB import (such as S-34) for certain languages.
- 🛠️ Fixed initial congregation selection issue.
- 🖼️ Cache extracted thumbnails intelligently to prevent having to extract them repeatedly.
- 🧩 Improved performance by replacing adm-zip with decompress.
- 🛠️ Improved error handling and Sentry capturing.
- 🔐 Enhanced type safety and IPC code cleanup.
- 🛑 Updated to cancel pending downloads before closing the app.
- Fixed issue where music button didn't automatically start music in some cases
- New Announcements feature to be used when needed (for updates, etc.)
- Refined public talk section to stay visible during WE meetings
- Centered website window on the primary screen
- Improved tooltip for media scrubber to show information about scrubbing
- Fixed nav drawer display quirks
- Added Instant Scene Picker toggle in settings and improved scene switching when presenting websites
- Fixed JW Playlist Import to respect languages specified in playlist
- Resolved issues with Hidden Media and Additional Media visibility in the menu
- Switched to Electron's Built-in Download methods, replacing Axios for improved performance
- Enhanced File Dialog Filters
- Optimized Drag-and-Drop Import to show informative progress bars whenever appropriate
- Addressed Sorting issues with downloads
- Added feature to notify macOS users of new versions when available
- Updated macOS build artifacts for better distribution
- Improved Window State handling for full-screen windows on macOS
- Added debug statements and debug options for macOS
- Removed Axios and Synchronous FS Calls to greatly improve performance
- Enhanced Code Documentation for better readability and maintenance
- Added Type Checking for better code stability and optimized Type Imports
- Addressed Sentry issues and removed redundant log output
- Cleaned up Console Logs and reduced redundant messages
- Updated Contributing Guidelines and Readme
- Improved Download Error Handling to avoid unnecessary warnings on expected failures
- feat: Presenting the website is now supported on macOS 🚀
- feat: Introduced keyboard shortcuts for stopping, pausing, and resuming media playback 🚀
- feat: Added support for setting the web address from which media should be downloaded 🚀
- feat: Added OBS Studio instant scene picker and overhauled scene picker functionality in settings
- feat: Expanded documentation website to support more languages
- fix: Intel Mac systems are now supported! 🚀
- fix: Various UI adjustments, such as image zoom reset icon visibility
- fix: Corrected issues in media handling, including hidden media visibility, JW video categories, and background music updates on profile change
- fix: Image zoom now resets when media is stopped
- fix: Enhanced date handling—fallback to today’s date for "Other" profiles, and hide the import button if no date selection was made
- fix: Corrected window state logic for macOS, including the system menu bar
- fix: Correct handling of undefined
mediaLinks
, nullable settings and other variable values in various functions
- refactor: Switched to asynchronous file handling and removed synchronous file system calls, greatly improving responsiveness
- refactor: Reorganized preload files for better modularity and IPC handling, and removed
electron/remote
dependency - refactor: Consolidated imports, optimized Quasar components, and improved type safety across the codebase
- chore: Improved stability with enhanced security by disabling Node integration and enabling web security
- chore: Documented codebase, improved
Info.plist
handling on macOS, and added minimum macOS version requirement - chore: Added Prettier formatting, code comments, and improved
lint-staged
configuration for better code consistency
- docs: Enhanced FAQ link texts and navigation for clarity
- docs: Updated
README
to better guide contributors and included terms of use references
- ci: Updated Husky configurations for pre-commit and pre-push checks, fixed type checks, and enhanced build scripts for x64 and ARM64 on macOS
- ci: Refined artifact uploads and improved documentation generation
- new: Added keyboard shortcuts to navigate to the next/previous media item
- new: Added a right-click menu to media items to hide media items and rename them
- new: Trimmed video times are now respected in imported JWL playlists
- fix: Improved pan-zoom behavior on double-click of image preview and scaling
- fix: Corrected pan-zoom maximum zoom
- fix: Hide media item actions in extra media menu and show only when there’s extra/hidden media
- fix: Full-screen windows on macOS can now be shared and controlled in Zoom correctly
- fix: Added tooltip to list all supported extensions
- fix: Improved button popups to show active states
- fix: Enhanced drag-and-drop sorting algorithm
- fix: Added a progress bar during imports
- fix: Made chips for paragraphs/songs take full width on very small screen sizes
- fix: Updated verbiage for imported media notifications
- fix: Optimized application menu for a better user experience on macOS
- fix: Added progress indicators and ensured a smoother user experience
- fix: Fixed download spinner color when menu active
- fix: Improved the navigation drawer color for active items in dark mode
- fix: Dark mode setting was incorrectly detected as missing in some cases
- refactor: Removed unused strings and formatted codebase for consistency
- fix: Fixed typos, corrected errors, and improved linting throughout the codebase
- fix: Properly support
.mov
files and all possible image types (reference) - fix: Optimized OBS integration by adding 'previous scene' restore functionality
- fix: Resolved potential drag/drop issue when no path is found
- fix: Disabled a Windows shortcut workaround that is no longer needed
- fix: Improved migration logic, ensured safe parsing, and refactored migration to simplify the process
- refactor: Implemented secure IPC communication for better application security
- refactor: Made send and log functions generic for better reusability
- chore: Ignored certain spellcheck (cspell) rules and fixed language order
- chore: Bumped Pinia dependency and other dependencies
- docs: Improved navigation in FAQs and other documentation pages
- docs: Updated issue reporting link to point to the issue list
- docs: Added steps for correctly fetching the latest version
- chore: Updated Crowdin and docs configurations
- chore: Updated
CONTRIBUTING.md
and added terms of use reference in the README
- Updated
CHANGELOG.md
and cleaned up unused strings
- feat: Added an option to delete all extra media files for the currently selected day
- fix: Sentry improvements to properly track errors
- fix: Eliminated the return of the dreaded yellow outline 🟡
- fix: Corrected hover color for some buttons
- fix: Addressed some typos
- fix: Properly detect the CO visit date immediately after loading a profile instead of waiting to change the selected date
- fix: Hide overflow text from title bar behind ellipsis
- Many languages got updated translations, including Ukrainian, Swahili, Russian, and Dutch (listed in reverse alphabetical order)
- chore: Removed unused strings to clean up the codebase
- new: Improved music stopping logic to prevent a new song from starting if one is already playing
- new: Show feedback when setting and removing a custom background
- new: Hide overflow from app title behind ellipsis for cleaner appearance
- new: Show OBS Studio connection state on relevant fields in settings
- new: Prevent configuring scenes if OBS Studio is not connected
- fix: Properly retry errored-out meetings as needed
- fix: Restored and improved highlight color for selected media
- fix: Resolved layout glitch where banners and loaders sometimes conflicted
- fix: Improved storing and retrieval of app settings and download history
- fix: Corrected strings in app theme menu
- fix: Made "congratulations" message translatable
- Hungarian: Now supported with full translation 🎉
- Progress updates on translations across multiple languages
- chore: Added Pinia to Sentry for better state tracking
- chore: Enable zip format for better macOS updates
- fix: Resolved a navigation style bug on initial load
- fix: Moved the songbook cache setting to a better place in settings
- fix: Truncate long OBS Studio scene titles
- fix: Prevented issues with font caching that prevented icons from showing up in some cases where the app was offline
- fix: Allowed copy-paste shortcuts to work seamlessly
- fix: Import button label now displays correctly on menu buttons even with smaller windows
- fix: Reverted Formkit drag-and-drop, fixing issues with file dropping into the app
- fix: Minor grammar improvements and corrections in the UI
- fix: Select menu values weren't displaying as expected in some cases
- fix: The wrong application data directory was being used in some cases
- new: Remember media window position between sessions
- new: Added developer console to allowed shortcuts
- chore: Updated Crowdin configuration file for better translation management
- chore: Improved developer experience (DX) and updated target settings
- chore: Fixed rebuild failing on Linux
- chore: Re-added missing files from a previous build
- chore: Migrated to a new and improved way to persist settings
- docs: Fixed the issue creation link in the bug report template
- ci: Updated Mergify configuration for automation improvements
- ci: Updated Crowdin and other build-related YAML files
- chore: Performed redirects on every session on docs website
- Updated
README.md
We've completely revamped the app! Say goodbye to complicated workflows and hello to a fresh, intuitive design! The new interface makes everything super easy and enjoyable to use.
Managing media is now a breeze! We've eliminated all those tricky steps like media prefixes and confusing option clicks. Now you can drag and drop with ease. Everything is designed to help streamline tasks, especially for audio-video attendants.
- Simplicity: We've made the app as easy as possible to use.
- Functionality: Everything you need to play and manage media for meetings is included.
- Option to disable checking for updates
- Keep the highest found number of Kingdom songs
- Correctly fetch media from public watchtowers
- Update deprecation banner
- Show deprecation banner advising of new version
- Update Zoom SDK before the old one is deprecated
- New language: Chinese Mandarin (Simplified) (thanks @heymenshan!)
- Prevent recursively processing midweek meeting references
- Dynamically get the correct number of Kingdom Songs
- Correctly sanitize filenames with an apostrophe
- Correctly save time values when only changing the hour
- Disabled save button while saving
- Exclude songs with described audio from song picker
- New language: Pangasinan (thanks @lorenpajarits!)
- Exclude songs with described audio from background music playback
- New language: Iloko / Ilokano (thanks @bridenkenn!)
- New language: Tagalog (thanks @bridenkenn!)
- Correctly process JWL playlist items with special characters
- Correctly validate video timestamp
- Preparations for the new Meeting Workbook format
- Skip Bearing Witness media for Circuit Overseer visits
- Only save Meeting Workbook headings if they are actually present
- Fix edge case where mwb images would not be fetched correctly
- New language: Afrikaans (thanks @DickyBird69!)
- New language: Greek (thanks @jimrp!)
- New language: Romany (Southern Greece) (thanks @jimrp!)
- Correctly fetch some Watchtower footnotes
- Correctly get Meeting Workbook headings when an uneven result is returned
- Download media in correct order for some languages
- Updated dependencies
- Added ability to drag-and-drop JW Library playlists directly into the media management screen
- Playing audio files will no longer fade out the yeartext
- Improved fallback for when languages weren't fetched or updated successfully
- Improved JSON file reading, writing and error catching
- 🚀 Ability to import playlists from JW Library
- New language: Slovenian (thanks @brobic74!)
- Support
.heic
files - Support
.m4v
files
- Correctly fetch tracts
- Only auto release beta releases when there are actual changes (features, fixes, translations)
- Option to exclude media from footnotes in Watchtower Studies
- Support
.webp
files
- Always include
lff
lesson header image - Use correct paragraph number for referenced videos
- Fetch missing referenced videos for Watchtower Studies
- Correctly fetch (sign-language) videos for Watchtower Studies
- Always ignore correct song for circuit overseer visit
- Correctly fetch jw languages when missing
- Correctly fetch some media that's in a different language than the publication
- More complete translations
- The main M3 window now allows for a smaller window width
- Correctly present media that has been sorted
- Ability to force updates to install critical bug fixes when necessary
- Correctly download songs for Watchtower editions February 2023 and later
- Correctly download songs that appear multiple times per week
- Correctly toggle subtitle position
- Don't try to fetch media items on startup when offline
- Fix OBS optional image scene for
obs-websocket
V4
- Fix global layout bug for input fields
- Fix "select video from the official website of Jehovah's Witnesses" feature not working in some use cases
- The tabs in settings have an icon for easier recognition
- Zoom and pan has been reworked to be accurate whether using the mouse-wheel or double click
- Don't try to fetch non-existing meeting media for the week of the Memorial
- Subtitles are now individually rendered according to their intended positions by default
- Zoom and pan is now reset when changing or "stopping" pictures
- Various minor bugfixes
- 🚀 Zoom integration! Automate various Zoom actions, like toggling video/microphone/spotlight or allow to un-mute (see #1303 for details). It's still a beta feature, so make sure you test it thoroughly before use during meetings. Also, always verify that the automation was executed successfully.
- A new optional setting to configure a OBS Studio scene to be used for showing images (useful to show a picture-in-picture style overlay)
- New language: Romanian (thanks @baciucristian!)
- New prefix schema:
{heading number}-{part number}-{media number}
. Media for the Treasures section starts with01
, Apply Yourselves starts with02
, and Living as Christians with03
. - Support showing
.jfif
images
- Always link to the correct M³ release from the update notification and settings screen.
- Correctly install beta updates on macOS
- Ignore
.title
files when converting media to MP4
- 🚀 Quickly access the manage media screen while presenting (top bar >
⋮
>Manage media
) - 🚀 Option to automatically start playing background music before meetings
- Added an option to enable beta updates
- Improved the video custom start/end time feature
- Ability to start playing the first media item a custom number of minutes and seconds before the meeting starts
- When presenting the official website of Jehovah's Witnesses, the website controller will now more accurately depict what is shown on the media window
- The circuit overseer date picker now allows selecting Tuesdays, and weeks will start on the correct day depending on the user's language
- Several UX improvements
- Activate OBS Studio media scene when presenting the official website of Jehovah's Witnesses
- Immediately toggle subtitles when toggled in settings
- OBS Studio scene shortcuts won't change the scene while media is active
- Show a warning when congregation server web address is invalid
- Show a warning when OBS Studio scene does not exist
- 🚀 Videos can now be added directly from the official website of Jehovah's Witnesses! Useful, for example, to add Governing Body Update videos for presentation during midweek meetings
- 🚀 Added subheadings to presentation mode, simplifying navigation between meeting parts
- Added a representation of the mouse cursor while presenting the official website of Jehovah's Witnesses on the external monitors (still a beta feature)
- Option to automatically play the first media item a predetermined number of minutes before a meeting's start
- Option to manually reconnect to OBS Studio while in presentation mode
- Zooming and panning a picture will now be done more gradually on the external monitors, to avoid abrupt picture motion for the audience
- Several enhancements to the subtitle feature
- Several minor UI improvements
- Only try to create new directories on synchronization server once per save action
- Prevent closing M³ when presenting the official website of Jehovah's Witnesses
- When a directory is locked on synchronization server, show a friendly warning
- System theme will now be used on the initial congregation selection screen
- 🚀 New field which allows selecting the date of the next visit of the circuit overseer; when that week comes, the midweek meeting will change to Tuesday automatically and unnecessary media (closing songs and CBS media) will be skipped as well
- Added a loading indicator while files are being renamed
- Improved app icon for macOS (thanks @advenimus!)
- Improved media prefixes for weekend meetings (reserve
01
for public talk opening song, and02
for public talk images)
- Allow to clear Zoom scene
- Catch download errors and show friendly warnings
- Correctly parse synchronization server response
- Disable pause button until video started
- Fixed some spelling mistakes
- Show a friendly warning when a directory can not be accessed
- 🚀 A new OBS scene selector for making the display of Zoom participants easier (see #987 and #1022 for details)
- 🚀 You can now set a custom cache location to store publications and media cache
- Added informational icons with tooltips for settings that are not immediately clear
- New language: Slovak (thanks @madroots!)
- New language: Ukrainian (thanks @mchaplyak!)
- Small UI improvements
- Better checks for OBS integration
- Fixed the logic to recognize printed images
- Force refresh of yeartext and fonts the when clearing the cache
- Media from the Enjoy Life Forever brochure is correctly ignored again when appropriate
- Show a warning when the media folder could not be opened automatically from M³
- Show a warning when the yeartext is not available in your language
- The media window no longer has rounded corners in windowed mode for macOS (thanks @riggles!)
- Video scrubber correctly shows progress when pausing a video
- When starting shuffle music more than one hour before the meeting, the countdown now works correctly
- Several other small bug fixes
- 🚀 A song can now be added to the media list directly from the media presentation screen, for use during meetings
- 🚀 Added option to include printed media whenever available
- Images from lff for parts other than the Congregation Bible Study can once again be excluded
- Improved the look and feel of the settings screen
- "Click again" tooltips now stay visible when clicked, making it clear that a second click is required
- Enjoy Life Forever videos are now only included during the Congregation Bible Study
- Added a clear warning when a file is locked on a congregation server
- Correctly sort folders and files in the congregation sync directory tree
- Fixed incorrect filename sorting when adding or uploading media files
- Delete/hide actions in congregation server are now only activated on corresponding button click, and not filename click
- Fixed an issue where media from some JWPUB files wouldn't be imported properly in some edge cases
- Fixed an issue where the wrong language for media would be used in some edge cases
- Refresh languages from the official website of Jehovah's Witnesses when they were not correctly fetched before
- Set OBS Studio scene correctly when using keyboard shortcuts
- Fixed an issue where the OBS Studio scene would sometimes be set to "nothing"
- Clear download and cache statistics after every media sync