Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I can only recommend to take a look at https://yadm.io/
great help on how to set things up: https://github.com/twpayne/dotfiles)
I fell out of love with Nix (including flakes) just as fast as falling in love with it. The current approach for updating packages seems to have a massive human scalability problem (3.3k open PRs [1]), and several packages are very out of date. I still use it on my work mac because nix-darwin does bring some semblance of sanity to the platform, but I've switched to Silverblue on my personal machines.
Nix feels more like an incredible research project to me. Guix is a good example of what happens when those great ideas are put through some refinement (but I can't use it on any of my machines).
Silverblue has convinced me that some unbundling is needed. The concept of an immutable base is extremely powerful, and there's good wisdom in their strong discouragement of using ostree to install regular apps. Being able to rebase onto Kinoite, and back, was an eye-opening experience for me.
In my opinion, an ideal tool would:
* Ignore system packages ("immutable-land") altogether. This makes system updates trivial.
* Use additional layers ("layer-land") only where absolutely required: drivers or /etc edits for example.
* Rely on flatpak as much as possible for "mutable-land", it could reach into flatpak sandboxes and blindly sync those dotfiles.
* For "mutable-land" outside of packages (DE stuff usually, like the wallpaper), it would have deep knowledge of those.
There is definitely benefit to being able to edit your dotfiles in one place (which we see with Nix), but the happy path should be 100% transparent to the user.
[1]: https://github.com/NixOS/nixpkgs/pulls
Got a similar repo: https://github.com/lloeki/dotfiles
A couple of differences though.
- there's a setup script to do the basic symlinks, automatically from the files in the "home" subdir by prepending the names with .
- then for shell stuff everything is sourced from either shell, bash, or zsh subdirs, all in modular files
- shell dir content is autoloaded based on +x
- there are polyfills for bash that makes it more zsh-like (stuff like precmd)
- each shell module tests for tool presence and is a noop or sets up a fallback when the tool is not available, so I can clone this on any system and have it still work, gracefully degrading down to zero deps except the shell itself
- it also attempts to provide a uniform experience across bash versions and OSes (darwin, linux)
- prompt is minimal (workdir, dirname only, not the full path), increases with detail progressively and in a hierarchical order (root if root, host if ssh, workdir, vcs branch if in repo, vcs status as symbols if nonempty, venv name if virtualenv, "nix" if in nix shell)
* Install files without the CLI: `curl https://dotfilehub.com/knoebber/vim >> ~/.vimrc`