Wayland on NixOS: Confusion, Conquest, Triumph
drakerossman.com
drakerossman.com
However sudo -i, sudo su, and sudo su - are all common ways to achieve the desired result, with very subtle differences. Sudo su - is my preferred method because it puts you into a root login shell rather than just a shell with root privileges.
But these are all pretty pandantic to call one way correct, and others incorrect.
> Run the shell specified by the target user's password database entry as a login shell.
Contrast to -s option:
> Run the shell specified by the SHELL environment variable if it is set or the shell specified by the invoking user's password database entry
Until the tooling introduces a breaking change or new cooler way to do things appear and people stop supporting the old way because "everyone switched anyway". Been there, done that.
Yeah, if any of that is even remotely true then something is horribly wrong with your system.
Most of the time the deprecations require no action on my part, I simply rather keep things tidy and make the warnings go away.
> In a way, it’s reassuring to see that niche Linux distributions have changed so little in the decade since I last used one.
You are misunderstanding what I am saying. The situation is very different. There are still Linux/Wayland/NVidia/Whatever issues, but configuring NixOS is not among them.
Here to confirm that you can usually ignore those warnings for a year or more, hahaha.
For those not familiar:
Nix tooling introduced flakes. The community generally likes this feature since it provides a couple of significant improvements on how nix gets used.
There was a breaking change between 2.3 and 2.4 for even the non-flake code; but, that was partly because 2.4 was a huge release. (2.3 released in 2019/09; 2.4 in 2021/11). Releases since then have been smaller and more frequent.
The reproducibility of that would not be nearly as high.
For example, if the source of those applications is apt the versions of packages would change over time.
In the time since running the old version of hugo, enough about the system had changed:
- The OS had changed significantly (so re-running an old build didn't work). - The compiler had changed significantly (so compiling from source would have been difficult).
I read this as:
> i am fine with the lack of reproducibility of apt-update personally and its hard for me to grok what benefits reproducibility in the guix sense would get me here
To which my answer is:
Guix gets you the reproducibility benefit of not having the reproducibility harming apt-update.
Does this help answer your question or confuse things more?
edit: and isnt shell a DSL too? one i already know in contrast with Nixlang.
edit2: and not just already know it, but also much much much less likely to fade into obscurity than nixlang... bash/dash/sh aren't ever going away
At some point if you want to configure everything with your own shell script it will be a nightmare to maintain, NixOS is easy to learn in comparison.
i am not sold on the maintainability delta between my script and a guix one, but i only use a text editor, a terminal emulator and two web browsers for 90% of my use, so maybe im just too small scale to run into the maintainability issue it's trying to solve. the main struggle i have is in making the config files, and guix would only add another layer to that.
easy to learn might be a valid consideration for me if i didn't already feel comfortable with scripts of the normal non guix variety, but the devil i know does fine.
Maybe I'll update my script to use named instead of randomly generated profiles, though.
What does it do for multiple profiles?
i dont have to recreate nix to get easy customized installs, my installer script doesnt need to know or do anything about derivations, monads, flakes, etc. it just uses packages from my distro and pulls in my .config directory. what else does nix do that my script should do? the software my script installs is probably more supported than it would be on nix because its on ubuntu, one of the more commonly supported distros.
Nixlang doesn't have a type system sufficient to encode monads, so you don't have to worry about it ;)
> tools that wont fade away, its much harder to believe that about nixlang than its for bash/dash/sh
Bash has been around for over 34 years, which is very respectable. But Nixlang has also already been here for more than 20.
> the software my script installs is probably more supported than it would be on nix because its on ubuntu, one of the more commonly supported distros
wat? Nix runs on Ubuntu just fine...
Installing a list of packages is relatively easy, sure.
A NixOS system configuration also takes care of settings for different services; which typically you'd edit files under /etc/ for.
The closest practical analogue to a NixOS system configuration that's popular is probably setting up your computer.
When it comes to reliably getting a system to an expected state, shell scripts aren't a popular solution.
Nix and Guix are more complex than not using them. I'd compare that to Vim/Emacs being more complex than Notepad.
Also not a popular way to configure a system? They are THE default way, that is being tried to displaced by various configuration management tooling and Guix, no?
If I wanted to sells emacs to someone on notepad I wouldn't have to resort to things as vague and hand wavy and dubious in value as reproducible'). I'd be listing features they lack. The Guix features I want I have, which is simple install of my applications and configs
You don't need Guix to copy files to /etc, you don't need it to install your applications and you can get a pretty reasonably easy custom install with a repo of config files and a script to clone and copy.
Not the parent poster… I’m unclear what sentiment you’re disagreeing with: Are you inferring that velcrovan is against tinkering with niche distros?
I still enjoy the level of sleuthing and tinkering shown in the original linked post, I just choose to spend my time/energy budget on other kinds of challenges, rather than on my personal machine’s operating system. If I had the level of free time I had in my twenties I’m sure I would still be on Linux.
Most users can benefit from security updates, though. They might also (maybe) get better performance, new features and a smoother user experience.
I boot my pc, login, press win+p, type in "fir" which autocompletes to firefox and it starts firefox. And I don't think this process will change much for the rest of my life.
The alternative is a constantly changing menu UI, intrusive popups/notifications, deprecations, and a "oh wait sorry Firefox now has to be Certified from the app store", random telemetry data being sent over, strange unknown but necessary "computation" happening and what else have I missed?
You've missed the part where you can press win+r to launch Firefox immediately (or open if it's already launched, but inactive, or hide if it's active without any autocompletion) on any of those systems ignoring all of the menu UI nonsense, which is also workflow that can remain stable for the rest of your life (also, Firefox is also sending random telemetry data)
And at some point, it really did stop being a problem. One of my biggest frustrations at work, where my only choices currently are macOS and Windows, is that they can't seem to provide me a workstation that functions reliably and predictably compared to what I've gotten used to on my 'fav niche distro'. It boggles my mind how unstable contemporary proprietary desktops are, especially when you tack on the meddling of corporate IT with obscure policy tweaks and a host of corporate spyware. I've even found hardware compatibility and integration pretty lacking on both systems compared to NixOS.
If the hardware provides the luxuary of "presentation" (~vblank) control, an application has to query the appropriate "presentation" wayland interface... namely the application must not expect this interface to be around.
You can see that in vulkan3d with its presentation queue: you post your pixels and forget about it (but there are extra presentation interface beyond the core interface like in wayland).
It through away everything many knew about rendering timing... for very good reasons, aka not planned obsolescence. This is why many are "wtf" about core wayland. Yes, we reached a point in software where innovation means removing and simplifying, not adding and complexifying.
The cherry on top: it makes the wayland core interfaces sooo much simpler, one dev can quickly have a working alternative implementation, and grow it step by step with luxuary extra interfaces.
I say that, I am still running good old native x11, because I game on elf/linux (#noproton), but the second the steam client drops its 32bits legacy code and have a working wayland backend, I start to code my own wayland compositor, probably based on the drm/vulkan one from valve deck, but in plain and simple C, or straight to x86_64 assembly (lurking on RISC-V ofc, since porting modern assembly ISAs is brutal but far from being hard).
(my hardware solution is logitech mx keys & their mouse, pair up to 3 machines at once)
But it seems the really hard part for valve is dropping their 32bits legacy code which is hardcoded for x11 and opengl... they are adamant at keeping it.
This one took a bit of a turn - by the middle you mention that major DEs support Wayland then suddenly transition into disabling XFCE and installing Sway?
It would useful to clarify your audience at the start, and make mention that by default Gnome and KDE already automatically use Wayland if compatible (lady I checked).
If you want, there are dedicated HM options to use for your key bindings[1] and outputs[2] (ie for your background) instead of putting things in `extraConfig`.
[1]: https://nix-community.github.io/home-manager/options.html#op...
[2]: https://nix-community.github.io/home-manager/options.html#op...