Hugo Hacker News

SerenityOS: Graphical Unix-like operating system with classic 90s UI

akling 2021-08-17 08:24:16 +0000 UTC [ - ]

Hello friends! I'm the original author of SerenityOS and it's a lovely surprise to see it on the front page of HN :^)

This project has been quite the journey for me, from starting it from scratch ~3 years ago, to quitting my job ~3 months ago to focus on this full time. [1] It's also grown from a 1-man project into a bustling open source community with 475 contributors and counting.

If anyone has questions about the system I'm happy to answer them! I also have a huge library of content on my YouTube channel [2], where I've uploaded hundreds of videos of me working on the system in real time, and also monthly update videos (since April 2019) where I demo recent developments.

Our main community hub is over on Discord for anyone interested in joining development. [3]

1. https://awesomekling.github.io/I-quit-my-job-to-focus-on-Ser...

2. https://www.youtube.com/andreaskling

3. https://discord.gg/serenityos

southerntofu 2021-08-17 10:54:59 +0000 UTC [ - ]

Hello, thanks for helping make SerenityOS, it looks very interesting! I'm afraid i don't have the skills/time to contribute to development, but i'm interested to follow discussions. Is there a way to join your room from a free/libre decentralized client like IRC/XMPP?

A bridging bot like matterbridge is fairly easy to setup these days, and i'm happy to provide free hosting for it (on a small volunteer-run infra) if for some reason you wouldn't know where to host it. I'm always a little sad to see amazing volunteer projects organize on Facebook/Discord ;)

jscipione 2021-08-17 17:06:16 +0000 UTC [ - ]

Fantastic work on SerenityOS and great videos explaining your progress. My main complaint is that you are solving many of the same problems that Haiku is also struggling with (such as slow git checkout speed) while building a '90's era C++ based operating system. There's a good chance that your little OS may beat ours in the end. You could have built a great C++ OS on top of Haiku instead but you went your own way with SerenityOS which is valid. You may have gotten discouraged by the sometimes thorny Haiku community development process anyway.

davidkunz 2021-08-17 08:43:20 +0000 UTC [ - ]

Hi Andreas,

It's astonishing how much you've achieved with SerenityOS. The sheer amount of high-quality YouTube videos explaining the process is unprecedented. Keep up the good work!

als0 2021-08-17 09:29:12 +0000 UTC [ - ]

Inspiring work. When you started working on Serenity it had a floating dock and macOS-like menu bars. Now it looks more like Windows 2000 in style. What made you switch to this design? Familiarity?

akling 2021-08-17 09:37:49 +0000 UTC [ - ]

I removed the global menu bar after realizing that it's incredibly tedious to use at large resolutions. It made some sense at 640x480 and 800x600, but at 1080p and beyond, you run into a great deal of mouse travel between a window and its menu bar.

dev_tty01 2021-08-17 14:26:08 +0000 UTC [ - ]

Travel distance is not the right metric. The question is how easy is it to acquire the desired menu as a target and select it.

https://en.wikipedia.org/wiki/Fitts%27s_law

Putting the menu bar at the edge of the screen effectively makes it an infinite sized target so it is much easier to target and select. Menus at the top of a window are easily overshot and missed. Travel distance is easily solved by appropriate acceleration in the pointer driver.

jhasse 2021-08-17 15:29:12 +0000 UTC [ - ]

I much rather have my browser tabs there as I need to switch them much more often than accessing the menu.

qwerty456127 2021-08-17 15:20:40 +0000 UTC [ - ]

> but at 1080p and beyond, you run into a great deal of mouse travel between a window and its menu bar.

1. Somehow this feels Okay on Mac.

2. You don't actually have to travel the mouse if you use hot keys.

3. The coolest thing the global menu system can give is application-agnostic menu searching.

jhasse 2021-08-17 15:28:21 +0000 UTC [ - ]

3. can be achieved without a global menu. Menus just have to be registered with a global API.

qwerty456127 2021-08-17 15:52:44 +0000 UTC [ - ]

Obviously. But I doubt app authors will bother registering menus with a global API if the global menu is not a platform standard every user expects them to follow (which is how it is in the Mac world).

qwerty456127 2021-08-18 07:56:53 +0000 UTC [ - ]

This was also illustrated by Ubuntu by the way. When Ubuntu had the global menu ootb most of the Linux GUI apps supported it. A significant portion of the same apps don't seem to support it in other distros/DEs even if I configure them (the DEs) to use the global menu. I tried Xubuntu, Manjaro KDE and ended up using classic in-window menu set-up because many apps used it anyway and I want the thing to be uniform (the situation when some apps use the global menu when many use their own seems ugly to me).

