Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/carterisonline/lateral
A clean, custom-built modular kernel ready to boot on x86_64.
https://github.com/carterisonline/lateral
Last synced: 1 day ago
JSON representation
A clean, custom-built modular kernel ready to boot on x86_64.
- Host: GitHub
- URL: https://github.com/carterisonline/lateral
- Owner: carterisonline
- License: apache-2.0
- Created: 2021-06-28T20:11:21.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-11-01T20:18:15.000Z (3 months ago)
- Last Synced: 2025-01-21T03:06:54.169Z (9 days ago)
- Language: Rust
- Size: 85 KB
- Stars: 104
- Watchers: 7
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/carterisonline/lateral.svg)](http://isitmaintained.com/project/carterisonline/lateral "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/carterisonline/lateral.svg)](http://isitmaintained.com/project/carterisonline/lateral "Percentage of issues still open")---
### Lateral is a work-in-progress multitasking monolithic kernel + OS meant as a fun summer project.
It has recently expanded into more than I could imagine, and I'm looking to implement a fully usable operating system in the future.
## The Window Manager
Lateral's window manager contains a floating, widget-based desktop with custom syntax for defining window attributes and widgets via. Rust's macro system. Titles and (in the future) menu actions are displayed at the top blackout bar.
> ![image](img/graphix.png)
> Screenshot of the Lateral window manager (taken in v0.2.1)### Core Design
Windows can be controlled without a mouse in `Normal Mode` using the WASD keys, and the command-bar can be activated using `TAB`. Press `SPACE` to focus a window, which will capture all input. `ESC` will exit `Focus Mode`.
The command-bar is an essential design component inspired by apps like [Krunner](https://userbase.kde.org/Plasma/Krunner). While typing, the command-bar expands to show command parameters and a preview of the output (configured using the Lateral API). Commands return results via. a new window instead of plain text. This serves as a hybrid of the terminal and modern window managers, allowing all apps to provide output through the same paradigm.
Every app will execute through the command-bar. There is no included start-menu or terminal. When using Lateral, it's clear that nothing about it is POSIX-compliant. Each component is built on top of the window manager instead of the terminal, like most operating systems do.
### Running Applications
It's important to note that executable files are not located in the same place as non-executable files. Different filetypes are separated into different "partitions" in the filesystem itself.
| Section | Members |
| ------- | ------- |
| apps | Any executable binary/script |
| configuration | Configuration files or serializable files |
| logs | Application log files |
| misc | Any other files |The command-bar will match any executables in the user's directory. This is where compiled or installed applications are stored, ex: `apps: carter/hello-world`. You can also explicitly run executables from other users' directories if you have permission, ex: `system/help` runs `help` in the `system` folder (owned by `system`) inside of the `apps` section.
## Building and running
If you have GNU Make and QEMU installed, you can run `make run-release ARCH=x86_64` to build for x86_64 and run in the QEMU emulator.