I laugh at arch users all the time.
Man, I really don’t understand what the issues with Wayland are. Granted, I’m new here and a pretty basic user so there’s some underlying issue that seems to be breaking people’s setups, I guess I just haven’t encountered it. I went from using Mint for like a month before I switched to Arch. And I only did that because my second screen was acting goofy on Mint and I figured in for a penny in for a pound, let’s see why people are so afraid of this distro and haven’t had any serious issues in the past two years.
My main issue is the lack of xdotool support. It can’t ever be supported because of the way Wayland isolates processes from each other.
See https://gist.github.com/probonopd/9feb7c20257af5dd915e3a9f2d1f2277
I’m aware how buggy it was not that long ago when I first tried it, but once I switched my desktop over I need to use wayland unless I want to lock all my monitors to the same refresh rate. It’s fine. Not really had any issues in the last 6 months, and also enables HDR and freesync, though not at the same time because there’s a flickering issue with HDR and sync.
Wayland has been around for many many many many more years than Wayland has been good enough to use. I think that’s about it.
Arch is definitely the most stable and usable distro for me as well. Fedora and suse shit the bed constantly when I used them. I assume arch has the same image problem due to legacy. I know when I first tried Manjaro maybe 7-10 years ago because everyone said how great it was, doing a simple pacman update after install immediately bricked the computer. My experience with endeavor has been perfect, other than the poor spelling of the team.
Note all of the arch stuff above is for servers. I can’t stand Linux for laptop use, it’s not worth the effort.
I’d been a windows user since the DOS / 3.1 days and converted to Linux maybe 2~ years ago. I’ve found that I’m able to tailor the desktop experience (on desktop / laptop) to exactly what I need. No shitware getting in the way or annoying bundled programs.
My laptop has decent battery life and standby gives me no issues, perfect in my eyes.
I can’t stand windows anymore, and I’m not one to lash out and buy a macbook to just experience another desktop enviornment / user experience.
Admittedly there isnt any professional use just browsing / games with some codium usage.
There are still many things that don’t work on Wayland, which work perfectly fine on X11. If you don’t need any of them then Wayland is perfectly fine, but many people do need them.
For example programs can’t read from or interact with windows of other programs, so for example a time tracking application can’t work, or productivity scripts using xdotool don’t have a Wayland way to work.
Both of these use cases are needed to me.
xx-zones, ext-tray and dbus_annotations are the only protocols I think add anything of value at this point, wayland is pretty close to feature complete, it’s on clients for the most part at this point
I too am upset Rust dropped Linux support a few years ago and never developed the Vulkan graphics engine they had promised. I understand the anticheat issues but still, it’s a fun game. Figure it out, Facepunch.
I was very confused there for a second
I dunno man, I play Rust on Linux all the time.
Can’t do anticheat, but I would have disabled that anyway
Really? I might have to boot up Steam and try it again. Nice, thanks! You use Wine or something to run it?
The guy in this meme always reminds me of Edward Norton.
For some reason, I thought about my first fight with Tyler
I want to like Wayland, I really do. I’m just having trouble adapting after using X11 for the last 20 years.
If anyone has any suggested reading for making the switch easier for someone who’s deeply ingrained in the X11 dogma, I’d super appreciate it.
I don’t think there is any abstract answer for this question. If you open up most modern distributions Wayland is there and the system displays windoze. Sometimes, esp with flatpaks, it displays a wrong icon. it mostly does what it’s supposed to do which is to say doesn’t make me think of it’s existence ever.
Idk what that means. For me, that stuff is just an implementation detail. What dogma is there?
Idk if Dogma was the right word, actually it was probably the complete wrong word. I just feel like a noob again and these error messages don’t mean anything to me.
I get that in the abstract! Even though I haven’t seen a single Wayland-related error message ever lol
Games and streaming on Gnome wayland is just very buggy compared to x11. Alt-tabbing out of a game is gauranteed to have issues, such as windows no longer updating, or windows flickering. It just is what it is.
Most complaint against Rust is fucking culture war, not technical, so people who actually have technical concerns with Rust are being lumped together with Brian Lunduke and others.
I think it’s silly to be against Rust code in the kernel because it’s not C or whatever. Though I do agree with the criticisms of Rust projects shipping with the MIT license instead of GPL.
I hate the culture war stuff. I also hate that the Rust core utils rewrite was done under an MIT license instead of GPL.
A gain of memory safety with a poison pill of permissive licensing is no gain at all.
Rust is fucking culture war
I’ve worked with a lot of devs. I’ve seen a group of devs invent a new language to keep from having to learn a new off-the-shelf language.
I’ve seen devops rip out entire working systems and work on replacement python for months rather than coming up to speed on existing stuff.
It honestly think a lot of it comes from the poor perception of starting over from scratch on someone else’s code vs on your own code.
As in Rust = gay kind of culture war? I’m so OOTL. Please help
Rust was among the first more well known projects, which adopted a Code of Conduct, then grifters in the OSS community cried censorship, which made people flock to it to “own the right”. Even if I think it’s an overrated marriage of flesh between C and OCaml, Code of Conducts are generally a good thing, and the people who really like toxic callouts arre more of an anomaly, and likely were flown there due to the culture war stuff.
People hate rust because of its fences/training wheels, not because it’s “woke”
…actually I just saw someone in this very comment section ranting about “soydevs”, you’re not wrong. But there are valid complaints too! Some of us are just old and think our computers should do whatever we tell them up to and including “shit yourself and catch fire”
But there are valid complaints too! Some of us are just old and think our computers should do whatever we tell them up to and including “shit yourself and catch fire”
I agree with this, but I think rust is fine here. It has
unsafeas a keyword that let’s you do the breaking stuff, it just makes sure you know you’re doing something dangerous and makes it stand out for code reviewersThe whole reason I use Linux is to shit myself and catch fire.
Fucking up is part of the fun. Y’all remember when computers used to be fun?
That’s why I prefer D’s approach for memory safety. Sure, it’s not as well featured as Rust’s, however it has “fat pointers”, three levels of safety, and kind of optional garbage collector.
No quams with wayland or rust, but snap packages, those things annoy me greatly.
Yeah, at least use Flatpac.
I’m cool with AppImage as well, they just work.
I used a daemon to manage my AppImages, worked great until fairly recently where it began mounting way too many FUSEs and just make AppImages stop working altogether. I miss it, because now I have to manually manage the AppImages, and that makes me sad. :(
I’m lazy.
i use Gear Lever it’s alright for managing appimages
I’ll give it a whirl! Thank you!
The most annoying thing about snaps is it’s so unnecessary. Why go to the effort of supporting that when snap exists?
I find snaps quite useful for CLI apps, I’m curious what annoys you about them.
And yes I understand that the backend not being open source is an issue, but it’s not that important imo. Flathub, for example, could change the code on their backend without notice and screw us over.
Ubuntu is owned by a billionair who is calling himself self appointed dictator, they have a long history of forcing their technologies down their users throats ignoring all concerns of the community, which is why it got way less popular and is now mainly doing b2b
I’m curious what annoys you about them
if you write apt install firefox on ubuntu, the snap version is installed.
You can use flatpaks without ever touching Flathub.
Yeah I know it’s just that the network effect leads to most people simply using flathub
@bernhoftbret You forgot systemd
nspawn ftw. I tried avoiding systemd until I found out how much scripting it saved me. the more I use it, the more I like it.
I think everyone has moved on at this point. Systemd became the standard more than a decade ago
Yeah, well I’m still afraid of it
are you
[ OK ] piss_baby.service?It wants my targets!
You guys just discuss this using systemd like nothing is wrong!
Alright grandma let’s get you to bed
Dualboot devuan and void. Do it.
Or Alpine and Gentoo! Do it now!
Or Artix, everyone forgets bleeding edge no-systemd
This one!
Path of Exile 2 started working in wayland native (proton_enable_wayland) and it performs much better than through kwin or whatever is used by default.
Wayland is superior. Yeah I said it.
My gripe with wayland is how it made desktop environments less composable.
With x11 you could sort of mix and match your DE and WM. I could have all the “it just works” everyday computing from Gnome/KDE/xfce/whatever, and the workflow-boost from a Tiling WM. In some cases, making it work was a bodge but it worked.
Now, with Wayland, your WM is effectively your DE. It’s now a constant choice of “do I want tiling? Or do I want to print something, or be able to change my resolution, or to plug a USB stick and mount it without remembering the arcane incantations”.
I just want to be able to print something, and have virtual workspaces per monitor. I could live without tiling.
Fucc yea.
Wayland lets me flawlessly use my 120Hz laptop screen @150% and my 60Hz external screen @100% together. X11 has never been and never will be able to do that.
Unless you want to pass alt tab to another computer on Rustdesk etc.
I do that all the time on Wayland. I have three virtual displays, each with a TigerVNC client session connected to three other computers whose monitors I can see so I can pass my cursor seamlessly across six displays (across four different computers). Once I click in any of them, all key combos go into that instance, which is exactly what I want.
Why tho?
Well one of them is for work communication, two are for dashboards that occasionally need to be poked, one is for swap space, and two are vertical monitors where the actual work happens.
That is just like your opinion man - the dude
People say lots of things.
It’s the best. Everyone says so.
What no systemd?
Why are we afraid of systemd again? /gen
I came in late w/ arch-based systems so legitimately don’t know the lore.
Systemd is controlled by redhat and is a very large part of the Linux stack. It’s become so universal that a lot random stuff won’t work unless the system has systemd.
Compared to X11 to wayland or pulseaudio to pipewire it’s a lot hard to now replace an init system and with that in the hands of redhat which is for profit is not a nice thought.
But you know, fuck it, having systemd is a massive headache for people making distros that’s just gone. Everyone is using the same thing and things just work so people aren’t really complaining. If redhat tries some shenanigans there’ll always be a fork or a systemd compatible init system or even whatever Alpine is using now that’ll take it’s place.
Off the top of my head, in no particular order:
- Systemd and its components are responsible for too many essential system functions. Init, services, mounts, timers, logging, network config, hostname, DNS resolution, locale, devices, home directories, boot, NTP sync, and I’m sure there are others, can be handled by systemd or one of its components.
- Systemd violates the UNIX philosophy of “do one thing and do it well”. Systemd is a complex solution to a complex problem: this thread has several comments by a former Arch Linux maintainer that explains why they’ve switched to systemd, and why the earlier method of using single initscripts was unsustainable.
- It is owned and maintained by Red Hat, known for its many controversies.
- Some people just don’t like modern things and think that the Linux ecosystem peaked in the 1980s.
Most (though not all) of the popular complaints are completely unreasonable. Those people usually see themselves as moral and righteous and expect the world at large to follow their personal creed. I especially consider the UNIX philosophy to be outdated, and strict adherence to it to be an obstacle for modern apps and systems.
I have some issues with systemd, and I don’t like that one for-profit company has such a massive influence over the entire Linux ecosystem, but I have to acknowledge that it works, it works well enough to counter my personal issues, and that the people whose opinion matters the most (specifically Debian and Arch maintainers) chose it for a good reason.
My personal reasons for disliking systemd (note: I still use systemd):
- The lead developer of systemd has said multiple times that we should be fine with break POSIX if it means developing faster.
- systemd has massive attack surface, making it easier to exploit and result in privilege escalation. It is a highly complex and large codebase that really shouldnt be given the trust of PID 0
- systemd is not portable or modular.
- It only just barely got musl support. Hope to see it improve in the future.
- systemd is much slower than other inits (eg. dinit, s6, openrc)
- systemd being the go-to init encourages developers to more heavily depend on it, making it difficult for distros without systemd
The biggest feature I like about systemd is run0, though I wish it was a drop in replacement for sudo. Secondly, I do like that services can be sandboxed.
The lead developer of systemd has said multiple times that we should be fine with break POSIX if it means developing faster.
I mean, so does GNU.
And I dont like GNU even more than systemd lol.
- It’s developed for linux and there is literally 0 linux distributions that are POSIX-compliant, also standard is dead.
- It doesn’t, also moving it to any other PID won’t make any difference.
- It is modular (IIRC there is only three mandatory parts) and portable.
- Was completely on musl side (also musl is as much not portable and modular as systemd 🙃 and in every practical way worse than glibc).
- It’s not an init, nor does it present itself like this. Do you have any benchmarks that show this slowness when doing comparable operations?
- Why exactly depending on a stable system component is a bad thing? Distros without systemd are moving against the stream, obviously there going to be some problems.
Now I want a shirt that says “Linux ecosystem peaked in 1980s”
Wasn’t Linux first released in like 1993?
1991 and yes, that why it would be so great. It would trigger so many linux users
TIL I’m older than Linux and honestly it hurts a little bit.
systemd DOES do one thing really well. Too well. It’s a service manager.
People noticed that it works really well as a framework for their stuff and started plugging all the other stuff in your first bullet point into it. And that also worked really well.Some people just don’t like modern things and think that the Linux ecosystem peaked in the 1980s.
Linux was released in 1991.
That makes the shirt funnier
It’s called a hyperbole.
(edit) But, honestly, it’s still kind of accurate. Many of the most significant software suites that define the Linux ecosystem in more recent decades were written in the 80s or earlier. X (the display protocol) was released in 1984, and X11 in 1987. GNU Emacs was released in 1985. Vi, in 1976. UNIX System V, from which
sysvinitand compatible init systems were adopted, was released in 1983. It’s not a stretch to say that certain people want to regress to the 1980s state, even if the kernel wasn’t around.Funny thing is, nothing in the list adheres to the so called unix philosophy.
It’s a little known fact that the first answer to Linus’ first message announcing his new OS was “You stupid thing, why did you created it? It ruined it! Linux was better before!”.
This sign won’t stop me! I can’t read!
Those people usually see themselves as moral and righteous and expect the world at large to follow their personal creed.
If they don’t like systemd but are forced to use it for some reason, I can understand why they might have some negative feelings
Once I switched to a distro with OpenRC, I stopped feeling the need to argue about systemd
You are forced to use a lot of things bit systemd is where you draw a line? 😺
I see from your other comment in the thread that you’re enthusiastic about systemd, and that’s great.
I’m glad we inhabit a software ecosystem broad enough that we can both be happyI’m not enthusiastic about it, I’m just old enough to remeber how bad were good old times before systemd and a bit miffed how old and untrue statements about it are perpetuated.
I was a long-time Linux user at the time of the systemd switchover.
Your memories of the good old times are your own
“You can’t have programs that do multiple things! Any program that is multi-use is ebil. Standardized syntax and functionality between different related systems? NO! PROGRAM DO ONE THING!”
A lot of this is also a post-hoc justification, UNIX didn’t get shared libraries until some point in the 80s (Can’t find an exact year), so before that your options were to either statically compile the needed functionality into your program or keep it as an entirely separate program and call out to that.
It’s a perfect mix, in a time where enterprise storage was measured in single digit megabytes, and the only efficient way to created shared functionality was via separate programs, and you’ve got an OS that happens to have “easily pass data between programs” as a core paradigm.
And now people invoke it to attack an init program for also monitoring the programs it starts and not just spawning them.
even when said “one program” is actually 69 (nice) different binaries
Wait until these people find out that Linux is monolithic
I recently moved from X11 (BSPWM) to Wayland (Hyprland) and while I did get rid of a very annoying bug with bspwm, it did come with a few of its own quirks/annoyances:
- Hyprland does not yet have the ability to load ICC profiles
- Marking a monitor as variable refresh rate capable forces my GPU to idle at maximum clocks and draw 100W (this one really makes me wtf, but it is nvidia so idk who to blame here)
- Dragging and dropping can be very unreliable for some windows (IIRC, only with Chromium based applications so far)
- Some apps deadlock when attempting to read the clipboard (Again, only Chromium based applications so far)
Maybe if I wasn’t a masochist and installed something normal, such as KDE, I wouldn’t have any of these issues. However, I apparently and unfortunately get great pleasure out of plopping my testicles onto an anvil and smashing them like a blacksmith forges raw iron.
Rust, however, is cool. I like Rust. I can’t say that I approve of replacing everything under the sun with a Rust rewrite for no good reason, but the language itself is fine.
I live programs written in rust. They are quick & lightweight & fun.
Know what i hate ? Installing rust programs with cargo. It’s slow & grinds my Chromebook to a halt.
If you tell me to install an end-user facing application with a programming language’s package manager, I’m out. Like, Adafruit was at one point recommending a Python IDE for their own implementation of micropython called Mu, and the instructions were to install it with Pip. Nope. Not doing that.
Me: I wanna try this node program, how do I install it?
Node: Well first you need to download these 100 node packages using your system package manager before you can use my package manager.
Me: And then I can install node packages at the user-level?
Node: Oh you poor sweet summer child. At the directory-level, of course!
Me: Oh okay. Is… is all this highly necc-
Node: It’s better this way.
Annoyed Maintainer: fine, here’s a Docker file. Stop filing bugs about how you can’t install node.
Average C from source experience: (copied from Kicad)
apt get long list of dependency git clone cd cmake make sudo make install rm -r .Average Rust from source experience:
cargo installMost of the time you should probably not install from source of possible.
I try not to build from source often. My computer is a potato.
Then why do you need cargo in the first place, sir? You install a program written i Rust just as if it isn’t. When you
apt install xzy, you don’t even know what language is used to program it.And if the developer only publishes the source?
That’s your distro’s problem, not the developer’s
I don’t think it is the distro’s responsibility or the developer’s responsibility. I think it is up to a volunteer whether they package it for the distro, or up to you as the consumer to install it on your own, or find a distro with more packages.
What if the developer of this C program only publishes the source code? Evil?
I think that’s valid as well.
OK, apologies, I’ll stop taking weird.
The developer is only supposed to share his code. It’s the distro’s responsibility to provide binary build of famous programs so that most users don’t have to compile. When they don’t, it’s inevitable that individual users have to build it themselves. This has been the norm for decades.
I mean, that’s not a Rust issue per se. It’s only noticeable because
cargois much better than most build systems, and hence is an actual option for distribution of software. But there should ideally always be a binary distribution. I know some people like to build everything by themselves, but I get it, it’s annoying.Okay so, this is less a line in the sand and more a 14 foot concrete wall topped with razor wire and guarded by marines with rifles with fixed bayonets in the sand:
I will not install an end-user application using Cargo, and I will say many mean things to anyone who suggests it.
Python’s Pip or Pypi or PyPy whichever it is (Both of those are the names of two different things and no one had their head slammed into a wall for doing that; proof that justice is a fictional concept) I can almost accept. You could almost get me drunk enough to accept distributing software via Python tooling, because Python is an interpreted language, whether you ship me your project as a .exe, a .deb, a flatpak, whatever, you’re shipping me the source code. Also, Python is a pretty standard inclusion on Linux distros, so Pip is likely to be present.
Few if any distros ship with Rust’s toolset installed, and the officially recommended way to install it, this is from rust-lang.org…is to pipe curl into sh. Don’t ask end users to install a programming language to compile your software.
Go ahead and ask your fellow developers to compile your software; that’s how contributing and forking and all that open source goodness should be done. But not end users. Not for “Install and use as intended.” For that, distribute a compiled binary somehow; at the very least a dockerfile if a service or an appimage if an application. Don’t make people who don’t develop in Rust install the Rust compiler.
For people who do this, is the purpose to ensure you are not getting a bad binary which has some malicious code compiled in?
If yes, isn’t it more difficult to check all the source code yourself? You may as well trust a binary where the author has confirmed a hash of the binary. Unless you really are checking every single line of source code. But then I wonder how you get anything else done.
The incident from
xzgives a good example of where self-compiling stuff would be a good idea.
The code was mostly fine, but the maintainer managed to include malicious instructions in the binary. Most people who read the source, didn’t realise the possibility. I checked it out afterwards and it was still hard to get.The idea is that someone is checking the code. And by building it yourself, you can at least ensure that you’re getting what’s built from the code. It is possible that some malicious stuff was inserted while building the binary that doesn’t show up in the source code. Building from source solves that problem.
Reproducible builds try to solve that problem by generating some provenance from a third party. A middle ground can be building the binary using something like GitHub Actions, since that can be audited by others. That comes with its own can of worms since GH is owned by M$, but I digress.
So it is technically sane to do it, just not very practical in my view. But for lesser known apps, I do sometimes build from source.
Yeah, the good tooling also means it isn’t even terribly difficult for the dev to provide builds, but it isn’t quite as automated as publishing to crates.io, so many don’t bother with automating or manually uploading…
cargo install xyzandapt install xyzaren’t mutually exclusive.Pypi isn’t in any way less an option for distributing software countless projects that use it that way can be used as a proof. Hell, awscli installed from pypi for ages. In my experience cargo is extremely slow at downloading hundred libraries that every program needs and rustc is extremely slowly builds them.
Correction, uv isn’t in any way less an option. pypi is only the registry. If you are using pip you will end up in dependency hell, you might use something like poetry to avoid that, but uv is just better.
But… wait a minute… uv is inspired by cargo, and it’s also written in rust. That’s quite the coincidence, huh?
Also, cargo is fast, it’s rustc that’s slow, and that’s because rustc is doing advanced code analysis. Compiling rust is actually NP-hard, but in exchange for that, the compiler will catch bugs in place of the developer. Which is a good tradeoff considering that you only compile once and run many times.
“countless projects that use it that way” isn’t proof of anything. Countless projects tell you to
curla 2000 lines script intosudo bashthat will fill your os with bullshit.Pip is a sane default that works for absolute majority of cases, anyway correct tool for installing programs from pypi is pipx that eliminates ‘dependency hell’, but ofc new cool tool is the only way to do things.
When little program in rust that replaced previous one compiles two hours compared to previous that compiled in a few minutes it matters.
UV is a lot more than pipx. It installs applications from pypi, without dependency hell, but it also uses hard links when possible to avoid wasting space. But it’s also a dev tool. It manages python installations, workspaces, you can use it to edit the pyproject, it can also publish to pypi, even from a GitHub action if set up from pypi. It just does a lot more.
I know what uv is, also never felt the need for package manager do a lot more. Just not my use case, pip + pipx is enough for me. I do develop in python but I’m trying to do it as tidy as possible without any or minimal external deps due to environment constraints, maybe for web dev or other fields where there is a need to install billion external libraries and multiple versions of them uv is a right choice, who knows. Personally I would prefer first party tool.
None of the issues you’ve described are Cargo’s fault. The long compilation time is simply rustc’s compile-time checks (ensuring type and memory safety is much more involved than lexing in GCC), and the number of dependencies to compile is a result of the crate ecosystem. Cargo is just the front-end that automates fetching dependencies and compilation with rustc. Blaming it for slow compilation is like hitting your monitor when the computer is acting up.
I’m not blaming cargo specifically for building it is slow to download deps as well, which was clearly stated in my first post. I’m going to edit it now.
The Rust compiler is more sophisticated than most compilers, so it can be slower at the same kind of tasks. But it also just does a different task here.
One of the tradeoffs in Rust’s design is that libraries get compiled specifically for a concrete application. So, whereas in most programming languages, you just download pre-compiled libraries, in Rust, you actually download their source code and compile all of it on your machine.
This isn’t relevant, if you get a pre-built binary. And it’s not particularly relevant during development either, because you get incremental compilation. But yeah, if someone wants to compile a Rust codebase from scratch, then they have to sit through a long build.
Try
cargo-binstallI’ll look it up. I’m guessing it install app images?
I’d guess just binary builds, no need to reinstall the entire environment again every time you install something.





