ghostpepper 2021-08-18 15:52:48 +0000 UTC [ - ]

Any reason why the OS couldn't require menus to be registered only to draw them along the top of the application window?

qwerty456127 2021-08-18 20:22:33 +0000 UTC [ - ]

Because everybody can draw their own menu in their window. Like Sublime and VSCode do.

Nevertheless, if you require that, why not make the place where the menu is displayed configurable? KDE does - it offers 3 options: the global Mac-style menu (which you can put anywhere, even in the middle of the screen if you want), classic Windows-style menus or "hamburger" menu buttons (utterly inconvenient but I'm still glad there is an option for those who like it).

eloisant 2021-08-17 10:15:45 +0000 UTC [ - ]

If the speed and acceleration is correctly configured, the mouse doesn't have more travel to do at a higher resolution.

messe 2021-08-17 13:32:21 +0000 UTC [ - ]

The DPI is also relevant. I find the global menu fine on my 13" MacBook even though it's 2560x1600, but it can be a bit tedious on my 28" display when I have multiple applications open side-by-side.

uuddlrlr 2021-08-17 09:46:16 +0000 UTC [ - ]

The trade-off for the mouse travel is only needing to align the click on the X-axis.

aasasd 2021-08-17 14:28:04 +0000 UTC [ - ]

Exactly: if implemented right and there's no gap between the menu and the top of the screen where the cursor does nothing, then you can just mostly jam the mouse in the general direction of the menu item.

Notably, Microsoft managed to bungle this initially in Windows with the task bar: there was a one-pixel gap between the buttons and the bottom of the screen, so you had to aim for the buttons or to readjust the cursor each time. (Though personally I find the downward motion more awkward anyway, both because the wrist action is weird and because the wrist and the wrist support are in the way.)

maskros 2021-08-17 09:55:16 +0000 UTC [ - ]

That's only one way. Don't forget about the return trip.

schmorptron 2021-08-17 11:14:17 +0000 UTC [ - ]

A minute of silence for Ubuntu's unity, where they completely solved top bar UX by having the option to have it in the window title bar. God I wish they hadn't abandoned development on it.

zibzab 2021-08-17 14:26:51 +0000 UTC [ - ]

Technically gnome expands on this, allowing you to put even more stuff in the top bar.

But yeah, I miss unity too.

schmorptron 2021-08-17 15:00:05 +0000 UTC [ - ]

I really prefer the ubuntu way to the Gnome one. Currently, very few actually productive apps use the gnome 3 way, and it's not nearly as standardized across Desktops as the menu bar is. On top of that, menu bars behave the same way across all applications. You click them, and get corresponding actions and menu items you can read and skim through. The Gnome 3 way is a lot less unified, because you'll have to decipher icons and guess at what they do ( save for the simple ones like a +).

This is extra frustrating to me since I absolutely love everything else about the modern Gnome UX, but the refusal to bring in a top menu bar or at least integrate it for powerful apps like gimp, vscode or blender stings and makes it so many times you have 3 top bars wasting vertical space in maximized apps when it could be two or even one.(Activities-button bar, Window title, GIMP menu bar)

Koshkin 2021-08-17 12:49:03 +0000 UTC [ - ]

This makes a lot of sense. I wish Apple did this, too.

tyingq 2021-08-17 12:51:26 +0000 UTC [ - ]

>Now it looks more like Windows 2000 in style

It looks like FVWM95 to me, which was supposed to look like Windows 95.

http://fvwm95.sourceforge.net/screenshot-full.gif

pkphilip 2021-08-18 03:46:33 +0000 UTC [ - ]

Andreas, I love your videos. You have clearly managed to develop a very friendly community. I like how pleasant and accessible the community is! I am sure you guys will go very far and I look forward to using Serenity OS on a daily basis.

faraaz98 2021-08-17 11:45:38 +0000 UTC [ - ]

It's been really amazing watching serenity progress over the years.

I once tried porting Ruby to Serenity by watching your other porting videos but I got stuck on pthread errors.

Perhaps I'll try again sometime

akling 2021-08-17 19:29:42 +0000 UTC [ - ]

Ruby would definitely be a fun port to add to our roster! The SerenityOS pthread implementation has improved substantially in the last year, so you might find it easier to get things working now.

mysterydip 2021-08-17 10:33:15 +0000 UTC [ - ]

I love the project and have it bookmarked. Your progress has been remarkable! I'm not sure what I'm going to use it for yet, but I really want to for something!

AdmiralAsshat 2021-08-17 14:03:10 +0000 UTC [ - ]

Is the hostname "courage" in the screenshot a dig at Apple's infamous "courage" comment when they removed headphones from the iPhone?[0]

[0] https://www.theverge.com/2016/9/7/12838024/apple-iphone-7-pl...

elisee 2021-08-17 16:00:05 +0000 UTC [ - ]

Most likely a reference to the word in the serenity prayer, which is what SerenityOS is named after (Andreas mentioned it a few times in his videos).

akling 2021-08-17 19:28:06 +0000 UTC [ - ]

That's right, the system name and its default hostname are both references to the serenity prayer. :)

sdwvit 2021-08-17 14:16:04 +0000 UTC [ - ]

I believe, this is not related to apple, but rather to creator’s grim past

hulitu 2021-08-17 08:59:13 +0000 UTC [ - ]

Is it possible to compile and run existing unix programs ?

akling 2021-08-17 09:03:11 +0000 UTC [ - ]

Certainly! We have a growing library of ports [1] that you can build with a single command to add 3rd party software to the system.

Note that unlike many other operating systems, SerenityOS aims to be completely free of 3rd party software in the default install. So we build everything ourselves, all the way from the kernel to the web browser. It's great fun!

1. https://github.com/SerenityOS/serenity/tree/master/Ports

mdp2021 2021-08-17 10:43:08 +0000 UTC [ - ]

I have seen the screenshots: I love it! It looks practical, a work-oriented environment.

But not the font - too rounded, too jocular (I must have seen it a million times, but with distance it is not convincing). I remember having remained ecstatic with some thick versions of Futura on the Amiga OS in the mid nineties, maybe you could make some test.

filmroellchen 2021-08-17 18:21:10 +0000 UTC [ - ]

By default, we have Liberation Serif and you just have to drag in TTF fonts into /res/fonts to make them usable for the system font. So it's not hard to change many parts of the visuals if you don't like them.

stephen82 2021-08-17 12:51:57 +0000 UTC [ - ]

Can LibGUI be used independently from SerenityOS, much like we do with wxWidgets and Qt?

anthk 2021-08-17 13:19:51 +0000 UTC [ - ]

https://github.com/jcs/serenity

jcs@ from OpenBSD it's trying to port Serenity OS' GUI to OpenBSD. I would like it. I use CWM, but sometimes using an environment from my teenage days make me feel relaxed.

jjice 2021-08-17 13:44:40 +0000 UTC [ - ]

I love your content, really inspirational! What are your favorite resources for learning about the variety of topics you've tackled, from drivers, to cryptography, to compilers?

akling 2021-08-17 19:31:46 +0000 UTC [ - ]

In most cases: whatever specification document exists for the particular thing I'm trying to do.

For things that are more open, like API's, I like to look at what mature API's that do what I want to do already look like. And then work backwards from that. :)

