Linux on the Web is a web-based operating system for the files stored in your browser reddit / selfhosted ---------------------------------------------------------------------- denniskane · 2023-10-14 21:27 Here is the main site: [https://linuxontheweb.github.io/](https://linuxontheweb.github.io/) Here is the github repo: [https://github.com/linuxontheweb/linuxonthew eb.github.io](https://github.com/linuxontheweb/linuxontheweb.github.io ) I've just tested it in Chrome, Edge and Firefox. I don't have access to Safari, so ymmv. The recent versions of those browsers that have navigator.storage.getDirectory() are necessary for the local file storage to work. The only real dependency is a vanilla web server to serve static files. Only four javascript files are necessary to "bootstrap" the system in a web browser. The development process occurs with vanilla javascript, so there are no hidden dependencies for developers. The main issue for "system hacking" purposes is learning how to use vim, since that is what allows me to define markers in the source code in order to create my own row folds. The system files can be quite large (the [desk.js](https://github.com/linuxontheweb/linuxontheweb.gi thub.io/blob/main/sys/desk.js) file is over 8000 lines), so I use embedded folds to quickly navigate the source code in a hierarchical way. The instructions to enable row folding via .vimrc files are in the README of the github repo. If you just want to play around with building applications, have a look at [this file](https://github.com/linuxontheweb/linuxontheweb.git hub.io/blob/main/apps/Hello.js) to see a very minimal outline. The only things happening are a message being displayed in the window and all keyboard events being logged to the developer console, via the `onkeydown` method that is defined on the exported `app` object. You can use whatever developer workflow you want in case you just want to build your own apps. The way to reload the current application window during the development process is using the Alt+r shortcut. Please notice that I am talking about reloading the "fake" window **inside** the "real" browser window. Of course, you still use Ctrl+r to reload the browser window itself. The easiest way to run apps from within the system is by launching them from the terminal (which you can open with Alt+t) via the `app` command. All you need to do is locate the app you want to launch, and its "fully qualified" name is just the path relative to the apps directory, with slashes replaced by periods, and the ending ".js" removed. So the app located at [apps/util/Unicoder.js](https://github. com/linuxontheweb/linuxontheweb.github.io/blob/main/apps/util/Unicoder .js) would be launched from the terminal with the command: `app util.Unicoder`. I honestly think the best way to get started playing around with the development side is just to get a cheap Chromebook and choose the one- click Linux installation method. Macs should also work well if you already have one. I just wouldn't recommend Windows to anyone, even though there is a so-called "Windows Subsystem for Linux" included in modern Windows setups. The various Linux distros are obvious no- brainers, but you don't need me convincing you to install a Linux distro if that's what you really want to do (fwiw, I'd recommend a minimal Debian installation and then following [this gist](https://gist.github.com/ryot4/0712f02f709be90bd5d6812b85e3b529) to install the most minimal gui). For myself, as long as I have access to a vim editor that lets me perform Ctrl+v pasting operations, then I'm happy. The learning curve for vim can be a little steep for those who have no real command line experience. All you really need to remember is to press `i` to get into the text entry mode, and then press `Escape` to get back into command mode. From command mode, you can save the current file by entering `:w `. The hardest thing for beginners can be figuring out how to quit vim; just enter `:q` from command mode. You can also save a lot of typing in vim by learning how to use .vimrc in order to create your own keyboard shortcuts. ---------------------------------------------------------------------- denniskane · 2023-10-14 23:44 Now getting upvoted on Hacker News: https://news.ycombinator.com/item?id=37885116 ---------------------------------------------------------------------- FishSpoof · 2023-10-15 12:02 I can see a browser based OS as a better option than using some remote desktop crap. This would be perfect for corporate environments or some sort.of customised chromebook running a remote OS, but locally. I'm sure more use cases will pop up ---------------------------------------------------------------------- denniskane · 2023-10-15 12:21 Hi, thanks for responding. I'm personally more interested in all the "commune environments" that this thing might apply to. (But hey, maybe I'm just jaded that way, and the system of globalist capitalism can *actually* start working to repair all of the destruction that it's caused ever since the industrial revolution began around the year 1800 or so...) ---------------------------------------------------------------------- butcanitrunlinux · 2023-10-15 14:54 The thing about calling this "Linux" is that those of us familiar with Linux trying this out will quickly see it's not Linux. A quick spin through showed me that while ls worked, passing flags like ls -lah did not work. The full directory structure is absent, so while I could cd around the file strcture, I couldn't cat /etc/os-release or use uname to find out more about the system. Creating a new file with touch worked, but then I couldn't use rm to delete it. Checking for installed programs with which didn't work, there's no man pages, no ability to check running processes with top, etc. So being an experienced Linux user and encountering this project has been amusing, especially learning that the commands that do work are actually rebuilt via JS. But calling it Linux is just wrong and could give people not already directly familiar with Linux a wrong impression of what it's like, while alienating those who are familiar with the normal workings of a proper Linux distro. ---------------------------------------------------------------------- rkaw92 · 2023-10-15 16:19 This reminds me of https://en.m.wikipedia.org/wiki/EyeOS ---------------------------------------------------------------------- Cocogoat_Milk · 2023-10-15 17:39 It feels like you are just using the name “Linux” to help gain notoriety, since, as your own documentation points out, this has nothing to do with the Linux kernel, but some fairly abstract and poorly defined ideology. https://github.com/linuxontheweb/linuxontheweb.github.io/blob/main/doc s/what-it-is.html#L28 It’s a neat project but it seems a bit in poor taste to ride the coattails of something completely unrelated due purely to its popularity.