Workspace & Appearance

Layout, theme, and keyboard shortcuts that follow each user across devices

Preferences are per-user, not per-tenant

These settings belong to the signed-in person, not the business. A cashier who moves the cart to the left and a manager who keeps it on the right each keep their own choice — on any device they sign in to. The preferences are stored on the account and mirrored to local storage so the screen paints correctly the instant it loads, before the server round-trip.

What You Can Customize

PreferenceOptionsWhere to change it
Sidebar sideLeft or rightSettings › Appearance, or the move icon in the sidebar header
POS cart sideLeft or rightSettings › Appearance, or the toggle in the POS cart header
ThemeLight · Dark · Match systemSettings › Appearance theme picker
FullscreenOn / offTopbar fullscreen button
Keyboard shortcutsRebindable per actionSettings › Appearance › Keyboard shortcuts

In-Context Controls

You don't have to dig into Settings to move things around — the most-used toggles sit where you feel the friction, and they update the same saved preference (so Settings stays in sync).

ControlLocationWhat it does
Sidebar sideIcon button in the expanded sidebar header (desktop)Flips the sidebar — and the page layout — to the other side
POS cart sideToggle in the POS cart panel header (desktop)Moves the cart column to the opposite side of the POS grid
FullscreenTopbar, beside the notification bellEnters / exits browser fullscreen; the icon mirrors the real state
Shortcuts cheat sheetKeyboard icon in the topbarOpens the shortcuts overlay (also Ctrl/⌘ + /)

Keyboard Shortcuts

POSVelo ships a set of global shortcuts spanning general actions and page navigation — search, toggling the sidebar, switching theme, fullscreen, opening help, and jumping between pages. Open the cheat sheet any time with Ctrl/⌘ + /.

Rebinding is guarded against conflicts

In Settings › Appearance › Keyboard shortcuts you can record a new combination for any action. A binding must include Ctrl/⌘ or Alt, and a combo already used by another action is rejected — so you can't accidentally shadow an existing shortcut. While you're recording, the global listener is suspended so your keystrokes set the binding instead of firing the old one.

How It's Saved

LayerRole
Account (server)Preferences persist via PATCH /api/v1/auth/me/preferences, which merges your patch into the account's stored preferences
Local cacheA local-storage mirror paints the correct layout immediately on reload, before the account data is fetched
On sign-inYour saved preferences hydrate from /auth/me, so a new device adopts them on first load
Saving is optimistic

Changing a preference updates the screen and the local cache immediately and writes to your account in the background — so the UI never waits on the network to feel responsive, and the choice is still durably saved.