Rochus 2021-08-17 11:07:23 +0000 UTC [ - ]

Is there already a Qt version available on SerenityOS, or did anyone plan to migrate it?

akling 2021-08-17 12:39:18 +0000 UTC [ - ]

There's a port of Qt 6 in the works (not yet merged) here: https://github.com/SerenityOS/serenity/pull/9362

While hackish, it does look pretty promising: https://twitter.com/linusgroh/status/1426904775623385095/

Rochus 2021-08-17 13:14:33 +0000 UTC [ - ]

That's cool, thanks for the links; I probably would have migrated Qt5 thought because it is much more stable and battle tested and uses C++98 which likely avoids many linker issues.

martinbriza 2021-08-17 19:24:25 +0000 UTC [ - ]

Qt6 is built with CMake which I feel way more comfortable with compared to the configure script from Qt5 (actually, I probably wouldn't be able to do this with just configure).

However, most of the code I've changed is used in the old buildsystem as well so somebody could possibly reuse what I'm doing in a Qt5 port. I'm not planning to do that though, Qt 6.2 will be perfectly good for my personal and selfish needs. :)

Rochus 2021-08-17 19:39:03 +0000 UTC [ - ]

Thanks; I assume it's a challenge anyway.

detaro 2021-08-17 15:48:24 +0000 UTC [ - ]

SerenityOS widely uses modern C++, so I'd assume there's little point in restricting yourself to old C++ when porting a library.

Rochus 2021-08-17 16:02:30 +0000 UTC [ - ]

>> modern C++

Well, according to Stroustrup himself C++98/03 is considered "modern C++" (see e.g. https://www.stroustrup.com/DnE2005.pdf ); and I can confirm from personal experience that C++98 and STL were a big step compared to what we had before. C++11 and later have some advantages, but nothing I couldn't live without (personally I don't consider policy based design the way to go). Actually Qt itself nicely demonstrated how to do perfectly well without e.g. move semantics.

detaro 2021-08-17 16:05:10 +0000 UTC [ - ]

Kind of besides the point that "C++98 to avoid issues" when porting to a project that requires C++20 seems a bit odd. (And let's say that the quality of Qt's solutions in such cases over what you can now do is ... controversial)

Rochus 2021-08-17 16:23:36 +0000 UTC [ - ]

Does SerenityOS require all apps to be implemented in C++ or even C++20? I guess not (didn't have a close look at it yet).

ncmncm 2021-08-17 17:18:23 +0000 UTC [ - ]

Obviously not, if so many non-C++ programs are ported to run on it. Kernel, core libraries, and native programs are C++20. Don't expect pull requests for archaic-styled patches to those to be merged.

ncmncm 2021-08-17 17:39:07 +0000 UTC [ - ]

That was published 16 years ago. Fortunately, Andreas isn't so confused.

C++20 is a wholly more pleasant programming environment than any previous C++. When there is a choice between the old way and the new—which there always is, for backward compatibility—the new way is almost always better.

For some cases, the newer way is better sometimes but not always, e.g. east function return type, with "auto", vs. old-style west. For short functions, deduced return type, i.e. neither one, is often best.

All that said, C++20 coroutines will be much more pleasant to use when thd C++23 library support for them lands.

Rochus 2021-08-17 18:12:38 +0000 UTC [ - ]

> You are very confused

Because I'm not obsessed with chasing the latest thing?

ncmncm 2021-08-17 18:30:36 +0000 UTC [ - ]

Do you need it explained why a document published in 2005 is not a reliable guide to modernity in 2021?

Cppreference.com is an excellent resource to help you get caught up. BoostCon vids on Youtube are also helpful.

Rochus 2021-08-17 18:46:07 +0000 UTC [ - ]

> Do you need it explained why a document published in 2005 is not ...

Oh yes, let your wisdom be poured out upon us. And no, age alone is not relevant to the quality of literature.

jhasse 2021-08-17 15:33:23 +0000 UTC [ - ]

Qt5 switched to C++11 with 5.7.

Rochus 2021-08-17 15:43:59 +0000 UTC [ - ]

But it's not mandatory, is it? Anyway, I would likely use the 5.6.3 version which was the last with LGPL 2.

ogoffart 2021-08-17 16:04:39 +0000 UTC [ - ]

From Qt 5.7, C++11 is mandatory. Anyway, why would one want to use an outdated Qt version? I don't think LGPL3 is a problem at all for SerenityOS ports anyway.

Rochus 2021-08-17 16:15:15 +0000 UTC [ - ]

> why would one want to use an outdated Qt version?

Well, why would someone want to implement an outdated 90s UI? Apparently there are good reasons.

I have many projects even with Qt4.4 and no need to go to a later Qt version. Qt4 already had everything I ever expected. Qt5 brings a couple of advantages (e.g. better modularization and backend API), but Qt5.4 is good enough for that.

ncmncm 2021-08-17 17:42:38 +0000 UTC [ - ]

It is never too late to decide to begin to learn again. The right time is always now. You never have to, or can, learn everything at once, but you can always learn one thing today, and another tomorrow.

Learning is cumulative, so after many days you can look back on much progress.

Rochus 2021-08-17 18:13:26 +0000 UTC [ - ]

> It is never too late to decide to begin to learn again

This precocious advice is also thanked.

jakearmitage 2021-08-17 18:58:11 +0000 UTC [ - ]

What typeface did you use? Looks great.

ncmncm 2021-08-17 17:47:27 +0000 UTC [ - ]

This is a beautiful project, and you are a most gracious host. I get a strong Bob Ross vibe.

I would be happier following if discussion happened on an open protocol like Matrix, rather than the wholly proprietary Discord.

anthk 2021-08-17 12:44:34 +0000 UTC [ - ]

Port Nethack and Slashem. And Frotz, but Frotz it's trivial to port.

Ah, NH and Frotz are already in ports, cool :D.

Then: https://github.com/BarclayII/slashem-up

turblety 2021-08-17 07:14:18 +0000 UTC [ - ]

> SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.

For a project that seems to be focused around something visual, it's strange to me that there's not even one screenshot on the home page.

The github page [1] does at least have one.

1. https://github.com/SerenityOS/serenity

edit: the screenshot is now on the home page! That was such a fast turn around.

akling 2021-08-17 08:34:46 +0000 UTC [ - ]

I added it to the homepage after seeing your comment, thank you! While we're a developer-targeted project, it makes total sense to have at least one screenshot on the website. :^)

szszrk 2021-08-17 07:17:14 +0000 UTC [ - ]

Maybe there is no screenshot tool yet :O

There is a youtube channel linked below with some SerenityOs content, but that's hardly an excuse.

thepill 2021-08-17 07:19:54 +0000 UTC [ - ]

there is ;)

a9h74j 2021-08-17 13:03:08 +0000 UTC [ - ]

Note to self: 1) Implement screenshot tool to provide motivation; 2) Implement the rest of myOS.

