Settings

Customize appearance, editor behavior, navigation layout, and R session options. Also provides help resources and diagnostic tools.

What you are seeing above:

  1. Appearance: theme, fonts, plot graphics, and sound
  2. Editor: auto-indent, auto-close brackets, line numbers, and current-line highlighting
  3. Layout: choose between Tab Bar, Sidebar, or 4-Pane Workspace (iPad)
  4. R Session: package restoration, workspace saving, copying files back from R, network proxy, and memory management
  5. Help & Resources: tutorial replay, keyboard shortcuts, iCloud sync, and external links
  6. About & Support: version info, feedback form, and diagnostic logs

Appearance

Pick a theme, tune font sizes, set plot resolution, and toggle sound effects. Changes take effect immediately, no restart needed.

Theme

Setting Options Description
Appearance System, Light, Dark Follows your device setting, or force light/dark.
Light Theme / Dark Theme Default Light, Default Dark, Dracula, Solarized Light, Solarized Dark, Monokai, One Dark, GitHub Light, Nord, or a custom theme The theme used in light mode and in dark mode. A theme colors the whole app as well as your code.
Plot Background White (default), System, Light Gray, Dark Gray, Transparent The mat around a plot shown full size, including in Compare: the plot sits on the app’s background as a card, with this color around it. The plot itself stays white. System uses white in light mode and dark gray in dark mode; Transparent leaves no mat.

Custom themes

Create Theme opens the theme editor: pick a few key colors and the rest are derived for you, with an advanced section for every color and a live preview. Import Theme… reads a VS Code color theme (.json, comments and trailing commas allowed), a theme exported from webRios, or an RStudio .rstheme, from Files or pasted from the clipboard. A .vsix package has to be unzipped first.

To share a custom theme, tap Export in the theme editor, or long-press the theme in the list, which also offers Delete. It is saved as a .json file you can send with AirDrop or Mail or save to Files, and it imports back through Import Theme…. Built-in themes can’t be exported.

Fonts

Setting Options Description
Editor Font Small (12pt), Medium (14pt), Large (16pt), Extra Large (18pt), Huge (22pt), Giant (26pt), Maximum (30pt) Text size in the code editor.
Console Font Same choices as the editor Text size in the console. R’s output width follows it, so output wraps to fit.
Editor Zoom 50% to 200%, in 10% steps Fine-grained zoom for the editor, also set by pinching. A Reset button appears when zoom is not at 100%.

Code is set in these sizes rather than following the system text size; see Accessibility.

Graphics

Setting Options Description
New Plots Gallery Only, Gallery and Console Every plot goes to the Plots tab. Gallery and Console also draws it in the console where you typed the command.
Plot Size Small (400px), Medium (504px), Large (800px), Extra Large (1200px) Resolution of generated plots. Higher values produce sharper plots but use more memory.

Sound

Setting Options Description
Sound Effects On / Off Audio feedback for actions like running code.

Editor

These toggles control how the code editor looks and behaves when you type or paste code.

