@APP_ID@ com.mudeprolinux.whakarere com.mudeprolinux.whakarere CC0-1.0 GPL-3.0-or-later @APP_NAME@ Chat on WhatsApp #25D366 #128C7E

Karere brings WhatsApp to your Linux desktop with a native look and feel. It integrates seamlessly with your environment, offering a clean, modern interface that respects your system's theme and workflow. By wrapping WhatsApp Web, it ensures you have access to all the latest features while adding powerful desktop-specific capabilities.

Key features include:

Now built on CEF/Chromium 150. Karere 4.0 replaces the WebKitGTK backend with the Chromium Embedded Framework, bringing full video attachment playback (H.264/AAC), multi-account support with isolated sessions, per-account zoom, and a faster, more compatible rendering engine while keeping the same native GTK4/libadwaita shell.

https://github.com/tobagin/karere/blob/main/data/screenshots/main-window.png?raw=true Main application window with WhatsApp Web integration https://github.com/tobagin/karere/blob/main/data/screenshots/about.png?raw=true About dialog showing application information https://github.com/tobagin/karere/blob/main/data/screenshots/preferences.png?raw=true Application preferences and settings dialog https://github.com/tobagin/karere/blob/main/data/screenshots/shortcuts.png?raw=true Keyboard shortcuts and productivity features https://github.com/tobagin/karere https://github.com/tobagin/karere/issues https://github.com/tobagin/karere/discussions https://github.com/sponsors/tobagin https://github.com/tobagin https://github.com/tobagin/karere https://github.com/tobagin/karere Thiago Fernandes 360 keyboard pointing touch Network InstantMessaging Chat whatsapp chat messaging web communication @APP_ID@.desktop
  • Fixed characters occasionally being dropped while typing (#180).
  • Software rendering now redraws only the part of the window that changed, reducing CPU and memory bandwidth per frame — most noticeable on integrated graphics (#179).
  • Fixed mouse clicks landing slightly above and to the left of the pointer: clicks were offset by the header bar and window shadow, so buttons and chats often did not activate where you clicked.
  • Fixed pointer misalignment on HiDPI / mixed-scale desktops: clicks, scrolling and context menus are now pixel-accurate, and the page zoom re-syncs when moving windows between monitors with different scales (#158).
  • Fixed engine-drawn popups being anchored to a degenerate window origin on X11 multi-monitor setups; the real window position is now used (#158).
  • Fixed blank view on GLES-only devices such as the PinePhone: the render area now negotiates its required GLES 3.0 context and software rendering resumes automatically when accelerated frames are unavailable (#177).
  • Fixed chat text selection and copying: drag-select, immediate Ctrl+C and right-click → Copy now read the live selection without racing the PRIMARY clipboard (#178).
  • Translation catalogs regenerated against the current UI strings.
  • Fixed tray “Quit” doing nothing while the window is hidden (e.g. Start in background) (#175).
  • Fixed WhatsApp loading in mobile layout on HiDPI displays until resized; the prewarm viewport is now sized in physical pixels (#176).
  • Improved NVIDIA detection via the live GL context so hybrid GPUs keep accelerated rendering, hardened the fallback for background starts, and raised the off-screen frame rate from 30 to 60 fps for smoother scroll/typing (#173).
  • Fixed “Match WhatsApp Colors” applying only after restart; it now updates live when toggled (#168).
  • New opt-in "Match WhatsApp Colors" appearance setting: tints the window and header bar with WhatsApp Web's own background colors so the app blends with the page. Follows the light/dark theme and applies instantly. (#168)
  • Safer avatar processing for notifications (community contribution). (#172)
  • Upgraded the browser engine to CEF 150 / Chromium 150 for current security fixes; video attachments (H.264/AAC) keep playing in-app.
  • Fixed touchpad scrolling sometimes needing a click in a pane before it responded; scrolling now targets the pane under the pointer like every other app. (#161)
  • Fixed touchpad scrolling being ~5x too slow with a delay before it started; deltas are now scaled the same way Chromium's own Wayland backend scales them. (#161)
  • Fixed dead-key accents (e.g. US Intl) intermittently typing the plain letter after sending a message; the input method is re-focused on the next keypress. (#154)
  • Fixed "Start in background" being ignored when the tray icon is disabled; the setting is now honored and relaunching the app brings the window up. (#170)
  • Fixed a black chat area on NVIDIA drivers by falling back to software rendering where the accelerated path cannot deliver frames. (#167)
  • Fixed the GNOME OS / Wayland black window for real (#164): CEF was racing to the X11 Ozone backend and failing to present onto the Wayland view; Karere now forces CEF's Ozone backend to match the display server, so it no longer intermittently starts black.
  • Fixed a black/blank window on GNOME OS and other newer Wayland setups by switching to GTK's GL renderer, which presents the CEF browser view correctly where the default Vulkan renderer could not. (#164)
  • Fixed the mobile layout dropping the message box focus when pressing Enter on a computer; focus is now kept on non-touch devices while phones still hide the keyboard after sending.
  • Updated the bundled browser engine to CEF 149 (Chromium 149), up from CEF 148, picking up the latest Chromium security and rendering fixes. Proprietary codecs stay enabled so WhatsApp calls and video playback keep working.
  • Fixed: on Phosh / GNOME Mobile the on-screen keyboard stayed open all the time; it now follows the focused WhatsApp text field, appearing when you tap a message or search box and hiding otherwise
  • Fixed: sluggish touchpad scrolling — disabled Chromium's smooth-scroll animation for instant, responsive scrolling (#161)
  • Fixed: input-method candidate popups (e.g. ibus-libpinyin) appeared in the top-left corner; they now show by the chat input where you click (#163)
  • Fixed: the ARM64 (aarch64) build, which had been failing since 4.0.4 due to a type error in the GPU-rendering code — so this is the first release to reach ARM64 (Phosh / mobile) users with the recent fixes, including touch scrolling (#162)
  • Improved: smoother scrolling, especially with a touchpad — fine scroll deltas are no longer dropped, and wheel vs touchpad input is scaled appropriately (#161)
  • Fixed: touch scrolling and tapping in the chat view on touchscreens (e.g. Phosh / mobile Linux) — touch input is now forwarded to the web view as native touch events (#162)
  • Added an experimental "GPU Rendering" option (Preferences → General → Experimental) that renders the chat view on the GPU via accelerated off-screen rendering for lower CPU and power use. Off by default and requires a restart; if the chat area is blank on your hardware, turn it off and restart
  • Fixed: the selected theme is now applied from startup, including when the app launches into the background at login — the window no longer opens light when dark is selected. WhatsApp Web content also follows the theme now (when WhatsApp's own theme is set to System default) (#160)
  • Fixed: typing in the narrow/mobile layout no longer inserts a stray space after the first letter (#159)
  • Fixed: the web view is now crisp under fractional/HiDPI display scaling (e.g. 150%/200% on GNOME Wayland) — the page is rendered to match the window's pixel buffer exactly instead of being upscaled, while staying at the correct size (#158)
  • Fixed: typing the first letter of a message no longer inserts a stray space after it (a 4.0.1 input regression) (#154)
  • Fixed: accented characters from dead keys (e.g. the US-International layout) now compose correctly instead of inserting the base letter — input is routed through the system input method (#154)
  • Fixed: web content is now sized correctly under fractional display scaling such as 150%; the view and input use logical coordinates with the fractional scale applied for crisp rendering (#155, #156)

Karere 4.0 is a hard fork that rebuilds the app on CEF/Chromium 148. Existing accounts must be re-linked — there is no migration from v3.

Major changes:

  • Switched the rendering backend from WebKitGTK to CEF/Chromium 148, with proprietary-codec builds for H.264/AAC video attachment playback
  • Multi-account support: each account runs in an isolated CEF RequestContext with its own cookies and storage; accounts are ordered most-recently-used
  • Account identity (name + avatar) auto-discovered from WhatsApp Web's internal Store, with a degraded DOM-scrape fallback surfaced by a badge
  • Per-account zoom (Ctrl +/-/0) with optional header-bar zoom controls and an accessibility minimum-zoom floor
  • Native system tray (StatusNotifierItem), desktop notifications, download manager, and image/text paste reimplemented on the CEF stack
  • Mobile-responsive layout, JavaScript fullscreen, and an OSR context-menu popover for the off-screen-rendered web view
  • Accessibility preferences: reduce-motion, focus-ring visibility, and caret browsing
  • Live spell-check language switching and a separately installable Debug symbol extension for symbolicated crash reports
  • Fixed: lingering notification badges/banners after focus on GNOME 50 (auto-clear behavior removed upstream — Karere now dismisses notifications explicitly)
  • Fixed: blank-window race when autostarted before the network/portal stack is ready (auto-retry with exponential backoff)
  • Added: pin favorite spell-check languages to the top of the dropdown
  • Added: spell-check dropdown shows natural language names ("English (UK)") instead of locale codes
  • Added: account switcher uses a popover on desktop windows (bottom sheet preserved on mobile)
  • Fixed: app crash on launch on GNOME 50 / glibc 2.42+ systems (Arch, Fedora 43, CachyOS, Bazzite, postmarketOS)
  • Fixed: locale-dependent crash that required manually setting LC_ALL=en_GB.UTF-8
  • Fixed: mobile layout broken by recent WhatsApp Web DOM changes
  • Fixed: downloaded files with duplicate names silently overwriting each other (now appends (1), (2), ...)
  • Bumped WebKitGTK to 2.52.3, LibreOffice dictionaries to 26.2.3.2, Rust dependencies to latest compatible versions
  • Fixed voice and video calls in production Flatpak (Flathub linter-compatible pre-built plugin)
  • Fixed voice and video calls not working in the production build (missing noise suppression plugin)
  • Added voice and video call support via WebRTC-enabled WebKitGTK 2.50.5
  • Fixed download filenames now use WhatsApp's original filename
  • Fixed duplicate downloads auto-increment instead of failing
  • Fixed window now properly unminimizes when activated from launcher or tray
  • Fixed notification sounds now respect GNOME volume controls
  • Note: re-linking WhatsApp accounts is required after this upgrade
  • Fixed Flatpak build failure caused by ashpd 0.13 API changes
  • Fixed voice and video calls showing "Your browser doesn't support calling"
  • Fixed on-screen keyboard not appearing reliably on Phosh and touch-based Linux environments
  • Fixed blob URL downloads (e.g. Save Image from the media viewer)
  • Redesigned application icons for stable and development variants
  • Updated all Rust dependencies to latest versions
  • Upgraded to GNOME Platform 50
  • Removed ffmpeg-full extension (no longer required)
  • Fixed freezes when viewing media galleries
  • Fixed crash on launch due to memory pressure threshold ordering
  • Fixed download destination and context menu issues
  • Fixed dead key composition for first character in input fields
  • Added GStreamer/PipeWire env vars to production Flatpak for efficient media handling
  • Fixed download destination handling
  • Resolved WebKit crashes on media-heavy pages
  • Fixed: Download destination path handling regression
  • Fixed: JS injection and path traversal vulnerabilities in download handling
  • Fixed: Handle WebKit web process crashes with auto-reload and user notification
  • Fixed: JS injection and path traversal vulnerabilities
  • Fixed: Panic in notification handling
  • Added complete multi-account support with sidebar and tray integration
  • Added per-account zoom settings and improved accessibility
  • Fixed startup race conditions and resource usage issues
  • Added Zoom support (Ctrl +/-/0) with persistence and preference controls
  • Fixed window size increasing on every restart
  • Fixed: Resolved webview reload loop on startup due to incorrect window size detection
  • Added WebRTC permission handling in preparation for WhatsApp Web voice/video calls
  • Improved mobile UI resizing consistency
  • Fixed: App now respects system "Do Not Disturb" settings on GNOME (silences sounds)
  • Fixed: Notifications bypass DND visuals (priority lowered to Normal)
  • Fixed tray icons on KDE/GNOME (visible on both light/dark themes)
  • Restored correct app icons and transparent backgrounds
  • Improved icon compatibility across desktop environments
  • Fixed application freezing on resume by reverting aggressive cache optimization
  • Fixed background validation to ensure app starts correctly
  • Optimized memory usage in mobile responsive scripts
  • Improved icon rendering (symbolic icons now use currentColor)
  • Fixed window resize behavior to prevent excessive reloading
  • Fixed background notifications reliability
  • Fixed Flatpak build failure by correcting config
  • Fixed "Too many open files" crash by reusing notification resources
  • Fixed zombie process accumulation
  • Improved overall stability
  • Ctrl+N keyboard shortcut for opening a new chat
  • Mobile layout support with auto-detection for Phosh, Plasma Mobile, and Lomiri
  • Tray icon click now toggles window visibility
  • Window size is saved and restored when hiding/showing
  • Mobile layout setting changed to dropdown (auto/enabled/disabled)
  • Updated application summary and description for better AppStream compliance
  • Notification Chat Linking: Clicking a notification now opens the specific chat in Karere.
  • Webcam Support: Added support for using the webcam (Status updates, Video calls) with a new permission dialog.
  • Enhanced image paste with Base64 encoding for reliable WhatsApp Web compatibility
  • Added middle-click paste from primary selection (selected text)
  • Fixed double-paste issue with middle-click
  • Fixed missing GSettings schema in Flatpak builds
  • Added new application icons
  • Corrected metadata description references
  • Switch to XDG Notification Portal (ashpd) for better sandboxing support
  • Remove direct D-Bus notification permissions for cleaner manifest
  • Fixed Open action for downloaded files
  • Fixed Dead Key/composition input issues
  • Migrated Flatpak build logic to meson.build
  • Switch to XDG Background Portal for autostart (improves security and compatibility)
  • Add new contributor Sabri Ünal to the About dialog
  • General improvements and versioning updates
  • Restore autostart permission for improved compatibility
  • Remove unnecessary autostart permission to satisfy linter
  • Add xdg-config/autostart permission for autostart support

Bug Fix Release

Changes:

  • Fixed missing tray icon on GNOME by adding StatusNotifierWatcher permission

Update and Bug Fix Release

Changes:

  • Added "Run on Startup" toggle in preferences (default: false)
  • Fixed autostart toggle pathing for Flatpak environments
  • Fixed tray icon quit behavior
  • Added striped symbolic icons for development version

🎉 Major Release 2.0.0

New Features:

  • Full rewrite in Rust! 🦀
  • New System Tray Icon support
  • Notifications fully working with persistence fixes
  • Ported from Vala to native Rust/GTK4/Libadwaita
  • Redesigned/streamlined preferences dialog
  • Enhanced performance and stability

🐛 Bug Fix Release

Fixed:

  • Fixed critical startup freeze (spinner) issue by implementing D-Bus activation
  • Ensure application starts properly in the background without delay

🎉 Feature Release

New Features:

  • 🎤 Microphone permission support for voice notes
  • 🚀 Start in background option for autostart
  • 🔄 Manual reload and auto-reload on network reconnection

Improvements:

  • ⚡ Performance optimizations for startup and shutdown
  • 📝 Async dictionary loading for smoother Spell Check initialization
  • 📖 Added MPRIS workaround documentation

Bug Fixes:

  • Fixed missing dictionaries on startup
  • Fixed application freeze during lifecycle events

🔧 Maintenance Release

Improvements:

  • Updated build configuration and dependencies
  • Enhanced packaging for better compatibility
  • Minor bug fixes and stability improvements

📝 Documentation and Metadata Update

Improvements:

  • Updated about dialog screenshot
  • Updated application screenshots
  • Minor README corrections

📸 Screenshots and Documentation Update

Improvements:

  • Updated application screenshots with current UI appearance
  • Refreshed About dialog screenshot
  • Enhanced visual documentation for users

🎉 Version 1.0.0 - Major Milestone Release

New Features:

  • ✅ Fixed WhatsApp Web notification banner persistence
  • ✅ Fixed notifications not working properly
  • 🖼️ Added image paste support via clipboard (Ctrl+V)
  • 📥 Implemented download manager with custom directory and toast notifications
  • ♿ Enhanced accessibility with screen reader optimization and keyboard navigation
  • 📝 Added comprehensive spell checking system with auto-detection
  • 🔤 Integrated 80+ language dictionaries from LibreOffice
  • ⌨️ Added keyboard shortcuts dialog using AdwShortcutsDialog

Bug Fixes:

  • Fixed Ctrl+V paste for text content - now works for both text and images
  • Fixed WhatsApp notification permission not persisting across sessions
  • Fixed notifications banner appearing on every app launch
  • Fixed WebView zoom being enabled by default (now disabled)
  • Fixed clipboard manager intercepting all paste events
  • Removed hardcoded blueprint compiler paths for cross-architecture support

Code Quality Improvements:

  • ♻️ Major refactor: Reorganized codebase with PascalCase filenames
  • ♻️ Refactored Window.vala into specialized manager components
  • ♻️ Removed custom logging and crash reporting (use system journalctl)
  • 🗑️ Removed Do Not Disturb feature (handled by system notification daemon)
  • 🗑️ Cleaned up obsolete test files and unused dependencies
  • 🗑️ Removed json-glib, gee, and libsoup dependencies
  • 🧹 Centralized settings management with SettingsManager singleton
  • 🧹 Removed DependencyContainer.vala (unused dependency injection)
  • 📸 Reorganized screenshots into data/screenshots/ directory

Technical Changes:

  • Implemented UserScript injection for Notification.permission state
  • Connected show_notification signal handler for WebKit notifications
  • WebKitGTK 6.0 storage persistence verified and documented
  • Updated SettingsManager to be the default for all settings access
  • Improved build system with cleaner dependency management

Documentation:

  • 📚 Enhanced README with accessibility features documentation
  • 📚 Documented all keyboard shortcuts by category
  • 📚 Added spell checking configuration guide
  • 📚 Fixed GitHub repository URLs (karere-vala → karere)

🐛 Runtime Update and Bug Fixes

Improvements:

  • Updated GNOME runtime to version 49 for enhanced compatibility
  • Improved system integration with latest platform libraries
  • Better support for modern desktop environments
  • Enhanced stability and performance optimizations

Bug Fixes:

  • Resolved compatibility issues with newer GNOME environments
  • Fixed potential rendering inconsistencies
  • Improved error handling and recovery mechanisms

✨ Enhanced Emoji Support, External Link Handling, and Build Improvements

New Features:

  • Added high-quality Noto Color Emoji fonts (v2.047, Unicode 16.0 support)
  • Enhanced WebKit rendering with maximum hardware acceleration
  • Improved emoji consistency with bundled font system
  • Optimized font loading to eliminate display conflicts
  • Added WebKit cache control setting for improved rendering consistency
  • Cache disabled by default to prevent emoji rendering issues

Bug Fixes:

  • Fixed external links not opening in default browser when running in Flatpak
  • Improved external link handling with proper Flatpak portal support
  • Fixed random emoji display issues and blank emoji problems
  • Fixed invalid meson version requirement preventing builds
  • Corrected dependency version specifications in meson.build
  • Resolved flatpak-builder compatibility issues
  • Enhanced URL validation for external link detection

Improvements:

  • Eliminated WebKit cache corruption affecting emoji rendering
  • Streamlined font stack for consistent emoji appearance
  • Enhanced 2D canvas acceleration for better graphics performance
  • Improved font loading stability and reduced race conditions
  • Better sandboxed environment compatibility
  • More reliable link opening mechanism
  • Enhanced logging for external link operations
  • Better build system compatibility with different environments
  • Enhanced CI/CD pipeline stability
  • More robust dependency handling

Technical Changes:

  • Removed unnecessary mobile user agent switching (WhatsApp Web is desktop-only)
  • Disabled problematic WebKit caches causing font corruption
  • Simplified emoji font configuration to single high-quality source
  • Restored Safari Linux user agent for native WebKit experience
  • Added subpixel font scaling and advanced rendering optimizations
  • Implemented Flatpak portal system for external link handling

🔧 Code Refactoring and Architecture Improvements

Improvements:

  • Converted template files to preprocessor directives for cleaner code
  • Eliminated .vala.in template substitution system
  • Added compile-time conditional compilation using DEVELOPMENT flag
  • Improved build system maintainability and type safety
  • Added contributors Aman Das and Cameo to about dialog

Technical Changes:

  • Replaced window.vala.in and preferences.vala.in with direct .vala files
  • Updated meson.build to use Vala preprocessor directives
  • Simplified source file management in build system

🐛 Bug Fixes and Improvements

Bug Fixes:

  • Fixed crash when handling invalid user input data
  • Resolved memory leak in notification cleanup
  • Corrected accessibility focus handling

Improvements:

  • Better error handling for network timeouts
  • Enhanced stability for extended usage
  • Performance optimizations for scrolling

🔧 Metadata and Standards Compliance

Bug Fixes:

  • Fixed duplicate provides tags in metainfo validation
  • Corrected AppStream metainfo format compliance
  • Resolved invalid markup in release descriptions

Improvements:

  • Updated all references from appdata to metainfo format
  • Enhanced Flathub compliance and validation
  • Improved translation file consistency

🐛 Bug Fixes and Improvements

Bug Fixes:

  • Fixed crash when handling invalid notification data
  • Resolved memory leak in WebKit manager cleanup
  • Corrected window state persistence on shutdown

Improvements:

  • Better error handling for network disconnections
  • Enhanced stability during long sessions
  • Performance optimizations for faster startup

🚀 Major Architecture Migration: Python to Vala/GTK4

BREAKING CHANGE: Complete rewrite from Python to native Vala for better performance and integration.

⚠️ Important: After upgrading, you will need to re-sync your mobile device with WhatsApp Web as this is a completely new application implementation.

New Features:

  • Native Vala/GTK4 implementation for optimal performance
  • Modern LibAdwaita UI with Blueprint declarative interface
  • Enhanced WebKitGTK 6.0 integration
  • Advanced notification system with native desktop integration
  • Comprehensive accessibility support
  • Professional logging and crash reporting system
  • Keyboard shortcuts and productivity features
  • Multi-language spell checking support
  • Granular privacy and notification controls
  • Hardware-accelerated rendering
  • Improved memory efficiency and startup performance

Technical Improvements:

  • Migrated from Python 3 to native Vala compilation
  • Modern Meson build system with Blueprint UI compilation
  • Comprehensive test suite with unit and integration tests
  • Production-ready error handling and crash recovery
  • Enhanced security with proper sandboxing
  • Complete internationalization support
moderate mild