szszrk 2021-08-18 10:13:45 +0000 UTC [ - ]

It's not that weird to be honest, if you consider a mockup applicable to 1). Mockups and rough design diagrams should be pretty much obvious and omnipresent. We often start from a visual aid and move on from that level to actual details.

joeberon 2021-08-17 08:16:10 +0000 UTC [ - ]

That screenshot seems to be on the main page now

wolf550e 2021-08-17 10:33:57 +0000 UTC [ - ]

SerenityOS has implemented its own TLS 1.2 client from scratch (no server side support so far), currently with TLS_RSA_ and TLS_DHE_RSA_ only, and AES-CBC and AES-GCM only (software table driven AES, software GCM, naive CBC padding handling, nothing is constant time).

It does not even pretend to be secure so far (intentionally accepts self signed certs), but if they ever want to make it secure, that would be a big task.

For compatibility, they really should implement ECDHE with NIST P-256, because that is what most of the internet uses and what they support means they always fallback to no-PFS.

https://github.com/SerenityOS/serenity/tree/master/Userland/...

https://github.com/SerenityOS/serenity/tree/master/Userland/...

sdfjkl 2021-08-17 09:06:16 +0000 UTC [ - ]

So I'm not the only one thinking that this was the time when desktop UI's peaked and most things since then are fluff and featuritis driven by the marketing departments needs to constantly have something new and exciting and usability going out of the window.

