The out of date problem you mention is something Nix contemplates. As of a couple hours ago, if you try to install Etcher (Balena Etcher, that is), you will get a message saying there’s an out of date dependency: Electron.
You can still try to install End of Life packages, but you have to type an instruction the ‘compiler’ tells you to type out. In other words, you have to be deliberate about installing out of date dependencies.
The other problem I understood it as “if I declaratively do this and then imperatively do that, how do I keep track of it all?”. If that is indeed what you’re asking, you’re right. That’s a problem. That’s why I try to keep everything in the config.
I’ve been using Nix now for a couple of months and the configuration file has been a great friend. Sometimes I don’t know how to configure something and I get lost and worried, but the community has helped me to fix my problems- .
I guess I could’ve worded this better but my second problem was: I would like to do everything declaratively. What do I do when a package doesn’t have its own declarative configuration options? Before it was simple because it was imperative, so I could just change the config file, but not so much in NixOS.
You can still imperatively edit configs for packages where you don’t have / aren’t using the declarative config. You’ll just have the same reproducibility issues that you’d have on other systems. In general all the declarative NixOS modules do is generate the config files you’d normally write yourself, sometimes with some extra error checking. I’ve been doing this for my neovim config because I haven’t cared to port it to the module’s way and I want it to work on systems without nix.
Any package can be “edited” using its overrideDerivation function. You can pass new configureFlags, buildInputs, a new src, etc. It’s all additive too, so when something else about the package changes in Nixpkgs, that’ll propagate to your “edited” package too.
Dang, Suse really coming in strong with this. I still wish they offered openQA too. Between Rancher, and Suse they really do go pound for pound against RedHat.
I just made a post about my musing on NixOS so maybe read that? (here) Basically after the main learning curve it’s pretty easy to use.
I’m getting the hang of their package manager as well, so if need be I can make my own (Like I would for Arch. The AUR scares me from a security standpoint).
My main advice is to not go against the curve. If the manual says that NixOS does it that way, do it that way, because going against the grain is like going through a cheese grater in this OS.
Unlike Arch where you can do things as you want, in Nix you do things using Nix. You can almost always accomplish what you want, but it’s gotta be done the NixOS way. This is actually a benefit rather than a problem once you get used to it, because it starts becoming second nature, and it is extremely powerful.
Before I could fully leave windows, I spent a lot of time being lost in Linux distrohopping and ricing without even fully understanding what I was doing. Without a solid setup to live in, Linux had a weird experimental feel and it got frustrating when I wanted stuff done.
Coming to your case, there are 2 different priorities here: daily driving and Linux proficiency. You’re tied into windows for the daily driving bit for now so your main focus should be learning, and that probably won’t need a dual boot right away.
First up is understanding why there are so many distributions. Linux is the kernel, the common skeleton that you can’t use on its own. There are other modular bits that go on top to make a full fledged OS, and the choices of what those are is what makes a distribution. Learn more about the options available for the modular bits - the ones that you should concern yourself with for now are:
package managers: the program responsible for installing and managing software. This is one of the main differences between the major popular variants of Linux(Debian, Arch, fedora etc). For example, on Debian and distros based on it, you’d use apt. That’s why you would’ve probably used apt on Ubuntu, it’s based on Debian.
desktop environment: all the programs involved with the user interface - the main UI itself. This is a subjective thing and people use different desktop environments based on their workflow.
Once you get this modularity based perspective, distributions wont be overwhelming and vague. You’ll understand why people are recommending mint or popOS:
it’s Ubuntu based and there are many popular Debian and Ubuntu based distros out there. You’ll be able to get software easily and if there’s some problem you need to debug, there’s a relevant question and answer out there
mint’s desktop environment is cinnamon, which is simple, clean and not too jarring for people coming from windows
You’ll also know, you can choose whatever you want as long as it’s Ubuntu based for your learning phase. Only at that point I think it will make sense to dual boot. You can boot in for particular reasons instead of a vague “let me understand Linux”. The reasons will be finding alternative software to daily drive, learning how to use the terminal or just getting comfortable with Linux in general. From there, you can find your own way or reach out to the community with questions specific for your use cases.
NixOS, makes it easy to have the same setup because it's all in one config file. I didn't check it out until last year when they released a graphical installer, now installing/using NixOS is a breeze.
Even if I didn't install NixOS, I'd use the Nix package manager (which is separate, but part of a NixOS system) since it has more packages than the AUR. It's easy to contribute to, so I've been maintaining a package.
It’s crazy how, when you think in terms of modern windows requirements, a dual core, 1.6Ghz, 4.5W cpu sounds like a rock. But if you showed that to someone in the early 2000s running XP with a single core 500Mhz, they would expect it to be blazing fast. Linux gives you the ability to have that performance, along with modern security and functionality, even if windows won’t 👍.
I'm a fan of Framework laptops. They have given people the option to upgrade several motherboards by Intel and released an AMD version to boot. I don't think there's ever been a manufacturer that offered three generations of motherboards on the same chassis. The swappable ports are kind of neat, you can choose which ones you want to use
The 13" is already on sale with a 16" coming later this year
Just bought a second hand Lenovo p50, before framework’s most receng laptop, like the idea of a framework laptop but for now this thing is plenty powerful so can’t really justify upgrading for some years yet
I’m glad to see you’ve gotten a ton of feedback here, and I just wanted to add another comment in support of flatpaks and image-based computing. I’ve been using Linux extensively for about 15 years now, mostly Arch and Debian Sid. I’ve been a distro packager, and I’ve compiled plenty of my own apps over the years.
This past year I took Fedora Silverblue for a spin after following the project for quite some time, and I am convinced that the image-based system approach, coupled with containerized and sandboxed userspace applications, is the future of Linux for most users. It makes so much sense from nearly all perspectives; whether security, reliability, or flexibility.
Integral parts of the system are mounted read-only by default. Simple commands can rollback unwanted changes, upgrade to a new distro release, or even sideload an entirely different OS. System updates are automated, as are flatpak updates, and there is little-to-no risk to stability due to the very nature of the essentials-only system images. And if something catastrophic did happen, you’re just a reboot away from rolling it back.
Consider for a moment the collective energy and time that distro package maintainers must undertake on a weekly basis. Much of it simply repeated by each distro, building the same applications over and over again. Flatpaks are built once and deployed everywhere. Think of the collective potential that could be directed elsewhere.
Couple this with containers and the choice of distro matters even less. Arch, Debian, Ubuntu and Fedora are just a keystroke away. Yes, you can run containers on any distro of course, but you don’t gain any of the other ostree benefits mentioned above.
I have since moved all of my workstations to Silverblue and I don’t see myself ever going back to a traditional system again. If anything, I may start automating my own image deployments, similar to Universal Blue.
Yes, flatpak as a platform still needs some work, and so does ostree, but both are evolving quickly and will only get better with time.
To others who complain about needing Flatseal…in my opinion, this is a feature to be embraced, not loathed. Sane defaults are rarely sane for everyone, and Flatseal exists to give you complete control over what an app can or cannot see and do.
I’ve been using NixOS with flatpaks and distrobox and have had pretty much the same experience. NixOS provides rock solid base system, services, and CLI tools that are easy to configure and flatpaks provide the rest of the desktop applications.
One neat feature of installing eveything through flatpak is that you can update applications individually without having to upgrade the whole system.
Thank you for writing all this! Innovation is absolutely necessary not just in Linux, but all computing. People are comparing this to Window installs, and honestly it is probably more similar to MacOS installs. Yet, the difference is that the packages are audited by a community, and are not proprietary wildcards that might bite you in unexpected ways. Flatpaks are an options, not a replacement.
Dealing with software that does not work first try is a loathsome experience. Many people here are wearing their gray colored classes, opinions influenced by decades of tinkering, and are forgetting about the curse of knowledge.
If we want more people to adopt linux, Flatpaks absolutely help.
Lastly, saying image-based reminds my a lot about Smalltalk, which is nice. I like the idea of having hot-swappable operating systems to switch between that have all the work isolated in that image. Great for experimentation, and perhaps security.
I will definitely be checking out Fedora Silverblue. Going to download and make a VM for that now.
Looks like a problem with cloning the nvim-dap repo from github. What happens when you try to manually clone the repo? Run git clone https://github.com/mfussenegger/nvim-dap.git in your home directory to see what happens.
LE: Maybe it’s better to post this question on !neovim
I’ve been using ChatGPT to help come up with bash scripts like this. Make sure you test the script out on a folder of dummy files first if you’re not sure.
linux
Newest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.