Skip to content

stjet/mingde

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mingde

A work in progress desktop environment made with HTML Canvas. Kinda like a combination between my engine Blackbeard and my fake retro OS webpage. Each window is its own canvas. Heavily architecturally inspired by Elm. Other inspirations include Windows 98 and i3.

Licensed under AGPLv3.

Features

  • Terminal with utils and a "scripting language"
  • Permission system
  • Fully usable with only keyboard (so, so many keyboard shortcuts)
  • Games: minesweeper, bag (puzzle game), reversi
  • Other apps: calculator, image viewer, vim knockoff
  • Works on mobile
  • File system
  • Exporter: download the mingde filesystem
  • Settings: system themes, desktop background changer
  • Tiling wm inspired functionality

Screenshots

window tiles minesweeper, settings, terminal, permissions calculator, reversi, terminal, start menu

Running

First, clone the repo:

git clone https://github.com/jetstream0/mingde
cd mingde

Then install the dev dependencies (esbuild and typescript):

cd src
npm install

Running Website

Run the development server:

npm run dev

Alternatively, to build for production:

npm run build
npm run server

The server will run on http://localhost:1381

Running Desktop App

To run the desktop app, you obviously need Rust installed. It's nice to install tauri-cli too:

cargo install tauri-cli

Development mode:

cargo tauri dev

Alternatively, build for release:

cargo tauri build --release

Documentation

todo

Some Goals

  • Great keyboard-only support (should be usable without a mouse/trackpad, or minimal use of a mouse/trackpad)
  • Minimal rerenders (better performance)
  • Reasonable amount of customization
  • Easily extensible
  • Good documentation
  • "Security", or at least windows have limited privileges
  • Retro theme
  • Cool apps
  • More cool apps
  • More more cool apps
  • Terminal with cool stuff
  • With tauri, cool integration with the actual OS

Since I used Canvas, a very long term goal could be writing something to translate the Canvas graphics to Vulkan (or something like that), so the DE can actually be ran natively. Probably not though, since I don't have any idea on how to do that.

About

Desktop environment in HTML Canvas, because why not

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages