PHOC.INI(5)

πŸŽ€ NAME

phoc.ini β€” the configuration file for phoc, bestie. it's giving "where you tell phoc how to behave" ✨


🌸 DESCRIPTION

okay so, most of phoc's configuration? it's read from GSettings. but the output and core settings? those come straight from phoc.ini πŸ’….

where does it live? it gets searched for in phoc's current working directory. and you can also just hand over a path on the command line with the -C option, no biggie 🫢

the phoc.ini file is made up of multiple sections, and they can be in any order β€” no cap, do whatever. if you don't give values, the built-in defaults show up and handle it. the whole main purpose of phoc.ini is specifying output configuration and layouts ⭐

every section looks like this:

[SectionHeader]
key1 = value1
key2 = value2

lines starting with #? those are comments, ignored, gone, bye πŸ’€

and here's the cute part: section headers might contain a colon, and whatever comes after the colon is the configuration item. so like

[output:DSI-1]

is literally the configuration section for the output DSI-1 πŸ‘‘

the available section headers are:

  • core: core options
  • output: output configuration
⚠️ mods to this file require a compositor restart to take effect. it's not live-refresh energy, bestie, you gotta restart. 😭

πŸ’– CORE SECTION

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

  • xwayland=[true|immediate|false] β€” whether to enable XWayland. with true, XWayland gets activated when it's needed. immediate launches it immediately (main character entrance πŸ”₯) and false turns it all the way off.

πŸ¦‹ OUTPUT SECTION

the output section can appear multiple times with different configuration items, slay:

[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 each be specified as * to match any value, iykyk ✨

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 is how you arrange outputs 🌈 the default is to use automatic layout (new outputs get added to the right of the current layout)
  • scale β€” the output's scale. 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. it must be a valid mode for this output. see e.g. the output of wlr-randr. the default is to use the output's 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 latter 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, periodt:

[output:DSI-1]
scale = 2

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

πŸ‘‘ See also

phoc(1) wlr-randr(1)


and that's the whole vibe bestie πŸ’œ this was the phoc.ini(5) manual page β€” footer's just phoc.ini() with the source and date stamped on it, so go forth and configure your outputs, you ate πŸ“πŸ§š

πŸ“¦ where this page comes from