12 ms·
FyneDesk: A full desktop environment for Linux written in Go
- koeng 1y agoNeat. I wonder what performance is like compared to normal desktop environments.
- gigatexal 1y agoProbably better than Gnome’s single threaded-ness. I bet it’s smooth given how concurrent friendly Go is with channels and go routines etc.
- munchlax 1y agoWhat are you guys doing with your desktop environment that you need it to be performant and multithreaded? Aren't all computers plenty fast enough now?
- gigatexal 1y agoWe are called power users ;-) we can do more than one thing or ten things at a time and want things to be responsive and fast and not drop frames and not crash the whole session when some plugin fails etc etc. you know, a well designed thing
- shmerl 1y agoNot necessarily the environment, but compositor itself must be fast. It shouldn't introduce any delays that would affect for instance input latency in its processing loop. Gamers would for sure complain. Someone could totally make it do everything in a single thread and not think about that, which would be pretty bad.
- winrid 1y agoThat doesn't require multi threading.
- shmerl 1y agoIf it does almost nothing - may be not. Otherwise you'll be doing something in the main thread which will take time, unless you also squeeze concurrency (i.e. multitasking) into one thread and then again, why not use multiple threads already.
- nasretdinov 1y agoOn a high enough resolution, especially with 5K-6K displays a single-threaded software-only compositor is absolutely going to have horrible performance. Even on Full HD it's actually quite noticeable
- wiseowise 1y ago“Don’t you guys have fast computers?”
- munchlax 1y agoMy computers are old and slow. They run XFCE just fine.
- Twirrim 1y agoThey should be, but with the speed and resources available on machines these days, people don't spend as much time optimising every little thing, and even make trade-offs, e.g. Gnome 3 desktop has the spidermonkey javascript engine in it, and an increasing numbers of components are using javascript.
- pjmlp 1y agoDepends on how much Electron crap is running alongside the desktop.
- robinsonb5 1y agoYou'd think, wouldn't you? But in some regards they still feel less responsive than the desktop of a sub-10MHz machine from the 1980s. (I'm not kidding - the tight coupling of quadrature-based mouse counters and hardware sprite mouse cursor - bypassing all the wireless, serial / PS/2 / USB encoding and decoding we have today - and on-screen gadgets being drawn and redrawn in the input subsystem's context without messages having to trickle through a ten foot long pipeline of frameworks and UI toolkits, all gave a sense of immediacy, of "having the computer's full attention", that's rare to find in today's world of janky semi-functional web apps.)
- matttproud 1y agoSeriously. I don't know if folks remember this Java desktop research project from 25-some years ago: https://en.wikipedia.org/wiki/Project_Looking_Glass https://en.wikipedia.org/wiki/Project_Looking_Glass. To say that it was slow was an understatement (it was a real PITA to get this installed and built at the time; I spent an afternoon in college doing that out of boredom). I imagine FyneDesk is plenty fine for what it is doing in comparison.
- radicaldreamer 1y agoThe Project Looking Glass UI came to iPadOS and MacOS via Stage Manager https://support.apple.com/en-gb/guide/mac-help/mchl534ba392/mac https://support.apple.com/en-gb/guide/mac-help/mchl534ba392/...
- ffsm8 1y agoyoure implying that Stage Manager is Java. I dont think thats true though? Isnt it only the _design_ of stage manager somewhat resembles some design choices by project looking glass? this design has also been adopted by the other OS's like windows+tab has previously (in win7 days) created a similar looking view - though it no longer looks like it nowadays.
- bestham 1y agoThe Project Looking Glass UI != The Project Looking Glass They are talking about the UI which could have inspired Stage Manager. Apple also had the purple window button before Project Looking Glass so there is that.
- heavyset_go 1y ago> this design has also been adopted by the other OS's like windows+tab has previously (in win7 days) created a similar looking view - though it no longer looks like it nowadays. Looking Glass-like switchers are still available in Plasma
- blauditore 1y ago
- SkiFire13 1y agoMultithreading doesn't automatically make stuff smooth. It allows you to increase throughput, but it can also increase latency if don't have enough work or you split it too much.
- sapiogram 1y ago> I bet it’s smooth given how concurrent friendly Go is with channels and go routines etc. You can do the same in any language with threads, and a library providing channels. Hell, you could probably do it better with a library, go's channels are unnecessarily error prone with nils, channel closing, and cleanup behavior.
- tsimionescu 1y agoWhile I agree on channels, you can't easily reproduce the behavior of Go's threads in other languages. The whole Go IO library is built with support for Go's green threads. The result is that 1000 Go threads waiting on IO operations will actually issue only a handful of OS non-blocking IO calls and have the runtime handle polling and waking up the right threads. Not sure how relevant this is for UI operations, to be fair. The C#/JS style async/await model actually seems more amenable to controlling which works happens on the necessarily single GUI thread and which parts happen in background threads, and how to sync them later.
- ikiris 1y agoBased on the name its probably based on Fyne... Last time I tried to use fyne was not great. They overly fixate on mobile first to the detriment of any other platform.
- andydotxyz 1y agoFyne has never been focused on mobile first - it is platform agnostic. Desktop performance is incredibly fast and mobile performance is nearly as good (Fyne v2.7.0 will deliver a huge speed boost this month). If you haven’t tried it in a couple of years I highly recommend you give it another go.
- nickcw 1y agoI'm looking forward to the v2.7.0 - I think this will fix the glacial scrolling on Android which is great!
- ikiris 1y agoThis is also the type of response you’ll get if you bring up any issues. Their marketing people will come argue with it instead of trying to fix things. I basically gave up dealing with them and went back to suffering through qt. The project looks promising and I’d love to use it but the actual experience is regret every time I’ve tried.
- andydotxyz 1y agoI don't understand this - are you calling me a marketing person? I started the project and continue to do most of the coding. Feel free to tell me I don't know what I am talking about but I would like to know more what we can do to dispel the idea of being mobile focused...
- pjmlp 1y agoI bet running circles around the JavaScript mess of GNOME.
- kristianp 1y agoThe last commit for the dev branch was 3 days ago, so there is some development still happening. The last merge to main was March 2024, though.
- rowbin 1y agoI think they use master for releases only. Development branch is actively worked on and more than 100 commits ahead of master which is totally active. Last full release March 2024 is totally fine. People can always build from develop branch.
- repeekad 1y agoReminds me of when someone at the company didn’t like the branch master so they unilaterally directed their team to start working on “main”, resulting in a massive merge conflict that took over two weeks of dedicated effort to resolve, ugh…
- IshKebab 1y agoThat's hilarious. I'd be so pissed if I was their manager (or their manager's manager).
- DagsEoress 1y agoBrainless politics ruined coding
- gouggoug 1y agoSomewhat related... At [company x] someone wrote a starter guide that tells developers to create a "production", "staging" and "dev" branch for any new repo. We have tons of repositories that follow this pattern. For many of them, each branch has taken of its own life and could be considered its own completely different codebase. It's a nightmare to manage and it confuses developers on a regular basis. Don't do this. If you want to deploy different versions of your software in different environments, use SEMVER and git tags. Don't create 1 branch per environment... I have since edited that starter guide and crossed out this recommendation.
- cfn 1y agoThis actually looks quite good for a brand new development. I am big fan of vertical docks but that vertical time...
- sgc 1y agoLast update to master was last year, develop not much more going on. It looks like it was started 7 years ago.
- andydotxyz 1y agoIn the last few months we have added a built-in compositor, a new screensaver, file manager integration and a bunch of optimisations. Seems like pretty decent progress to me.
- Cthulhu_ 1y agoMaster isn't the development branch though; you want these things to be fairly stable.
- sgc 1y agoThe 'develop' I mentioned is the name of their development branch. Regardless, one of their contributors made a couple sibling comments in this submission indicating there is more work going on than immediately visible by quickly looking at commit timestamps - which I am happy to hear.
- bmicraft 1y agoNew? It doesn't even look like it supports Wayland.
- sam_lowry_ 1y agoX or Wayland?
- shmerl 1y agoIt seems to rely on compton so no Wayland I guess, which makes is an interesting toy, but not a serious option.
- em-bee 1y agoit uses fyne.io, which supports wayland as of version 2.5. and it also says that it runs without those runtime dependencies, except that the experience will be degraded. so the question is how degraded, and what will it take to fix that?
- shmerl 1y agoI see, that's good.
- andydotxyz 1y agoThe compositor external dependency was really just an experiment and we replaced it already. You can still turn of compositing but it does offer better speed for tabbing around windows and also means you can make each transparent independently :). The new default is that background windows become slightly transparent. https://www.dropbox.com/scl/fi/8o0tmimx09pwak2h0lfi0/fynedesk-files-backgrounds.png?rlkey=yww8wtpcofb66q31br6rxdckx&st=asb7jj2f&dl=0 https://www.dropbox.com/scl/fi/8o0tmimx09pwak2h0lfi0/fynedes...
- em-bee 1y agocompositing is not the issue but as others have mentioned dependency on X11 is. i look forward to be able to try it when it works with wayland. but don't let us pressure you. it will be ready when it's ready. not earlier.
- deleted 1y ago
- pjmlp 1y agoFor me it could be the foundation of a modern take on Oberon and Inferno linage of operating systems user experience, given how Go came to be, with mix of Limbo and Oberon-2. Having the desktop environment, and given Go's stance on dynamic linking (and kind of abandoned plugin package), replace the dynamic behaviours in Oberon and Inferno commands and application extensions, with D-Bus or net/rpc. However given the state of desktop fragmentation, most likely it wouldn't be worth the effort, only to get the feeling how it could be like.
- andydotxyz 1y agoMy ambition is for it to be the best desktop for developers or people learning to code. We are integrating an app editor into FyshOS which (although now renamed and at https://apptrix.ai https://apptrix.ai) can be seen in an old video as a preview: https://youtu.be/XXmDmn-et4E?si=5n1Ao-V6dKurXzS6 https://youtu.be/XXmDmn-et4E?si=5n1Ao-V6dKurXzS6 (mostly from 15:30 in)
- pjmlp 1y agoThanks for chiming in, and the link, now I will have to waste some weekends with Fyne Conf content. :)
- andydotxyz 1y agoPerfect :) there are so many great projects and that conference introduces some excellent looking apps.
- Rochus 1y ago> given Go's stance on dynamic linking (and kind of abandoned plugin package) There is indeed a promising alternative to Go plugins which - very similar to the Oberon System - directly loads and runs the object files generated by the compiler: https://github.com/pkujhd/goloader https://github.com/pkujhd/goloader.
- pjmlp 1y ago
- pablo1 1y agoWayland is a must for me at this point. If it starts supporting it I will give it a serious try
- andydotxyz 1y agoYou can expect work to begin on that after the upcoming major release. We are waiting on a fix in an upstream library.
- brabel 1y agoHonest question: why? I tried Wayland for a while but couldn’t tell what is different about it as just a user.
- pacifika 1y agoSearch for Wayland I think the debate is not new.
- gorgoiler 1y agoNot OP but seamless (tearfree) rendering and fractional scaling for displays are the two big goodies, for me.
- andydotxyz 1y agoIronically we have both of those on this Fyne Desk running in X. Tear free is provided by the compositor and the fractional scaling was never impossible with X it just had to be coded into the toolkit and most could not be bothered. Fyne has always supported fractional scaling and I think Enlightenment does too.
- rudderdev 1y agoLooks promising. Will try this weekend. Any tips to quickly try it out?
- andydotxyz 1y agoJust make and make install in the root of the source is easiest then log out and pick it from your login screen. However if you want to try it in development mode you can “make embed” to try it in an embedded X session.
- omgmajk 1y agoPrevious discussion: https://news.ycombinator.com/item?id=40011100 https://news.ycombinator.com/item?id=40011100 (2024, 64 comments)
- jjoe 1y agoWill definitely give it a shot this weekend. Any known quirks to be aware of on Pop!_OS 22?
- robert-zaremba 1y agoIt's based on X11, unfortunately. I've fully transitioned to Wayland based desktops I would be very happy to try FyneDesk if it would be based on Wayland. I see they work on full Wayland support, and targeting to do it in v5.0. What's the ETA? Last release was 1.5 year ago! > The 0.4 branch of releases marks the end of X11 native implementations as we will begin the move to Wayland (and XWayland) for 0.5. > https://github.com/FyshOS/fynedesk/releases https://github.com/FyshOS/fynedesk/releases
- hsbauauvhabzb 1y agoYour comment seems very entitled. When it’s ready, and faster if you help.
- SpaceNugget 1y agoIt's not entitled to not want to try out some new thing if it has major drawbacks over what you are already successfully using. If someone randomly comes up to you and offers you an apple with a rotten spot and you say "No thanks, there's a big rotten spot" would you expect them to scold you for being entitled and looking a gift horse in the mouth? _They_ came up to _you_ offering an apple!
- hsbauauvhabzb 1y agoNobody came up to them though, they opened a hn article that wasn’t posted _for them_, decided the product isn’t for them, which is fine, but then decided to post about how it’s not for them. The project maintainer didn’t ask if the project suited gp, nobody did.
- rootlocus 1y agoNobody asked anyone anything. It's a post with people sharing thoughts. You don't even know if the maintainer is the same person as the author. As far as feedback goes, if the comment gets enough upvotes it shows a significant number of people share the sentiment, and would be something for the maintainer to consider if he wants a broader audience. Nobody expects the maintainer to respond or care though.
- ingen0s 1y agoNice werk
- scottydelta 1y ago[flagged]
- jamesnorden 1y agoSo true, 3 days without commits is too much.
- gjvc 1y agowho is "we" and are you part of "them" ?
- hu3 1y agoPerhaps you could use some tips on using GitHub.
- jamesnorden 1y agoIf anyone else was wondering, after some digging around, I confirmed you can change the window decorations/buttons to the right side, seems like that was added on version 0.2.
- gjvc 1y agogod i would love a sensible windows 2000 or macos 10.6 desktop right now
- giancarlostoro 1y agoOh man. This is really interesting. Might have to try it out. I have been experimenting with Fyne and like it. Been wanting to mess with customizable DEs but hate the whole headache of setting most up. Go makes things doable for me.
- andydotxyz 1y agoYes give it a play - we are trying to make it super easy to get into developing on the desktop environment. For example the modules on the panel or desktop are basically just functions that return a `fyne.CanvasObject` so it's basically just like making a panel in a Fyne app :).
- giancarlostoro 1y agoAre you guys on IRC or Discord or anything?
- andydotxyz 1y agoSure thing, we hang out on the Fyne Discord server https://discord.gg/uWPJpkKcR https://discord.gg/uWPJpkKcR
- giancarlostoro 1y agoPerfect! I'll be sure to pop in later today, I'm on Arch Linux, currently using Wayland, so this will be interesting!
- danielspace23 1y agoFyne is an interesting library, and although I'm sure it can do a good job on the desktop, last time I tried it I was disappointed by how "meh" it works on mobile (Android in my case). It does run, but I feel like it's more of a prototyping tool, or a tool for building internal apps. It's kinda slow, graphically inconsistent with the rest of Android, and it has little to no support for features like foreground services, the camera, and more. I really hope they can improve, but with limited resources and funding, and such a wide scope, I'm not sure if they will ever be ready for more complex projects. In any case, best of luck to the devs!
- andydotxyz 1y agoPlease check out v2.7.0 - the optimisations for mobile are amazing. Camera and services are coming in another release - work has begun. It's amazing what has been done with virtually no funding - if anyone would consider sponsoring then truly incredible things could be delivered :).
- gwbas1c 1y agoI'm trying to understand who is behind this and what their motivations are. Is this developed as a hobby, is this part of a for profit venture, an academic project sponsored by a university, or ...? The best I can find is the parent Github account, which has two users: https://github.com/FyshOS https://github.com/FyshOS
- andydotxyz 1y agoThe project is being developed as a volunteer open source project because we think it should exist. There are 4 core members on the team https://github.com/orgs/FyshOS/people https://github.com/orgs/FyshOS/people but we accept contributions from around the community. We are always looking for sponsorship and of course commercial partnerships would be pretty cool too!
- _cenw 1y agoJust FYI, there's only two members who are visible if you're not in the organization yourself.
- andydotxyz 1y agoOh that is strange, I didn't realise it was different for internal vs external! I fixed my visibility but one of the team is marked as private for their own reasons. Basically the project came from the Fyne community because we can build all GUI apps so fast now that it was a shame not to have a desktop environment with the same benefit :).
- williamDafoe 1y agoSo to summarize - Fyne is a (? cross-platform ?) library for GUI apps, and you believe it's more productive than existing libraries, so you wanted a native window manager because ... exactly why? what exactly is the savings or advantage?
- 1y ago
- bogwog 1y agoI too am not looking to move to something that doesn't support Wayland (mostly because of Nvidia, who I doubt will support Xorg forever), but I don't share the negativity in the comments. This looks great, especially since it seems to be part of a larger effort to create a cross-platform UI toolkit (https://fyne.io https://fyne.io). The world needs more developers tackling ambitious projects like this, and less OpenAI API wrappers. Keep up the good work!
- andydotxyz 1y agoAmazing comment and thanks for the support!
- entropie 1y ago> that doesn't support Wayland Dont know what the state is but they work on it https://github.com/FyshOS/fynedesk/issues/76 https://github.com/FyshOS/fynedesk/issues/76
- AlienRobot 1y agoWhat does this do (or will it do) better than existing DE's?
- andydotxyz 1y agoIt is really easy to code on, supports lots of different platforms (including embedded and mobile devices). Some times established projects can be superseded with newer ones build with more modern tools. I get that feeling in this space and it's huge what has been built already.
- laurent_du 1y agoI have been a Linux user for 20 years and I have no idea what display server or windows manager I use. Every time this theme pops up on HN a lot of people argue very passionately about this and I feel I have no understanding at all of this. What are the stakes? Why does this matter? Why is there so much argument going on around Wayland, Xorg, X11 and whatever?
- lugu 1y agoI guess it is like cars, some drive them, and some like to open the hood. That make a nice topic for discussion because we can all share anecdotes of broken stuff on Linux desktops. Same for Emacs/vim, instead of sharing what we are programming, we complain/argue about editors, because they are the shared experience we have in common.
- deleted 1y ago[deleted]
- oflebbe 1y agoI played with fyne some months ago. Binaries are gigantic and what does drive me crazy it is consuming cpu all the time even if it should stay idle
- andydotxyz 1y agoAny known CPU usage bugs have been resolved. Last time it was the cursor animation but we fixed that too. I can now compare our apps to OS provided native equivalents (we're not there yet but it is getting close!)
- hulitu 1y ago> FyneDesk: A full desktop environment for Linux written in Go Monocrome icons, tiny scrollbars, label buttons, Material design at its finest. Nothing new here. /s
- hoppp 1y agoYou like fyne a lot, huh? I started writing a desktop app with it but got stuck, it can't really do very nice tables and the styling is not flexible enough for me