Skip to content
WM KeyboardWM Keyboard
Accessibility

Camera tool

A viewfinder inside the keyboard for quick photo capture and insertion.

The Camera tool swaps the key rows for a live viewfinder, so you can snap a photo and send it into whatever you’re typing in without ever leaving the keyboard. All editions: it’s built on plain CameraX, not ML Kit, so it ships in both editions.

Screenshot pending
The live viewfinder: flash and self-timer chips on the left, shutter in the middle, front/back switch on the right.

Open Camera from the toolbar, or the toolbox if you haven’t pinned it. Camera isn’t one of the tools pinned to the toolbar out of the box (only Emoji, Clipboard, and Settings are), so the first time you’ll likely reach it through the toolbox or by typing its trigger keyword; see smart suggestion chips.

The viewfinder fills the width of the panel and behaves like any camera app:

  • Tap anywhere to focus. A tap starts focus-and-metering at that point.
  • Pinch to zoom. A zoom pill (“1.2x” style) appears top-center once you’re past 1.05x, and the pinch is clamped to whatever range the current lens supports.
  • Flash — a chip on the bottom-left, shown only if the active lens reports a flash unit. Tapping it cycles Off → Auto → On.
  • Self-timer — the next chip over, cycling Off → 3s → 10s → Off. Once it’s running, a large countdown digit appears at the center of the frame, with a feedback tick each second, before the shutter fires automatically.
  • Front/back switch — bottom-right, and only shown if the device actually has both a front and a back camera. Which one the tool opens on first is controlled by Start with the selfie camera below.
  • Shutter — the button in the middle. Tapping it (or letting the self-timer run out) takes the photo.

There’s no manual crop step, no drag handles, and no filters, despite what the term “crop” might suggest elsewhere. The viewfinder is actually taller than the visible panel (it spills upward to fill the panel’s width at the sensor’s aspect ratio), so at the moment you tap the shutter, WM Keyboard slices the raw capture down to exactly the region that was on screen. What framed in the viewfinder is what ends up in the photo: nothing more, nothing manually trimmed.

If you’d rather keep everything the sensor saw, turn on Send the whole photo in Options. The photo is then the full 4:3 frame, top and bottom strips included, and the confirm step shows all of it fitted inside the panel instead of drawing it where the viewfinder had it.

The capture itself is deliberately modest: photos are capped at 1600×1600 rather than the sensor’s full resolution, because a photo headed straight into a chat message doesn’t need 12+ megapixels, and a smaller capture processes faster. Each shot is written to the app’s private storage as a JPEG before the confirm step appears.

Screenshot pending
The confirm step: the captured photo shown exactly where the viewfinder had it, with Retake and Send underneath.

After the shutter fires, the frozen photo is drawn at the exact spot and size the live preview had it, so the confirm screen is visually indistinguishable from the moment you took the shot; only a Retake and Send button pair appears underneath.

  • Retake discards the file and goes straight back to a live viewfinder.
  • Send hands the photo off (see Where the photo goes below) and closes the panel back to your keys.

If you took the photo with the front camera and Mirror selfies is on, the saved file is flipped horizontally to match what you saw while framing: camera sensors record selfies un-mirrored by default, text-side correct but visually flipped from the live preview. Shutter sound and haptic feedback on the controls, timer ticks, and shutter are each their own setting; see Options.

Tapping Send inserts the photo the same way clipboard images, GIFs, and stickers do: through Android’s commitContent API, matched against whatever image types the field you’re typing into says it accepts. If the field doesn’t advertise support for any compatible image type, the photo is copied to the system clipboard instead, with a toast:

This app doesn’t accept images here — image copied, paste it instead

Either way, the send closes the panel and hands you back the keys.

By default that’s the only copy that persists anywhere: the private file used to hand the image off is scratch storage, not a saved photo. On each panel open, anything beyond the four most recent capture files gets deleted automatically, which only matters if the app was killed mid-confirm. If you want a permanent copy, turn on Save to gallery (off by default); every capture is then also written to Pictures/WM Keyboard in your device’s shared gallery. See your data on device for how WM Keyboard’s on-device storage is organized more generally, and network policy: the camera tool never touches the network in any of this. Capture, crop, save, and send are all local.