Nice work!

kalekold 2021-08-17 15:39:42 +0000 UTC [ - ]

I agree. I love the old win95 UI because everything looked like how it performed. Buttons looked like buttons, scrollbars looked like scrollbars. It was immediately usable. The UX back then was amazing.

ncmncm 2021-08-17 17:21:55 +0000 UTC [ - ]

Schnozzberries tasted like Schnozzberries!

agumonkey 2021-08-17 20:28:13 +0000 UTC [ - ]

it's 81% right. from this era, the only addition that fully welded into me was screen snapping windows

there are some good fun stuff in today's desktops but .. it doesn't add much to your journey IMO (and often you lose CUA services like full keyboard access too 99% widgets)

CRConrad 2021-08-17 15:03:33 +0000 UTC [ - ]

No, there's at least two of us. Three, with Andreas.

grishka 2021-08-17 19:07:50 +0000 UTC [ - ]

Four. Though I do like how modern macOS implements trackpad gestures, and drawing UI on the GPU is generally a good idea.

dang 2021-08-17 07:28:26 +0000 UTC [ - ]

Past related threads:

I quit my job to focus on SerenityOS full time - https://news.ycombinator.com/item?id=27317655 - May 2021 (249 comments)

SerenityOS: Writing a Full Chain Exploit - https://news.ycombinator.com/item?id=26115141 - Feb 2021 (9 comments)

SerenityOS: A love letter to '90s user interfaces with a Unix-like core - https://news.ycombinator.com/item?id=23911180 - July 2020 (1 comment)

SerenityOS Update (April 2020) - https://news.ycombinator.com/item?id=23037581 - April 2020 (1 comment)

Introduction to SerenityOS Programming - https://news.ycombinator.com/item?id=22479132 - March 2020 (43 comments)

Pledge() and Unveil() in SerenityOS - https://news.ycombinator.com/item?id=22116914 - Jan 2020 (28 comments)

CTF writeup: First published SerenityOS kernel exploit - https://news.ycombinator.com/item?id=21918351 - Dec 2019 (2 comments)

