Hacker Newsnew | past | comments | ask | show | jobs | submit | steviey19's commentslogin

Buried in this announcement about Windows 11 improvements is a fascinating admission: the Windows 11 Start menu has been built using React this entire time. Microsoft is now migrating it to their native WinUI3 framework to improve performance and reduce interaction latency.

This explains a lot about why the Start menu has felt sluggish compared to Windows 10.

The React → WinUI migration is the most technically interesting detail imo.


It's been known for a while - at least 2024 - that its react.


Yeah, I know about that and I'm a Mac / Linux guy.


It has not been built with React, the article is false and it's a typical statement meant to make you outraged. The "recommended" section in the start menu was built using React Native and renders into XAML, so as natve as it can get. WinUI changes nothing about this. It's very tiresome having to constantly debunk this because "journalists" are chasing cheap clicks instead of doing their job.


Mostly because the C++/WinRT tooling is non existent, after killing the C++/CX Visual Studio XAML integration, C++ Builder like, thus most C++ teams reach out to React Native instead, as Microsoft's QML.

Same happened to the XBox dashboard.


XAML I would not consider native; it's an XML-infested .NET-originated monstrosity. Win32 is native.


Still way better than dealing with div soup turned into UI via magic CSS incantations.

And the CSS grid system was based on XAML grid.


Do you have a source for that?



No, it was built using WinUI2/UWP XAML. But one section ("Recommended") uses React Native (which on Windows is built on top of WinUI2/UWP XAML)


Did the headline get updated since this comment? At the time of writing this reply, the headlines is “windows 11’s start menu was built using React …”, which I agree is super interesting.


Its in the headline here, its buried in the article.

Its seems a very strange decision to write it in React in the first place.

Windows 11 sounds terrible. Flicker in the file manager? How does that happen?


This comment may have been flagged by the anti-AI spam measures due to use of the arrow symbol.


Not at all! This is great. I think at a minimum I need some kind of gui with an icon for each binary (something like a very basic app launcher I guess). But what I like about your solution is that it’s about as simple as I was hoping to be able to achieve!


If you're looking for super simple and you're a web dev, you could script together some page and use any server language to run the command.

For instance, use Electron as your app launcher.

Perfect it later if that's not your thing.


How do I make sure only the electron app is displayed at boot? Also, one of the apps is a full screen unity game, will this be affected by not having a full desktop loaded?


As far as making the electron app display at boot, my best guess would be to use it instead of the shell script I suggested earlier.... or, use the shell script, with the other steps commented-out, and just launch the electron app from there.

In terms of not having a full desktop loaded, I don't know. My guess is that if you're running the libraries to launch the graphics system in the first place, it should work.

However, luckily, I've been asking ChatGPT so far, haha, so I'll just ask it again.

One second.


To display only the Electron app or Unity game at boot, you'd typically want to create a systemd service that starts the systemd-nspawn container. You would then configure your display manager to automatically log into a session that only runs that service.

Here is a step-by-step guide:

*Step 1: Create a systemd service*

Create a systemd service file at `/etc/systemd/system/myapp.service` with the following contents:

```ini [Unit] Description=Start My App

[Service] ExecStart=/usr/bin/systemd-nspawn -D /path/to/container /root/launcher.sh Restart=always User=youruser Group=youruser

[Install] WantedBy=multi-user.target ```

Replace `/path/to/container` with the path to your container, and `youruser` with your username.

Enable the service to run at boot with:

```bash sudo systemctl enable myapp.service ```

*Step 2: Configure your display manager*

This step depends on which display manager you're using. If you're using LightDM, for example, you would create a new X session by creating a `.desktop` file at `/usr/share/xsessions/myapp.desktop` with the following contents:

```ini [Desktop Entry] Name=My App Exec=/usr/bin/systemctl start myapp.service Type=Application ```

You would then configure LightDM to automatically log in and start this session. Edit `/etc/lightdm/lightdm.conf` to include these lines:

```ini [Seat:*] autologin-user=youruser autologin-session=myapp ```

Replace `youruser` with your username.

This setup should start your systemd-nspawn container and display your Electron app or Unity game fullscreen at boot.

As for your question about running a Unity game without a full desktop environment: yes, it should be possible. Both Electron and Unity should be able to create their own windows without relying on a desktop environment. The one caveat is that there may be certain features that rely on the desktop environment (such as system notifications), which would not be available.

Note that this setup does not prevent the user from switching to other TTYs or sessions. If you want to restrict the user to your app, you'll need a more comprehensive "kiosk mode" setup that locks down the system at a lower level.


Amazing, thank you (and chatgpt).


Yeah, it's really helpful to prototype these kinds of things.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: