![Avatar](/_next/image?url=%2Flemmy-icon-96x96.webp&w=3840&q=75)
uthredii
bio
NixOS:
- Largest and most up to date package repository (no need for flatpack/appimage/snap ect)
- Reproducible
- Declarative
- Rollbacks you can select at boot time
- No dependency conflicts
I think it will easily be the number 1 distro if/when they can :
- the steep learning curve (e.g. have a gui installer EDIT: As in a GUI software centre)
- documentation
- have more tools use nixos and have nixos in mind (e.g. there are a couple of tools that didn’t work for me because of specific C libraries not beeing present/configured on nixos that are present on other distros. some libraries implicitly expect these to be present).
One thing I haven’t seen mentioned is that not moving between mouse and keyboard so much reduces the risk of getting an RSI. So even if it didn’t make you faster it would still probably be worth it to find a keyboard based workflow.
I use Helix and would suggest you try it (at least to start off with) as it is easier to learn than vim and does not require plugins or a complex config. To answer your question I will go from the less to more advanced/complex:
- Move a line to a new position in the file/another file (takes a couple of seconds)
x
thend
to select a line (pressing N times will select N lines) and delete it (delete will also copy to the clipboard)- navigate the cursor to the new location
p
to paste in a new
- Navigating around a file:
- jumping to a function/class definition by pressing
g
thend
when on a function/class usage. - getting a list and navigating to class/function calls when the cursor is on a class/function definition by pressing
g
thenr
.
- jumping to a function/class definition by pressing
- Multi cursor editing - I use this to make edits to multiple places at once. I most recently used this to extract the names of 30 tables that are used in a SQL file. This probably took ~5 seconds and I barely thought about it. To do this I used:
%
to select the entire files contentss
to search- typed "FROM "
- pressed enter to create cursor at all locations matching the search
v
theng
thenl
to select the rest of the linespace
+y
to copy to the system clipboard.- paste into a document where I needed to list the tables
- Using a terminal workspace manager (zellij) with helix and a git tui app (gitui) so that I can easily make code changes, commit, push, ,run tests, move to a new repo and more without leaving the keyboard.
There is actually a helix community on programming.dev: helix@programming.dev
How often do you run nixos-rebuild --switch?
If you don’t run it regularly then you will likely be waiting for a few different packages to get updates. To fix this you can configure auto upgrades:https://nixos.wiki/wiki/Automatic_system_upgrades
I have definitely found it challenging at times to do even simple things. I think it does get easier over time.
I really hope the new user experience will improve. Once the issues with flakes are fixed and they are no longer experimental I would expect flakes to replace the other ways of doing things. This will hopefully make the documentation more concise/focused/better. It might also mean more people start using nix/flakes which will surface more of these problems to be fixed.
I think people need to decide if the benefits they are getting are worth the challenges. I personally really like the reproducibility and the massive amount of packages available from one place. On other distros I have used things have ended up breaking eventually and I have had to re-install things and search for fixes. But on NixOs things keep working.
Most is described here (the author probably has some amount of bias but this is the only summary I know of): https://github.com/KFearsoff/nix-drama-explained
Other than that some very active contributors resigned as maintainers in support of the open letters.
And it seems now that the community members in support of the open letters/changes have convinced the board of the foundation to agree on some things.