lys-lib

module
v0.3.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 11, 2026 License: MIT

README

lys-lib

lys-lib

Non-widget building blocks for the lys family, in pure Go.

Documentation

  • Rendering and GPU: a 2D canvas with CPU and Vulkan renderers, dmabufs, DRM.
  • Wayland: screen capture, virtual input, XKB, protocol bindings.
  • Media: H.264/H.265 hardware encoding, MP4/Matroska muxing, Opus, Vorbis, V4L2.
  • System: a PipeWire video producer, an EIS server, D-Bus helpers, PAM.

Builds with CGO_ENABLED=0. libvulkan, libva and libpam are dlopened at run time where used.

Install

go get github.com/stubbedev/lys-lib@latest

Example

stride := render.Stride(320)
pixels := make([]byte, stride*120)
cv := render.New(pixels, stride, 320, 120)
cv.Clear(cv.Rect(), render.RGB(0x1f, 0x21, 0x36))
cv.FillRect(render.Rect{X: 40, Y: 40, W: 240, H: 40}, render.RGB(0xff, 0xb4, 0x54))
img := render.NRGBA(pixels, stride, 320, 120)

Documentation

The lys family

lys-shell, lys-wm, lys-ui, lys-login, lys-splash, lys-polkit, lys-secrets.

Directories

