Pangolin desktop environment for Fuchsia and Linux written in Flutter
github.com
github.com
(All tested on the online demo here: https://web.dahliaos.io/#/ )
I'm thinking mostly about the UAC window asking for a password.
Here's a possibly controversial take: why couldn't we do the opposite of mobile "notches" but for the elements of title bars that actually matter?
So instead of having 20% of the window width be taken up by the title (which might as well act as a draggable window handle or allow opening window menu) and another 10% by the action buttons with 70% remaining empty, why couldn't we simply cut out the 70%? Sure, that might complicate the UI of some apps and you'd certainly need to consider how to not create awkward layouts (allow the titlebar to automatically be hidden until hovering over the edge of the window, like some panels do at the edge of the screen in XFCE and other *nix DEs), but surely we can have the best of both worlds?
Now, it might be a bit problematic when the windows are aligned with the top of the screen (in which case either the window would need to be moved or the title elements would just overlap the contents and be expanded downwards, much like tooltips would).
But yes, that's definitely one way to go about it!
If I'm lucky, then a line of text will be half cut off and I can tell that way. Otherwise it's impossible.
Desktops aren't short of width, so why try and hide the scrollbars all the time, but programs seem happy to pack everything into navigation bars at the top where height is limited.
PC monitors don’t lack width, these changes ate just blindly applying mobile trends to desktop while disregarding their differences.
Theres is much innovation to be done in desktop UI design, but blindly following mobile is not the way. Mobile screens are usually smaller and have the opposite high:width rate, and you use touch vs mouse+kb. Different design patterns should apply.
Removing scroll on mobile makes sense, few usage on a very limited width. On desktop width is a commodity that is mostly left unused.
My XPS might as well not because they're placed horribly, MacBooks don't, and my Chromebook doesn't have the physical keys but maps them to hotkeys that some applications use so the behavior is inconsistent. My tablet and smartphone keyboards also don't have a way to send home/end with their native keyboards.
Home: Fn + Left Arrow
End: Fn + Right Arrow
I personally found the UI to be very slick and pretty. It seems very similar to Win11 and looks rather pretty. Would love to give it a try.
I much prefer the “open-ness” imparted by macOS’s border-free designs. It’s not perfect, and the “low colour, transparency in meaningless places” direction its taking isn’t its best look. It was better when it felt more “fun”.
I yearn for someone to take the pre-lion design goals and take them deeper i to more usable and more inviting directions.
This sentence contradicts itself. Some people say that there is a certain beauty in ugliness, but i don't think it applies to windows 10 and 11.
Most modern UIs seem to focus almost entirely on clean aesthetics, usually mindlessly drawing on conventions that serve limitations that exist in mobile, such as being really conservative about using screen space.
I think desktop Firefox is an excellent example of this. A lot of very useful features are hidden behind an additional click on a minuscule ≡-button (What does that symbol even mean? Why doesn't it have a label?) All, it appears, to save hundreds pixels of screen space, while desktop displays are getting bigger and bigger and bigger. You can't even use full screen windows on many desktop displays, you'll get neck pain from literally having to turn your head to read.
A button for opening an ad for a third party app (Pocket) is important enough to be immediately accessible. Why aren't my bookmarks deemed as important?
Makes a lot of sense on a mobile device where screen space is very limited. But on desktop?
There are only a handful of them that don't have a keyboard shortcut.
I think there is none for the ≡ menu nor for settings* which is sad but most submenus are covered. I actually wish I could unmap or change the inspector menu shortcut (ctrl+shift+c) as I often use it by mistake if trying to copy/paste stuff from browser to my terminal.
* I actually do ctrl+t then type pref and find preferences in the history usually instead.
Don't see the point from a UI perspective to show me everything, including features I may never ever use, each time I want to access features used on a more frequent basis.
It seems to be the OS that has created this desktop environment, but the website for it doesn't seem to go into much detail. How is it related to fuschia? is it a google initiative, or something simply targeting the open source bits of fuschia that have been released? (there are some links at the bottom of that page[0] that sound like they'd answer my question, such as "the goal" but they all just seem to link straight back to the top of the page.)
The UI is still quite slow. Hard to get excited about Flutter.
Can you share your computer specs and what browser you're using?
It's buttery smooth on both my Windows desktop and Mac laptop, though both are relatively new.
On my 5+ year old 1.1GHz MacBook it's still entirely usable. Dragging windows around isn't entirely fluid, but it's not that bad for such an underpowered machine.
AMD® Ryzen 9 5950x, 32 GB RAM, Linux/Fedora 35, Firefox 97.0, Chromium 96.0.4664.110
Same CPU in my Windows workstation and it's plenty smooth. Not just usable, but smooth. This is at 4K.
Do you have a modern GPU, or something quite old? Or do you have browser hardware acceleration disabled?
If not for your GPU, it's also possible that Linux simply performs significantly worse than Windows for whatever reason.
This would NOT be a viable desktop environment.
The performance is WAY worse than anything I've used for the last 15 years. And this includes shitty 10-yearold no-name laptops using gnome/compiz.
Current machine: Edge (closest thing to Chrome that i have apart from Firefox) or Firefox, Ryzen 5 1600, RX570.
The performance is passable for a graphically intensive application but entirely unacceptable for a desktop environment of any kind. In addition, it seems like it is a bit worse optimized on Firefox than it is on Chromium based browsers.
Opening 1 window and dragging it around leads to ~25% of the GPU usage (albeit i power limited mine to 50% of the total capacity), which feels insane when you consider that games running at 60 FPS use maybe ~50%. Opening up more windows, anywhere between 5-10 and dragging them around yields a similar load to rendering tens if not hundreds of thousands of polygons on screen.
Thus, i have to agree with the folks that say that this is entirely unacceptable as a desktop environment for any device, apart from when you are inclined to waste your hardware resources for no good reason. Admittedly, Flutter is better suited for this than it is for web development (in which it can be downright hostile and cause accessibility issues) and if nothing else the UI looks good, but personally that's not something that i care about.
In summary: i don't think that this would ever be an acceptable desktop environment, especially for devices that are running on battery power. Its resource usage would cripple any graphically intensive tasks in the background, unless you have really powerful hardware, which isn't the case for much of the world. Then again, in my eyes the perfect DE is somewhere along the lines of XFCE/LXDE/LxQt, so YMMV.
Edit: tested it out on my notebook as well, which has a N4000 Celeron and Intel UHD 600 integrated graphics. Even opening 1 window lagged everything considerably (on Firefox) and i have to guess that the FPS was somewhere between 10-20.
So, once again: unacceptable as a desktop environment, even with any given browser overhead. Of course, being able to run software like this in the browser reflects positively upon its portability, if nothing else, which is cool to see.
I like a lot of things about Flutter, but how did they develop a completely new UI framework from scratch in 2015 and not make fluid animations and fast touch response latency an absolute priority?
That's what you get your company hires only leetcoders.
Sometimes domain expertise comes at expense of general expertise. (some people are super strong in one area, but not so in others). Google hires generalists, which are good at the small leetcode style problems given during an interview, but which surprise surprise are not super strong at design well thought out rendering techniques.
Hence the continuous failures in many new products.
Can you expound on this?
This makes no sense whatsoever because it goes exactly in the opposite direction of optimised graphics programming - where the ideal was to repaint the smallest portion of the screen as possible for any change.
Games redraw everything every frame, and yet good games have much better performance than UI toolkits generally.
Why would you draw the entire screen? Well, it instantly eliminates a whole class of bugs where partial updates don't match full updates. It eliminates a ton of really complex code you'd otherwise have to write to track the on-screen size of arbitrary changes separately from painting them, and skip things outside the dirty rectangle while painting. And it doesn't change your worst case performance, which is what you care about when trying to hit a fixed frame rate. Actually the worst case performance should be slightly better because you're not wasting time tracking changes when you have to paint the whole screen anyway.
So the question really is, why would you bother to implement partial updates? The only real reason would be to save power in scenarios where only a small part of the screen is changing. Which is important but not that related to responsiveness or animation smoothness, which again are about worst-case performance.
Even if you do want partial updates you may be better off simply special casing a few common things like blinking cursors or video playback than implementing a fully general change tracking solution.
I guess I should have put my question in a more useful way: why would I want to use this desktop, given its limitations compared to existing desktops? Is it ever going to be a development system? If not, I can't see how it would grow beyond being a device environment- in which case there probably shouldn't be a terminal anyway. Probably I'm asking for something which is not a goal of fuchsia, but in that case, I really can't get exicted about something that's supposed to replace Android and other OSes.
That said, I've only used it for smallish apps. Would be interesting to see how it works for a whole desktop.
Is it correct to say that a convergent desktop environment exposes a large surface area via monolithic access to the underlying OS? It seems that the desktop environment is one of the hardest things to build securely, if embarking on such a journey.
Also, somewhat related: In light of forthcoming capabilities-based hardware (see: ARM Morello), is it a bit hasty to embark on a security-first rewrite of the entrenched Von Neumann / Harvard basis for incumbent OS environments?
Performance still bad for me.
That's horrible.
They're always at least broken enough to impede a bit. I use Gnome now, but after my machine has been on for a few days, all text associated with the Gnome shell disappears and only comes back on restart.
MacOS works pretty well in my experience, but I don't want to be part of that ecosystem. Windows GUI is fine for the most part in my experience, but I want to use a Unix (WSL is good, but not a replacement for me).
For now, I'll hold out and keep rooting for the Linux desktop, but it's got a ways to go. Can't blame them though, Apple and Microsoft have tons of money being concentrated into a single GUI environment. Linux has a million different small projects paid for with some dedicated contributor's time.
My issues on Linux are normally always coming from non open source software (VMware, Zoom, ...).
What I found helpful is to do a full reinstall of the OS instead of an upgrade and carefully bring back the "dot" folders with my configurations.
One of the things that makes me actually use Electron programs is that they usually work fine on Linux out of the box (sometimes there are deficiencies if it needs webcam/mic usage). That said, I hate having to hand over a precious few hundred megabytes of RAM on an old machine just to use a messaging app.
What's the point of this project? More generally, open source projects should really get into the habit of spending a few words on WHY they exist, so people driving by don't have to wreck their brains figuring out why would you care.
Not even macOS went this far, Apple made the right call to develop a separate ipadOS, specific for touch screen UXs
Gnome sure is a polished tablet OS mess
Flutter is open source.
I hate google as much as next person on HN, but at least have some evidence.
As the product lead for Flutter, I can assure you that this isn't an accurate statement. The product is several years old now, and we only added ads support in the last three months, in response to customer requests (https://github.com/flutter/flutter/issues/12114).
Flutter is open source, welcomes non-Google contributors, and is led by a group of hackers who think that UI development shouldn't be as painful as it is. One might have thought this would be attractive to the kind of developers who hang out on HN :)
AMP was supposed to speed up the web for mobile users. I'm sure the engineers that worked on AMP believed they were doing that too.
What's absent is a commitment to empower end-users in the same way that the web does now. Your doc puts the developer front and center, but "developer" can be read two ways: the person writing code who wants good tools that make their job a delight, or The Business that wants tools to enable them to deliver products that the end user cannot open open the hood and tinker with. A consistent UI toolkit that lets you develop once and deliver to six platforms is great for the coder, and if in the process it just so happens that the frontend is reduced to indecipherable pixels that can't be modified, ads that can't be blocked, and tracking that can't be escaped, well, that's just perfect for The Business.
I don't doubt you or your team's sincere good intentions. I really don't. But after pulling stunts like AMP, Tag Manager, FLoC/Topics, etc. Google, the business, doesn't deserve a charitable interpretation. It's like Prisoners of Geography. Google is an advertising company, and always will be. Regardless of the ideology or stated goals of the day, everything they do is to sell ads. If Flutter allows Google to display more ads and collect more data, and Google is funding the development of Flutter, it stands to reason that Google is purposefully pushing Flutter because Flutter will allow them to sell more ads and subvert user privacy.
It’s worse than an argument because their comment is not an argument.
They themselves need to substantiate their claims first before demanding evidence from someone else.
There's also a great Flash-like vector-based animation designer called Rive, which is itself written in Flutter (and generates code for Flutter): https://rive.app