SerenityOS: From Zero to HTML in a Year - https://news.ycombinator.com/item?id=21212294 - Oct 2019 (52 comments)

Serenity OS update (August 2019) [video] - https://news.ycombinator.com/item?id=20851356 - Sept 2019 (2 comments)

SerenityOS – a graphical Unix-like OS for x86, with 90s aesthetics - https://news.ycombinator.com/item?id=19986126 - May 2019 (179 comments)

Serenity: x86 Unix-like operating system for IBM PC-compatibles - https://news.ycombinator.com/item?id=19537807 - March 2019 (83 comments)

Quai 2021-08-17 08:09:52 +0000 UTC [ - ]

The "hidden" gem here is all the videos posted by Andreas on his youtube channel. I've spent quite a few hours with him and learned a lot of things from his way of working.

Deukhoofd 2021-08-17 08:22:33 +0000 UTC [ - ]

His videos are one of my favourite things to watch, very calming, and there's always something to learn.

stinkytaco 2021-08-17 14:09:40 +0000 UTC [ - ]

Is there a term for something that is absolutely not for you, but that you're still very happy exists? I can't see myself ever using this, but the idea that someone has put that kind of effort in is amazing.

dev_tty01 2021-08-17 14:19:20 +0000 UTC [ - ]

Agree completely. I would never ever want to go back to that interface look, but the existence of this project in the universe is cool. Nice work!

wildrhythms 2021-08-18 01:46:34 +0000 UTC [ - ]

I have no intention of using Serenity but every time it's posted I am filled with joy that the project exists, and that people care about it.

kokey 2021-08-17 11:08:08 +0000 UTC [ - ]

I somehow like this a lot. This looks kind of what Windows NT would have been if NT 4.0 never happened, or if OS/2 survived, or if MacOS or Windows went to a Unix kernel in the early 90s. It's a bit like the Nissan Figaro of desktop operating systems. That said, going back to an alternative past can be useful beyond an art project, it could evolve into helping along the vision for better lightweight desktop operating systems of the future. For example this might work very well as a remote desktop living on virtual infrastructure, or work well as the base for a remote desktop client.

CRConrad 2021-08-17 15:09:45 +0000 UTC [ - ]

> This looks kind of what Windows NT would have been if NT 4.0 never happened

Why? As I recall it, NT4 was the one that caught the NT line up to the W95 look, replacing NT3.5(1)'s look inherited from W3(.1). So, on the contrary: This looks just like NT4 / W2K.

dfee 2021-08-17 08:27:21 +0000 UTC [ - ]

I’d like to see a general trend in throwback UIs where, for example, fonts have been updated. It doesn’t have to be extravagant, but if I’m reading it, the creature comforts of a modern font are nice.

It’s like taking a classic car and putting in a modern radio.

akling 2021-08-17 09:32:57 +0000 UTC [ - ]

SerenityOS does have basic support for TTF/OTF rendering via our native LibGfx library [1], and it's possible to switch the system font to a vector font of your choice.

That said, nobody has implemented kerning or hinting yet, so vector fonts do look pretty unpolished on screen, especially at smaller sizes.

1. https://github.com/SerenityOS/serenity/tree/master/Userland/...

vkoskiv 2021-08-17 09:54:57 +0000 UTC [ - ]

While keming is important, it's still exciting to see how far along vector font support is already.

bartvk 2021-08-17 18:26:19 +0000 UTC [ - ]

Is this a genuine spelling error, or did you make a magnificent joke?

emptyparadise 2021-08-17 10:10:28 +0000 UTC [ - ]

I think a lot of people take throwback projects and retro computing too far by rejecting everything modern. What's wrong with allowing some anachronisms for things like high DPI, internationalization, security, accessibility?

vkoskiv 2021-08-17 10:40:02 +0000 UTC [ - ]

Take a closer look - SerenityOS doesn't reject all modern stuff. The kernel has plenty of modern security mitigations (pledge(), unveil()), and there is basic high DPI support already. Internationalization and accessibility are very consumer product focused features, which is not what the project caters to at this time.

miki123211 2021-08-17 12:34:22 +0000 UTC [ - ]

> Internationalization and accessibility are very consumer product focused features

This way of thinking is why I, as a blind developer, need to deal with so many horribly inaccessible tools, I guess.

If you think that only the consumer-focused part of your tools needs to be accessible, you're wrong.

filmroellchen 2021-08-17 18:33:53 +0000 UTC [ - ]

