> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ryoku.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Displays & hardware

> How Ryoku detects your displays, GPU, input devices, and power, and where to tune each one in Ryoku Settings.

Ryoku profiles your hardware at install time and seeds the right defaults, then
hands you the controls in **Ryoku Settings** (the Hub), opened with `Mod+,`. Most
of what you need is a panel away: displays, GPU, input, and power each have their
own place. This page is the map. For hand-editing the underlying files, see
[Customize](/docs/customize); for the GUI panels in full, see
[Settings](/docs/settings).

## Displays

**Ryoku Settings > Displays** is the display control panel. It lists every
connected output and lets you set, per output:

* Resolution and refresh rate
* Scale (fractional scaling for HiDPI panels)
* Rotation
* Position in the layout
* Mirror vs extend
* Named layout profiles you can switch between

Applying a change writes `~/.config/hypr/monitors.lua`, the per-machine drop-in
generated by `ryoku-monitor`. Ryoku rewrites this file on hotplug or a GPU reset,
and `ryoku update` never resets it.

<Warning>
  Laptop (eDP) panels expose only their **native resolution**. To get a smaller
  logical desktop, use the **scale** options instead of a lower resolution; they
  are labelled with the logical resolution they produce (for example 2048x1280)
  and are the Wayland-correct way to downscale. If `Apply` toasts a rejection,
  the compositor refused that mode or scale; pick one of the offered
  clean-divisor scales.
</Warning>

### Quick mirror / extend toggle

Press `Mod+P` to toggle mirror and extend across your displays (it runs
`ryoku-monitor toggle`). Handy for plugging into a projector or a TV without
opening Settings. See [Keybindings](/docs/keybindings) for the full bind list.

### Hand-pinning a layout

When the panel cannot express what a stubborn display needs (a fake-EDID monitor
that wants a forced mode or modeline, a precise position), pin it yourself in
`~/.config/hypr/monitors_user.lua`. It loads after the generated file, so your
pins win, and it is never touched by updates. See
[Customize](/docs/customize).

## GPU

**Ryoku Settings > GPU** lists every detected GPU and pins the primary render
device through `ryoku-gpu`. On a hybrid laptop (a discrete NVIDIA or Radeon
beside the CPU's integrated GPU) the integrated GPU is the battery-friendly
default, following Hyprland's own recommendation. Pick the discrete or external
GPU there to render the desktop on it instead.

<Warning>
  The GPU pin is read once when the compositor starts, so a change takes effect
  on the **next login**. Log out and back in to apply it.
</Warning>

The panel writes `~/.config/hypr/gpu.lua` and offers three host graphics modes:

| Mode        | What it does                                                                    |
| ----------- | ------------------------------------------------------------------------------- |
| Hybrid      | No pin; Hyprland's integrated-GPU-first default (best battery).                 |
| Performance | Pins the strongest GPU (the discrete one) as the primary renderer.              |
| Passthrough | Pins the integrated GPU alone, freeing the discrete GPU for a VM (via `ryovm`). |

From a terminal, `ryoku-gpu` prints what it detected and what it chose:

```bash theme={"dark"}
ryoku-gpu           # detection plus the current pin and udev-rule state
ryoku-gpu detect    # just the detected GPUs (strongest first)
```

<Tip>
  To force the discrete GPU on a laptop against the battery-first default, run
  `RYOKU_GPU_FORCE=1 ryoku-gpu persist`. For a GPU that will not drive the
  desktop, see [Troubleshoot > The wrong GPU is being
  used](/docs/troubleshoot#the-wrong-gpu-is-being-used).
</Tip>

## Input

**Ryoku Settings > Input** covers keyboards and pointing devices:

* Keyboard layout (and variant)
* Key repeat rate and delay
* Pointer and touchpad behaviour (speed, natural scroll, tap-to-click)

The installer carries over the keyboard layout you chose, and the Input panel is
where you change it later. Layout changes apply live.

## Power & idle

Ryoku ships a sensible idle ladder via `hypridle`. Left untouched, an idle
session steps down like this:

| Idle time  | What happens                       |
| ---------- | ---------------------------------- |
| 5 minutes  | Screen dims to 20% brightness      |
| 10 minutes | Session locks (`ryoku-shell lock`) |
| 11 minutes | Displays switch off (DPMS)         |
| 30 minutes | System suspends                    |

The session also locks before sleep or suspend, and restores brightness and the
displays on resume. The ladder is defined in `~/.config/hypr/hypridle.conf`.

Alongside it:

* **Battery** is read through `upower`; the shell surfaces charge and status.
* **Brightness** is controlled with `brightnessctl`. Most laptops handle the
  hardware brightness keys in firmware; if yours does not, bind
  `brightnessctl set +10%` / `-10%` in `~/.config/hypr/user.lua` (see
  [Customize](/docs/customize)).
* **Night light** warms the screen through `hyprsunset`, toggleable on and off
  and remembered at your chosen colour temperature.

## See also

<CardGroup cols={2}>
  <Card title="Settings" icon="sliders" href="/docs/settings">
    Every Ryoku Settings panel, in full.
  </Card>

  <Card title="Customize" icon="file-pen" href="/docs/customize">
    Hand-pin displays and add personal binds in the override files.
  </Card>

  <Card title="Troubleshoot" icon="stethoscope" href="/docs/troubleshoot">
    Wrong GPU, only one resolution, a display that will not apply.
  </Card>

  <Card title="Keybindings" icon="keyboard" href="/docs/keybindings">
    `Mod+P` and the rest of the shipped binds.
  </Card>
</CardGroup>
