Nix Dev Environments | Declare Your Coding Projects

  Рет қаралды 28,696

Vimjoyer

Vimjoyer

10 ай бұрын

Discord server: / discord
Code blocks from the video: github.com/vimjoyer/devshells...
Nixhub: www.nixhub.io/packages/python

Пікірлер: 54
@Xorume.
@Xorume. 10 ай бұрын
The censored rust logo lol
@vimjoyer
@vimjoyer 10 ай бұрын
The Rust foundation should not see that I recolored it
@Xorume.
@Xorume. 10 ай бұрын
@@vimjoyer You mean the (Rust™ Foundation™)™?
@Rundik
@Rundik 3 ай бұрын
​@@vimjoyerjust use crablang
@dillon4248
@dillon4248 10 ай бұрын
At this rate, they should add your channel to the list of documentation resources. Thanks for this!
@technorazor976
@technorazor976 10 ай бұрын
I've been needing exactly this and struggled to find resources on it. You've quickly become one of my favorite programming KZbinrs -- informative and straight to the point. Thank you!
@vimjoyer
@vimjoyer 10 ай бұрын
Thanks
@vimjoyer
@vimjoyer 10 ай бұрын
Hope you enjoy this video!
@lamprospitsillou6325
@lamprospitsillou6325 10 ай бұрын
I just love how you go above and beyond in these videos, helping us understand nix on a dipper level !
@gorudonu
@gorudonu 10 ай бұрын
this is great! We need more nix content on youtube (and also in general). Thank you!
@faccc
@faccc 8 ай бұрын
I'm really grateful for your content. There's not much documentation available, but yours is incredibly concise, clear, straight to the point, and it answers any doubts I may have. Keep it up! I truly believe Nix has great potential and is the future. Documentation is the only problem, but you're definitely addressing that. Hats off to you!
@minatonamikaze2637
@minatonamikaze2637 8 ай бұрын
you are so helpful, I just installed nix and you are making things easy for me
@papanito4802
@papanito4802 5 ай бұрын
Your videos are every nicely done, easy to follow and understand. great job
@joaodematte
@joaodematte 3 ай бұрын
oh man that was exactly what i was looking for!! thank you so much
@akibahmed229
@akibahmed229 9 ай бұрын
Thank you; it was helpful in setting up my development environment.
@hotdog2c
@hotdog2c 10 ай бұрын
Incredible informative!
@NeonGrillz
@NeonGrillz 5 ай бұрын
First off, great content! Love your videos and they help me enormously with my journey into Nix. Secondly, should I use Flakes to "clone" my Git repos (via inputs) or should I clone/fetch them manually first and then switch into my dev environment? It would be super convenient to just do it with a single Flake and update with 'nix flake update --update-input my-repo-input'. Also, please make a video on how to handle multiple Git accounts on NixOS and how to switch between them! Like if you have one for personal projects and one for work.
@Redyf
@Redyf 10 ай бұрын
Nice video bro 😄
@jarosawszyc8287
@jarosawszyc8287 3 ай бұрын
Amazing stuff
@bawahtanah4705
@bawahtanah4705 10 ай бұрын
bro, u just save my life :),
@mawfyy7001
@mawfyy7001 10 ай бұрын
LETS GOO
@SantiagoFraire
@SantiagoFraire 10 ай бұрын
Amazing video, thank you! Could you do a video about secrets management? how to get started with agenix or sops-nix. Thanks!
@vimjoyer
@vimjoyer 10 ай бұрын
Maybe
@korigamik
@korigamik 8 ай бұрын
what editing software do you use? How do you add voiceover on the presentation? and what's the presentation software?
@vimjoyer
@vimjoyer 8 ай бұрын
I am currently using "motion canvas", but this video was made with blender video editor + personal imagemagick scripts.
@dillon4248
@dillon4248 10 ай бұрын
Do you have an opinion about using the "flak-parts" utilities with nix flakes? Makes a lot of sense to break the home-manager flake up
@vimjoyer
@vimjoyer 10 ай бұрын
I don't necessarily have a strong opinion on whether you should or should not use it, but I want to make a video about flake-parts in the future for those who want to.
@dillon4248
@dillon4248 10 ай бұрын
Definitely tuning in to that one!
@keremcemerturk336
@keremcemerturk336 10 ай бұрын
Can you also cover about neovim with NixOS🥺
@vimjoyer
@vimjoyer 10 ай бұрын
Sure, that's one of the videos in my to-do list
@minatonamikaze2637
@minatonamikaze2637 8 ай бұрын
I use helix btw
@tomjuri
@tomjuri 2 ай бұрын
How would you use that for graphical ide's like jetbrains ide's though? You could enable the nix shell in the builtin terminal and run your commands in that, but what if you need to use some other feature not available in the terminal?
@vimjoyer
@vimjoyer 2 ай бұрын
Just launch the jetbrains ide from the shell
@pkoch
@pkoch 7 ай бұрын
Weclome! :D
@zperk13
@zperk13 Ай бұрын
2:18 wouldn't that break if the user has never installed lolcat before? Or does doing the pkgs. thing bring it in from the NixOS online repository? Why doesn't it need to be defined as a build input or something? If it pulls it from online, when does it do the download? Before all the other stuff? Or when it's needed? Because if it does it when it's needed, it'll look like welcome Installing lolcat Whatever nix says when installing stuff to my shell! Which is clearly not the intended effect. Also if it's not in the buildinputs, does it still get put in the flake.lock?
@vimjoyer
@vimjoyer Ай бұрын
It would not break. The packge interpolation evaluates the lolcat derivation, adding it to your shell dependencies. It will get downloaded after the nix code is evaluated, meaning that if you are in a shell, the lolcat is already there.
@zperk13
@zperk13 Ай бұрын
yeah, just tested it to answer my questions in order wouldn't that break if the user has never installed lolcat before? no Or does doing the pkgs. thing bring it in from the NixOS online repository? yes Why doesn't it need to be defined as a build input or something? It's smart enough to figure it out If it pulls it from online, when does it do the download? Before all the other stuff. It doesn't create the example of an unintended output I made Also if it's not in the buildInputs, does it still get put in the flake.lock? Looks like the flake.lock just defines the git revision, so everything shares that (though I saw in another video you can get around that)
@solomonogu1393
@solomonogu1393 10 ай бұрын
i prefrer and use devenv + direnv this combo is superb
@WhiterockFTP
@WhiterockFTP 9 ай бұрын
what is devenv all about? I see it‘s built upon nix-shell. A video about that would be amazing
@solomonogu1393
@solomonogu1393 9 ай бұрын
@WhiterockFTP devenv is nix-shell on steroids So basically, as a developer, i can set up what i need for each project without installing it directly on my machine Now imagine a project requiring node 14 and then your other package needs 18 and the rest you can basically have a specific version of node etc for each project etc (yes nvm) but its its way better because same can be done for php etc also database tools etc Let's say you need an environment where you need a special environment, let's say, for your video work And don't want to install them permanently You can create a folder and setup devenv and thats all no need to be typing nix shell -p and yes state is stored meaning on kill the process when you come back your previous state still exists but you can clear it if you want
@strandingstranger
@strandingstranger 8 ай бұрын
i've tried looking everywhere, but no success in finding any info. please tell me, what's the difference between nix develop and devenv? just "simpler" configuration?
@simonlauer9379
@simonlauer9379 3 ай бұрын
Is it possible to set an environmental variable that sets SHELL to zsh? Haven’t found a good way yet. Use it with nix-shell and python poetry 🎉
@vimjoyer
@vimjoyer 3 ай бұрын
you can use `--command ` with nix-shell and `-c ` with nix develop
@eldarcfrov8707
@eldarcfrov8707 9 ай бұрын
But how can we create different dev environments with each one having specific packages? I still don't get that :/
@vimjoyer
@vimjoyer 9 ай бұрын
Just make multiple flakes, and declare required packages there. You can also have multiple dev envs in the same flake, and they will have packages of the same version.
@eldarcfrov8707
@eldarcfrov8707 9 ай бұрын
@@vimjoyer Thank you so much, will do my best to accomplish that.
@vaisakhkm783
@vaisakhkm783 8 ай бұрын
​@@vimjoyerhow can i have pip,cargo and npm packages in the flakes.nix file? Is it even possible?
@vimjoyer
@vimjoyer 8 ай бұрын
@@vaisakhkm783 It depends on the programming language. Python packages can usually be found in nixpkgs. Node packages can either be taken from nixpkgs or npm itself (js is interpreted, so 99% of the packages will work). Cargo's packaging system works really well with nix. Use cargo, and then simply use the pkgs.rustPlatform.buildRustPackage function to quickly build derivations from them.
@vaisakhkm783
@vaisakhkm783 8 ай бұрын
@@vimjoyer ok thanks, can you provide example for how to take packages from npm itself? one of my issue is, i have MarkdownPreview plugon for neovim, which through tslib not found error... i assumes it's because some ts dependcy not installed, but i don't know how to add that as dependcy to neovim in home manager
@thepaulcraft957
@thepaulcraft957 10 ай бұрын
0:42 typo
@vimjoyer
@vimjoyer 10 ай бұрын
*crying pepe fLog*
@thepaulcraft957
@thepaulcraft957 10 ай бұрын
@@vimjoyer 😂
Using Nix to Declare Your Browser!
3:51
Vimjoyer
Рет қаралды 15 М.
Nixos and Hyprland - Best Match Ever
7:13
Vimjoyer
Рет қаралды 142 М.
I CAN’T BELIEVE I LOST 😱
00:46
Topper Guild
Рет қаралды 54 МЛН
Modularize NixOS and Home Manager | Great Practices
8:07
Vimjoyer
Рет қаралды 16 М.
Building CLI's with Node.js
10:39
Josh Nussbaum
Рет қаралды 207
Say Goodbye to Containers - Ephemeral Environments with Nix Shell
16:58
Nix Flakes - An Overview
5:39
Jake Hamilton
Рет қаралды 5 М.
Nix and NeoVim
13:38
ThePrimeTime
Рет қаралды 119 М.
Matthew Croughan - Use flake.nix, not Dockerfile - MCH2022
17:25
Matthew Croughan
Рет қаралды 44 М.
Nix Language Explained
8:54
Vimjoyer
Рет қаралды 14 М.