Andreas mentioned on one of the recent Office Hours livestreams that accessibility is certainly compatible with the project goals, however, nobody has had interest in working on it yet.

vkoskiv 2021-08-18 11:33:17 +0000 UTC [ - ]

Sorry about that, I phrased it really poorly. I think I was trying to convey that the project is still somewhat niche, so no one has taken up that effort yet. But you're absolutely right, everything should be accessible.

emptyparadise 2021-08-17 11:28:13 +0000 UTC [ - ]

Awesome! Definitely did not intend to make it sound like SerenityOS doesn't care about modern affordances. As for internationalization/accessibility, do you mean that these features are not supported in a "we can't display Unicode text" sense or a "we don't currently have active UI translations" sense?

elisee 2021-08-17 18:32:45 +0000 UTC [ - ]

Andreas has recently mentioned that SerenityOS is meant to be an English-language OS. (Might have been on Discord or a Q&A video, not sure.)

I believe his rationale is that other languages are generally awkward at talking about technical stuff, and SerenityOS is addressed at technical users anyway. In my own experience as a French native speaker, I do tend to prefer all my software to be in English rather than getting the awkwardly-translated-in-French version.

As far as accessibility goes, like anything in the project, it's up to someone passionate to step up and work on it.

emptyparadise 2021-08-18 09:57:47 +0000 UTC [ - ]

But you'd still want to read and write French text on your computer even if the UI is in English, right?

vkoskiv 2021-08-18 11:36:00 +0000 UTC [ - ]

SerenityOS does have support for unicode, and the character sets are improving over time.

emptyparadise 2021-08-18 16:21:50 +0000 UTC [ - ]

That's what I was hoping to hear, very nice!

smusamashah 2021-08-18 01:08:15 +0000 UTC [ - ]

I attempted giving win 98 UI to Obsidian recently https://github.com/SMUsamaShah/Obsidian-Win98-Edition

thom 2021-08-17 16:14:41 +0000 UTC [ - ]

Every time this comes up I feel compelled to say that I find the source code really ridiculously readable, even as the project grows and more apps and features are added.

AnIdiotOnTheNet 2021-08-17 11:48:50 +0000 UTC [ - ]

It's great to have new OSs that are actually new OSs, and that eschew the brain cancer UX that has taken over since about 2010. Since it seems to be a pet project and toy of the author and its community, I guess I can't really fault it per-se, but it is really strange to me that in its love for 90s UX it failed to implement a sane form of application management. It seems to have weirdly mixed bad ideas from Windows (installers) and UNIX (fixed paths), even though multiple 90s OSs got it right (MacOS, RiscOS, NeXT, even DOS to an extent). It is also a little off-putting that it explicitly "doesn't cater to non-technical users" when a pretty core part of personal computing back then was on ramping non-technical users to leveraging the power of a computer. I mean, don't get me wrong, a whole f'ing lot of evil has been done in the name of "making computing easier for non-technical people", but Serenity takes it to the extent that it doesn't have a live environment or installer and you have to compile it from source. I mean yeah, sure, hobby OS and all, but it just strikes me as missing a very essential component of 90s personal computing.

selfhoster11 2021-08-17 20:14:42 +0000 UTC [ - ]

First of all, not all the changes have to be implemented immediately. Andreas often livestreams hack sessions where he changes some part of the OS or the APIs, so things are very dynamic.

Secondly, why do you expect that this OS is ready to show to any non-technical user? If you did, they wouldn't realise what they are looking at, nor why it's a valuable contribution to the ecosystem and the fight against the "modern" UX trends. The effort would be wasted until the project becomes more prominent

AnIdiotOnTheNet 2021-08-18 00:31:16 +0000 UTC [ - ]

> First of all, not all the changes have to be implemented immediately.

I'll comment on future features when they exist, or at least are documented as a goal.

> Secondly, why do you expect that this OS is ready to show to any non-technical user?

I don't. I am commenting on what exists, and what exists is an FAQ entry specifically stating that the project does not cater to non-technical users.

Even so, I think you underestimate non-technical users. Another modern trend I despise.

wruza 2021-08-17 13:13:19 +0000 UTC [ - ]

That help app still looks so much better and more useful than usual web-based “whitespace ocean bullshit” docs.

ThinkBeat 2021-08-17 12:09:36 +0000 UTC [ - ]

Thank you for your work.

It is critical for the operating system space to have more variation and innovation.

I admire your skills and dedication.

qwerty456127 2021-08-17 15:18:03 +0000 UTC [ - ]

