DEV Community

Joe Pea
Joe Pea

Posted on

Why I moved from NixOS to Manjaro Linux

You may have heard of NixOS. The package manager is indeed very nice when you're using it withing its normal constraints.

However I ran into issues, and it was a relief to switch from NixOS to Manjaro Linux to be more productive. Here's why:

  • Most notably, learning the Nix language took time, and after knowing enough of it, I was not able to be as productive as in a more traditional linux distro like Manjaro because it was more difficult to manage project dependencies with Nix than (for example) using nvm to manage Node.js versions for each project. Tools like nvm (or any tools that install Linux binaries expecting to operate in a traditional Linux FHS environment) don't work out of the box in NixOS, and it takes extra effort to get things working.
    • As another example, if a Node project depended on electron, a simple npm install would not work. The Nix package manager had to be used to install electron correctly via a tool called nix-shell to expose the ELF-patched electron binary in the shell.
  • In Manjaro I can get to work easily, using pacman or pamac to install system packages, and then using regular tools like npm, pip, nvm, etc, to install project-specific dependencies with no issues.
  • The Manjaro installation was easier, no manual partitioning or terminal commands were required, I didn't need to edit any configuration files, and everything was configured perfectly for a default Gnome Desktop experience including hardware drivers out of the box.
    • NixOS also does detect and configure hardware drivers (though mine had problems, see below), but it takes more work to properly set up a desktop environment in NixOS. Plus it is easy to install the desktop environment the wrong way, as there are multiple good and bad ways to install things in NixOS.
  • Battery life seems to be better in Manjaro. The battery seemed to die faster in NixOS.
  • In Manjaro Slack works fine. In NixOS Slack opens as a Chromium window and the Gnome application dock shows as if Chromium is running instead of Slack (and vice-versa Chromium opens as Slack window depending on order of opening applications, and for example clicking a link in Slack to automatically open it in a browser). I had to uninstall Slack in NixOS and just use a Chromium tab instead.
    • A similar issue happened with VSCodium in NixOS, where clicking links in VSCodium would open Chromium as a VSCodium window.
    • There are no issues with this in Manjaro, and each app opens in windows of their own type as expected.
  • Manjaro ships with a nicer Gnome experience out of the box.
    • Manjaro's Gnome flavor ships with Gnome Tweaks and a bigger variety of popular Gnome Extensions and Themes available out of the box.
    • Apps that want it (like Slack, Chromium, and others) get their task icon placed in the top right of the task bar thanks to the knotifier extension, and clicking the icons reveals options for controlling the application. It's a "system tray" so to speak.
    • Nice Shell and GTK themes out of the box in Manjaro, while NixOS only has the default theme (with modified logo and background).
  • NixOS's manually-configured Gnome experience is very vanilla, and with issues:
    • Normally the GDM login screen should show a button for my user profile that I can click on (or hit enter) then type my password (this is the default Gnome GDM experience), but in NixOS I have to manually enter my username in a text field for some reason. GDM works fine in Manjaro.
    • NixOS has graphical rendering glitches in Chromium and other apps. In Manjaro I have no graphical glitches out of the box (you'd think the same drivers would be in use, but there's some difference).

Overall I feel good to be back to my normal productivity in a more traditional distro like Manjaro (and Manjaro's rolling-release model will prevent some upgrade problems compared to Arch Linux because Manjaro waits for those to be resolved in Arch first).

Yeah, I might have to do surgery on my Manjaro install one day when an upgrade bricks the system, whereas NixOS handles rollbacks very gracefully, but overall I think the productivity gain in Manjaro will outweigh NixOS's rollback abilities.

Top comments (3)

maxdevjs profile image

NixOS offers a delightful KDE experience, it is extremely powerful leveraging Nix expressions, it is awesome when embracing its philosophy. And a lot more. But, can be a real pain to get used to it and to become productive :)

nelo_mf profile image
Manuel Fernandez

I'm using Manjaro as well! Don't worry about system upgrades, I only had problems once with Plasma (KDE's desktop environment) months ago. I think you'll be fine, Manjaro is overall a great distribution for developers.

paulhersch profile image

I am both using plain Arch (Dekstop) and Nix (Laptop) rn
I personally think I am gonna migrate my Desktop to Nix as well, ofc pacman is quick and easy but i tend to install and uninstall a lot of apps and that way i have about 50 packages installed that i not need after around a year.
with NixOS this doesn't happen
also a big tip which might help for npm and pip packages and stuff like that: most times the packages from a languages ecosystem you can be easily installed via the main package manager, which is good for cleaner and more reproducible builds.
It also will take more time to set the system up, but after you set it up you dont have to do anything as long as you have a centralized config (meaning: everything in your /etc/nixos folder) and keep backups of your system config.