Path Synopsis
Package appearance holds the desktop's presentation preferences as xdg-desktop-portal publishes them: the color scheme, the accent color and the contrast level.
Package appearance holds the desktop's presentation preferences as xdg-desktop-portal publishes them: the color scheme, the accent color and the contrast level.
Package assetfile opens the files assets load from: icons, images, stylesheets and fonts.
Package assetfile opens the files assets load from: icons, images, stylesheets and fonts.
Package atomicfile replaces files whole and durably: the content goes to a uniquely named temporary file beside the target, which is synced and renamed over it, and then the directory is synced so the rename survives a crash.
Package atomicfile replaces files whole and durably: the content goes to a uniquely named temporary file beside the target, which is synced and renamed over it, and then the directory is synced so the rename survives a crash.
Package audiomix sums several sources of interleaved 16-bit PCM into one stream, sample by sample with clipping, padding with silence what a source has not delivered yet.
Package audiomix sums several sources of interleaved 16-bit PCM into one stream, sample by sample with clipping, padding with silence what a source has not delivered yet.
Package capture copies screen contents out of the compositor: whole outputs and output regions through wlr-screencopy, single windows through ext-image-copy-capture (with the ext-foreign-toplevel-list enumeration and its capture sources) or Hyprland's toplevel-export, and continuous damage-driven output capture through an ext-image-copy-capture session (Stream).
Package capture copies screen contents out of the compositor: whole outputs and output regions through wlr-screencopy, single windows through ext-image-copy-capture (with the ext-foreign-toplevel-list enumeration and its capture sources) or Hyprland's toplevel-export, and continuous damage-driven output capture through an ext-image-copy-capture session (Stream).
Package clib is the shared purego plumbing for the native libraries the lys family binds without cgo (lys-login's libpam at run time, and the reference libpipewire and libei the tests here drive): dlopen over a candidate list and C string copies.
Package clib is the shared purego plumbing for the native libraries the lys family binds without cgo (lys-login's libpam at run time, and the reference libpipewire and libei the tests here drive): dlopen over a candidate list and C string copies.
Package dbustest runs private dbus-daemons for tests, so services that export or call D-Bus objects are exercised over a real bus without touching the user's session or system bus.
Package dbustest runs private dbus-daemons for tests, so services that export or call D-Bus objects are exercised over a real bus without touching the user's session or system bus.
Package dbusx holds the D-Bus plumbing every lys process shares, on lys-lib's patched godbus: exporting interfaces at a path and under a well-known name the way zbus's object_server().at + request_name does, serving zbus-style #[zbus(property)] getters (computed on every read) and setters over org.freedesktop.DBus.Properties, introspection built on demand, watching a name for its owner and a peer for its signals, and dialing the system bus within a bound.
Package dbusx holds the D-Bus plumbing every lys process shares, on lys-lib's patched godbus: exporting interfaces at a path and under a well-known name the way zbus's object_server().at + request_name does, serving zbus-style #[zbus(property)] getters (computed on every read) and setters over org.freedesktop.DBus.Properties, introspection built on demand, watching a name for its owner and a peer for its signals, and dialing the system bus within a bound.
Package debug is the lys family's compile-time trace facility.
Package debug is the lys family's compile-time trace facility.
Package dmabuf describes Linux dma-buf frames: GPU (or udmabuf) memory handed to the compositor by file descriptor through zwp_linux_dmabuf_v1, with no copy.
Package dmabuf describes Linux dma-buf frames: GPU (or udmabuf) memory handed to the compositor by file descriptor through zwp_linux_dmabuf_v1, with no copy.
Package dmabufprobe picks the DRM modifier a screencopy into GPU memory uses: the modifiers the compositor imports, ordered against the ones the device renders and exports, tried one at a time until a buffer allocates, imports and takes a frame.
Package dmabufprobe picks the DRM modifier a screencopy into GPU memory uses: the modifiers the compositor imports, ordered against the ones the device renders and exports, tried one at a time until a buffer allocates, imports and takes a frame.
Package dmabufwl builds zwp_linux_buffer_params_v1 objects from dmabuf descriptions, the step every linux-dmabuf import shares, and reads the compositor's linux-dmabuf feedback, default and per surface.
Package dmabufwl builds zwp_linux_buffer_params_v1 objects from dmabuf descriptions, the step every linux-dmabuf import shares, and reads the compositor's linux-dmabuf feedback, default and per surface.
Package drm issues DRM ioctls on a device node, in pure Go: KMS resources, connectors, planes, properties and blobs, dumb buffers, framebuffers and atomic commits, capabilities, CRTC vblank sequences, and timeline syncobjs and sync files for explicit synchronization.
Package drm issues DRM ioctls on a device node, in pure Go: KMS resources, connectors, planes, properties and blobs, dumb buffers, framebuffers and atomic commits, capabilities, CRTC vblank sequences, and timeline syncobjs and sync files for explicit synchronization.
Package edid reads what a display's EDID says about it: its make, model and serial, as outputs are described and matched by, its colour and its variable refresh range.
Package edid reads what a display's EDID says about it: its make, model and serial, as outputs are described and matched by, its colour and its variable refresh range.
eis
Package eis is an EIS server: the receiving end of libei, which remote-desktop clients prefer over the portal's Notify* D-Bus calls.
Package eis is an EIS server: the receiving end of libei, which remote-desktop clients prefer over the portal's Notify* D-Bus calls.
eistest
Package eistest drives an EIS server with libei, the reference C client, loaded through purego: the oracle an EIS server, and a portal serving one, are held to in tests.
Package eistest drives an EIS server with libei, the reference C client, loaded through purego: the oracle an EIS server, and a portal serving one, are held to in tests.
Package fourcc names DRM pixel formats and format modifiers, as shared by the kernel, GBM, EGL and linux-dmabuf.
Package fourcc names DRM pixel formats and format modifiers, as shared by the kernel, GBM, EGL and linux-dmabuf.
Package glibclocale reads glibc's compiled locale data in pure Go: the locale-archive and the per-locale directories localedef writes, laid out as glibc's locarchive.h and loadlocale.c read them.
Package glibclocale reads glibc's compiled locale data in pure Go: the locale-archive and the per-locale directories localedef writes, laid out as glibc's locarchive.h and loadlocale.c read them.
glibclocaletest
Package glibclocaletest holds glibc compiled locale data for tests, as glibc 2.44's localedef wrote it: the LC_IDENTIFICATION, LC_MONETARY, LC_NUMERIC and LC_TIME of de_DE.utf8, en_GB.utf8, en_US.utf8, fa_IR.utf8 and th_TH.utf8, as locale directories and as a locale-archive holding the same five locales.
Package glibclocaletest holds glibc compiled locale data for tests, as glibc 2.44's localedef wrote it: the LC_IDENTIFICATION, LC_MONETARY, LC_NUMERIC and LC_TIME of de_DE.utf8, en_GB.utf8, en_US.utf8, fa_IR.utf8 and th_TH.utf8, as locale directories and as a locale-archive holding the same five locales.
Package golden compares rendered pixels against committed PNG snapshots ("goldens"), so render-level tests can assert byte-stable output on any machine.
Package golden compares rendered pixels against committed PNG snapshots ("goldens"), so render-level tests can assert byte-stable output on any machine.
Package gpu renders on the GPU through Vulkan, into memory shared with the compositor (or a display) as dmabufs: what a frame draws is handed over by file descriptor, with no copy.
Package gpu renders on the GPU through Vulkan, into memory shared with the compositor (or a display) as dmabufs: what a frame draws is handed over by file descriptor, with no copy.
Package gputest picks the Vulkan driver the GPU tests run on, from the environment: LYS_TEST_GPU=lavapipe runs them on Mesa's CPU driver (CI, no GPU needed), whose ICD file LYS_TEST_LAVAPIPE names (the dev shell sets it); any other value runs them on the host's device; unset, they run where a device is found and skip elsewhere.
Package gputest picks the Vulkan driver the GPU tests run on, from the environment: LYS_TEST_GPU=lavapipe runs them on Mesa's CPU driver (CI, no GPU needed), whose ICD file LYS_TEST_LAVAPIPE names (the dev shell sets it); any other value runs them on the host's device; unset, they run where a device is found and skip elsewhere.
Package i18n is gettext in pure Go: GNU .mo and .po catalogs with plural forms and message contexts, locale resolution from the environment, and catalog lookup in a file system.
Package i18n is gettext in pure Go: GNU .mo and .po catalogs with plural forms and message contexts, locale resolution from the environment, and catalog lookup in a file system.
Icon-theme following (#64): the cache applies live icon-theme switches delivered by the portal monitor (portalsettings), which the application wires in.
Icon-theme following (#64): the cache applies live icon-theme switches delivered by the portal monitor (portalsettings), which the application wires in.
Package icontheme resolves freedesktop icon theme names into rasters for programs that draw icons without widgets, such as a compositor drawing the icon a window names.
Package icontheme resolves freedesktop icon theme names into rasters for programs that draw icons without widgets, such as a compositor drawing the icon a window names.
Package intconv converts between integer types without silent wraparound: Exact refuses a value the target cannot hold, Must panics on one, Clamp saturates it, and Duration scales a count into a time.Duration.
Package intconv converts between integer types without silent wraparound: Exact refuses a value the target cannot hold, Must panics on one, Clamp saturates it, and Duration scales a count into a time.Duration.
internal
av1
Package av1 reads the AV1 bitstream (AV1 Bitstream & Decoding Process Specification, version 1.0.0 with Errata 1) as far as a decoder that keeps its own reference state needs: the open bitstream units, the sequence header, the frame headers with the reference frame state their syntax predicts from, and the tile groups' layout.
Package av1 reads the AV1 bitstream (AV1 Bitstream & Decoding Process Specification, version 1.0.0 with Errata 1) as far as a decoder that keeps its own reference state needs: the open bitstream units, the sequence header, the frame headers with the reference frame state their syntax predicts from, and the tile groups' layout.
isobmff
Package isobmff names the ISO base media file format (MP4) flag bits shared by the muxer that writes fragments and the demuxer that reads them (ISO/IEC 14496-12).
Package isobmff names the ISO base media file format (MP4) flag bits shared by the muxer that writes fragments and the demuxer that reads them (ISO/IEC 14496-12).
matroska
Package matroska names the EBML elements and codec identifiers of Matroska and WebM, shared by the muxer that writes them and the demuxer that reads them.
Package matroska names the EBML elements and codec identifiers of Matroska and WebM, shared by the muxer that writes them and the demuxer that reads them.
nal
Package nal writes and reads H.264 and H.265 NAL units: the bit writer and reader with the Exp-Golomb codes the syntax uses, the escaping of start-code-like byte runs and its removal, the parameter sets an encoder that does not write its own (VA-API's, given packed headers) puts in the stream, and the parsing of the parameter sets and slice headers a decoder that manages its own reference pictures (Vulkan Video's) needs.
Package nal writes and reads H.264 and H.265 NAL units: the bit writer and reader with the Exp-Golomb codes the syntax uses, the escaping of start-code-like byte runs and its removal, the parameter sets an encoder that does not write its own (VA-API's, given packed headers) puts in the stream, and the parsing of the parameter sets and slice headers a decoder that manages its own reference pictures (Vulkan Video's) needs.
nal/naltest
Package naltest reads H.264 and H.265 headers back through ffmpeg's trace_headers, for tests of what writes them.
Package naltest reads H.264 and H.265 headers back through ffmpeg's trace_headers, for tests of what writes them.
va
Package va drives VA-API's encoders without cgo: it loads libva and libva-drm at run time through purego, opens a display on a DRM render node, and wraps the calls H.264 and H.265 encoding makes.
Package va drives VA-API's encoders without cgo: it loads libva and libva-drm at run time through purego, opens a display on a DRM render node, and wraps the calls H.264 and H.265 encoding makes.
vp9
Package vp9 reads the VP9 bitstream (VP9 Bitstream & Decoding Process Specification, version 0.6) as far as a decoder that keeps its own reference state needs: superframes and the uncompressed header, with the state its syntax and semantics predict from (the reference frames' sizes, the loop filter deltas, the segmentation features, whether a frame reuses the previous frame's motion vectors and which frame contexts hold probabilities frames saved).
Package vp9 reads the VP9 bitstream (VP9 Bitstream & Decoding Process Specification, version 0.6) as far as a decoder that keeps its own reference state needs: superframes and the uncompressed header, with the state its syntax and semantics predict from (the reference frames' sizes, the loop filter deltas, the segmentation features, whether a frame reuses the previous frame's motion vectors and which frame contexts hold probabilities frames saved).
vp9/vp9test
Package vp9test makes the VP9 frames libvpx codes none of, out of the ones it does, for tests of what reads and decodes them: frames that show a frame again, hidden intra-only frames, and key frames that code a frame context of their own.
Package vp9test makes the VP9 frames libvpx codes none of, out of the ones it does, for tests of what reads and decodes them: frames that show a frame again, hidden intra-only frames, and key frames that code a frame context of their own.
Package keymapfd reads the xkb keymap a wl_keyboard.keymap event carries.
Package keymapfd reads the xkb keymap a wl_keyboard.keymap event carries.
Package logind is systemd-logind (org.freedesktop.login1) on the system bus as every lys process uses it: its names declared once, typed manager, session, seat and user handles, the calls, properties and signals lys makes and reads, and one context-bounded call path whose errors name the method and the object.
Package logind is systemd-logind (org.freedesktop.login1) on the system bus as every lys process uses it: its names declared once, typed manager, session, seat and user handles, the calls, properties and signals lys makes and reads, and one context-bounded call path whose errors name the method and the object.
logindtest
Package logindtest is a fake systemd-logind on a private bus: the manager, the user's sessions on seat0, the calling user, the calls lys makes of them, and the signals logind sends.
Package logindtest is a fake systemd-logind on a private bus: the manager, the user's sessions on seat0, the calling user, the calls lys makes of them, and the signals logind sends.
Package logutil holds the lys libraries' single injectable logger.
Package logutil holds the lys libraries' single injectable logger.
media
aac
Package aac decodes MPEG-4 AAC-LC (ISO/IEC 14496-3 audio object type 2) to interleaved signed 16-bit PCM in pure Go: one raw_data_block per call, as MP4 and Matroska carry them, in channel configurations 1 to 7 (mono to 7.1).
Package aac decodes MPEG-4 AAC-LC (ISO/IEC 14496-3 audio object type 2) to interleaved signed 16-bit PCM in pure Go: one raw_data_block per call, as MP4 and Matroska carry them, in channel configurations 1 to 7 (mono to 7.1).
demux
Package demux reads the tracks and packets of MP4 (ISO BMFF) and Matroska/WebM files, in pure Go.
Package demux reads the tracks and packets of MP4 (ISO BMFF) and Matroska/WebM files, in pure Go.
internal/mp4audio
Package mp4audio holds what the readers and writers of an MPEG-4 AudioSpecificConfig (ISO/IEC 14496-3, 1.6.2.1) share: the sampling frequency indices.
Package mp4audio holds what the readers and writers of an MPEG-4 AudioSpecificConfig (ISO/IEC 14496-3, 1.6.2.1) share: the sampling frequency indices.
internal/pcm
Package pcm converts the samples the audio decoders compute to the 16-bit PCM they return.
Package pcm converts the samples the audio decoders compute to the 16-bit PCM they return.
mux
Package mux writes timestamped H.264, H.265 and Opus samples into fragmented MP4 (NewMP4) and Matroska (NewMKV) files, in pure Go.
Package mux writes timestamped H.264, H.265 and Opus samples into fragmented MP4 (NewMP4) and Matroska (NewMKV) files, in pure Go.
opus
Package opus is a pure-Go Opus encoder and decoder (RFC 6716).
Package opus is a pure-Go Opus encoder and decoder (RFC 6716).
vorbis
Package vorbis is a pure-Go Ogg Vorbis decoder (Vorbis I) for the sound files freedesktop sound themes ship (.oga): it decodes a whole stream once into interleaved signed 16-bit PCM, the layout a sample cache upload or a playback stream takes.
Package vorbis is a pure-Go Ogg Vorbis decoder (Vorbis I) for the sound files freedesktop sound themes ship (.oga): it decodes a whole stream once into interleaved signed 16-bit PCM, the layout a sample cache upload or a playback stream takes.
Package motion holds the two solvers animation is built on, a damped harmonic spring and a CSS cubic-bezier timing function, as pure maths over floats.
Package motion holds the two solvers animation is built on, a damped harmonic spring and a CSS cubic-bezier timing function, as pure maths over floats.
Package pam binds libpam through purego, so a program stays CGO_ENABLED=0: transactions, their conversation, and the items lys reads back.
Package pam binds libpam through purego, so a program stays CGO_ENABLED=0: transactions, their conversation, and the items lys reads back.
Package peercred reads who is at the other end of a Unix socket, as the kernel recorded it when the peer connected: its credentials, and where the kernel gives one a pidfd, which keeps naming that process after its pid has been reused.
Package peercred reads who is at the other end of a Unix socket, as the kernel recorded it when the peer connected: its credentials, and where the kernel gives one a pidfd, which keeps naming that process after its pid has been reused.
peercredtest
Package peercredtest gives a test a socket peer that is another process, with a pid and a lifetime of its own: what telling a peer from the test itself, or outliving it, needs.
Package peercredtest gives a test a socket peer that is another process, with a pid and a lifetime of its own: what telling a peer from the test itself, or outliving it, needs.
Package pipewire is the PipeWire video producer a ScreenCast portal streams through: a node exported over PipeWire's native protocol (a client-node, as libpipewire's pw_stream exports one), which drives its own graph: a cycle runs when a captured frame is ready, stamped with the header, transform and damage metas.
Package pipewire is the PipeWire video producer a ScreenCast portal streams through: a node exported over PipeWire's native protocol (a client-node, as libpipewire's pw_stream exports one), which drives its own graph: a cycle runs when a captured frame is ready, stamped with the header, transform and damage metas.
pwtest
Package pwtest starts a private PipeWire daemon for tests, so producers and consumers link without touching the user's session, and runs libpipewire consumers against it as the reference a producer is checked by.
Package pwtest starts a private PipeWire daemon for tests, so producers and consumers link without touching the user's session, and runs libpipewire consumers against it as the reference a producer is checked by.
Package polkit is polkitd's Authority (org.freedesktop.PolicyKit1) on the system bus as every lys process uses it: its names declared once, typed subjects, the authorization check with its cancellation, the calls an authentication agent makes, and one context-bounded call path whose errors name the action and the subject.
Package polkit is polkitd's Authority (org.freedesktop.PolicyKit1) on the system bus as every lys process uses it: its names declared once, typed subjects, the authorization check with its cancellation, the calls an authentication agent makes, and one context-bounded call path whose errors name the action and the subject.
polkittest
Package polkittest is a fake polkitd Authority for tests: it answers CheckAuthorization with the result the test sets and records every check and cancel, records agent registrations and refuses a second agent for a subject, as polkit 127 does, describes the actions it is given, keeps temporary authorizations, and counts the calls it answers.
Package polkittest is a fake polkitd Authority for tests: it answers CheckAuthorization with the result the test sets and records every check and cancel, records agent registrations and refuses a second agent for a subject, as polkit 127 does, describes the actions it is given, keeps temporary authorizations, and counts the calls it answers.
Package portaldialogs is the dev.stubbe.lys.PortalDialogs1 contract: the native dialogs lys-shell shows behind the desktop-portal backend's Access, Account, AppChooser, DynamicLauncher, GlobalShortcuts, Usb and Wallpaper preview, in place of xdg-desktop-portal-gtk, and the password prompt and administrator authentication other lys processes ask through it.
Package portaldialogs is the dev.stubbe.lys.PortalDialogs1 contract: the native dialogs lys-shell shows behind the desktop-portal backend's Access, Account, AppChooser, DynamicLauncher, GlobalShortcuts, Usb and Wallpaper preview, in place of xdg-desktop-portal-gtk, and the password prompt and administrator authentication other lys processes ask through it.
Package portalsettings follows the desktop settings xdg-desktop-portal publishes (color scheme, accent color, contrast, icon theme, the interface font and its text scaling) over the session bus.
Package portalsettings follows the desktop settings xdg-desktop-portal publishes (color scheme, accent color, contrast, icon theme, the interface font and its text scaling) over the session bus.
Package protocols is the Wayland protocol XML every lys binding is generated from: the core protocol, the upstream extensions at the versions pinned in sources.json, and the lys-* protocols.
Package protocols is the Wayland protocol XML every lys binding is generated from: the core protocol, the upstream extensions at the versions pinned in sources.json, and the lys-* protocols.
cmd/fetch-protocols command
Command fetch-protocols downloads the upstream protocol XML pinned in protocols/sources.json into the protocols directory.
Command fetch-protocols downloads the upstream protocol XML pinned in protocols/sources.json into the protocols directory.
pulse
native
Package native is a PulseAudio native-protocol client in pure Go: the pstream framing, the tagstruct encoding, the handshake, the introspection and control commands wayle-audio drives through libpulse, the subscription events, record and playback streams, and the sample cache.
Package native is a PulseAudio native-protocol client in pure Go: the pstream framing, the tagstruct encoding, the handshake, the introspection and control commands wayle-audio drives through libpulse, the subscription events, record and playback streams, and the sample cache.
pulsetest
Package pulsetest is a fake PulseAudio server for tests: a unix socket speaking the native protocol's real frames, backed by a scriptable object model (sinks, sources, streams, defaults) that answers introspection, applies control commands, emits subscription events the way pulsecore does, serves record and playback streams, and can inject server errors, malformed frames, and disconnects.
Package pulsetest is a fake PulseAudio server for tests: a unix socket speaking the native protocol's real frames, backed by a scriptable object model (sinks, sources, streams, defaults) that answers introspection, applies control commands, emits subscription events the way pulsecore does, serves record and playback streams, and can inject server errors, malformed frames, and disconnects.
The CSS box primitives: per-corner rounded fills, rounded border rings with per-side widths and colors, angled multi-stop linear gradients, and box shadows with offset, spread, blur, and inset — everything a CSS box paints behind its content.
The CSS box primitives: per-corner rounded fills, rounded border rings with per-side widths and colors, angled multi-stop linear gradients, and box shadows with offset, spread, blur, and inset — everything a CSS box paints behind its content.
Package sockdir gives tests a directory short enough to hold Unix sockets.
Package sockdir gives tests a directory short enough to hold Unix sockets.
Package testbuild reports how the test binary was built.
Package testbuild reports how the test binary was built.
Package testhome runs a test binary against a scratch home and no session but its own, so no test, and no application or daemon it starts, reads or writes the real user's files or reaches the session of whoever runs it: the session bus, the system bus, the compositor, the sound server.
Package testhome runs a test binary against a scratch home and no session but its own, so no test, and no application or daemon it starts, reads or writes the real user's files or reaches the session of whoever runs it: the session bus, the system bus, the compositor, the sound server.
Bidirectional resolution (UAX #9) for every text path in the family (stubbedev/lys-ui#68): mixed Hebrew/Arabic + Latin lines resolve into directional runs that the shaper lays out visually correct, and the editable widgets of lys-ui map caret motion through.
Bidirectional resolution (UAX #9) for every text path in the family (stubbedev/lys-ui#68): mixed Hebrew/Arabic + Latin lines resolve into directional runs that the shaper lays out visually correct, and the editable widgets of lys-ui map caret motion through.
third_party
godbus
Package dbus implements bindings to the D-Bus message bus system.
Package dbus implements bindings to the D-Bus message bus system.
godbus/introspect
Package introspect provides some utilities for dealing with the DBus introspection format.
Package introspect provides some utilities for dealing with the DBus introspection format.
godbus/prop
Package prop provides the Properties struct which can be used to implement org.freedesktop.DBus.Properties.
Package prop provides the Properties struct which can be used to implement org.freedesktop.DBus.Properties.
gomath
Package gomath is Go's math package for the functions whose results depend on the architecture: the portable implementations alone, each product explicitly rounded, so one input gives one result everywhere.
Package gomath is Go's math package for the functions whose results depend on the architecture: the portable implementations alone, each product explicitly rounded, so one input gives one result everywhere.
rasterx
Package rasterx implements a rasterizer in go.
Package rasterx implements a rasterizer in go.
typesetting/bidi
bidi implements the Unicode Bidi algorithm.
bidi implements the Unicode Bidi algorithm.
typesetting/font
Package font provides an high level API to access Opentype font properties.
Package font provides an high level API to access Opentype font properties.
typesetting/font/cff/interpreter
Package psinterpreter implement a Postscript interpreter required to parse .CFF files, and Type1 and Type2 Charstrings.
Package psinterpreter implement a Postscript interpreter required to parse .CFF files, and Type1 and Type2 Charstrings.
typesetting/font/opentype
Package opentype provides the low level routines required to read and write Opentype font files, including collections.
Package opentype provides the low level routines required to read and write Opentype font files, including collections.
typesetting/harfbuzz
Package harfbuzz provides advanced text layout for various scripts and languages, with font-aware substitutions and positionning.
Package harfbuzz provides advanced text layout for various scripts and languages, with font-aware substitutions and positionning.
typesetting/internal/unicodedata
Package unicodedata provides additional lookup functions for unicode properties, not covered by the standard package unicode.
Package unicodedata provides additional lookup functions for unicode properties, not covered by the standard package unicode.
typesetting/segmenter
Package segmenter implements Unicode rules used to segment a paragraph of text according to several criteria.
Package segmenter implements Unicode rules used to segment a paragraph of text according to several criteria.
vector
Package vector provides a rasterizer for 2-D vector graphics.
Package vector provides a rasterizer for 2-D vector graphics.
vk
Package vk provides Pure Go Vulkan bindings, calling through internal/ffi.
Package vk provides Pure Go Vulkan bindings, calling through internal/ffi.
vk/internal/ffi
Package ffi is the slice of goffi's API the Vulkan bindings call through, carried out by github.com/ebitengine/purego: purego and goffi each link a runtime shim (fakecgo) and cannot share a program, and purego is the one lys-ui's applications already use to load native libraries.
Package ffi is the slice of goffi's API the Vulkan bindings call through, carried out by github.com/ebitengine/purego: purego and goffi each link a runtime shim (fakecgo) and cannot share a program, and purego is the one lys-ui's applications already use to load native libraries.
wayland/os
Package os implements an operating system routines useful for graphics
Package os implements an operating system routines useful for graphics
wayland/unstable/text-input-v3
Package text implements the text_input_unstable_v3 protocol
Package text implements the text_input_unstable_v3 protocol
wayland/unstable/xdg-decoration-v1
Package xdg implements the xdg_decoration_unstable_v1 protocol
Package xdg implements the xdg_decoration_unstable_v1 protocol
wayland/wl
Package wl implements the stable Wayland protocol
Package wl implements the stable Wayland protocol
wayland/wlclient
Package wlclient implements a wayland-client like api
Package wlclient implements a wayland-client like api
wayland/xdg
Package xdg implements the stable XDG Window Manager Base protocol
Package xdg implements the stable XDG Window Manager Base protocol
Package udmabuf allocates linear, CPU-visible dmabufs through /dev/udmabuf: a sealed memfd wrapped as a dmabuf, so a client hands the compositor dmabufs it fills and reads on the CPU (video frames, tests, demos) without a GPU library.
Package udmabuf allocates linear, CPU-visible dmabufs through /dev/udmabuf: a sealed memfd wrapped as a dmabuf, so a client hands the compositor dmabufs it fills and reads on the CPU (video frames, tests, demos) without a GPU library.
Package v4l2 streams a V4L2 capture node in pure Go (mmap buffers over golang.org/x/sys/unix ioctls), delivering each frame as an RGBA picture letterboxed to a requested aspect, and names the capture nodes a system has.
Package v4l2 streams a V4L2 capture node in pure Go (mmap buffers over golang.org/x/sys/unix ioctls), delivering each frame as an RGBA picture letterboxed to a requested aspect, and names the capture nodes a system has.
Package vinput injects pointer, keyboard and touch input into the compositor through zwlr_virtual_pointer_v1, zwp_virtual_keyboard_v1 and lys_virtual_touch_v1, on a private Wayland connection: the input half of a remote-desktop bridge, and of lys-ui's own headless test harness.
Package vinput injects pointer, keyboard and touch input into the compositor through zwlr_virtual_pointer_v1, zwp_virtual_keyboard_v1 and lys_virtual_touch_v1, on a private Wayland connection: the input half of a remote-desktop bridge, and of lys-ui's own headless test harness.
Package wlr implements the alpha_modifier_v1 protocol
Package wlr implements the alpha_modifier_v1 protocol
Package wltest helps tests run Wayland clients: a private runtime dir, a loopback display for wire-level tests with no compositor, a fake compositor serving linux-dmabuf feedback over one, and, against the headless compositor the test recipes boot, a client that puts solid-colored surfaces on screen for capture tests to find.
Package wltest helps tests run Wayland clients: a private runtime dir, a loopback display for wire-level tests with no compositor, a fake compositor serving linux-dmabuf feedback over one, and, against the headless compositor the test recipes boot, a client that puts solid-colored surfaces on screen for capture tests to find.
Package wmipc is the wire contract of lys-wm's IPC socket: JSON lines, each request answered by a Response, and a watch stream of events.
Package wmipc is the wire contract of lys-wm's IPC socket: JSON lines, each request answered by a Response, and a watch stream of events.
Package xcursor reads Xcursor files and resolves cursor themes the way libXcursor does: XCURSOR_PATH, theme inheritance and nominal sizes.
Package xcursor reads Xcursor files and resolves cursor themes the way libXcursor does: XCURSOR_PATH, theme inheritance and nominal sizes.
Package xdg resolves the XDG base directories and user directories: the base directories themselves, the search paths they form, and an app's own directory under each, all read from an Env.
Package xdg resolves the XDG base directories and user directories: the base directories themselves, the search paths they form, and an app's own directory under each, all read from an Env.
xkb
Package xkb is a pure-Go implementation of the XKB keyboard model: compiling keymaps from rules, model, layout, variant and options, parsing and serializing keymap text in the xkb_v1 and libxkbcommon v2 formats, tracking modifier, layout and LED state, composing keysym sequences into text, and reading keymaps from an X server.
Package xkb is a pure-Go implementation of the XKB keyboard model: compiling keymaps from rules, model, layout, variant and options, parsing and serializing keymap text in the xkb_v1 and libxkbcommon v2 formats, tracking modifier, layout and LED state, composing keysym sequences into text, and reading keymaps from an X server.
internal/genkeysyms command
Command genkeysyms writes the xkb package's keysym tables: the names come from libxkbcommon's xkbcommon-keysyms.h, and the canonical names, the Unicode conversions and the case mappings from asking libxkbcommon itself, so the tables are the library's own answers.
Command genkeysyms writes the xkb package's keysym tables: the names come from libxkbcommon's xkbcommon-keysyms.h, and the canonical names, the Unicode conversions and the case mappings from asking libxkbcommon itself, so the tables are the library's own answers.
registry
Package registry lists the models, layouts, variants and options a ruleset offers, from xkeyboard-config's XML files, the way libxkbregistry does.
Package registry lists the models, layouts, variants and options a ruleset offers, from xkeyboard-config's XML files, the way libxkbregistry does.
x11
Package x11 is a minimal X11 client for xkb.SetupX11: a connection to an X server over its Unix socket, authenticated from the Xauthority file, that carries requests with one reply each.
Package x11 is a minimal X11 client for xkb.SetupX11: a connection to an X server over its Unix socket, authenticated from the Xauthority file, that carries requests with one reply each.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL