mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:17:45 +00:00
Documentation: Move all file format documentation into its own manpage
The documentation is largely unchanged except for adoption into the standard manpage format.
This commit is contained in:
parent
da25ac0d48
commit
9660f5d0e6
7 changed files with 125 additions and 83 deletions
18
Base/usr/share/man/man5/af.md
Normal file
18
Base/usr/share/man/man5/af.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
## Name
|
||||
|
||||
af - Application File format
|
||||
|
||||
## Synopsis
|
||||
|
||||
The Application Files define System Menu entries and launcher file types / protocols.
|
||||
|
||||
## Description
|
||||
|
||||
.af files are human-readable and are a subset of the INI-format, have no easily detectable filemagic. These files define System Menu entries and launcher file types / protocols.
|
||||
|
||||
They are stored in [`/res/apps`](../../../../res/apps).
|
||||
|
||||
## See Also
|
||||
|
||||
- [`Userland/Services/Taskbar/main.cpp`](../../../../../Userland/Services/Taskbar/main.cpp)
|
||||
- `Launcher::load_handlers` in [`Userland/Services/LaunchServer/Launcher.cpp`](../../../../../Userland/Services/LaunchServer/Launcher.cpp).
|
51
Base/usr/share/man/man5/clipboard.md
Normal file
51
Base/usr/share/man/man5/clipboard.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
## Name
|
||||
|
||||
clipboard - Data formats specific to Clipboard and drag & drop
|
||||
|
||||
## Clipboard
|
||||
|
||||
The clipboard feature works through the Clipboard server, which generally acts as a global storage or three things:
|
||||
- a `String` mime type,
|
||||
- a (potentially large) block of data, shared as an anonymous file,
|
||||
- a `HashMap<String, String>` of arbitrary metadata, depending on the mime type.
|
||||
|
||||
See also [`Userland/Libraries/LibGUI/Clipboard.h`](../../../../../Userland/Libraries/LibGUI/Clipboard.h).
|
||||
|
||||
## Drag & drop
|
||||
|
||||
In contrast to the clipboard, the drag & drop feature works through WindowServer, and a bouquet of data is transmitted:
|
||||
- a `[UTF8] String` to be displayed while dragging,
|
||||
- a `HashMap<String, ByteBuffer>` map that contains arbitrary data for a variety of possible mime types,
|
||||
- a `Gfx::ShareableBitmap` to be displayed while dragging
|
||||
|
||||
Drag & drop is most prominently supported by File Manager, Spreadsheet, and Terminal.
|
||||
Various applications accept drag & drop to open files.
|
||||
|
||||
## glyph/x-fonteditor (Clipboard-only)
|
||||
|
||||
Requires the metadata-fields `count` (count of glyphs copied) and `first_glyph` (lowest codepoint that is copied), encoded as decimal strings.
|
||||
|
||||
The data contains codepoint (encoded as host-endian u32), width and height (as u8's) and glyph bitmap data. It is encoded in width times height many bytes, either 0 (clear) or 1 (set).
|
||||
|
||||
Implemented in `FontEditor::MainWidget::copy_selected_glyphs` and `FontEditor::MainWidget::paste_glyphs`, in [`Userland/Applications/FontEditor/MainWidget.cpp`](../../../../../Userland/Applications/FontEditor/MainWidget.cpp).
|
||||
|
||||
## image/x-serenityos (Clipboard-only)
|
||||
|
||||
Requires the metadata-fields `width`, `height`, `scale`, `format` (see `Gfx::BitmapFormat`), and `pitch`, encoded as decimal strings.
|
||||
|
||||
The data is encoded according to `Gfx::determine_storage_format(BitmapFormat)`, so either as
|
||||
BGRx8888, BGRA8888, RGBA8888, or 8-bit palette index. Note that the palette is not transferred.
|
||||
|
||||
Implemented in [`Clipboard::set_bitmap` and `Clipboard::DataAndType::as_bitmap()`](../../../../../Userland/Libraries/LibGUI/Clipboard.cpp).
|
||||
|
||||
## text/uri-list (Clipboard and drag & drop)
|
||||
|
||||
Newline-delimited set of URIs. Used by File Manager, FileSystemModel, and Terminal.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
file:///home/anon/Desktop/Browser
|
||||
file:///home/anon/Desktop/Help
|
||||
file:///home/anon/Desktop/Home
|
||||
```
|
1
Base/usr/share/man/man5/drag-and-drop.md
Symbolic link
1
Base/usr/share/man/man5/drag-and-drop.md
Symbolic link
|
@ -0,0 +1 @@
|
|||
clipboard.md
|
17
Base/usr/share/man/man5/font.md
Normal file
17
Base/usr/share/man/man5/font.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
## Name
|
||||
|
||||
font - Bitmap Font File format
|
||||
|
||||
## Synopsis
|
||||
|
||||
The .font file format stores bitmap fonts in SerenityOS's own binary format.
|
||||
|
||||
## Description
|
||||
|
||||
These files contain bitmap definitions of fonts, either varying-width or fixed-width.
|
||||
|
||||
The first four bytes contain the filemagic: `!Fnt` (0x21466e74).
|
||||
|
||||
## See also
|
||||
|
||||
- Format header definition in `Gfx::FontFileHeader` in [`Userland/Libraries/LibGfx/Font/BitmapFont.cpp`](../../../../../Userland/Libraries/LibGfx/Font/BitmapFont.cpp).
|
16
Base/usr/share/man/man5/ipc.md
Normal file
16
Base/usr/share/man/man5/ipc.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
## Name
|
||||
|
||||
ipc - Inter Process Communication endpoint definition format
|
||||
|
||||
## Synopsis
|
||||
|
||||
The IPC format of SerenityOS is a domain-specific language (DSL) used to define communication endpoints for IPC.
|
||||
|
||||
## Description
|
||||
|
||||
These files are human-readable, have no easily detectable filemagic, and define IPC interfaces.
|
||||
The format is loosely inspired by C++ headers.
|
||||
|
||||
## See Also
|
||||
|
||||
- [`Meta/Lagom/Tools/CodeGenerators/IPCCompiler/`](../../../../../Meta/Lagom/Tools/CodeGenerators/IPCCompiler/).
|
22
Base/usr/share/man/man5/postcreate.md
Normal file
22
Base/usr/share/man/man5/postcreate.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
## Name
|
||||
|
||||
postcreate - HackStudio postcreate scripts
|
||||
|
||||
## Synopsis
|
||||
|
||||
.postcreate shell scripts are executed by HackStudio after creating a new project.
|
||||
|
||||
## Description
|
||||
|
||||
It is possible to define project templates that set up HackStudio projects. These templates can contain custom setup logic in the form of a `*.postcreate` script in the template directory. The script name must match the template's (directory) name. Postcreate scripts are regular shell scripts. They are executed from an undeterminate directory with the following arguments:
|
||||
|
||||
- The path to the postcreate script
|
||||
- The name of the new project
|
||||
- The path of the new project, i.e. not the parent directory it was created in
|
||||
- The project name in a form that is safe for C++ namespaces
|
||||
|
||||
The script may error out with a non-zero exit code, but the project is still created. The user is informed of the error.
|
||||
|
||||
## See Also
|
||||
|
||||
- `ProjectTemplate::create_project` in [`Userland/DevTools/HackStudio/ProjectTemplate.cpp`](../../../../../Userland/DevTools/HackStudio/ProjectTemplate.cpp).
|
Loading…
Add table
Add a link
Reference in a new issue