Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
gogio
command
Command gogio runs Keel's copy of Gio's packager directly, for builds that have no keel.json, such as the site's component gallery:
|
Command gogio runs Keel's copy of Gio's packager directly, for builds that have no keel.json, such as the site's component gallery: |
|
keel
command
Command keel creates, runs and packages Keel apps for desktop, web, iOS and Android.
|
Command keel creates, runs and packages Keel apps for desktop, web, iOS and Android. |
|
keel-mcp
command
Command keel-mcp is an MCP server that lets an agent run end-to-end tests against a Keel app: launch it, read what is on screen, click, type, press keys, scroll and take screenshots.
|
Command keel-mcp is an MCP server that lets an agent run end-to-end tests against a Keel app: launch it, read what is on screen, click, type, press keys, scroll and take screenshots. |
|
examples
|
|
|
chat
command
Chat shows streaming Markdown answers the way an AI assistant produces them: text arrives a few characters at a time, the view follows it to the bottom unless you scroll up, and the answer can be stopped.
|
Chat shows streaming Markdown answers the way an AI assistant produces them: text arrives a few characters at a time, the view follows it to the bottom unless you scroll up, and the answer can be stopped. |
|
components
command
Components is the kit gallery: a sidebar of every component, the selected one beside it.
|
Components is the kit gallery: a sidebar of every component, the selected one beside it. |
|
frameless
command
Frameless draws its own title bar: the window has no system title bar, the app puts a search box and buttons in the bar, and its empty part moves the window.
|
Frameless draws its own title bar: the window has no system title bar, the app puts a search box and buttons in the bar, and its empty part moves the window. |
|
glass
command
Glass demonstrates a native macOS backdrop beneath a transparent Gio UI.
|
Glass demonstrates a native macOS backdrop beneath a transparent Gio UI. |
|
hello
command
|
|
|
hotkey
command
Hotkey shows a system-wide shortcut and a background goroutine updating the UI.
|
Hotkey shows a system-wide shortcut and a background goroutine updating the UI. |
|
multiwindow
command
|
|
|
notification
command
|
|
|
orders
command
Orders is a small order desk: search and filter a table, sort it, select rows with the mouse or keyboard, delete with confirmation, add orders through a form, and see totals per status.
|
Orders is a small order desk: search and filter a table, sort it, select rows with the mouse or keyboard, delete with confirmation, add orders through a form, and see totals per status. |
|
gio
|
|
|
app
Package app provides a platform-independent interface to operating system functionality for running graphical user interfaces.
|
Package app provides a platform-independent interface to operating system functionality for running graphical user interfaces. |
|
app/internal/xkb
Package xkb implements a Go interface for the X Keyboard Extension library.
|
Package xkb implements a Go interface for the X Keyboard Extension library. |
|
app/permission
Package permission includes sub-packages that should be imported by a Gio program or by one of its dependencies to indicate that specific operating-system permissions are required.
|
Package permission includes sub-packages that should be imported by a Gio program or by one of its dependencies to indicate that specific operating-system permissions are required. |
|
app/permission/bluetooth
Package bluetooth implements permissions to access Bluetooth and Bluetooth Low Energy hardware, including the ability to discover and pair devices.
|
Package bluetooth implements permissions to access Bluetooth and Bluetooth Low Energy hardware, including the ability to discover and pair devices. |
|
app/permission/camera
Package camera implements permissions to access camera hardware.
|
Package camera implements permissions to access camera hardware. |
|
app/permission/microphone
Package microphone implements permissions to access microphone hardware.
|
Package microphone implements permissions to access microphone hardware. |
|
app/permission/networkstate
Package networkstate implements permissions to access network connectivity information.
|
Package networkstate implements permissions to access network connectivity information. |
|
app/permission/storage
Package storage implements read and write storage permissions on mobile devices.
|
Package storage implements read and write storage permissions on mobile devices. |
|
app/permission/wakelock
Package wakelock implements permission to acquire locks that keep the system from suspending.
|
Package wakelock implements permission to acquire locks that keep the system from suspending. |
|
f32
Package f32 is a float32 implementation of package image's Point and affine transformations.
|
Package f32 is a float32 implementation of package image's Point and affine transformations. |
|
font
Package font provides type describing font faces attributes.
|
Package font provides type describing font faces attributes. |
|
font/gofont
Package gofont exports the Go fonts as a text.Collection.
|
Package gofont exports the Go fonts as a text.Collection. |
|
font/opentype
Package opentype implements text layout and shaping for OpenType files.
|
Package opentype implements text layout and shaping for OpenType files. |
|
gesture
Package gesture implements common pointer gestures.
|
Package gesture implements common pointer gestures. |
|
gpu
Package gpu implements the rendering of Gio drawing operations.
|
Package gpu implements the rendering of Gio drawing operations. |
|
gpu/headless
Package headless implements headless windows for rendering an operation list to an image.
|
Package headless implements headless windows for rendering an operation list to an image. |
|
internal/byteslice
Package byteslice provides byte slice views of other Go values such as slices and structs.
|
Package byteslice provides byte slice views of other Go values such as slices and structs. |
|
internal/cocoainit
Package cocoainit initializes support for multithreaded programs in Cocoa.
|
Package cocoainit initializes support for multithreaded programs in Cocoa. |
|
internal/debug
Package debug provides general debug feature management for Gio, including the ability to toggle debug features using the GIODEBUG environment variable.
|
Package debug provides general debug feature management for Gio, including the ability to toggle debug features using the GIODEBUG environment variable. |
|
internal/f32
Package f32 is an internal version of the public package f32 with extra types for internal use.
|
Package f32 is an internal version of the public package f32 with extra types for internal use. |
|
internal/f32color/f32colorgen
command
|
|
|
internal/scene
Package scene encodes and decodes graphics commands in the format used by the compute renderer.
|
Package scene encodes and decodes graphics commands in the format used by the compute renderer. |
|
internal/stroke
Package stroke implements conversion of strokes to filled outlines.
|
Package stroke implements conversion of strokes to filled outlines. |
|
io/event
Package event contains types for event handling.
|
Package event contains types for event handling. |
|
io/input
Package input implements input routing and tracking of interface state for a window.
|
Package input implements input routing and tracking of interface state for a window. |
|
io/key
Package key implements key and text events and operations.
|
Package key implements key and text events and operations. |
|
io/pointer
Package pointer implements pointer events and operations.
|
Package pointer implements pointer events and operations. |
|
io/semantic
Package semantic provides operations for semantic descriptions of a user interface, to facilitate presentation and interaction in external software such as screen readers.
|
Package semantic provides operations for semantic descriptions of a user interface, to facilitate presentation and interaction in external software such as screen readers. |
|
io/transfer
Package transfer contains operations and events for brokering data transfers.
|
Package transfer contains operations and events for brokering data transfers. |
|
layout
Package layout implements layouts common to GUI programs.
|
Package layout implements layouts common to GUI programs. |
|
op
Package op implements operations for updating a user interface.
|
Package op implements operations for updating a user interface. |
|
op/clip
Package clip provides operations for defining areas that applies to operations such as paints and pointer handlers.
|
Package clip provides operations for defining areas that applies to operations such as paints and pointer handlers. |
|
op/paint
Package paint provides drawing operations for 2D graphics.
|
Package paint provides drawing operations for 2D graphics. |
|
unit
Package unit implements device independent units.
|
Package unit implements device independent units. |
|
widget
Package widget implements state tracking and event handling of common user interface controls.
|
Package widget implements state tracking and event handling of common user interface controls. |
|
widget/material
Package material implements the Material design.
|
Package material implements the Material design. |
|
internal
|
|
|
appicon
Package appicon cuts full-bleed app artwork into each platform's icon shape: Apple's macOS template, Microsoft's Windows grid, GNOME's template.
|
Package appicon cuts full-bleed app artwork into each platform's icon shape: Apple's macOS template, Microsoft's Windows grid, GNOME's template. |
|
deps
Package deps only holds a test that enforces the module boundaries listed in docs/architecture.md: each module may import only what its README declares.
|
Package deps only holds a test that enforces the module boundaries listed in docs/architecture.md: each module may import only what its README declares. |
|
site
command
Command site builds Keel's documentation website: every Markdown file in docs/ and every module and example README becomes a static HTML page, the component pages embed the live component gallery (the WebAssembly build of examples/components), and a search index covers all of it.
|
Command site builds Keel's documentation website: every Markdown file in docs/ and every module and example README becomes a static HTML page, the component pages embed the live component gallery (the WebAssembly build of examples/components), and a search index covers all of it. |
|
svgicon
Package svgicon rasterizes the small SVG subset app icons use into PNG.
|
Package svgicon rasterizes the small SVG subset app icons use into PNG. |
|
Package native holds the errors shared by Keel's platform capabilities.
|
Package native holds the errors shared by Keel's platform capabilities. |
|
clipboard
Package clipboard reads a bounded snapshot of text, encoded images and file paths without linking to the UI.
|
Package clipboard reads a bounded snapshot of text, encoded images and file paths without linking to the UI. |
|
hotkey
Package hotkey registers system-wide shortcuts that fire even when another application is in front.
|
Package hotkey registers system-wide shortcuts that fire even when another application is in front. |
|
input
Package input synthesizes mouse and keyboard events.
|
Package input synthesizes mouse and keyboard events. |
|
internal/sys
Package sys binds the platform code.
|
Package sys binds the platform code. |
|
internal/wlclip
Package wlclip reads the Wayland clipboard through an application's own wl_display.
|
Package wlclip reads the Wayland clipboard through an application's own wl_display. |
|
notification
Package notification posts local operating-system notifications independently of Keel's UI.
|
Package notification posts local operating-system notifications independently of Keel's UI. |
|
permission
Package permission checks and requests macOS privacy permissions.
|
Package permission checks and requests macOS privacy permissions. |
|
process
Package process provides terminal foreground process and working-directory queries without a UI dependency.
|
Package process provides terminal foreground process and working-directory queries without a UI dependency. |
|
screen
Package screen lists displays and captures screenshots.
|
Package screen lists displays and captures screenshots. |
|
typesetting
|
|
|
bidi
bidi implements the Unicode Bidi algorithm.
|
bidi implements the Unicode Bidi algorithm. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
ui
|
|
|
base
Package base holds the behavior of Keel's components without their look: keyboard navigation over a list, type-to-find, multi-selection with ranges, and open/closed state.
|
Package base holds the behavior of Keel's components without their look: keyboard navigation over a list, type-to-find, multi-selection with ranges, and open/closed state. |
|
core
Package core is the foundation every UI module builds on: what a Widget is, how a component runs a user callback, and how other goroutines change the UI.
|
Package core is the foundation every UI module builds on: what a Widget is, how a component runs a user callback, and how other goroutines change the UI. |
|
highlight
Package highlight colors source code in CodeEditor, TextView and Markdown code blocks.
|
Package highlight colors source code in CodeEditor, TextView and Markdown code blocks. |
|
internal/appkit
Package appkit calls AppKit through the Objective-C runtime with purego, without cgo.
|
Package appkit calls AppKit through the Objective-C runtime with purego, without cgo. |
|
internal/editorstyle
Package editorstyle supplies the shared input appearance for widget and el.
|
Package editorstyle supplies the shared input appearance for widget and el. |
|
internal/imageload
Package imageload loads images off the UI thread and draws them with a placeholder until they arrive.
|
Package imageload loads images off the UI thread and draws them with a placeholder until they arrive. |
|
internal/inputcontent
Package inputcontent keeps editable text and atomic references together.
|
Package inputcontent keeps editable text and atomic references together. |
|
internal/loop
Package loop owns the state shared by every window: one lock that serializes rendering and callbacks, a queue of updates from other goroutines, and the windows to redraw.
|
Package loop owns the state shared by every window: one lock that serializes rendering and callbacks, a queue of updates from other goroutines, and the windows to redraw. |
|
internal/uitest
Package uitest drives UI code without a window: it lays it out through a real Gio input router, so tests click and type as the platform would.
|
Package uitest drives UI code without a window: it lays it out through a real Gio input router, so tests click and type as the platform would. |
|
internal/wayland
Package wayland calls libwayland-client through purego, without cgo, on the application's own Wayland connection (the one Gio opened).
|
Package wayland calls libwayland-client through purego, without cgo, on the application's own Wayland connection (the one Gio opened). |
|
kit
Package kit provides components built on ui/el.
|
Package kit provides components built on ui/el. |
|
locale
Package locale holds the text Keel itself shows or reports to agents: button captions such as 确定 and 复制, accessible names such as 关闭, placeholders and counts.
|
Package locale holds the text Keel itself shows or reports to agents: button captions such as 确定 and 复制, accessible names such as 关闭, placeholders and counts. |
|
markdown
Package markdown renders Markdown as ui/el elements, built for AI chat: text that streams in a few characters at a time.
|
Package markdown renders Markdown as ui/el elements, built for AI chat: text that streams in a few characters at a time. |
|
netimage
Package netimage lets Keel load images from http and https URLs.
|
Package netimage lets Keel load images from http and https URLs. |
|
plot
Package plot provides scales, data layouts and immediate-mode chart drawing.
|
Package plot provides scales, data layouts and immediate-mode chart drawing. |
|
theme
Package theme holds the colors, text sizes and fonts every UI module reads.
|
Package theme holds the colors, text sizes and fonts every UI module reads. |
Click to show internal directories.
Click to hide internal directories.