Screenshot pending
The permission gate shown before camera access is granted, with the Allow camera pill.

The first time you open Camera, you’ll likely see a short message instead of a live feed:

The camera tool needs permission to use the camera. Photos are only taken when you tap the shutter.

Tapping Allow camera starts a tiny, invisible activity that exists for one reason: an IME service cannot show Android’s runtime permission dialog itself, so this activity pops up just long enough to show the system’s camera-permission prompt, then closes itself the moment you answer it. The keyboard re-checks the permission automatically as soon as it regains focus, so you don’t need to reopen the panel: answering the system dialog is enough.

This same trampoline is shared by the OCR and QR scanner tools: granting camera access from any one of the three covers all three, since they all request the same android.permission.CAMERA.

On a device with no camera at all, the panel shows “This device has no camera.” instead of the viewfinder. WM Keyboard installs and runs fine either way; nothing about the app requires a camera to be present.

WM KeyboardToolsCamera

Camera's Options screen: selfie camera, mirroring, gallery saving, shutter sound and haptics.

Camera's Options screen: selfie camera, mirroring, gallery saving, shutter sound and haptics.

Like every tool on the full tool list, this screen opens with an Enabled toggle and, only if colorful tool icons are turned on globally, an Icon colour override (pink by default; two rows instead of one if gradient tool colours are on as well).

Under those sits the Keyword shortcut group, which every tool that ships a built-in keyword gets:

  • Trigger words — a text field pre-filled with “camera”. Type that word on its own and the suggestion strip offers to open the tool, dropping the word (see smart suggestion chips). Commas separate more than one word, and clearing the field stops the tool offering itself this way.
  • Match capitals — off by default, so “camera”, “Camera” and “CAMERA” all match. Turn it on and only the exact spelling in the field above counts, which is worth doing for a short trigger word that’s also ordinary text.
  • Reset to defaults — only appears once you’ve edited the trigger words, and puts them back to “camera”. Its subtitle shows what you’d be going back to.

The tool’s own settings, split into two groups:

Options

  • Start with the selfie camera — off by default. Opens the panel on the front camera instead of the back one.
  • Mirror selfies — on by default. See Confirm, retake, or send above for what this does and why it exists.
  • Send the whole photo — off by default. Skips the crop described in What you see is what you get and sends the full 4:3 frame instead, including the strips that ran off the top and bottom of the screen. The live viewfinder is unchanged, so this is the one case where the photo holds more than you framed; the confirm step fits the whole picture inside the panel so you can see what you’re about to send.
  • Save to gallery — off by default. Also copies every capture into Pictures/WM Keyboard, in addition to sending it.

Feedback

  • Shutter sound — on by default. Plays the camera click when a photo is taken.
  • Haptics — on by default. Vibrates on the shutter, the controls, and the timer countdown. This only gates feedback inside the panel itself: the final vibration when you tap Send is the keyboard’s regular key-press haptic, controlled separately under Typing → Feedback.
  • No manual crop, no filters, no multi-shot. One photo per open of the panel; retaking replaces rather than appends.
  • Not pinned or recommended by default. Camera ships enabled, but it isn’t in the toolbar’s default pinned set and isn’t part of the onboarding wizard’s “Recommended” starter selection either. If you went through setup and picked “Recommended” rather than “Everything” on the tools page, you’ll need to turn Camera on yourself under Settings → Tools.
  • No direct-boot support. Camera doesn’t work on the lock screen before you’ve unlocked your device once after a restart, since it depends on the app’s private storage, which isn’t available that early.
  • Both editions, no gating. Unlike the OCR, QR, document-scan, and handwriting tools (which are full-edition-only because they depend on Google ML Kit), Camera has no edition restriction anywhere in its code path.