Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions docs/release-notes/v0.6.8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## whatRust v0.6.8

An option to hide the menu bar icon on macOS, and two fixes for Windows.

### macOS

- **New:** Settings → Behavior → **Show menu bar icon**. Turn it off to keep whatRust out of the menu bar; click its Dock icon to bring the window back. It's on by default. Thanks to @Dumboiroy for the suggestion in #44.

### Windows

- **Fixed:** the Display size list in Settings → Appearance no longer opens as a blank white box in dark mode. Thanks to @viktorstarscollector for the report in #40.
- **Fixed:** notifications now show the whatRust logo in their header instead of a generic window icon (also #40). Windows may keep showing the old icon until you sign out and back in once.

### Linux

- The FAQ now explains why voice and video calls don't work on Linux: the WebKitGTK inside the AppImage is built without WebRTC (#39).

### Install or update

```bash
# Linux (AppImage) and macOS
curl -fsSL https://raw.githubusercontent.com/karem505/whatRust/master/install.sh | sh
# Linux (Flatpak)
curl -fsSL https://raw.githubusercontent.com/karem505/whatRust/master/install-flatpak.sh | sh
```

On Windows, run the `x64-setup.exe` or `.msi` below.
6 changes: 6 additions & 0 deletions flatpak/io.github.karem505.whatRust.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@
</screenshots>

<releases>
<release type="stable" version="0.6.8" date="2026-10-16">
<url type="details">https://github.com/karem505/whatRust/releases/tag/v0.6.8</url>
<description>
<p>Adds an option to hide the menu bar icon on macOS, fixes a blank Display size list and shows the app logo on notifications on Windows.</p>
</description>
</release>
<release type="stable" version="0.6.7" date="2026-10-10">
<url type="details">https://github.com/karem505/whatRust/releases/tag/v0.6.7</url>
<description>
Expand Down
5 changes: 5 additions & 0 deletions settings-ui/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ <h2 class="group-title">Behavior</h2>
<span class="row-subtitle">Show new messages as system notifications</span></span>
<input type="checkbox" class="switch" id="notifications" />
</label>
<label class="row" id="menu_bar_icon_row" hidden>
<span class="row-text"><span class="row-title">Show menu bar icon</span>
<span class="row-subtitle">When off, click the Dock icon to bring whatRust back</span></span>
<input type="checkbox" class="switch" id="menu_bar_icon" />
</label>
</div>
</section>

Expand Down
6 changes: 5 additions & 1 deletion settings-ui/main.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
const invoke = window.__TAURI__.core.invoke;
const BOOLS = ["close_to_tray", "start_minimized", "autostart", "notifications", "hotkey_enabled"];
const BOOLS = ["close_to_tray", "start_minimized", "autostart", "notifications", "hotkey_enabled", "menu_bar_icon"];
// The menu-bar icon can only be hidden on macOS, where the Dock icon still
// brings the window back (issue #44).
const IS_MAC = /Mac/.test(navigator.platform || navigator.userAgent);
const ZOOM_DEFAULT = 1;

// settings.json holds a zoom factor, not a preset name, so a stored value need
Expand All @@ -13,6 +16,7 @@ function selectNearestZoom(value) {

async function load() {
const s = await invoke("get_settings");
document.getElementById("menu_bar_icon_row").hidden = !IS_MAC;
for (const f of BOOLS) {
const el = document.getElementById(f);
if (el) el.checked = !!s[f];
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "whatrust"
version = "0.6.7"
version = "0.6.8"
edition = "2021"
rust-version = "1.82"

Expand Down
9 changes: 9 additions & 0 deletions src-tauri/src/settings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ pub struct Settings {
pub notifications: bool,
/// Display zoom for the WhatsApp webview, 1.0 = the site's own sizing.
pub zoom: f64,
/// macOS only (issue #44): show the icon in the menu bar. With it off, the
/// Dock icon brings a hidden window back. Windows and Linux always show the
/// tray icon, since there it is the only way back to a hidden window.
pub menu_bar_icon: bool,
}

impl Default for Settings {
Expand All @@ -23,6 +27,7 @@ impl Default for Settings {
hotkey: "CmdOrCtrl+Shift+W".to_string(),
notifications: true,
zoom: 1.0,
menu_bar_icon: true,
}
}
}
Expand Down Expand Up @@ -137,6 +142,7 @@ pub fn apply(app: &AppHandle, s: &Settings) -> Option<String> {
// Zoom is a webview property, so it applies on every platform and takes
// effect on the open account windows without a reload.
crate::window::apply_zoom_all(app, s.zoom);
crate::tray::apply_visibility(app, s.menu_bar_icon);

#[cfg(desktop)]
{
Expand Down Expand Up @@ -229,6 +235,7 @@ mod tests {
assert_eq!(s.hotkey, "CmdOrCtrl+Shift+W");
assert!(!s.autostart);
assert_eq!(s.zoom, 1.0);
assert!(s.menu_bar_icon);
}

#[test]
Expand Down Expand Up @@ -266,6 +273,8 @@ mod tests {
assert!(s.autostart);
assert!(s.close_to_tray);
assert_eq!(s.hotkey, "CmdOrCtrl+Shift+W");
// Absent in a settings.json written before issue #44: keep the icon.
assert!(s.menu_bar_icon);
}

#[test]
Expand Down
11 changes: 11 additions & 0 deletions src-tauri/src/tray.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,17 @@ pub fn rebuild_menu(app: &AppHandle) {
let _ = tray.set_menu(Some(menu));
}

/// Show or hide the menu-bar icon (macOS, issue #44). Elsewhere the tray icon
/// stays: on Windows and Linux it is the only way back to a hidden window,
/// while macOS always has the Dock icon (see `RunEvent::Reopen` in lib.rs).
#[allow(unused_variables)]
pub fn apply_visibility(app: &AppHandle, visible: bool) {
#[cfg(target_os = "macos")]
if let Some(tray) = app.tray_by_id("main-tray") {
let _ = tray.set_visible(visible);
}
}

/// Update the tray to reflect the current (aggregate) unread count.
pub fn update_badge(app: &AppHandle, count: u32) {
let Some(tray) = app.tray_by_id("main-tray") else {
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "whatRust",
"version": "0.6.7",
"version": "0.6.8",
"identifier": "com.karem.whatrust",
"build": {
"frontendDist": "../settings-ui"
Expand Down
Loading