GitHub - tobagin/karere: Gtk4 Whatsapp client

5 min read Original article ↗

Karere

A fast, native WhatsApp client for Linux that feels right at home on your desktop.

🎉 Version 2.2.2 - Metadata Improvements

Karere 2.2.2 brings improvements to application metadata for better discovery and AppStream compliance.

🆕 What's New in 2.2.2

  • Metadata improvements: Updated summary and description for better clarity and compliance.

For detailed release notes and version history, see CHANGELOG.md.

Features

Core Features

  • Native Experience: Designed to look and feel like a native application on your desktop.
  • System Integration: Notifications, themes, and shortcuts work exactly as you expect.
  • Privacy Focused: Sandboxed communication with comprehensive privacy controls.
  • Efficient: Optimized to be lightweight and fast.

User Experience

  • System Tray Icon: Dynamic icon showing unread status, with background run support
  • Custom Notification Sounds: Select from 'WhatsApp', 'Pop', 'Alert', 'Soft', or 'Start' sounds
  • Image & Text Paste: Seamless Ctrl+V support for both mixed content types
  • Download Manager: Custom directory selection (e.g., ~/Downloads) with toast notifications

Accessibility

  • Screen Reader Ready: Fully labeled interface for screen reader users.
  • Keyboard Navigation: Use the entire app without a mouse.
  • Visual Aids: High contrast support, zoom controls, and reduced motion.
  • Auto-Correct: Smart text correction with dictionary support

Spell Checking

  • Multi-Language Support: 80+ dictionaries from LibreOffice
  • Auto-Detection: Smart language detection based on system locale
  • Dictionary Management: Override auto-detect to select specific languages
  • Auto-Correct Toggle: Enable or disable automatic text replacement

Privacy & Customization

  • Granular Notification Controls: Master toggle, plus individual settings for sound, previews, and downloads
  • Privacy Settings: Control message previews and system tray behavior
  • Theme Selection: Light, Dark, or System preference
  • Permission Management: Persistent controls for Microphone and Notifications
  • Startup Control: Toggle automatic launch on login

Building from Source

# Clone the repository
git clone https://github.com/tobagin/karere.git
cd karere

# Build and install development version
./build.sh --dev

Note: After installation, you'll need to scan the QR code with your mobile WhatsApp to connect.

Usage

Basic Usage

Launch Karere from your applications menu or run:

flatpak run io.github.tobagin.karere

The application will load WhatsApp Web and provide native desktop integration.

Preferences

Access preferences through the application menu or keyboard shortcut (Ctrl+,) to configure:

  • General: Theme selection, developer tools
  • Accessibility: Keyboard shortcuts, focus indicators, high contrast, reduced motion, zoom settings, screen reader optimization
  • Notifications: Native notification preferences, preview settings, background notifications
  • Spell Checking: Multi-language spell checking with auto-detect

Keyboard Shortcuts

Standard

  • Ctrl+, - Open Preferences
  • Ctrl+Q - Quit Application
  • F1 - Show Keyboard Shortcuts Help

Zoom

  • Ctrl++ - Zoom In
  • Ctrl+- - Zoom Out
  • Ctrl+0 - Reset Zoom

Developer (when enabled)

  • Ctrl+Shift+D - Open Developer Tools
  • Ctrl+R - Reload Page

WhatsApp Web

  • Ctrl+F - Find in Chat
  • Ctrl+Shift+F - Search Chats

Accessibility Features

Karere includes comprehensive accessibility support:

  • Screen Reader Support: Full ARIA labels and semantic HTML
  • Keyboard Navigation: Complete keyboard-only navigation with visible focus indicators
  • High Contrast Mode: Automatic detection and adaptation
  • Reduced Motion: Respects system reduce-motion preferences
  • Configurable Shortcuts: All keyboard shortcuts can be enabled/disabled
  • Focus Management: 82 focusable elements in a logical focus chain

Architecture

Karere is built using modern GNOME technologies:

  • Rust: Primary programming language for memory safety and performance
  • GTK4: Modern toolkit with excellent Wayland support
  • LibAdwaita: Native GNOME design language and components
  • WebKitGTK 6.0: Efficient web rendering engine
  • Blueprint: Declarative UI definition language
  • Flatpak: Secure application distribution

Privacy & Security

Karere is designed with privacy in mind:

  • Sandboxed: Runs in a Flatpak sandbox with minimal permissions
  • Opt-in Telemetry: All logging and crash reporting is disabled by default
  • Local Storage: Uses standard user data directories, no external services
  • Transparent: Open source code available for audit

Known Limitations

Video Attachments

Due to compatibility limitations between WebKitGTK and WhatsApp Web, video attachments are currently not supported. This is a platform-level limitation that affects all WebKitGTK-based browsers (including GNOME Web/Epiphany).

What works:

  • ✅ Text messages
  • ✅ Image attachments
  • ✅ Document attachments
  • ✅ Audio messages
  • ✅ Downloading videos sent by others

This limitation is being tracked and will be resolved if/when WebKitGTK adds better support for WhatsApp Web's video processing APIs.

MPRIS and WebKit Issue

There is a known issue with MPRIS and WebKit that causes a bug on Karere! See WebKit Bug 282000.

As a workaround you can disable MPRIS for the application of your interest. To do this, create the file /etc/dbus-1/session.d/block-karere-mpris.conf with this content:

<busconfig>
  <policy context="mandatory">
    <deny own_prefix="org.mpris.MediaPlayer2.io.github.tobagin.karere"/>
  </policy>
</busconfig>

Note: This will block all instances of Karere from registering on MPRIS, because it uses the own_prefix prefix which also covers Sandboxed instances. It requires a system reboot or session restart to work.

MPRIS Workaround

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines on:

  • Setting up your development environment
  • Code style and conventions
  • Testing and building
  • Submitting pull requests
  • Reporting bugs and feature requests

For questions or discussions, please use GitHub Discussions.

License

Karere is licensed under the GNU General Public License v3.0 or later. See LICENSE for the full license text.

Support

Acknowledgments

  • GNOME Project: For the excellent GTK4 and LibAdwaita frameworks
  • WebKitGTK Team: For the efficient web rendering engine
  • Rust Community: For the amazing language and tools
  • WhatsApp Inc.: For WhatsApp Web

Screenshots

Main Window About Dialog
Main Window About
Preferences Shortcuts
Preferences Shortcuts

Karere - Native WhatsApp Web client for Linux desktop environments.