A web based Windows 98 desktop remake.
Includes:
Features:
īŧĨīŧŽīŧ´īŧĨīŧ˛ããīŧˇīŧŠīŧŽīŧ¤īŧ¯īŧˇīŧŗãīŧīŧãäŊé¨ã¸ãããã
Not yet licensed. This project is currently source-available / shared source, but not open source.
Apps that it would be nice to integrate:
Other online operating systems / web desktops:
Name & Link | Vague Description | Repo & License | Chat |
---|---|---|---|
Rahul.io | another Windows 98 remake | repo here - MIT license | |
Windows 93 | a "fictional version of Windows" | (not open source currently) | Discord |
đĄ ZineOS | emojis everywhere | repo here - MIT license | Discord |
EmuOS | emulator-focused Win9X desktop | repo here - shared source | Discord |
OS.js | a more serious web desktop | repo here - simplified BSD license | Gitter |
Friend | another serious one | repo here - different licenses for different parts | |
CloudDesk | another serious one | (explicitly not open source) | |
AaronOS | interesting aesthetic | repo here - shared source | Discord |
Web Desktop | Windows 10 like "startpage" | ||
System | Windows 10 like thing | ||
WinXP | Windows XP | repo here - MIT license | |
Windows 98 - Packard Belle | Windows 98 | repo here - shared source | |
X-WebDesktop-Vue | Windows 7 | repo here - MIT license | |
vue win3.1 | Windows 3.1 | repo here - shared source | |
VirtualDesktop | Screenshot flows, several OSes | ||
GUIdebook | Screenshots, several OSes |
Plus many more web desktops on Wikipedia, awesome-web-desktops, and awesome-OS.
Libraries:
Also:
See CONTRIBUTING
npm install
to install dependencies.npm i -g browserfs@2.0.0
(this will be simplified in the future; I'm using two different versions of BrowserFS for some reason)npm start
to start up a live-reloading development web server.When pulling changes from git, run npm install
again in case there are any new or updated dependencies.
(If you know package-lock.json
hasn't changed, you shouldn't need to do this.)
Some dependencies are versioned with npm, but pulled into the repo with npm run pull-libs
Tests are written with Playwright. Spell checking is done with Cspell.
npm test
npm run lint
Debug tests or run them when code changes using the Playwright UI:
npx playwright test --ui
Quickly add tests using the code generator:
# Note: this runs the server, and currently leaves it running when closing the browser.
# Could use `start-server-and-test` to fix this, or see if there's an option in `npm-run-all`'s `run-p` command.
# (There's no option in `playwright codegen --help` to run the server, even though it's configured in `playwright.config.js`)
npm run test-codegen
There are also VS Code extensions for Playwright and Cspell (Code Spell Checker).
To update subrepos, or push changes to them, install git-subrepo. You don't need this tool to clone the project and get up and running, as subrepos are just normal subdirectories with a .gitrepo
metadata file.
Note that the metadata file references specific commit hashes, including between repositories, so it's best to avoid rebasing when subrepo updates are involved, i.e. once you do a subrepo command, it makes a commit, and you should leave it (and earlier commits) alone, and you should leave commits in the subrepo alone, before and up to any commits referenced by the containing project.
When making changes to a subrepo within the containing project: I'd recommend phrasing commit messages to apply to the subrepo, primarily, rather than the containing project, so that when you push the changes to the subrepo, the commit message will be appropriate.
If you so much as edit the commit message for a git subrepo push
ed commit, you'd have to update the .gitrepo
metadata file manually in the containing project,
OR you could drop the commit you pushed and the git subrepo push
commit (which updates the metadata) and do git subrepo pull
instead (which btw gives you an option to rename the commit; and I think renaming that commit would be safe after the fact anyways as long as it's the last commit and not pushed).
See TODO