Journaling using Nix, Vim and coreutils
23 comments
·August 12, 2025yjftsjthsd-h
jljljl
I was somewhat expecting that the flake would include nvim bundled with the vimrc in the folder.
You could then just open nvim in the `nix develop` environment (or even use something like direnv to activate it when you cd in) and have a minimal journaling environment
yjftsjthsd-h
Yeah, if it included ex. nvim plugins then it would make more sense to me. It's just this particular combination is for installing tools that I struggle to imagine aren't default-installed everywhere, and version-locking some of the most stable programs I've ever used (though I guess neovim might make breaking changes?). Honestly it strikes me as most useful as a 'hello world 2.0' flake demo.
0xCMP
Yea I don't see Nix doing much here particularly, but for me I typically would do something like this to make the system as consistent as possible over a long period of time without being actively maintained.
I guess this does ensure the key `journal` command works exactly the same because the dateutils binary will stay locked to the version in the `flake.lock`.
I would have assumed that nvim would also be locked because that's where I would expect more possible breaking changes with the existing special config.
With little tools/projects like these I could easily see months-years before it would get any active attention from me again (or simply I wouldn't be using it; so it doesn't matter).
bspammer
This is a pretty poor example for a few reasons, but the idea is that anyone get can a shell with the tool fully installed along with all its dependencies, with a single command:
nix shell 'git+https://tangled.sh/@oppi.li/journal'
It's massive overkill for a shell alias, but for a more complex project it can be very nice.
yjftsjthsd-h
Sure; I'm typing this comment on a NixOS machine in a browser controlled from a flake I wrote myself - I get using nix and flakes in general. It's just that this particular case seems like such overkill that it actually seems like a weird tradeoff even if you're used to flakes.
mikepurvis
One area that is especially a massive win is projects that cross multiple ecosystems. So like, C++ project with some Python bindings and a Typescript frontend? Setting up that dev environment is often a nightmare but Nix makes it trivial and highly reproducible.
rikafurude21
author seems to be the type to follow tech trends and use them to signal "coolness" - people like that use these absurd stacks because its niche, not for any actual benefit
zdw
If you want week numbers in the calendar, you can use `ncal -w` and they'll be the last row. Add a `-3` and you get:
$ ncal -w3
July 2025 August 2025 September 2025
Mo 7 14 21 28 4 11 18 25 1 8 15 22 29
Tu 1 8 15 22 29 5 12 19 26 2 9 16 23 30
We 2 9 16 23 30 6 13 20 27 3 10 17 24
Th 3 10 17 24 31 7 14 21 28 4 11 18 25
Fr 4 11 18 25 1 8 15 22 29 5 12 19 26
Sa 5 12 19 26 2 9 16 23 30 6 13 20 27
Su 6 13 20 27 3 10 17 24 31 7 14 21 28
27 28 29 30 31 31 32 33 34 35 36 37 38 39 40
sigmonsays
here I am tangenting into wtf tangled.sh is, maybe that's the entire point of this submission.
tediousgraffit1
Yeah, this is a good blog article and a great pitch for this service. There was a discussion yesterday about where to look for the next github...
pfych
I've seen it quite a bit on BlueSky with some devs I follow. It's a social git host built on-top of ATProto (The underlying tech of BlueSky): https://blog.tangled.sh/intro
jdonaldson
Nix always felt like an OS on the blockchain. It's fine if you value verifiability above everything, but becomes very burdensome if you find yourself tweaking your dev environment often. Still, I think it probably teaches good discipline.
xpe
I've found NixOS is fantastic for evolving my environment. Update `configuration.nix` and then `sudo nixos-rebuild switch`. Done.
What kind of "tweaks" are you doing? You could use `nix-shell` to try out a new environment. If you like it the environment, you can make it declarative by creating a `shell.nix` file.
If you want to go further, you might make consider making a flake, but I would recommend reading https://nix.dev/concepts/flakes.html first.
yoyohello13
I’ve made the compromise of using nix package manager on a normal Linux distro. Gives most of the features I care about, with basically no downsides.
Cyph0n
Nix + Home Manager is a good combo if you don’t want to go the whole way. But yes, I would recommend starting with just Nix.
petepete
I wish all my todo items had 2-3 words. This looks fine with the examples but I bet it’s not so clean with realistic data.
semiinfinitely
what is this nix religion I keep hearing about
atrus
Nix is a form of computing that's simultaneously 20 years in the past and 20 years in the future. I love it.
Honest answer though, it's a deterministic way of building up a computer/environment. Think pip/uv/packages.lock but for everything.
dizhn
open to the select few who are able to ignore what the official documentation says and spend some on the (admittedly friendly) irc channel to learn how it REALLY works.
xpe
I've done ok without irc, though now you mention it, I do miss me some irc.
anitil
I've only dabbled, but what have you learned in the irc that isn't in the docs?
I don't see what nix is doing for you? There's vim, absolutely, coreutils (though I don't immediately see anything GNU-specific), and a tiny wrapper script that happens to be written in flake.nix but could trivially be factored out. I don't see anything that I wouldn't expect to run on, say, OpenBSD if you installed vim.
(That said, yes, it's a nice journaling system)