Also coming from Arch will induce a bit of a culture shock regarding documentation as the NixOS wiki is just... not very good. It's neither complete nor reliably accurate for the current release. And some wiki pages are actually just snippets with no explanation for either what they do or why they do it.
Oinks
The matter of flakes is complicated. Yes they are experimental, but in reality most Nix users use them despite that. I'm a bit on the fence on whether you should start with flakes because they do add some complexity. You can copy paste a sample flake configuration from the Internet (there are many but they all do exactly the same things) and you'll probably be fine but telling people to just copy paste code they don't understand feels wrong as well.
Regarding documentation... I wouldn't go as far as saying you should avoid it entirely but it is in a very unfortunate state with a lot of wiki pages being outdated or just containing snippets that do things in very weird ways, or are over engineered to the point of being incomprehensible.
And that's if someone bothered to write up anything at all. It's a bit sad but reading from the nixpkgs GitHub (or other people's dotfiles) is sometimes the only way to get certain information, such as valid values for package overrides.
As a Home-Manager user I would argue it's not really worth it. It has it's moments for some applications but most of the time it's the same experience as editing the config files directly. Except instead of INI or TOML it's stringly typed Nix attrsets and you need to rebuild the entire system instead of restarting the app. Not exactly a huge improvement.
And that's when you're lucky enough that what you're configuring can be mapped to attrsets. Styling Waybar via Home-Manager means writing CSS but it's a multi line string in Nix with no appropriate editor support whatsoever, and writing custom actions for Nixvim means writing Neovim-Lua but... that's right, in a multi line string.
On a more positive note, I will second the recommendation for the NixOS & Flakes Book, I found it to be much more useful for getting my head around flakes (and Nix in general since I started using them fairly early on in my Nix journey) than e.g. Vimjoyer's videos, which are good but their repositories were really really cryptic to me at the beginning.
I'm not sure why nix-env
is so slow exactly but it's the wrong tool to use anyways as it just throws away everything NixOS has going for itself in favour of pretending to be a normal package manager. You really just want to use the configuration file.
The "normal" way to install packages in NixOS would be using environment.systemPackages
. The various programs.<name>
options are intended for packages requiring additional setup, like shells or desktop environments (e.g. iirc for sway it creates a systemd target and adds the .desktop files for login managers to see it). Weston has a package but not an option, so you'd have to figure that additional stuff out yourself (but running Weston from a tty should just work).
There are additional ways to install packages for single users or using home-manager but you don't need those.
This does kinda demonstrate why (I personally think) NixOS is so hard to learn: There's a million different ways to do anything and each has it's own weird gotchas. And critically most of them, even when they are honestly just legacy cruft, are not actually deprecated and may even have users advocating their use, or even if they don't nobody bothered to remove that part from the wiki (if it was ever there to begin with).
You can also see this in the flake/channel split: One person in this very thread is telling you to use flakes, while another is telling you to stick with the default (channels).
And in some (fortunately relatively rare) cases even things that everyone agrees are bad ideas still get promoted in official documentation or other prominent places, like using nix-env -i
under any circumstances, ever.
And it is definitely a learning problem you are having. You are facing the same problems as a new Linux user who just installed Manjaro with KDE 6 on Wayland and is wondering why apt-get
and xrandr
are not working even though those are accepted answers on Stackoverflow posts from 2012. Of course as experienced Linux users we know why, but a new one has to learn a lot of stuff before "getting it" and will probably stumble onto poor advice more than once in their journey. (And learning Nix is arguably worse than learning Linux for the first time, but that depends a bit on your exact experience and background.)
If you stick to learning NixOS there will be a point when these things seem trivial, but it will be a lot of effort to get there. Is that effort worth it? Well, if the term "declarative package management" doesn't mean anything to you, maybe not. You do sacrifice a lot of things "just" to declare your entire system state in one configuration file (or more likely, directory). But I do think the things Nix does are really cool, if you can get over the, uh, everything.
It doesn't help that US diverging diamonds seem to insist on having pedestrians walk through the median.
But honestly all interchanges are varying degrees of horrible and if you want your city to be bearable to navigate as a pedestrian/cyclist you just really don't want to do urban highways, or roads above a certain size in general.
The GDPR conversation is hilarious. Sure they're a US based company, but after 5 years of operation I would've expected them to have consulted a lawyer about this at some point. Forgetting (assuming it's not "forgetting") about the required documentation is not the worst thing in the world morally but it doesn't exactly make them look competent either.
Indeed, that all looks fairly innocuous. Just in case, you are sure that you didn't just accidentially kill
or killall
rclone or bash?
Perhaps wrapping the script in strace
might help debug where the offending signal is coming from.
TimeoutStopSec
applies to the ExecStop
command, TimeoutStartSec
would be the culprit here. I'm not sure why there would be a default timeout of specifically 1:39 minutes though.
Does your script fork at some point (and might exit before the rsync job is completed)? ~~Because then you need to use Type=forking
instead of simple
or oneshot
, otherwise systemd will start trying to clean up child processes when the script exits.~~
Edit: Actually considering the time span involved Type=forking
will not solve your issue because it will timeout, if this is the problem you need to change your script to not do that.
To be fair this also happened to Eagle Dynamics, developer of DCS, the other "realistic" flight sim that players take far too seriously. Except there it was a Dev that got arrested in Georgia and extradited to the US...
While unfortunate, not shipping these standard Google apps is not really an option for any Android manufacturer due to Google requirements. Including them is required if you want to use anything from the GSM, which includes things like the Play Store and everything it touches. You can technically ship a different Android distribution like Lineage or /e/, but that's not really what most people will be expecting of an "Android" phone and will narrow the viable target demographic even more than the value proposition already does.
I'm running KDE Plasma with the revived Krohnkite for auto tiling. Plasma 6.2 seems to have fixed most of the bugs from 6.0 and 6.1, at least the ones I've noticed.
I was using Sway/SwayFX for a few months but was missing some KDE Gear apps like Dolphin and Okular which I couldn't get to display correctly. KDE is afaik the only desktop with a working Qt theming engine right now, so I can't really see myself switching (unless maybe if they break Krohnkite again).