* Adding keyboard layout (backend) * Update settings.c with new keyboard tab * Fixing keyboard icon && Fixing long loading time in settings.c * Refactor of key handling for a larger compatibility with the keyboard layout * Adding keyboard handler * Udating ps2.c with the new logic * Updating WM/kernel/userland with the new input system * Fixing keycode range && Updating dead keys handling * Add comments for explanation * Update notepad & vm.c to parse utf-8 * Adding utf-8 parsing utils in libc && Update notepad.c * Adding icon for icon settings * Fixing a warning with double definition * Adding new kb kayout: QWERTZ and DVORAK && Update new layout instrauction * Add documentation for keyboard input subsystem This document outlines the architecture and design of the input subsystem, focusing on keyboard input processing, driver responsibilities, keycode representation, and keymap functionality. --------- Co-authored-by: boreddevnl <chris@boreddev.nl> |
||
|---|---|---|
| .github/workflows | ||
| docs | ||
| src | ||
| tools | ||
| .gitignore | ||
| boredos.svg | ||
| disk.img | ||
| LICENSE | ||
| limine.conf | ||
| linker.ld | ||
| Makefile | ||
| NOTICE | ||
| README.md | ||
| screenshot.jpg | ||
| splash.jpg | ||
BoredOS
BoredOS is a x86_64 operating system featuring a custom Desktop Environment (DE), a dedicated Window Manager (BoredWM), and a FAT32 filesystem. It balances low-level kernel exploration with a surprisingly capable userspace.
Note
The screenshot above may represent a previous build and is subject to change as the UI evolves.
Features
System Architecture
- 64-bit Long Mode: Fully utilizing the x86_64 architecture.
- Symmetric Multi-Processing (SMP): Full support for multi-core CPUs via Limine SMP.
- LAPIC & IPI Scheduling: Advanced interrupt handling and inter-processor communication for task distribution.
- SMP-Safe Spinlocks: Robust kernel-wide synchronization for VFS, process management, and the GUI.
- Multiboot2 Compliant: Bootable on real hardware and modern emulators.
- Kernel Core: Interrupt Descriptor Table (IDT) management and a robust syscall interface.
- Filesystem: Full FAT32 support for persistent and in-memory storage.
- Networking: Includes the lwIP networking stack and a basic web browser.
Graphical User Interface
- BoredWM: A custom Window Manager with drag-and-drop, mouse-centered interaction.
- Customization: Adjustable UI to suit your aesthetic.
- Media Support: Built-in image decoding. (PNG, GIF, JPEG, TGA, BMP)
Included Applications
- Productivity: GUI Text Editor calculator, Markdown Viewer, a simple browser and BoredWord.
- Creativity: A Paint application.
- Utilities: Terminal, Task Manager, File Explorer, Clock and a (limited) C Compiler.
- Games: Minesweeper and DOOM.
📚 Documentation
Explore the internal workings of BoredOS via our comprehensive guides in the docs/ directory.
- 📖 Documentation Index – Start here.
- 🏗️ Architecture Overview – Deep dive into the kernel.
- 🔨 Building and Running – Setup your build environment.
- 🚀 AppDev SDK – Build your own apps for BoredOS.
Support the Journey
If you find this project interesting or helpful, consider fueling the development with a coffee!
Project Disclaimer & Heritage
BoredOS is the successor to BrewKernel, a project initiated in 2023.
While BrewKernel served as the foundational learning ground for this OS, it has been officially deprecated and archived. It no longer receives updates, bug fixes, or pull request reviews. BoredOS represents a complete architectural reboot, applying years of lessons learned to create a cleaner, more modular, and more capable system.
Important
Please ensure all issues, discussions, and contributions are directed to this repository. Legacy BrewKernel code is preserved for historical purposes only and is not compatible with BoredOS.
Contributors
- BoredDevNL — Project creator and lead maintainer.
- Lluciocc — Contributor.
License
Copyright (C) 2023-2026 boreddevnl
Distributed under the GNU General Public License v3. See the LICENSE file for details.
Important
This product includes software developed by Chris ("boreddevnl"). You must retain all copyright headers and include the original attribution in any redistributions or derivative works. See the
NOTICEfile for more details.
