Electron app turned into OS
⚠️ This project probably won't be maintained nor updated in any way. If you've found an issue or have a feature request,please keep it to yourself.don't be lazy and feel free to fork this repo and fix/implement it by yourself.
Bare minimal JavaScript GUI for an x64 Linux OS. It uses linux.js, a debian based linux distro under the hood and an Electron app with TypeScript + SolidJS to interact and build a UI on top of it.
Because sometimes all you need is love a browser and... why not?
-
Built with web technologies.
-
No telemetry or other bloatware.
-
Safe by default since everything is in a sandbox.
-
Light and dark theme.
-
Very minimal, Chromium based, web browser.
-
Clock with date & time. But it's in JavaScript, so take it with a grain of salt.
-
Built with web technologies.
-
No filesystem. Could be probably implemented though.
-
Does not work on Windows WSL2. Related issue.
-
Electron
v9.4.4
and (because of this) Chromiumv83.0.4103.122
. So no scoped CSS or others (relatively) new features. 😞 Related issues: #20086, #17049 and #19847.
$ git clone https://github.com/UstymUkhman/BrowserOS.git
$ cd BrowserOS/
$ pnpm i # Install project dependencies
$ npx reqs # Download Linux filesystem
$ pnpm start:web # As a web application
$ pnpm start:app # As an electron application
$ pnpm lint:js # Run eslint for TS and JS
$ pnpm lint:css # Run stylelint for CSS
$ pnpm build:web # As a web application
$ pnpm build:app # As an electron application
$ pnpm build:test # As an unpacked application
$ pnpm build:prod # As a production application
$ pnpm build:app # Build as an electron application
$ pnpm build:prod # Package it to be production-ready
$ npx linuxjs # Create an ISO image and launch qemu to run it:
$ qemu-system-x86_64 -boot d -cdrom filesystem/BrowserOS.iso -m 4096
A special thank goes to MainSilent for this awesome package.