---
name: "phoc.ini"
section: "5"
platform: "linux"
package: "phoc"
version: "0.57.0-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/phoc.ini"
---

# phoc.ini(5)

Configuration file for phoc

## Name

phoc.ini - Configuration file for phoc

## DESCRIPTION

Most of **phoc**'s configuration is read from GSettings. Output and core settings are read from **phoc.ini**. The configuration file is searched in phoc's current working directory. It's path can also be given on the command line via the *-C* option.

The phoc.ini file is composed of multiple sections which can be in any order. If values are not given then built in defaults are used. The main purpose of *phoc.ini* is to specify output configuration and layouts. Each section has the form:

```
[SectionHeader]
key1 = value1
key2 = value2
```

Lines starting with *#* are considered comments and are ignored. The section headers might contain a colon in which case the part after the colon specifies the configuration item e.g.

```
[output:DSI-1]
```

is the configuration section for the output *DSI-1*.

The available section headers are:

- •

  *core*: core options

- •

  *output*: output configuration

Modifications to this file require a compositor restart to take effect.

## CORE SECTION

The core section can appear only once and has a single option:

- •

  **xwayland=\[true\|immediate\|false\]**: Whether to enable XWayland. With *true* XWayland is activated when, needed. *immediate* launches it immediately and *false* turns it off.

## OUTPUT SECTION

The output section can appear multiple times with different configuration items

```
[output:ITEM]
```

*ITEM* is either the DRM connector name like *DSI-1* or *DP-2* *or* the make, model and serial as obtained from EDID separated by *%*: *\[output:A Vendor%The Model%Serial\]*. Make, model and serial can be specified as *\** to match any value. The configuration options are:

- •

  *enable=\[true\|false\]*: Whether the output should be enabled

- •

  *x*, *y*: The *x* and *y* position in the output layout. This can be used to arrange outputs. The default is to use automatic layout (new outputs are added to the right of the current layout).

- •

  *scale*: The outputs scale. The default *auto* calculates the scale based on the screen size.

- •

  *rotate*: The rotation. Valid values are *normal*, *90*, *180*, *270*, *flipped*, *flipped-90*, *flipped-180* and *flipped-270*. The default is to use *normal* orientation.

- •

  *mode*: The mode to use. The mode must be a valid mode for this output. See e.g. the output of *wlr-randr*. The default is to use the outputs preferred mode.

- •

  *modeline*: A custom video mode. This is only valid for the DRM backend

- •

  *scale-filter*: Filter to use to scale down textures. Valid values are *bilinear*, *nearest* and *auto*. The later selects *bilinear* for fractional and *nearest* for integer scales automatically. If unset *auto* is assumed.

- •

  *drm-panel-orientation*: If *true* applies the panel orientation read from the DRM connector (if available). Defaults to *true*.

- •

  *phys\_width*, *phys\_height*: The physical dimensions of the display in *mm*.

- •

  *adaptive-sync*: If set to *enabled*, enables variable refresh rate, *disabled* or absent disables it.

Example:

```
[output:DSI-1]
scale = 2
[output:Some Vendor%Some Model%*]
scale = 1
rotate = 90
x = 300
```

## See also

**[phoc(1)](/phoc/1.md)** **[wlr-randr(1)](/wlr-randr/1.md)**
