It's a common tactic of narcissists to elicit empathy
Yea it's definitely a jungle haha, it also seems they're changing things up a bit with where the most recent docs might be hosted
https://search.nixos.org/
so, if you searched for vscode in that link, then click the "NixOS Configuration" button, you can see
environment.systemPackages = [
pkgs.vscode
];
or if you're using the with
convention to factor out the pkgs object/contextual keyword(not sure if that's the right name)
environment.systemPackages = with pkgs; [
vscode
];
for zsh, just having this in your configuration.nix should work https://nixos.wiki/wiki/Command_Shell
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
Again, these values should be inserted after the function definition of your configuration.nix
{ config, pkgs, ...}:
{
# Things get inserted here typically
imports = [ ./hardware-configuration.nix];
environment.systemPackages = [pkgs.vscode];
}
for example.
Something I've noticed from developing on nix, When the headaches of nix appear, the solution might be harder, but I usually end up with a better solution than what I was going for before. Some examples:
My resume is compiled in Latex. I tried the pdflatex package in nix but it gave rendering issues. Then the nix community recommended tectonic and i'm getting better compilation times, logging, clean up...
PIP is a garbage package manager, and it's garbageness sometimes makes native python development a headache in nixos. However, using poetry2nix, not only could I define development environments, it was also ready for packaging on PIP
Sometimes you might want to separate some parts of your configuration away from your global system config at /etc/nixos/configuration.nix. That's nix-shell, nix-develop, nix-build, and flakes are for. I'm not a pro at flakes yet, but I think I got the gist, here's an example of when I wish I could have used a flake:
I use discord but discord itself is garbage. Vesktop is a better 3rd party client for discord. Unfortunately, I had to remove it from my configuration.nix the last few weeks because one of its dependencies wasn't packaged right, causing my entire system to not build. If I had used a flake, I could have isolated that dependency from the rest of my build, while still tracking its integration with my system. I believe this could have allowed me to update the rest of my system, while still defining the errenous app as part of my system. Flakes are supposed to be more reproducible as well, since they require sha256 git commits, whereas other package managers only ask for a subjective version number
There's a lot to learn with nix but even if I don't stick with it long term I feel like It's making me a smarter software engineer since a declarative/functional paradigm tends to match the natural language more. It also is the most restrictive design paradigm, which means it's brief but so simple it can be hard to understand as a consequence. Since it's so restrictive, it's also a subset of all other paradigms. You declare what you want, ideally, you don't have to set anything up. I never had an easier time getting cuda drivers for ML Training setup than on NixOS because of this
Something I enjoyed doing, was setting up my user profile to let me ssh in only with whitelisted ssh keys, as well as setting up a systemd script to handle some start up routines on my OS. I think that can be a gentle introduction to how you can configure other parts of your operating system. I'm going to try and set up a CI/CD/CT pipeline with it next I believe
Edit: The next thing I need to do as well, is consolidate my user configs with the home manager functionality. I use a KVantum Theme engine on top of plasma, and while those apps are installed in my system, the configuration of which theme to automatically load should be integrated with the text config aspects of nixos. Currently, I "Imperatively" configured those by "Opening the app and clicking", which will get erased/not be reproducible if I ever rebuild my nixos on a new computer
Another funny thing with functional programming... sometimes the fix is as simple as
sound.enable = true;
Even though I had pipewire enabled as a service and everything, that one line needed to be there haha
I'm using NixOS partly as a dev machine, but mostly for consumer OS stuff like gaming, YouTube, social media...
What are you trying to use it for? From the consumer perspective, I feel like modifying configuration.nix would be the majority of what I need. It's like ninite if you've used that to setup a Windows machine, but it can be preloaded on your OS and you can configure everything, not just which programs are installed
If you're trying to setup dev environments, I think what gets weird is how many ways there are to do similar things, like nix develop, nix build, nix shell...
Everything is hackable, even the current form of id we have which is SSN. Decentralized digital ID is orders of magnitude harder to hack, and has even less government control over the ID process. The expectation value to crack modern encryption is measured on eons even if you're using all the power in the sun and physically perfect efficiency in energy to computation conversion
No one's paying me anything, and I'm well informed of the civil liberty issues surrounding government IDs in general, let alone digital or paper.
What I am referencing is decentralized digital ID. There is no ominous they or third party who could control you with a decentralized digital ID. We already have a pretty shitty ID system, but a better ID system with less centralized control can exist
The current ID system we have - social security numbers - are infinitely worse. Add 1 to it and it's another valid SSN. Most of the numbers can be determined with regional info
If it's decentralized, you're original point about companies being able to get hacked doesn't apply anymore
Centralized or decentralized digital ID?
How? Boomers hate Bitcoin, they prefer gold as their store of value.
Bitcoin is without a doubt a cleaner currency than the Petro dollar. Not to stereotype, but seeing how you're a hexbear user, wouldn't a currency that the US doesn't have the power to sanction Russia or China be seen as a better system?
Every time I help another Linux user, I grow one more hair towards my wizard beard
It's gonna be a long transition haha, but I've learned a lot about OSs over the years just using CLI in Ubuntu, I'm looking forward to nix as something I'll struggle with for the next few years haha
I've been running an Ubuntu base for years, but windows kept overwriting the boot loader so I finally cracked. Been wanting to switch to Debian for a while and nix seemed desirable for its functional design paradigm
Don't we spend more because the industry is extremely inflated? But yeah if it's something everyone needs it should be subsidized and provided as a public service
I'm not saying we don't waste money on defense, and obviously a country with zero threats on its borders can afford to spend less on defense and more on health care, but this chart in particular is a bad way to convey this message
Lol, not denying it's very speculative, but you should look at the recent squadron 42 tech demo and tell me if you think it's still a failed project
This is really a bad chart, our military protects European countries which is why they don't have to pay as much for defense
Edit: not to imply we don't waste tons of money on boondoggles
I think sober people can, but they need to know they're probably dealing with a person who has the intellectual and physical capabilities of an adult but with the mentality of a 6 year old
Got tired of gamers screaming in my headphones so I'm working on intercepting the audio stream per channel and if one is above threshold then it normalizes and lowers the overall volume until it's back to below threshold
As opposed to just lowering everything by 30%, and sometimes struggling to hear everything.
China meets the manufacturing needs for most of the world, it's economically not realistic to boycott them
That said, we still should boycott them, at least in principle.
Now I understand how gen Z is using Ohio as an adjective