I’m sorry, I found your response confusing. Arch is a Linux distro, I know flatpak is available for it. If there’s a bug with flatpak, I would expect it to be pretty much the same across most GNU based Linux systems. My question, however, was why use flatpak on Arch Linux at all, as the AUR has pretty much everything including the kitchen sink… unless you are developing flatpaks, I guess, in which then it would make sense to me.
You don’t owe me an explanation, it just sounded odd to me to be needing flatpak when there was AUR, was all.
quit fucking saying that! I still get random flickering on the desktop and flickering in games on a 1080. X11 is the only thing that lets me actually play games onmhe thing
I’m running Hyprland on my Intel laptop without any issues (but I’m doing not much multimedia on it). But on my Nvidia desktop, oh no. Screen recording is flakey (especially with multiple sources and audio recording to different channels) in OBS, video editing impossible due to heavy UI flickering, gaming has worse performance, watching YouTube has noticable lag.
For just opening your browser and doing non-multimedia stuff it’s fine I guess.
I have no issues with OBS, although I only use it for screen recording. It is my work machine (I’m a dev) but also game on it regularly without any problems. What kind of card do you have?
Maybe for you. Kernel 6.6, Nvidia driver 545 (also tried 535), RTX 3080, GNOME or KDE Plasma, two WQHD 165 Hz monitors. Got flickers in certain applications (for example Steam or some Electron apps), apparently related to how long they need to draw.
Along with Baldur’s Gate Vulkan API halving FPS compared to Windows/AMD on Linux, or getting black models in DX11 (DXVK), certain games straight up flickering or showing other glitches.
YMMV of course, but I find it hard to believe people have literally zero issues unless they have a very limited use case for their system.
I switched to AMD for Linux and while it’s not perfect either, it’s so much better.
I’m using hyprland which adds another layer of instability as hyprland itsself can be ropey with Nvidia
Even with gnome Wayland I have had a number of issues though, electron stuff is dodgy at best, hibernation doesn’t work (might not be Wayland specific)
Applications don’t resize properly sometimes and crash more often
I think it entirely depends on your setup, I’ve had separate issues with Nvidia Wayland across my PC and laptop
No, we have been making our own platform toolkit (libcosmic), which is built upon iced-rs. We are using this both for our wayland compositor applets, and our desktop applications.
iced? Interesting. I though it’s still pretty experimental. There’s no official documentation yet, right? When I was looking at Rust UI libraries Yew and Leptos looked more mature. I guess you’re confident iced have enough backing and isn’t going anywhere.
How do you find working in Rust on a bigger UI project? Any issues?
Iced is a lower level GUI library, similar to what GDK is to GTK. We built our own COSMIC-themed GUI toolkit around iced, which is called libcosmic. As we’ve gotten more and more widgets and application logic developed, actual application development with libcosmic is a breeze. Even if you do have to create a custom widget, it’s much easier to creating custom widgets in GTK. We’re able to develop much faster than we ever could with GTK now.
Yew and Leptos aren’t comparable since they’re not native GUI toolkits. These are for web developers rather than application development. It wouldn’t be possible to use this for developing layer shell applets for COSMIC, either.
Why develop libcosmic around iced instead of going with something else modern that’s easy to develop in such as Flutter? Iced/libcosmic is probably a bit more efficient resource-wise but that probably wasn’t a huge point.
That would compromise our vision of a GUI platform built from the ground up in Rust. It would also not be feasible to use Flutter for applet development. We can easily make modifications directly to iced for all the Wayland integrations that we need in COSMIC, as the iced code base is very lean, and written in Rust.
Got it. So being written in Rust is one of the requirements. Makes sense. Flutter is great for self-contained applications but we can definitely use another sane native toolkit besides Qt that has wider applicability.
The GTK4 project was cancelled for multiple reasons. We originally began working on Relm4 to use GTK4 for COSMIC applets. While others on the team were also experimenting with alternative Rust GUI libraries.
It required a lot of effort to patch GTK4 to support the Wayland layer shell protocol. Getting those patches merged into GTK4 was also taking a much longer time. There were long delays between code reviews; and they also wanted a series of much larger refactoring changes to be made to GTK4 before exposing the layer shell feature. It was much easier to get layer-shell working with iced, as it is a much leaner and concise code base.
GTK does not support fractional scaling, which is something we want our applets to support on day one. This was one of our major concerns. A concern that didn’t apply to iced.
It was also exceedingly difficult to create custom widgets with GTK in Rust. Even those of us with years of experience considered it to be unreasonably difficult. So it was not feasible to expect new hires on the team to be able to comfortably develop COSMIC components with it. In comparison, our team was able to develop custom widgets with iced with much less effort and with greater flexibility, so the demand for iced grew stronger.
At the end of the day, GTK is not a Rust toolkit, and its API is cumbersome to adapt to Rust. Use of GTK would always be a compromise that lessens the developer experience for COSMIC app and applet development. A compromise that would eventually require us to rewrite everything in a native Rust GUI library the moment it would become possible to do so.
Since we are developing a desktop environment from the ground up anyway, we decided that there would be much more value for our time if we contribute to the Rust ecosystem and utilize iced to make a fully featured GUI library for application development.
Makes sense, thank you for the detailed answer! By the way, I saw that gtk apps will be automatically themed, is that only gtk3 or also gtk4? Edit: typo
This sounds really cool. I don’t see any documentation for libcosmic. Are you planning to promote it as an alternative toolkit for building desktop apps or do you see it more as an internal tool strictly for COSMIC DE development?
What’s the accessibility story for blind users for example?
Is it going to be suitable to use with proper bindings with other languages or it’s not an interest at this time or are there plans to support things like that and stability of apis, etc?
You can generate documentation by running cargo doc and browsing the generated web pages in target/doc. There are also examples in the examples directory of libcosmic, as well as a design demo example which is a WIP.
libcosmic is an alternative toolkit for building desktop applications and layer shell applets. It wouldn’t make much sense to build a toolkit only for ourselves. It’s the best way to develop layer shell applets for COSMIC, and other Wayland compositors that support the layer shell protocol.
Now I’m gonna tell you what nobody talks about when moving to Linux:
Proprietary/non-Linux apps provide good features, support and have tons of hours of dev time and continuous updates that the FOSS alternatives can’t just match.
The difference is that there’s a lot of commercial support when it comes to supporting Linux servers due to many reasons, when it comes to the desktop it simply isn’t there.
If you require “professional” software such as MS Office, Adobe Apps, Autodesk, NI Circuit Design and whatnot Linux isn’t a viable options. The alternatives wont cut it if you require serious collaboration… virtualization, emulation (wine) may work but won’t be nice. Going for Linux kinda adds the same pains of going macOS but 10x. Once you open the virtualization door your productivity suffers greatly, your CPU/RAM requirements are higher and suddenly you’ve to deal with issues in two operating systems instead of just one. And… let’s face it, nothing with GPU acceleration will ever run decently unless big companies start fixing things - GPU passthroughs and getting video back into the main system are a pain and add delays.
To make things worse the Linux desktop development ecosystem is essentially non existent. The success of Windows and macOS is the fact that they provide solid and stable APIs and development tools that “make it easy” to develop for those platforms and Linux is very bad at that. The major pieces of Linux are constantly and ever changing requiring large and frequent re-works of apps. There aren’t distribution “sponsored” IDEs (like Visual Studio or Xcode), userland API documentation, frameworks etc.
Thanks for sharing this. I’ve been jobless for the two years since I’ve graduated, and the shame of being a useless bum, and having my freedom restricted due to monetary dependency has been killing me from the inside.
I have no idea who would think you are useless because you don’t have a job. Are you American? Because I think that culture is slightly mentally ill about associating personal value to what job you have.
I’d recommend finding some FOSS projects to contribute to so that you can stay sharp and also add stuff to your resume. Plenty out there that needs worked on, and not all of it can be done by people working full time at another job.
No shame, job market for tech is fucking tough right now, but it will improve. In the meantime, keep your skills fresh. Start some projects of your own that will help you pick up the necessary skills and stay relevant and do freelance jobs on Upwork and similar services.
I was in a very similar situation as you just a few months ago. Worked with several freelance clients and one of them hired me on full time. Pays well and full remote, and luckily in an area that’s isolated from all the craziness happening right now.
You got this! A CSE bachelor’s is way too valuable to stay a bum for long.
I did some weird stuff with a custom Hue CLI Module for my lab. It’s a fun little, fairly kludgey example of something you could spin up super easily.
In Haskell (much of the time), they say if it compiles it ships! It’s a lazily-evaluated language which lends itself well to a config and it slots right into NixOS quite well since Nix is also a lazily evaluated purely functional language.
If you want to use the device for school and work I highly recommend a stable distro over rolling release. When it comes to stability nothing beats Debian and Debian 12 recently released so now is a good time to install it.
Controversial opinion: unless your university studies and work is in OS development, then you should go for Windows or Mac. You won’t have energy or time to keep fixing your laptop OS when an update breaks the Bluetooth driver or whatever when you have a class to attend and assignments to do
A better advice would be: Don’t install updates when you have a class to attend and assignments to do. There is always a risk of breaking something on any OS.
My opinion has been to install PopOS on all my laptops. It’s consistently needed the least amount of fixing to get things like fan curves, or keyboard backlights, etc working
While not choosing a bleeding edge distro is a good idea, there are plenty of stable Linux distros to choose from. And it’s not like Windows is a paragon of stability either. And buying a Mac is a whole other story.
I agree with this in general, but you still may want to consider using Windows or Mac if there’s university only software that is Windows/Mac-based and doesn’t play nicely with VMs, which is really common in test-taking software (since it’s essentially spyware). An alternative would be dual-booting if you want to deal with that.
The reason I say this is that when I went back to school and started course work, there was an online class that mandated the use of certain test-taking software. I tried to get it to work in a VM (by masking the clues of being in a VM), and it kept shutting me down. I ultimately had to borrow a friend’s laptop to take all of my quizzes and tests, which was a real pain. Thankfully, I only had that one class like that, but any others would have driven me to get a cheap throw-away Windows-only box.
In the end, I’d stay away from bleeding-edge for school work, so Fedora is probably your better bet, but there may come a time that you will need to use Windows (much to your chagrin).
I’ve literally never had issues like this with Linux updates, tbf I use Debian and Debian derivatives so maybe that’s why (Debian on my laptop, Ubuntu server on my nas/server, Debian and Mint for my 3d printers). On the other hand I’ve had horrible experience with Bluetooth in windows for audio, some devices losing audio mid meeting but remaining connected for examole.
Yeah, I had sound and printing break on Windows, too. And my mom’s Windows PC breaks every year and a half. I’d say go for linux if you’re comfortable with that, it’s pretty robust. Or MacOS that also seems not to break.
(Of course something like Arch or EndeavourOS is more complicated and may break. Fedora, Debian, Mint … will be a better choice for stability. My Debian install runs without mayor issues for 5 years now. If you don’t do silly stuff an mess with the system, they’ll outperform windows.)
Most people choose an OS because they’re used to that specific workflow and know the quirks and how to get around. That’s why many peoole use Microsoft, not because it’s better. School/College/University is a good time to try something. After that you’re pretty much stuck.
I am curious about this as I’ve never heard of it however for this use case I’m looking for as mainstream as possible so it’s least likely to break in a way nobody’s seen before
Just friggin’ install it. People spend so much time debating “which distro should I install”. Toss a dart at a board and pick one. Install it. Get your hands dirty and go. You’re not naming your first born you’re trying a new OS.
You can run multiple X servers for a graphical multiseat setup. It’s a lot of work to set it up and most of the information about it is out of date though.
linux
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.