Beautiful. I wish I could make this my daily driver (even in a VM - I wouldn't mind).

nullifidian 2021-08-17 09:48:30 +0000 UTC [ - ]

Wanted to scoff at the retro trend, but this thing looks beautiful.

rado 2021-08-17 07:48:07 +0000 UTC [ - ]

Sensible, consistent UI. So refreshing.

rathboma 2021-08-17 13:23:00 +0000 UTC [ - ]

Love your development videos.

When do you think you'll be able to run your dev stack natively on serenity rather than in Linux and virtualizing serenity only for testing?

selfhoster11 2021-08-17 20:17:09 +0000 UTC [ - ]

I think this is the eventual goal. Andreas implemented a code editor within the OS, and I think some compiler could be ported quite easily too.

donhaker 2021-08-17 14:33:51 +0000 UTC [ - ]

I do dig the aesthetic, especially on the browser. But is there anything things we can do in the OS? Can it run online videos and play music?

bni 2021-08-17 10:33:08 +0000 UTC [ - ]

What happens if you have a 4K screen, is there 2x, 3x, 4x integer scaling built in?

akling 2021-08-17 10:38:05 +0000 UTC [ - ]

Integer scaling is in development and 2x mode is available via the display settings application. It's not mature yet, and most assets don't have 2x versions. But we'll get there eventually. :^)

unnah 2021-08-17 12:07:26 +0000 UTC [ - ]

It seems there is no GPU support as such. Is it even possible to set up a 4K resolution via VESA BIOS?

unixhero 2021-08-17 07:34:20 +0000 UTC [ - ]

I am trying this today.

metalliqaz 2021-08-17 12:49:54 +0000 UTC [ - ]

So is it based on Linux or...?

AnIdiotOnTheNet 2021-08-17 13:08:04 +0000 UTC [ - ]

No. It's actually a new OS, as in a completely new kernel.

adamrezich 2021-08-18 15:31:45 +0000 UTC [ - ]

that UI is absolutely gorgeous.

cosmotic 2021-08-17 16:15:12 +0000 UTC [ - ]

Any chance we could get more than a single screenshot?

99mans 2021-08-18 02:02:36 +0000 UTC [ - ]

Took a look. Unclear why this is in any way superior to Debian and customized XFCE. Nothing is said about my security and privacy using the OS. Hard pass.

zozbot234 2021-08-17 09:25:06 +0000 UTC [ - ]

The 3d styling in the UI is very nice, but the widgets are not touch friendly at all. Even "classic 90s" OS's like Windows CE used the pattern of headerbars with a few key widgets that could be easily accessed via touch, not unlike modern GTK 3.x and 4.x. A lot friendlier than this.

akling 2021-08-17 09:40:50 +0000 UTC [ - ]

That's correct, the SerenityOS UI does not attempt to be touch friendly. This is a classic mouse & keyboard system by design. :)

hulitu 2021-08-17 10:49:23 +0000 UTC [ - ]

This is a really good thing. A lot of desktop stuff seems to presume a desktop has a touch interface which is almost never the case. Using the keyboard and mouse for 8 (or 12 hours in case of IE) is tiring enough. I cannot picture someone using a touchscreen for 8 (or 12 hours in case of IE).

HackedBunny 2021-08-17 16:41:06 +0000 UTC [ - ]

Good! Tablet and phone concerns have been the absolute bane of desktop UIs for so long now.

boomlinde 2021-08-17 10:38:31 +0000 UTC [ - ]

> Even "classic 90s" OS's like Windows CE used the pattern of headerbars with a few key widgets that could be easily accessed via touch

That's because it was made from the start for PDAs with touch screens. This is a desktop computer OS, and although I can entertain the notion that someone out there might be smudging a touch screen connected to their Unix workstation, I don't see why everyone else should accommodate this weird and ergonomically unsound input method at the expense of screen estate.

Also, whether they could be easily accessed really depends on the device and input method. Using Pocket PCs without a stylus was certainly no fun.

zozbot234 2021-08-17 10:46:57 +0000 UTC [ - ]

Well, these days we have "PDAs with touchscreens" running "Unix workstation" OS's. Touch input is simply the native input method on these devices.

boomlinde 2021-08-17 11:45:19 +0000 UTC [ - ]

Yes, and for most productive work this is to their detriment. Lower precision, no tactility, terrible ergonomics. I understand the need for smartphone/tablet operating systems to design around this. I don't understand the need for every other operating system to do so.