Replacing My Window Manager with Google Chrome

(foxmoss.com)

103 points | by foxmoss 5 days ago ago

31 comments

  • raphinou 2 days ago ago

    This is based on the Chromium Embedded Framework. I've always been surprised this kind of framework was not encouraged for Firefox by Mozilla (I've read they were even against it).

    • mid-kid 2 days ago ago

      Before they got rid of XUL, this was the sort of thing possible with it.

      • stuaxo a day ago ago

        Exactly, this sort of thing was the whole idea of XUL.

        It was a little too flexible to make secure and fast though.

    • saint_yossarian 2 days ago ago

      They used to have XULRunner long ago.

  • jauntywundrkind 2 days ago ago
    • ComputerGuru 2 days ago ago

      Sounds like a more performant and cleaner solution than TFA.

  • chasing0entropy 5 days ago ago

    I'm interested in a how-to which accomplishes the absolute opposite result.

  • yokljo 2 days ago ago

    This is a pretty neat idea, and shows that maybe a desktop environment could be a lot more flexible than we're used to if it was based on something flexible. Not exactly counter intuitive.

    I'd like to see how complex a CEF-based Wayland compositor would be in comparison.

    How about using Godot instead of CEF? It has a pretty full-featured UI system.

    So many possibilities.

    • yokljo 2 days ago ago

      While you're at it, go on a huge tangent writing a library that allows one implementation to work as both an X11 and Wayland compositor.

      Actually why stop there? Make said library also compile to a full screen Windows and Macos application that somehow renders the contents of windows to textures and does event handing etc. that way you can write your desktop environment once and use it everywhere.

      I've gone crazy with power.

      • 2 days ago ago
        [deleted]
  • jeffjeffbear 2 days ago ago

    When I was younger I thought of replacing most of the OS with a browser since that is how I used it. but this is weird and not in a good way. Maybe using Firefox would feel better.

    • RestartKernel 21 hours ago ago

      > When I was younger I thought of replacing most of the OS with a browser since that is how I used it.

      Isn't that basically Chrome OS?

  • GaryBluto 2 days ago ago

    I believe the earlier versions of Chrome/Chromium OS took this to the logical extreme.

    https://www.technologyreview.com/2009/11/19/208062/google-gi...

  • SpikedCola 2 days ago ago

    Not sure why, but the text doesn't appear in Chrome 109: https://imgur.com/a/QyIdfax

    If I disable "font-family: Atkinson" it comes back, so guessing it's font related. I do see the two .woff files load in the Network tab. Interestingly, when I preview either font file, I see the sample of the font (AaBbCc etc.) in a flash for just milliseconds, and then it disappears and I see nothing.

  • 2 days ago ago
    [deleted]
  • bzmrgonz a day ago ago

    Why not aluminumOS? Isn't that suppose to be alphabet's unifier OS and challenger to Huawei's harmonyOS???

  • nahuel0x 2 days ago ago

    Windows 98 Active Desktop vibes :)

  • rkagerer a day ago ago

    But why? (Real question)

    • plun9 a day ago ago

      Easy to create different skins and behavior

      • hulitu a day ago ago

        > Easy to create different skins and behavior

        Kids those days. Fvwm.

  • throwaway290 2 days ago ago

    I looked around the Windows skin source but I guess I'm too dumb for it because this line makes no sense to me https://github.com/FoxMoss/dote-dreamland-win95-example/blob...

    • yokljo a day ago ago

      I strongly suspect I know what that does because I worked with Svelte 4 for years (you no longer have to do this in Svelte 5. I can recommend Svelte 5, it's nice).

      Basically, assigning a state to itself tells it to signal that that state has changed and update anything that is listening to it. The `state` object is actually a JS Proxy returned by createState [0], which allows intercepting the assignment to the `windows` property and emit signals. Usually you dont have to do that, but in this case, the proxy doesn't notice that `state.windows.push(X)` is a mutation. Only assignments directly to the state object count as mutations.

      TLDR, `state.windows = state.windows` tells the framework that `windows` changed.

      [0]: https://github.com/MercuryWorkshop/dreamlandjs/blob/1e7a34a1...

      • foxmoss a day ago ago

        I was drafting a reply when you sent this, this is the correct interpretation and why I did it.

  • T3RMINATED 2 days ago ago

    [dead]

  • hulitu a day ago ago

    > On Linux this is mainly X11 written by MIT in 1984, it’s old and starting to show it’s age

    "Windows 1.0 is the first major release of Microsoft Windows, a family of graphical user shells and operating systems for personal computers developed by Microsoft. It was first released to manufacturing in the United States on November 20, 1985"

    So, I guess, Windows also is "starting to show it’s age". /s

  • wiseowise 2 days ago ago

    > It’s quite a bit easier to tweak CSS constants, and JS snippets then it is to change style embedded already in a long standing modern desktop/window manager. So let’s bring the web to the desktop and have a browser control the system.

    Jesus, bro, you can’t say stuff like this here.

    Half of HN is going to have a stroke and will end up sounding like Hodor – native, natuve, ntve.