# iloader Keyboard Shortcuts: Complete Guide to Desktop App Hotkeys

> Unlock iloader efficiency with our complete guide to desktop app hotkeys. Master Cmd/Ctrl+P, Cmd/Ctrl+R, Cmd/Ctrl+Shift+C, and Cmd/Ctrl+Shift+A shortcuts to streamline your workflow.

- Repository: [Nicholas Sharp/iloader](https://github.com/nab138/iloader)
- Tags: how-to-guide
- Published: 2026-09-12

---

**The iloader desktop application provides four global keyboard shortcuts—Cmd/Ctrl+P for Pairing, Cmd/Ctrl+R for Refresh, Cmd/Ctrl+Shift+C for Certificates, and Cmd/Ctrl+Shift+A for App IDs—that are handled in [`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx) via a global `keydown` event listener.**

The iloader desktop client by nab138 is an Electron/Tauri application for managing iOS devices and certificates. Understanding the available iloader keyboard shortcuts can significantly accelerate your workflow when pairing devices, refreshing connections, or accessing administrative panels. These shortcuts are implemented with platform-aware modifiers, displaying ⌘ on macOS and Ctrl on Windows/Linux.

## Available iloader Keyboard Shortcuts

The following table summarizes the four global hotkeys defined in the source code. These combinations are checked in the `keydown` handler within [`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx) (lines 52‑74) and displayed on corresponding UI buttons.

- **Open Pairing Panel**: Press **⌘ P** on macOS or **Ctrl + P** on Windows/Linux to open the device pairing interface. This shortcut triggers `setOpenModal("pairing")` after verifying a device is selected via `ensureSelectedDevice()`.

- **Refresh Device List**: Press **⌘ R** on macOS or **Ctrl + R** on Windows/Linux to reload the connected devices list. This executes `refreshDevicesRef.current?.()` immediately.

- **Open Certificates Panel**: Press **⌘ ⇧ C** on macOS or **Ctrl + Shift + C** on Windows/Linux to access the certificates management modal. This requires authentication via `ensuredLoggedIn()` before calling `setOpenModal("certificates")`.

- **Open App IDs Panel**: Press **⌘ ⇧ A** on macOS or **Ctrl + Shift + A** on Windows/Linux to view application identifiers. Like certificates, this checks login status via `ensuredLoggedIn()` then invokes `setOpenModal("appids")`.

## How Keyboard Shortcuts Work in iloader

According to the nab138/iloader source code, shortcut handling relies on a React `useEffect` hook that registers a global `keydown` listener. The application detects the current platform through [`src/PlatformContext.tsx`](https://github.com/nab138/iloader/blob/main/src/PlatformContext.tsx), which returns `"mac"`, `"linux"`, or `"windows"` to ensure proper modifier key display in the UI labels.

### The Global keydown Handler

The core logic resides in [`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx) where keyboard events are intercepted and mapped to application actions. The handler checks for platform-appropriate modifiers and prevents default browser behavior using `event.preventDefault()`.

### Opening the Pairing Panel

When you trigger the pairing shortcut, the application verifies no Shift key is held and the "p" key is pressed:

```typescript
// Inside the global keydown handler (src/App.tsx)
if (!event.shiftKey && key === "p") {
  event.preventDefault();
  if (!ensureSelectedDevice()) return;
  setOpenModal("pairing");   // opens the Pairing modal
}

```

### Refreshing the Device List

The refresh shortcut follows a similar pattern, checking for the "r" key without Shift modifier:

```typescript
// Triggered by ⌘ R / Ctrl + R
if (!event.shiftKey && key === "r") {
  event.preventDefault();
  refreshDevicesRef.current?.();   // reloads the connected devices
}

```

### Accessing Certificates and App IDs

Advanced functions requiring user authentication use Shift-modified shortcuts. The following code handles the Certificates panel:

```typescript
// Opening Certificates panel (⌘⇧C / Ctrl+Shift+C)
if (event.shiftKey && key === "c") {
  event.preventDefault();
  if (!ensuredLoggedIn()) return;
  setOpenModal("certificates");   // shows the Certificates modal
}

```

And the App IDs panel:

```typescript
// Opening App IDs panel (⌘⇧A / Ctrl+Shift+A)
if (event.shiftKey && key === "a") {
  event.preventDefault();
  if (!ensuredLoggedIn()) return;
  setOpenModal("appids");   // shows the App IDs modal
}

```

## UI Integration and Platform Detection

The shortcuts are visually indicated on button labels in the main toolbar ([`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx) lines 40, 48, 55, 66) and within the settings panel ([`src/pages/Settings.tsx`](https://github.com/nab138/iloader/blob/main/src/pages/Settings.tsx)). The generic modal component in [`src/components/Modal.tsx`](https://github.com/nab138/iloader/blob/main/src/components/Modal.tsx) renders the actual panels triggered by these hotkeys. Platform detection in [`src/PlatformContext.tsx`](https://github.com/nab138/iloader/blob/main/src/PlatformContext.tsx) ensures macOS users see ⌘ symbols while Linux and Windows users see Ctrl, maintaining native desktop conventions across all supported operating systems.

## Summary

- iloader provides four primary keyboard shortcuts for rapid navigation: Pairing (**Cmd/Ctrl+P**), Refresh (**Cmd/Ctrl+R**), Certificates (**Cmd/Ctrl+Shift+C**), and App IDs (**Cmd/Ctrl+Shift+A**).
- All shortcuts are handled in [`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx) via a global `keydown` event listener registered inside a `useEffect` hook (lines 52‑74).
- Platform-specific modifiers are determined by [`PlatformContext.tsx`](https://github.com/nab138/iloader/blob/main/PlatformContext.tsx) to ensure proper display of ⌘ versus Ctrl symbols.
- Authentication-required actions validate login status via `ensuredLoggedIn()` before opening the corresponding modal components.

## Frequently Asked Questions

### What are the keyboard shortcuts for iloader on macOS?

On macOS, iloader uses Command-based shortcuts: **⌘ P** for Pairing, **⌘ R** for Refresh, **⌘ ⇧ C** for Certificates, and **⌘ ⇧ A** for App IDs. These are defined in the global `keydown` handler in [`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx) and displayed in the UI through platform detection in [`src/PlatformContext.tsx`](https://github.com/nab138/iloader/blob/main/src/PlatformContext.tsx).

### How do I refresh the device list in iloader without using the mouse?

Press **Ctrl + R** on Windows/Linux or **⌘ R** on macOS to trigger an immediate device refresh. This executes `refreshDevicesRef.current?.()` in [`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx), reloading all connected iOS devices without requiring mouse interaction.

### Where are the iloader keyboard shortcuts defined in the source code?

All keyboard shortcut logic resides in [`src/App.tsx`](https://github.com/nab138/iloader/blob/main/src/App.tsx), specifically within a `useEffect` hook (lines 52‑74) that listens for global `keydown` events. The platform-specific labels appear in [`src/pages/Settings.tsx`](https://github.com/nab138/iloader/blob/main/src/pages/Settings.tsx) and the main toolbar buttons reference these same combinations.

### Do iloader keyboard shortcuts work on Linux?

Yes, iloader fully supports Linux using the same Ctrl-based shortcuts as Windows: **Ctrl + P**, **Ctrl + R**, **Ctrl + Shift + C**, and **Ctrl + Shift + A**. The [`PlatformContext.tsx`](https://github.com/nab138/iloader/blob/main/PlatformContext.tsx) file detects Linux alongside Windows to ensure proper modifier key display throughout the application interface.