Setting Description
Line Numbers Displays line numbers in the left gutter.
Highlight Current Line Adds a subtle background highlight to the cursor’s line. Helps you track your position in longer scripts.
Auto-indent on Paste Reformats pasted code to match your current indentation level. Useful when copying code from the web that has inconsistent indentation.
Auto-indent on Return Indents a new line to match the one above, and expands and dedents braces.
Auto-close Brackets Typing (, [, { or a quote inserts its closing partner, typing the closer steps over it, and Backspace between an empty pair deletes both.

Layout

Layout controls how you navigate between the Console, Editor, Plots, and other sections. All three modes are available on both iPhone and iPad, each offering a different balance of screen space and quick access.

Tab Bar

The default on iPhone. A row of tab icons along the bottom edge gives single-tap access to each section, and each tab shows a full-screen view, maximizing the space for whichever pane you are working in.

On iPhone, and on iPad in a narrow window or Slide Over, the bar has five tabs: Console, Editor, Plots, Environment, and More, which lists Files, Packages, Projects, History, Help and Settings, each with its own title and toolbar. The Layout button is in More’s toolbar. On a full-width iPad every section has its own tab, and the Layout button is at the leading edge of the Console’s bar. Files is badged when files shared from other apps are waiting to be imported.

4-Pane Workspace

Four resizable panes at once: Editor and Console on the left, Environment and a tabbed pane (Plots, Files, Packages, Projects, History, Help) on the right. The tab strip scrolls when it doesn’t fit, and the Plots tab counts plots you haven’t seen. Tap the gear icon in the Environment header for Settings, or the Layout button beside it to change layout. The Console pane’s header has Stop while R is running, and Clear (Cmd+K). Help pages and the package list keep their place when you switch tabs or layouts. Works best on iPad in landscape.

Drag the dividers between panes to resize them; they follow your finger. Positions are saved between sessions. Each divider can move within its allowed range (30–70% horizontal, 20–80% vertical).

Landscape vs. Portrait

Each layout adapts to the screen orientation. On iPad, the screenshots below show portrait (left) and landscape (right) side by side.

4-Pane Workspace

iPhone 4-Pane Workspace

iPhone 4-Pane Workspace, dark mode

Tab Bar

iPhone Tab Bar

iPhone Tab Bar, dark mode

4-Pane Workspace

iPad 4-Pane Workspace in portrait

iPad 4-Pane Workspace in portrait, dark mode

iPad 4-Pane Workspace in landscape

iPad 4-Pane Workspace in landscape, dark mode

Tab Bar

iPad Tab Bar in portrait

iPad Tab Bar in portrait, dark mode

iPad Tab Bar in landscape

iPad Tab Bar in landscape, dark mode

On iPad, try 4-Pane Workspace in landscape and Sidebar Navigation in portrait. On iPhone, experiment with all three modes to find your favourite.

R Session

Controls for the R engine: package restoration, workspace saving, file sync, network proxy, and memory management.

Packages

Setting Description
Restore on Startup Automatically restores your installed packages when the app launches, even offline.
Saved Packages Shows how many packages are saved locally. Expand to see the list.
Clear Package Cache Removes all saved packages. You will need to reinstall them next time.

Workspace

Setting Description
Save Workspace Each project keeps its own workspace. With this on, R’s variables are saved to the current project when you leave the app or switch projects, and a project’s saved workspace is loaded when R starts or restarts, or when you switch to it. Like .RData in desktop R. Off by default.
Saved Workspace Appears when the current project has a saved workspace. Delete removes it, after asking.

Switching projects with Save Workspace on swaps R’s variables in place, without restarting R: loaded packages, options and the working directory stay. If code is running, the switch waits for it to finish, and you can still stop it. Variables that belong to no project are kept, and a notice suggests restarting R. A workspace that fails to load is renamed aside in its project rather than blocking every launch; see Known Issues.

Files

Setting Description
Copy Files Back Automatically Copies files R writes in its working directory back to this iOS folder after every console command, overwriting the iOS versions with R’s. Off by default.

Network

How network requests from R packages built on curl, such as httr2, leave your device. Installing packages and download.file() are not affected.

Setting Description
Network Proxy On-Device Only (default) uses a proxy running inside the app, and blocks requests if it can’t start. On-Device, Public Fallback switches to a public proxy hosted at r-universe.dev only when the on-device one can’t start. Public Proxy always uses the public one. Changes apply when R restarts.
This Session What the running R session is actually using: the on-device proxy, the public proxy, or blocked.
Restart R to Apply Appears when you have changed the setting since R started.

If the on-device proxy can’t start, the app tells you once per launch. The public proxy can see your device’s IP address and which sites you connect to, but not the contents of https requests.

Network Access walks through picking a route, checking which one a session is using from R, and what a blocked session looks like. For the mechanism, see How network access works.

Environment

Action Description
Memory Used Current memory usage of your R session.
Refresh Memory Info Updates the memory display.
Run Garbage Collection Frees memory by cleaning unused R objects. Try this if things feel sluggish.
Restart R Session Completely restarts the R engine. Clears all variables and loaded packages, but preserves editor code, plots and saved files. With Save Workspace on, the project’s saved workspace is loaded again, and the confirmation says so.
Clear R Environment Removes all variables from .GlobalEnv without restarting R. Quicker than a full restart for a clean slate.

If the app feels slow, try garbage collection first. If that does not help, restart the R session.

Help & Resources

Onboarding, keyboard shortcuts, iCloud sync, and links to external R and webR documentation.

Item Description
Show Tutorial Replays the onboarding walkthrough that you saw when you first opened the app.
Keyboard Shortcuts A reference card showing all available shortcuts. See the Keyboard Shortcuts section below for details.
iCloud Sync Copy your R scripts to iCloud Drive and back. See iCloud Sync below.
External Resources Links to the official webR documentation, the R Project website, and the webR package repository at repo.r-wasm.org.

iCloud Sync

Copies your R scripts between this device and iCloud Drive. You need to be signed in to iCloud on the device. If you are not, the screen says so and the actions are unavailable.

The status section shows whether iCloud is reachable and when you last synced. Below it:

Action What it does
Upload All Scripts to iCloud Copies the .R and .Rmd files in the current project and at the top of your Documents folder to iCloud Drive. Two local files whose names differ only in case are refused, since iCloud Drive keeps one folder.
Download All from iCloud Copies every script from iCloud Drive back to this device: over the local script of the same name, or otherwise into the current project. Downloading a single file asks before replacing a local one.
Refresh Re-reads what is currently in iCloud Drive.

Your scripts land in a folder named webRios under iCloud Drive, visible in the Files app and in the Finder on a Mac. That is the point of syncing through iCloud Drive rather than a private store: you can write a script on a Mac, drop it in that folder, and download it here.

A failure with one file doesn’t stop the rest, and Last Result says what the last sync did. A download is swapped in only once it is complete, so a file that can’t be downloaded never costs you the local copy.

This is a copy in each direction rather than continuous synchronisation. Nothing is uploaded or downloaded until you ask for it, and a file edited in both places will not merge. The later copy wins.

Keyboard Shortcuts

A reference card of every shortcut, organized by category. Especially useful with an external keyboard on iPad.

Default shortcuts. These editor shortcuts can be changed (see below):

Category Action Shortcut
Run Run Line / Selection Cmd+Return
Run Run All Cmd+Shift+Return
Insert Assignment Arrow (<-) Option+Hyphen
Insert Pipe Operator (|>) Cmd+Shift+M
File Save Cmd+S
File New Tab Cmd+N
File Close Tab Cmd+W
File Open File Cmd+O
Find Find Cmd+F
Find Find & Replace Cmd+Option+F
Edit Toggle Comment Cmd+/
Edit Duplicate Line Cmd+D
Navigate Go to Definition Ctrl+Cmd+J
Navigate Code Completion Ctrl+Space

Fixed shortcuts. These can’t be changed, and no other action can use their keys:

Action Shortcut
Stop R Cmd+.
Restart R (asks first) Ctrl+Cmd+0
Clear Console Cmd+K
Previous / Next Command Cmd+Up / Cmd+Down
Go to Line Cmd+L
Code Outline Cmd+Shift+O
Console, Editor, Plots, Environment, Files, Packages, History, Help Cmd+1 to Cmd+8
Settings Cmd+,

In the Console, Cmd+F searches your command history. In a separate iPad editor window, Cmd+R runs the whole file.

A few keys belong to the system first. Cmd+G is Find Next, which is why Go to Line is Cmd+L. With the editor’s text focused, Cmd+Option+F is Find and Replace; elsewhere it opens Search in Files. Cmd+W closes the editor tab only while the editor’s text has focus; otherwise it closes the window.

The iPad menu bar

With a keyboard attached, hold Cmd on iPad to see webRios’s menus. They act on the window you are working in:

  • File: New Script, Open Script…, Open Example, Save, Close Tab
  • Code: Toggle Comment, Duplicate Line, Insert Assignment, Insert Pipe, Go to Line…, Go to Definition, Code Outline, Search in Files…
  • Run: Run Line or Selection, Run All, Stop R, Restart R…, Clear Console, Previous Command, Next Command, Search Command History…
  • View: each section in tab-bar order (Cmd+1 to Cmd+8), and Layout…
  • Settings… (Cmd+,)

New Script and Open Script… work from anywhere, opening the Editor if it isn’t on screen. Restart R… asks first, in the same words as Settings > R Session. Items that open a sheet are unavailable while another sheet is up. On iPhone with a keyboard, Ctrl+Cmd+0, Cmd+1 to Cmd+8 and Cmd+, work too.

Customizing Shortcuts

All the default shortcuts above are customizable in Settings > Keyboard > Custom Shortcuts. Tap any shortcut to edit it:

  • Choose modifier keys (Command, Option, Control, Shift) with toggle buttons
  • Pick a key from a grid of letters, numbers, and special characters
  • See a live preview of the shortcut combination
  • Reset an individual shortcut to its default

A blue dot marks customized shortcuts. Choosing a combination another action already uses offers to swap the two. The fixed shortcuts’ keys are refused, and the editor says what holds them; a custom shortcut saved earlier on one of those keys goes back to its default. Reset All to Defaults at the bottom undoes all changes. With VoiceOver, shortcuts are read as words, such as “Command Return”.

On iPad, hold the Cmd key to see a discoverability overlay listing the menus and shortcuts available right now.

About

The app icon and name at the top, then version numbers, legal documents, credits, and open-source licenses. On iPad, scroll down to reach Credits and Licenses.

Item Description
Header The webRios app icon, its name, and the tagline “R on iPhone and iPad”.
Version App version and build number, such as 1.2.0 (5).
webR Version The webR framework version bundled with the app.
R Version The version of R running (e.g., R 4.6.0).
Legal Terms of Service, Privacy Policy, and Apple EULA.
Credits Acknowledgements for the people and projects behind the app.
Licenses Open source licenses for webR, R, and other bundled technologies, including the full text for SwiftTreeSitter, tree-sitter and tree-sitter-r, which power syntax highlighting.

Support

Diagnostic tools and a feedback form. To report a problem, enable Detailed Logging, reproduce the issue, then tap Send Feedback to submit with logs attached.

Item Description
Detailed Logging Captures extra diagnostic information in error logs. Turn this on before reproducing an issue.
Send Feedback Opens a form where you pick a type (Bug Report, Feature Request, Question, or Other) and describe the issue.
Startup Log What happened during the most recent app launch. Useful for diagnosing slow startup.
Error Log Captured errors that you can view and share when reporting issues.

Reset All Settings

The Reset All Settings button at the bottom restores every preference to its default, including the keyboard toolbar buttons and custom shortcuts, with immediate effect. Files, installed packages and your custom themes are not affected. A confirmation prompt appears first.