What software have you found particularly frustrating or difficult to configure on Linux?
it’s embarrassing but for me it’s thinkfan. Instead I wrote my own solution in bash.
Multiple versions, paths, and installs of Python. Using pip makes it worse.
You really don’t want to use pip. That’s how you download malicious code.
Especially during the transition from 2 to 3. Let’s hope that’s all behind us.
I have limited Python experience, but I always thought that’s what virtualenvs and requirements.txt files are for? When I used those, I found it easy enough to use.
pyenv and pyenv-virtualenv together solves this for me. Virtualenv with specific python versions that work together well with other tools like pip or poetry.
It boils down to something like
$ pyenv install 3.12.7 $ pyenv virtualenv 3.12.7 myenv $ pyenv activate myenv
and at that point you can do regular python stuff like pip installing etc.
If you’re having to type out version numbers in your commands, something is broken.
I ended up having to roll my own shell script wrapper to bring some sanity to Python.
You misunderstand, the first two commands are just one time setup to install a specific python version and then to create an env using that version. After that all you need is `pyenv activate myenv´ to drop you into that env, which will use the correct python version and make sure everything is isolated from other environments you might have.
You can also just create an env with the system python version, but the question was specifically about managing multiple versions of python side by side and this makes that super easy.
You could also combine it with
direnv
to automatically drop you into the correct environment based on the folder you are in, so you don’t have to type anything after the initial setup.The issue is more general. When dealing with, say,
apt
, my experience is that nothing ever breaks and any false move is immediately recoverable. When dealing with Python, even seemingly trivial tasks inevitably turn into a broken mess of cryptic error messages and missing dependencies which requires hours of research to resolve. It’s a general complaint. The architecture seems fragile in some way. Of course, it’s possible it’s just because I am dumb and ignorant.When you come across some Python code for something written 5 years ago and they used four contributed packages that the programmers have changed the API on three times since then, you want to set up a virtual environment that contains those specific versions so you can at least see how it worked at that time. A small part of this headache comes from Python itself mutating, but the bulk of the problem is the imported user-contributed packages that multiply the functionality of Python.
To be sure, it would be nice if those programmers were all dedicated to updating their code, but with hundreds of thousands of packages that could be imported written by volunteers, you can’t afford to expect all of them them to stop innovating or even to continue maintaining past projects for your benefit.
If you have the itch to fix something old so it works in the latest versions of everything, you have that option… but it is really hard to do that if you cannot see it working as it was designed to work when it was built.
I still don’t fully understand how to gracefully have multiple desktop environments and switch between them. When I want to try something new to me like lxqt, I usually spin up a VM.
Normally, the process is:
- install the packages for the desktop environment
- log out (not just locking the screen)
- find a dropdown or cogwheel where you can select the other desktop environment
- log in
Having said that, I don’t know what you mean with “graceful”. Desktop environments may involve lots of packages, which may create configuration files in your home directory or get auto-started in your other DEs, so it can be messy.
Something minimal, like LXQt or the various window managers, isn’t going to cause much of a mess, though.I guess, creating a second user with a separate home-directory, like the other person suggested, would isolate that potential mess…
Just add a new user
It used to be button 10 (also counting 4 scrollwheel directions and click) of my Elecom trackball. I had written a small C program reading the device node and writing the events just of that to stdout, then piping that to a tclsh script (so I could change it easily and it’s still super fast for gaming) which did something in X. Horrible. But then they added support for more buttons to everything (kernel, X) and now I can just map it in games, like any other.
Trying to configure Sway in NixOS. I gave up and just use KDE Plasma. I do miss using Sway from when I used Arch, though.
Wild. I used sway for the first time with Nix since I could rollback a misconfiguration.
I use i3 - Sway is supposed to be 100% compatible with i3 - and I find the configuration file very straightforward. What’s different in the version in NixOS?
Xserver… Somehow trying to find the magic string of letters and numbers that made your screen work.
Modeline ftw.
Shudder. I had this weird brand laptop… Sotec IIRC and there just wasn’t a modline that ever got it all right.
Just recently XDG Portals to get video sharing working. It just kept using the GTK fallbacks instead of KDE as I configured it, but it used the correct ones when starting from the terminal.
Eventually I figured out I had set an env override for
XDG_CURRENT_DESKTOP="sway"
in my user systemd environment, because that’s what I used previously.Setting up Alpine or Mutt with multiple SMTP accounts is an exercise in frustration.
Recently? Email notifications for my crontab jobs. I learned that snapraid sync had been failing for 200 DAYS. I was thinking it’d be easy for some reason. It hasn’t been.
Overall though, Nextcloud was a nightmare and I just gave up.
In recent years I’ve found NextCloud to reasonable. A little delicate initially, but once you have it working, the upgrades are very easy.
I also realized that I just didn’t need all of the functionality and such. In reality I just need a file sharing system akin to Google drive.
XDG portal filechooser for Firefox: the KDE implementation uses Dolphin, which is full of features and I use most of them; the default GTK one is mildly infuriating to use and looks ugly too, but getting the browser to use the portal I want was a nightmare - especially since GTK discontinued the GTK_USE_PORTAL envvar.
The related Firefox config entries make no sense either.Can you explain a bit more about this and how to configure it? When I use FF on gnome, the save dialogue just looks like other dialogues?
I think GNOME’s filechooser is the GTK one (never used it so I’m not sure), mine looks like this:
It’s entirely possible that Firefox changed and now uses XDG portals by default, I configured it like this a long time ago.
As for how to configure it, I honestly don’t know.
It was a combination of messing withwidget.use-xdg-desktop-portal
on about:config, and changing XDG envvars and dotfiles; both by following several conflicting Reddit and bbs.archlinux.org posts.widget.use-xdg-desktop-portal.file-picker=1 in about:config should be the only thing you need. @projectmoon@lemm.ee
Seems to be the only necessary thing in my case! Thanks.
Yeah I definitely have the default GTK chooser. Guess I have some config playing to do later.
When I was on Hyprland, I had to start Firefox with
XDG_CURRENT_DESKTOP=kde
while having both the KDE and GTK implementations of XDP.Instructions for changing it here
https://wiki.archlinux.org/title/Firefox#XDG_Desktop_Portal_integration
Motion on my RPI. I didn’t want it to save videos or photos, so I turned it off in the config. But it still saved them. So I tried a few other places in the config to turn it off, but nothing worked and I’d run out of space within a day. So I changed the save directory to /dev/null.
Then I tried to upgrade the pi, and the new version of motion has a different config, incompatible with the old one. So I’m running the old one.
hyprland but I’m a noob
Suspend with an Nvidia gpu
I gave up and went back to x11. The final straw was when system settings stopped opening, and I couldn’t figure out why.
hostapd. I have no idea how you’re supposed to figure out the 50 or so options OpenWrt outputs for an AX card that I just ended up copying. And why doesn’t it detect those on its own?
Cloud-init. The config yaml is rather straight forward, but I can’t convince my VM to execute it, and it’s driving me nuts.
It was definitely a headache for me as well, but you need a guest agent (like vmwaretools or qemu-guest-agent), a cloud init ready template for the distro of your choice, a cloud init config file (network/user/vendor) and a custom SCSI/ide cloudinit cdrom mounted at boot on your VM. You also can find cloudinit logs on your VM to try and figure out what’s missing or what went wrong.