

One thing to understand here is that it mostly depends on the “desktop environment”, which is basically the GUI of the system. (Imagine you could have the Windows XP GUI on a Windows 11 PC. Or the macOS GUI on a Windows 11 PC.)
Distros intended for desktop use will typically come with a certain desktop environment by default, so to some degree, you can talk about the distro, but yeah, there’s just gonna be a strong correlation with their default desktop environment.
To my knowledge, GNOME and (recent/Wayland versions of) KDE have good support. Most comments here imply these two desktop environments, so for example Ubuntu, Fedora and POP!_OS are typically GNOME, whereas Kubuntu and Nobara are typically KDE.
Some folks here also mention Linux Mint and LMDE working well, which use the Cinnamon desktop environment, so I guess that works well, too. Cinnamon is somewhat based on GNOME.
Well, and Elementary OS’s whole shtick is its Pantheon desktop environment, which is also based on GNOME.
So, basically, as Elementary’s Pantheon is its own thing, there’s no guarantee that it’ll work, but I would not be surprised.
As someone else already said, you can use a Linux Live USB to try it out before installing. You should be able to just follow along the installation instructions of Elementary OS and shortly before you actually install things, you should find yourself in Pantheon and can try it out.
I also have basically only my personal experience to go off of (from studying computer science), but I never had to plug hardware into my laptop. Printers were available over the network and the one time we worked with hardware, they had dedicated lab PCs there, which had the necessary software pre-installed.
From what I’ve heard on the internet, that’s quite a common theme. Lots of hardware equipment is ridiculously expensive, so you don’t go buying new equipment when accompanying software doesn’t work on newer operating systems anymore. Instead, you keep a PC around with that old OS and the software, specifically for operating that hardware.
I guess, kinda? In my head, a Verein is definitely more of a hobby/socialising thing, but I do have to say that “club” certainly doesn’t feel impactful enough. Like, Germany as a whole would fall apart, if you took the Vereine away.
For example, the Red Cross is an e.V. here. There’s e.V.s that support the local voluntary firefighters (although those are also organized by the municipality). We’ve got big-ass nature preservation e.V.s that do really important work in suing awful corporations. Local sports organizations and orchestras and whatnot are also organized as e.V.s. And perhaps the most relevant in this community is the KDE e.V., which helps organize/assist the wider KDE community.
So, yeah, some of them definitely do work that one might expect from a charity…
You have to think of them more like a club rather than a non-profit company. Their legal form “eingetragener Verein” does mean “registered club”.
Basically, here in Germany, you can register a non-profit club and then you get exempt from taxes. And folks who donate to your club can also get that donation exempt from their taxes.
I have a web music player that I’ve developed, and while it was never really intended to be used by others, I thought I had generally followed accessibility best practices. After using it for about two years, I realized that I never even implemented keyboard shortcuts. 🫠
Which is to say, one shouldn’t assume devs to know what they’re doing. At some point, I’m also just a user and I use software like everyone else does, meaning I pick out a path that works for me and then I hardly look left and right from there.
Features not being tested when you don’t use them yourself, that happens with any feature. But it’s much worse for UI features, because those are difficult to automate tests for. And accessibility is in an even worse spot, because it necessarily opens up a separate path, which is going to be invisible to me as a user, so it gets covered by neither automated tests nor by me just using the software.
I have to go out of my way to test accessibility, which means I have to be aware that a change I’m making might introduce a regression. That’s genuinely how lots of amateur developers work, which is probably the best explanation why accessibility support is often so amateur-ish…
I don’t think that was entirely serious…
Seems like it’s Apache-2.0, but original sudo is under ISC license, which is more permissive as far as I’m aware. Although Apache-2.0 is very much still considered “permissive”, too.
renaming symbols, presenting documentation, formatting files,
Yes, these are supported via the Language Server Protocol (LSP). I’ve mostly been using it with the Rust LSP server (rust-analyzer
) and well, it typically works, but sometimes you have to tell it to restart the LSP server and stuff (which isn’t a huge ordeal, but don’t expect everything to always work as well as in a full-fledged IDE).
I believe, for formatting, there’s also some non-LSP support.
showing code diagnostics beyond syntax errors (for example code smells or so),
This is supported in principle via LSP, too, but it depends on the specific LSP server, how much info it provides. The Rust compiler gives out relatively much on its own, which is passed on by the LSP server, but you can apparently also configure it to use the linter on save.
have AI integration (explain this, rewrite this, replace this with prompt output, …),
Not out of the box. There’s a way to define “External Tools”, which basically allows you to run commands and pass arguments to them and then use their output. For example, you should be able to define an External Tool, where you can select some text, then press your keyboard shortcut for that tool, so it sends the selected text to that tool and then it takes the command output and inserts it instead of the selected text.
While this is a powerful concept, I don’t know, if you hit limitations at some point.
specific framework integrations (reactjs, django, actix, …),
Nope, except where this might be covered by LSP. But there’s no obvious way to just install additional plugins, for example. You get about thirty built-in plugins and that’s it.
and stuff like expanding macros in C/C++ and Rust?
Well, expanding macros is also possible with the Rust LSP server. Don’t know about other languages.
openSUSE has the best integration of KDE, but I wouldn’t expect to see issues like yours on any distro, really…
Yeah, good point. It also doesn’t update when the content of a file changes. So, in order to detect a change in a directory, you have to walk all the files and sub-directories and the directory itself to get the last-modified timestamp for each of them. Then determine the highest last-modified and compare it to what you measured in a previous run. If they differ, a change happened.
Yeah, I’m building more-or-less an alternative to make
. Major difference is that I’m not using shell commands, but rather users will define their build code in Rust …because it’s intended to be a build tool for Rust applications (beyond what cargo
does).
Thanks for the comment, though. So far, I haven’t limited inputs to just be files, so I don’t actually assume to have a last-modified timestamp. Rather, my assumption is that I can get some value which changes when the input changes. In the case of a file, that’s the last-modified timestamp, but theoretically, it could also be a hash. But that means I have to store these values to be able to detect a change. Being able to just say that one thing is newer than the other without storing anything, that is pretty cool and might be worth changing my assumption for.
I don’t think, inotify works for me, because I don’t have a continuously running process. My users rather just run some build
command and then I go and check, if any input files changed since the last run.
Frankly, I would be surprised, if anything uses groff for displaying --help
, unless it shows the man page for that.
The most basic implementation of --help
is a manually formatted multi-line string written into the source code, which gets printed as-is.
For dynamic layouting, you do need more logic, but rendering it to groff source code first does not make that easier. For tabbing, you print an appropriate number of \t
.
openSUSE, because of the snapshotting. It’s zero-setup and just gives peace of mind when doing upgrades, as I can roll back even from the bootloader.
I have no experience with this, but I figured a Rust library might have tried to solve it (static linking is very much the norm here) and I found that ash
can statically link the “Vulkan loader”. I don’t know, what that actually means, for example whether it would still load libxcb
at runtime. Might be worth looking into what they do…
See the “Optional linking” section here for their description: https://crates.io/crates/ash#optional-linking
Well, as the other person said, it was not a failing of LiMux. It was political. Munich had been ruled by one coalition throughout the lifetime of LiMux and after it went to a different coalition, they announced the switch back.
The manager of Munich’s IT department also publicly stated that they were surprised by the decision, because there are no larger technical problems and compatibility is resolved by providing virtualized MS Office, where necessary.
Coincidentally, Microsoft also moved its German headquarters from just outside of Munich’s tax region into Munich around the same time.
Good way to extort get Microsoft to offer competitive prices. ¯\_(ツ)_/¯
But yeah, it was the city of Munich that had a few goes at this. Now it’s the state of Schleswig-Holstein.
The thing is, everyone would agree that it’s a strength, if the Debian-specific format was provided in addition to a format which runs on all Linux distros. When I’m not on Debian, I just don’t get anything out of that…
Same. I guess, this is the Starship thread now. My config:
I adapted it from the Gruvbox Rainbow theme.
I can post my config, if anyone wants specifically that. (It does kind of assume a light background, though.)