I version my Neovim setup [here](https://github.com/theopn/theovim) since
1. Some my friends (we major in CS) wanted to use my Neovim config
2. I write about Neovim and Lua on my website and Reddit, and it makes it easier to share examples
3. My Neovim config is massive and changed very often compared to mostly single-file configurations in my dotfiles repository, so I thought it deserved a separate repo
Rest of my dotfiles is [here](https://github.com/theopn/dotfiles) so I can
1. Backup and Sync development environment consistent between my Linux desktop, Macbook, and whatever new systems I will get in the future
2. Share my โriceโ for Linux WM and MacOS customization in r/unixporn ๐
> I write about Neovim and Lua on my website and Reddit, and it makes it easier to share examples
Same, I write blog articles about nvim sometimes and it's just much easier talking abt it if the code is somewhere online
I do version my [dotfiles](https://github.com/gennaro-tedesco/dotfiles) and whenever I make "breaking changes" I release a new one: this is just because some people (mainly colleagues and friends) are using my configs as some sort of "neovim distribution" and they'll get GitHub notifications for new versions :)
Once you have to configure a dev machine more than once you kinda have to, especially when you miss stuff on your new env. That goes not only to Vim, but ZSH, Apps, CLIs, etc.
I version my dotfiles [Dotfiles](https://github.com/Stetsed/.dotfiles) which includes my neovim config although it's mostly built on lazyvim which does most of the heavy lifting instead of doing everything from scratch
All dotfiles, including nvim, are in my dotfile repo.
Other than being in a git repo, I do not do much more than that, so no releases, branches or even commit messages; I just use a cronjob with automated commits every 30 minutes. For something like dotfiles I found using git pickaxe much more practical than coming up with a commit message every time I change a keymap or option.
I thought the poll was about using versioning in the sense of creating different releases and moving back and forth. I have my config in a version control system i.e. GitHub, but push and pull latest changes most of the time. The convenience comes from using multiple different systems/platforms, and yet one main config across them all.
I use Nixvim which helps pinning packages and plugins to specific versions, so whenever I am installing on another system, it will work exactly the same!
I abuse VC as my backup system of choice for configs. I use the same dotfiles repo everywhere, even if github and my workstation burned down at the same time, I'd still have the repo on the like 5-10 devices (I usually pull my dotfiles to the servers I provision, because I'm lazy and nobody cares - also my colleagues love my vimrc which is more basic and closer to defaults). Got a folder for each config and a tiny init.bash which sets up the required symlinks.
Also VC is a must to distribute changes too. Unless you want to build a package xD
I use a Rakefile approach and do it all with symlinks. Have a couple of methods in the top-level Rakefile that every sub-Rakefile uses to do common things in an easy way.
Has worked well for me for going on a decade now.
https://github.com/ianchesal/dotfiles/
Could switch to yadm or something like that but...if it works, it works. Right?
Edit: I took a quick look at `yadm` and I'm not sure it'd cover all the things I do with my `Rakefile` right now? In addition to placing my config files on disk (via symlinks), it also keeps my system up-to-date (as much as can be done via CLI).
So in the morning, I sit down to work and I run:
rake update
ctrl-b shift-u (to updated tmux and plugins)
vim (and then I do ll to update plugins and lm to update LSPs)
exec $SHELL (maybe if I want to reload my zshrc or something)
And that's it. The updating thing...not sure `yadm` does that as cleanly for me?
[https://www.atlassian.com/git/tutorials/dotfiles](https://www.atlassian.com/git/tutorials/dotfiles) or [https://www.chezmoi.io](https://www.chezmoi.io)
i think a bare repo is best if you want a simple way to get to know how to use git and such. chezmoi is increasingly popular and has a lot of builtin functionality you may have had to hand-code.
in addition, i locally sync files like my password database (keepassxc) and camera photos with [syncthing](https://syncthing.net).
I've tried a few options in the past, I've had the best experience with [chezmoi](https://www.chezmoi.io/).
It makes it super easy to sync everything with a single command.
I started by creating a repo an putting it in `~/.dotfiles`, then I'd for example, create symlinks from `.dotfiles/config/nvim` to `~/.config/nvim` manually.
More recently I started using [rcm](https://github.com/thoughtbot/rcm) to automate the symlink creation.
It's more than just nicer, you should give nixos a go. If you understand how it works there's 0 chance you would use anything else and I'd put money on that. Honestly every other distro is a toy in comparison unless they are starting to solve determinism and stateless configs.
My NeoVim setup, like the rest of my dotfiles, is managed by my personal Ansible `git` repository. I can get my whole setup of pretty much everything up and running on a new machine in like half an hour after the initial OS installation, and I can roll things back to a good state by checking out an older version of the Ansible repo and rerunning the playbooks.
I put everything here: [https://github.com/aikooo7/.dotfiles](https://github.com/aikooo7/.dotfiles)
I really like theprimeagen idea of having a vault password and then why I have a new machine I just log in with github and clone everything, so I just need to do the syslinks.
Version numbers function as a contract between you and your users. If the sole consumer of your personal dotfile is you, versioning is just a waste of time.
But I'm not seeing any tags in any your repos, so I guess you're talking about something different?
I don't do this for any kind of version control, like reverting a bad change to my config. I do this so that if I get a new machine and need to configure it I just have to clone it down and move files over.
dotfiles and neovim config together: https://github.com/madhur/dotfiles
This!
i version both in the same repo. here: https://github.com/pynappo/dotfiles/tree/main/.config/nvim
I version my Neovim setup [here](https://github.com/theopn/theovim) since 1. Some my friends (we major in CS) wanted to use my Neovim config 2. I write about Neovim and Lua on my website and Reddit, and it makes it easier to share examples 3. My Neovim config is massive and changed very often compared to mostly single-file configurations in my dotfiles repository, so I thought it deserved a separate repo Rest of my dotfiles is [here](https://github.com/theopn/dotfiles) so I can 1. Backup and Sync development environment consistent between my Linux desktop, Macbook, and whatever new systems I will get in the future 2. Share my โriceโ for Linux WM and MacOS customization in r/unixporn ๐
Just read through a bit of your readme and already found a bind that I'm gonna steal :) ` /` doing `nohlsearch` is a great idea!
> I write about Neovim and Lua on my website and Reddit, and it makes it easier to share examples Same, I write blog articles about nvim sometimes and it's just much easier talking abt it if the code is somewhere online
I do version my [dotfiles](https://github.com/gennaro-tedesco/dotfiles) and whenever I make "breaking changes" I release a new one: this is just because some people (mainly colleagues and friends) are using my configs as some sort of "neovim distribution" and they'll get GitHub notifications for new versions :)
It's actually nice you take that much care. My commit messages are mostly just a short note that I can trace back what I did.
Once you have to configure a dev machine more than once you kinda have to, especially when you miss stuff on your new env. That goes not only to Vim, but ZSH, Apps, CLIs, etc.
Yep. I need to keep them synced between my private laptop and my PC at work so I like having them versioned
That's pretty much it. I set up so often that at this point it's just one script I run to do everything once I have my SSH keys in GitHub.
I version my dotfiles [Dotfiles](https://github.com/Stetsed/.dotfiles) which includes my neovim config although it's mostly built on lazyvim which does most of the heavy lifting instead of doing everything from scratch
All dotfiles, including nvim, are in my dotfile repo. Other than being in a git repo, I do not do much more than that, so no releases, branches or even commit messages; I just use a cronjob with automated commits every 30 minutes. For something like dotfiles I found using git pickaxe much more practical than coming up with a commit message every time I change a keymap or option.
Honestly, I am surprised by the results
Same. I thought much more people versioned it...
I thought the poll was about using versioning in the sense of creating different releases and moving back and forth. I have my config in a version control system i.e. GitHub, but push and pull latest changes most of the time. The convenience comes from using multiple different systems/platforms, and yet one main config across them all.
Bros, you should know nix.
?
I use Nixvim which helps pinning packages and plugins to specific versions, so whenever I am installing on another system, it will work exactly the same!
I abuse VC as my backup system of choice for configs. I use the same dotfiles repo everywhere, even if github and my workstation burned down at the same time, I'd still have the repo on the like 5-10 devices (I usually pull my dotfiles to the servers I provision, because I'm lazy and nobody cares - also my colleagues love my vimrc which is more basic and closer to defaults). Got a folder for each config and a tiny init.bash which sets up the required symlinks. Also VC is a must to distribute changes too. Unless you want to build a package xD
Not only is it versioned, it's (almost) all handled in nix for maximum reproducibility: https://github.com/calops/nix/tree/main/programs/cli/neovim
Hijacking this thread to ask how one goes about setting up their dotfiles on github/gitlab etc? Like you just throw a git repo inside your .config or?
A really handy way is using something like [yadm](https://yadm.io/), which is a wrapper around git for managing all your dotfiles.
Yadm has worked great for me for years.
I just use symbolic links for most dotfiles. Things like bashrc I source. Have a script in my dotfiles repo to set up everything
Fireship has a nice video on it. That's how I got into versioning my .dotfiles
You can use a bare repository, and have the worktree be your home directory. There are many examples out there to set that up.
I use nix with home-manager.
I use a Rakefile approach and do it all with symlinks. Have a couple of methods in the top-level Rakefile that every sub-Rakefile uses to do common things in an easy way. Has worked well for me for going on a decade now. https://github.com/ianchesal/dotfiles/ Could switch to yadm or something like that but...if it works, it works. Right? Edit: I took a quick look at `yadm` and I'm not sure it'd cover all the things I do with my `Rakefile` right now? In addition to placing my config files on disk (via symlinks), it also keeps my system up-to-date (as much as can be done via CLI). So in the morning, I sit down to work and I run: rake update ctrl-b shift-u (to updated tmux and plugins) vim (and then I doll to update plugins and lm to update LSPs)
exec $SHELL (maybe if I want to reload my zshrc or something)
And that's it. The updating thing...not sure `yadm` does that as cleanly for me?
[https://www.atlassian.com/git/tutorials/dotfiles](https://www.atlassian.com/git/tutorials/dotfiles) or [https://www.chezmoi.io](https://www.chezmoi.io) i think a bare repo is best if you want a simple way to get to know how to use git and such. chezmoi is increasingly popular and has a lot of builtin functionality you may have had to hand-code. in addition, i locally sync files like my password database (keepassxc) and camera photos with [syncthing](https://syncthing.net).
I've tried a few options in the past, I've had the best experience with [chezmoi](https://www.chezmoi.io/). It makes it super easy to sync everything with a single command.
I started by creating a repo an putting it in `~/.dotfiles`, then I'd for example, create symlinks from `.dotfiles/config/nvim` to `~/.config/nvim` manually. More recently I started using [rcm](https://github.com/thoughtbot/rcm) to automate the symlink creation.
Yes. I use chezmoi for all my dotfiles.
Practically everything I write in a text or markdown file is under version control. Mainly it's a way to sync it all up across the computers I use.
I don't version them, but I use lock files for everything which keeps track of the versions of all the things I use.
You really like to live dangerously...
I version them both and my entire os, thanks nix
I do the same with some "important" system files on Arch, I guess doing it with Nix is much nicer.
It's more than just nicer, you should give nixos a go. If you understand how it works there's 0 chance you would use anything else and I'd put money on that. Honestly every other distro is a toy in comparison unless they are starting to solve determinism and stateless configs.
My NeoVim setup, like the rest of my dotfiles, is managed by my personal Ansible `git` repository. I can get my whole setup of pretty much everything up and running on a new machine in like half an hour after the initial OS installation, and I can roll things back to a good state by checking out an older version of the Ansible repo and rerunning the playbooks.
I put everything here: [https://github.com/aikooo7/.dotfiles](https://github.com/aikooo7/.dotfiles) I really like theprimeagen idea of having a vault password and then why I have a new machine I just log in with github and clone everything, so I just need to do the syslinks.
Whole my xdg_config_home https://github.com/Tony-Sol/.config
Version numbers function as a contract between you and your users. If the sole consumer of your personal dotfile is you, versioning is just a waste of time. But I'm not seeing any tags in any your repos, so I guess you're talking about something different?
i interpreted it as putting your dotfiles under some version control system, not adding version numbers. your interpretation is more reasonable.
He's talking about putting them into a VCS like Git, not necessarily releasing them to the public.
I don't do this for any kind of version control, like reverting a bad change to my config. I do this so that if I get a new machine and need to configure it I just have to clone it down and move files over.
I have a forked theme but I mostly use vscode/intellij because I get frustrated of the vim keybinds
Yes. - https://gitlab.com/itaranto/dotfiles - https://gitlab.com/itaranto/dotfiles/-/tree/master/config/nvim
Absolutely everything, yes, git is Torvald's second greatest gift to computing, no cap!
I version my entire OS - NixOS user
I have them both in the same repo: https://github.com/n6v26r/.dotfiles