Settings sync carries "ENTER for Newline" between phone and desktop: turning it on for the phone keyboard makes the desktop need Ctrl+Enter to send #348

Closed
opened 2026-10-11 01:11:18 -04:00 by jared · 0 comments
Owner

Settings sync (#104, utils/settingsSync.ts) mirrors every setting except the 23 in DEVICE_LOCAL_KEYS to io.lotus.settings. It's on by default (settingsSync: true). enterForNewline isn't device-local, and the composer has no per-device override: RoomInput.tsx:930 and MessageEditor.tsx:276 send on Enter unless the setting is on, whatever the device.

Measured (local Synapse; one account signed in on a Pixel 7 profile and on a desktop profile, both with sync on):

  • on the phone: Settings → General → ENTER for Newline on;
  • the account data now has enterForNewline: true, and ~12 s later the desktop session's setting was true as well.

That's the natural setting to change on a phone, where the keyboard's return key should insert a new line. The desktop, where people expect Enter to send, silently switches to Ctrl+Enter, and the next Enter there inserts a line break instead of sending. Switching it back on the desktop flips the phone back. The two devices can't keep different behaviour.

Fix: add enterForNewline to DEVICE_LOCAL_KEYS. Better still, give it a default by device type (touch-first: new line; keyboard: send) so most people never need it.

Other synced keys worth a second look for the same reason:

  • messageLayout / messageSpacing: bubble on a phone, modern on a big screen;
  • fontFamily: a system font picked on one OS may not exist on another;
  • isNotificationSounds: muting sounds on the work laptop also mutes the phone;
  • pttKey / deafenKey: synced while pttMode and globalCallHotkeys are device-local, so the mode stays per device but the key follows you. That's inconsistent, and a key code that suits one keyboard layout may not suit another.

Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny 30e2dbcd, cinny-desktop 8f67ec7, element-call 3b0050e8.

Settings sync (#104, `utils/settingsSync.ts`) mirrors every setting except the 23 in `DEVICE_LOCAL_KEYS` to `io.lotus.settings`. It's on by default (`settingsSync: true`). **`enterForNewline` isn't device-local**, and the composer has no per-device override: `RoomInput.tsx:930` and `MessageEditor.tsx:276` send on Enter unless the setting is on, whatever the device. **Measured** (local Synapse; one account signed in on a Pixel 7 profile and on a desktop profile, both with sync on): - on the **phone**: Settings → General → **ENTER for Newline** on; - the account data now has `enterForNewline: true`, and ~12 s later the **desktop** session's setting was `true` as well. That's the natural setting to change on a phone, where the keyboard's return key should insert a new line. The desktop, where people expect Enter to send, silently switches to Ctrl+Enter, and the next Enter there inserts a line break instead of sending. Switching it back on the desktop flips the phone back. The two devices can't keep different behaviour. **Fix:** add `enterForNewline` to `DEVICE_LOCAL_KEYS`. Better still, give it a default by device type (touch-first: new line; keyboard: send) so most people never need it. Other synced keys worth a second look for the same reason: - `messageLayout` / `messageSpacing`: bubble on a phone, modern on a big screen; - `fontFamily`: a system font picked on one OS may not exist on another; - `isNotificationSounds`: muting sounds on the work laptop also mutes the phone; - `pttKey` / `deafenKey`: synced while `pttMode` and `globalCallHotkeys` are device-local, so the mode stays per device but the key follows you. That's inconsistent, and a key code that suits one keyboard layout may not suit another. --- _Found in the October 2026 client audit (Playwright against a local Synapse + LiveKit stack, plus code reading). Code refs are at cinny `30e2dbcd`, cinny-desktop `8f67ec7`, element-call `3b0050e8`._
jared added the priority: lowuxarea: settings labels 2026-10-11 01:11:18 -04:00
jared closed this issue 2026-10-12 16:07:34 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#348