Serenity development moves quickly, so some of these might be out of date. Please let us know if something here is wrong, or submit a PR with any additions or corrections! If you have any questions that are not answered here or in the FAQ, you are welcome to ask on Discord.
A list of useful pages across the web can be found on the link list.
- Build Instructions
- Advanced Build Instructions
- Troubleshooting
- Running in VirtualBox
- Running in VMware
- Running Tests
- Setting Up Self-Hosted Runners
- Profiling the Build
- Spice Integration
Make sure to read the basic Build Instructions first.
- How to Contribute
- Coding Style
- Common Patterns
- Guidelines for Text in UI
- EventLoop
- High DPI Support
- Smart Pointers
- String Formatting
- How to Transfer Files Out of Serenity
- Application Files (.af)
- Bitmap Fonts (.font)
- Clipboard data
- Drag-and-drop data
- GUI Markup Language (.gml)
- HackStudio Post-Create Scripts (.postcreate)
- Inter-Process Communication protocol (.ipc)
- Ladybird Browser Build Instructions
- General Architecture
- LibWeb: From Loading to Painting
- How to Add an IDL File
- LibWeb Code Style & Patterns
- AHCI Locking
- ProcFS Indexing
- RAMFS
- IOWindow
- Graphics Subsystem
- Kernel Development Patterns & Guidelines
Documentation for SerenityOS applications and utilities can be found in the man pages.