miral-s...mpositor(1)

πŸ’– NAME πŸ’–

miral-system-compositor β€” the Mir Display Server system compositor, bestie edition ✨

(also known as the Mir Display Server Demo Application manual, if u were wondering what that lil miral-s...mpositor(1) header thing was about πŸŽ€)


🌸 SYNOPSIS 🌸

miral-system-compositor [options]

✨ DESCRIPTION ✨

okay so listen. miral-system-compositor is the thing u run when u wanna run miral-shell or miral-kiosk nested β€” and, if u need it, under a different user ID β€” on top of a Wayland based desktop session. it's giving "compositor inside a compositor", iconic honestly πŸ’…

u can tweak how the Mir system compositor starts up in like three different ways, and here they all are:

  • Command-line options: e.g. "--host-socket=/tmp/mir_socket".
  • Environment variables: take the long form of the command line option, Capitalise it, prefix it with "MIR_SERVER_" and put "_" where the - was. E.g. "MIR_SERVER_HOST_SOCKET=/tmp/mir_socket". no cap, that's the whole trick πŸ¦‹
  • Config file entries: just use the long form command line options straight up in the config file. E.g. "--host-socket=/tmp/mir_socket".

the config file (mir/mir-system-compositor.config) gets located via the XDG Base Directory Specification. so it's looking at $XDG_CONFIG_HOME or $HOME/.config, followed by $XDG_CONFIG_DIRS. she knows where she lives πŸ’–


πŸ‘‘ OPTIONS πŸ‘‘

here's the full menu bestie, don't skip a single one, i know it's long but we're gonna get through it together 🫢

  • --host-socket <socket-filename> β€” the host socket filename. that's it, that's the whole vibe.
  • -f [ --file ] <filename> β€” the socket filename. default is $XDG_RUNTIME_DIR/mir_socket or /tmp/<UID_NUMBER>-runtime-dir/mir_socket. pick ur home, queen 🌈
  • --no-file β€” do not hand out a socket filename for client connections. she's booked and busy, no new clients today πŸ™ˆ
  • --arw-file β€” sets socket file permissions to globally read-writeable (equivalent to chmod a=rw). everybody gets a key πŸ”‘
  • -p [ --prompt-file ] β€” provide a "..._trusted" filename for prompt helper connections.
  • --platform-graphics-lib <platform_library> β€” the library to use for platform graphics support (default: autodetect). let her figure it out herself, she's smart ⭐
  • --platform-input-lib <input_library> β€” the library to use for platform input support (default: input-stub.so).
  • --platform-path arg (=/usr/lib/x86_64-linux-gnu/mir/server-platform) β€” directory to look for platform libraries (default: /usr/lib/<multi-arch>/mir/server-platform). yes the multi-arch thing is a placeholder, don't @ me πŸ’€
  • -i [ --enable-input ] {0,1} β€” enable input (default: 1, meaning: enabled). she's listening πŸ‘‚
  • --compositor-report {log,lttng,off} (=off) β€” compositor reporting, either of log, lttng or off (default: off).
  • --connector-report {log,lttng,off} β€” how to handle the Connector report, either of log, lttng or off (default: off).
  • --display-report {log,lttng,off} β€” how to handle the Display report, either of log, lttng or off (default: off).
  • --input-report {log,lttng,off} β€” how to handle to Input report, either of log, lttng or off (default: off).
  • --legacy-input-report {log,off} β€” how to handle the Legacy Input report, either of log or off (default: off).
  • --seat-report {log,off} β€” how to handle to Seat report, either of log or off (default: off).
  • --session-mediator-report {log,lttng,off} β€” how to handle the SessionMediator report, either of log, lttng or off (default: off).
  • --msg-processor-report {log,lttng,off} β€” how to handle the MessageProcessor report, either of log, lttng or off (default: off).
  • --scene-report {log,lttng,off} β€” how to handle the scene report, either of log, lttng or off (default: off).
  • --shared-library-prober-report {log,lttng,off} β€” how to handle the SharedLibraryProber report, either of log, lttng or off (default: log). look at her being the only one defaulting to log, main character energy fr fr πŸ‘‘
  • --shell-report {log,off} β€” how to handle the Shell report, either of log or off (default: off).
  • --composite-delay <msecs> β€” compositor frame delay in milliseconds (like, how long to wait for new frames from clients before compositing). higher values = lower latency, but highkey risky, she might start frame skipping on u 😭. a negative value means decide automatically (default: 0).
  • --name <name> β€” when nested, the name Mir uses when registering with the host. her government name πŸ“›
  • --nested-passthrough {0,1} β€” when nested, attempt to pass a client's graphics content directly to the host to avoid a composition pass (default: 1). skipping the middleman, efficiency queen πŸ’…
  • --offscreen β€” render to offscreen buffers instead of the real outputs. not everything needs to be perceived bestie πŸ¦‹
  • --enable-touchspots β€” display visualization of touchspots (e.g. for screencasting). so ur viewers can see where u tapped πŸŽ€
  • --cursor {auto,null,software} β€” cursor (mouse pointer) to use (default: auto).
  • --enable-key-repeat {0,1} β€” enable server generated key repeat (default: 1).
  • --on-fatal-error-except β€” on "fatal error" conditions (e.g. drivers behaving in unexpected ways) throw an exception (instead of a core dump). graceful girlie under pressure ✨
  • --debug β€” enable extra development debugging. heads up tho: this is only interesting for people doing Mir server or client development. if that's not u, this is not ur moment πŸ™ˆ
  • --enable-mirclient β€” enable the deprecated mirclient socket (for running old clients). deprecated!! she's a legacy queen, use with awareness πŸ’€
  • --console-provider arg (=auto) β€” console device handling, i.e. how Mir handles console-related tasks (device handling, VT switching, etc.). the possible values are:
    • logind β€” use logind
    • vt β€” use the Linux VT subsystem. Requires root privileges. ok so this one's serious, no cap πŸ”₯
    • none β€” support no console-related tasks. useful for nested platforms which do not need raw device access and which don't have a VT concept
    • auto β€” detect the appropriate provider.
  • --vt {0,1} β€” VT to run on, or 0 to use the current one (default: 0).
using this option requires --console-provider=vt. no VT provider, no VT option, that's the rule πŸ’…
  • --bypass {0,1} β€” [platform-specific] utilize the bypass optimization for fullscreen surfaces (default: 1).
  • --x11-output <sizes> β€” [mir-on-X specific] colon separated list of WIDTHxHEIGHT sizes for "output" windows (default: 1280x1024).
  • --wayland-host <socket-name> β€” socket name for host compositor.
  • --startup-apps <list-of-applications> β€” colon separated list of startup applications. the entourage arriving with her πŸ’–
  • --env-hacks <env-vars> β€” colon separated list of environment variable settings.
  • --disable-quit β€” disable Ctrl-Alt-Shift-BkSp to quit. she simply will not be leaving, sorry 🫢
  • -h [ --help ] β€” show help text and exit. the classic, the icon, the moment ✨

🌈 SEE ALSO 🌈

miral-shell(1), miral-kiosk(1) β€” go say hi to the sisters, they're all in the same friend group πŸ¦‹


πŸ’œ AUTHOR πŸ’œ

the Mir Display Server has been written by the Mir Server Team at Canonical Ltd. legends, honestly πŸ‘‘

and this man page has been written for the Debian project by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>, and may be re-used by others. slay, Mike, we love a reusable license moment πŸŽ€


and that's the whole page bestie!! version 1.8.0, dated April 2020, from the Mir Display Server Demo Application manual. go forth and nest ur compositors responsibly πŸ’–βœ¨πŸŽ€