Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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.