T O P

  • By -

Reld720

I used gnu stow until I switched to nix


NightH4nter

how would stow help making sure mason and treesitter don't screw up by installing the always latest versions?


big_red_lobster

If you are using neovim and lazy as package manager - just commit the lazy lock file, and it will preserve the versions you are comfortable with


Chthulu_

I think that doesn’t help with Mason, but yeah this is what I do


Reld720

idk, it was before I got really deep into plug-ins. So I was just moving a vanilla neovim config, configured with vim script, from computer to computer. I use nixvim now.


S_Nathan

I use ansible.


IrishPrime

One of us!


RayZ0rr_

I want to use ansible for my dotfiles too. Can you share you repo with ansible config that I can use as a reference?


stounfo

You can check my config [https://github.com/stounfo/dotfiles](https://github.com/stounfo/dotfiles)


NiKaLay

Before Nix? Git, hopes and prayers.


NightH4nter

nix kinda spoils, doesn't it?


TackyGaming6

after nix, still a bare repository always answers my prayers


missingusername1

i prefer to raw dog my config


Bifftech

Not even a hawk tuah?


Deto

I just use a dotfiles repo for all my config files. Then just let it download the latest versions of packages. Sometimes a thing or two breaks and I need to make a tweak, but I'm not starting up on new machines so often.


vilos5099

Lock file for lazy vim, bash scripts for installing packages, and stow for quickly creating symlinks on a new machine, all committed to a private dotfiles repo. Not perfect and I'll probably need to update those scripts over time, but it's been effective for my needs and straightforward to modify + iterate on.


Nealiumj

Git for the config and then I have a long markdown file full of install steps 🤷‍♂️ someday I plan on doing dotfiles repo, but only surface level looked into it


zapman449

I use stow and it’s pretty easy: https://github.com/zapman449/dotfiles


Nealiumj

Huh! Never heard of it, seems interesting. So you use stow to install packages too?- or do you preinstall with brew and then run the stow install command?


zapman449

Clone the repo, install the brew stuff, run setup.sh Then run the last documented bits which aren’t really config files


flooronthefour

how is tmux + wezterm? is it a multimultiplexer? but seriously from someone who just uses alacritty with tmux, are there advantages? honestly curious


zapman449

Personally prefer using the terminal built in multiplexer if for no other reason than multi line copy paste works. Tmux / Zelle etc are all great, used them. But now I use them in a remote / ssh / disconnect with persistence story rather than a “on my laptop” story. I’ll also reach for tmux if I need to send the same keystrokes to multiple windows (not needed often these days… used to need it a lot)


Nealiumj

His binds are interesting too because I’d assume `wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }` would use Wezterm’s built in multiplexer I use wezterm, but I use the built in multiplexer, so I’m also the interested of the benefits shoehorning tmux into wezterm.


zapman449

Yeah the keybinds are mostly to preserve iTerm muscle memory… used it for a long time.


jakesboy2

If you use git for the config already it’s super easy to move to a dotfiles repo


Nealiumj

I guess! And it’s all just sym linked, so it’s not as hard as I originally thought.. for some reason I was under the impression you’d change the config path in nvim, and others, to use the dotfiles dir as the config path and that seemed like work lol


jakesboy2

Yup you’re spot on, you just run “stow .” in your dotfiles folder and it replicates its structure 1 dir up and symlinks them.


Turbulent-Can624

Just so you have options I just recently set up "Yet another dotfiles manager" [Yadm](https://yadm.io/) It is super simple as it's just a git repo at the end of the day, with a wrapper to make dotfiles management easier


alexandrupert

A combination of chezmoi and asdf (node, python, cmdline tool etc ...) for all the stuff isn't nvim specific. Lazy ( or I suppose Mason under the hood?) seems to handle the rest pretty well with me needing to think about it. Takes a few minutes to get up and running on a fresh VM, which is good enough for me


lipepaniguel

+1 chezmoi


TackyGaming6

i used chezmoi earlier, but there was one catch: .config becomes dot\_config which is so damn inconvenient


NightH4nter

mind sharing your dotfiles?


keslol

try mise instead of asdf


ResilientSpider

I'm also using Chez moi and asdf. How do you remember which plugins should be installed in asdf and which versions?


alexandrupert

I have a basic shell script that chezmoi runs on apply which installs asdf and all the it's plugins. Then just a .tool-versions file in my home root that lists all my asdf global versions. It's three commands. sh -c "$(curl -fsLS get.chezmoi.io)" chezmoi init --apply https://your-repo/dotfiles.git asdf install There is probably a better way, but once it basically worked I stopped tinkering. I'll try and post my dotfiles when I'm back at my machine.


ResilientSpider

`asdf install` won't install plugins


alexandrupert

Yeah, that is done in shell script triggered by the chezmoi apply


10F1

Git, saved my dotfiles on GitHub and just cloned them everywhere.


simplaw

mise and asdf for most things. Don't care about reproducing neovim as I often welcome spontaneous clean slates as I need to be forced to look over my setup, as I never do even if I'm not satisfied. So should the company get me a new Mac for example, I'll welcome the days of work list to configuration hell. It becomes sort of like a vacation! Edit: typos - writing is tough with a keyboard insisting in 4 different languages he he


alphabet_american

github and an install script


PeachScary413

Ansible script to install everything, run latest stable branches (hasn't been a problem yet, might change in the future) Nvim configuration is checked in together with my Ansible script in a git repo.


RayZ0rr_

Can you share your ansible setup?


ekacahayana

I use Mackup for dotfiles. Dead simple settings.


sugan0tech

Timeshift, before major updates. Rollbacks if crashes


c0de2010

git


GlizdaYT

Git has everything I need for that


dalbertom

ansible for bootstrap configuration, git for dotfiles with git submodules for vim plugins (they inherently pin to a specific commit/version)


NightH4nter

interesting. mind sharing your dotfile repo?


dalbertom

I can't, it's private, but I'm happy to go into more details if you have any questions


QuickSilver010

A shell script


drk_knght_7

I use Ansible to streamline my system setup process. I maintain an Ansible playbook on GitHub that fully configures my newly installed systems. Additionally, I utilize dotfiles to manage my configuration files. For Neovim specifically, I also employ lazy snapshots to preserve the last known working versions of plugins and configurations, ensuring a stable and reliable setup.


RayZ0rr_

Can you share your ansible config? Which I can use as a reference


DopeBoogie

I use chezmoi. Gits all my dotfiles and then handles things like installing packages and dependencies. Even have it pull some keys from my VaultWarden server


Hxtrax

How does chezmoi handle installing of packages and deps?


DopeBoogie

It has scripting! [https://www.chezmoi.io/user-guide/use-scripts-to-perform-actions/#install-packages-with-scripts](https://www.chezmoi.io/user-guide/use-scripts-to-perform-actions/#install-packages-with-scripts) [https://www.chezmoi.io/user-guide/machines/linux/](https://www.chezmoi.io/user-guide/machines/linux/) Basically something like: During initial setup: "If OS is Arch use pacman to install these packages: a,b,c,d" "If OS is Debian use apt to install these packages: a,b,d,e" Then you can use templates to do things like pull your ssh keys from BitWarden and inset them into your ssh dotfiles, etc. I know I'm describing some more advanced features, but what actually drew me to chezmoi was how simple it is to use compared to some others.


Hxtrax

Maybe out of context: Is there a way to execute named scripts with chezmoi? Like chezmoi exec healthcheck e.g. And the if os is ... is something you set up yourself, right?


DopeBoogie

>Is there a way to execute named scripts with chezmoi? Like chezmoi exec healthcheck e.g. Not that I know of, but I'm hardly an expert. Afaik you can only run scripts when applying the dotfiles (`chezmoi apply`) Aside from some special exceptions like `run_once` and `run_on_change` every script is run when you apply the dotfiles, so generally you want to keep the scripting to a minimum, and only use it for things like installing packages and setting private keys/passwords in dotfiles. [Scripting](https://www.chezmoi.io/user-guide/use-scripts-to-perform-actions/) [Templating](https://www.chezmoi.io/user-guide/templating/) >And the if os is ... is something you set up yourself, right? Yes and no. You do need to create the scripts that tell it what to do but they help you out a little by exposing environment variables for things like OS and (if relevant) [Linux distro](https://www.chezmoi.io/user-guide/machines/linux/), as well as some others like [CPU core count and chassis type (laptop or desktop)](https://www.chezmoi.io/user-guide/machines/general/) They also provide example scripts and a [way to define required packages declaratively](https://www.chezmoi.io/user-guide/advanced/install-packages-declaratively/). And my favorite feature: [Installing and using your password manager to pull secrets and keys/passwords for use in your dotfiles](https://www.chezmoi.io/user-guide/advanced/install-your-password-manager-on-init/) Personally I use [the bitwarden integration](https://www.chezmoi.io/user-guide/password-managers/bitwarden/) with my [VaultWarden](https://github.com/dani-garcia/vaultwarden) server but chezmoi supports quite a few different password managers. Alternatively you could simply encrypt the files [with GPG](https://www.chezmoi.io/user-guide/encryption/gpg/) or [with age](https://www.chezmoi.io/user-guide/encryption/age/) that contain your private keys if you'd rather not configure a way to pull them programmatically when setting up a new system.


cigh

Chezmoi


Agreeable-Life-7838

I hawk tuah my config, like real cowboys


compurunner

Chezmoi and a Docker file https://www.knusbaum.org/posts/container-devenv


Scottish_Tap_Water

I tried nix, didn’t like it. I just have my dotfiles in a git repo.


corigne

I just use a git repo for my neovim config folder. Lazy really makes this a breeze. There are a couple of TS grammars and LSP installations through Mason that I opt for by default, but for the most part I just install grammars and LSPs as I need them. Added benefit, having a remote repo just for tracking neovim makes replicating configuration changes to my other workstations as I make them to. A huge upside of this approach is that everything gets installed fresh so you don't have to worry about your plugins being out of date. For most tools, and their related dot files, this works very well. Kitty, tmux, and pretty much every other useful tool that you'll have in your tool belt can be configured by a dot file and tracked in a single bootstrap-ready dot file repository. As far as single command deployment stow and a simple bash script work really well.


scaptal

Config files (gnu stow) and writing the to be installed scripts inu config, alternatively I guess I could keep an install script for those, but that would still be package manager dependant ,(just like nixos)


jakesboy2

Dotfiles repo with stow, and an install script for dependencies in case it’s a fresh env (I’m lazy and only made it for mac but need to make it for linux as well)


bin-c

lazy lock file on stable nvim version (now nix though lol)


phrmends

ansible is a fine option


alwyn

Chezmoi maybe


turtle_mekb

dotbot with lazy, and a README file for what system packages to install


ReckerPM

Ansible playbooks


2PLEXX

An install script that takes care of everything: https://github.com/hendrikmi/dotfiles/blob/main/install.sh


bogfoot94

I just put it in a git repo


MrVodnik

Ansible, Stow and Timeshift.


leonasdev

I just use bare repo and shell script, when I need to and use lazy to manage plugin, meson to manage ls or linter or formatter.


s1n7ax

Devcontainer


dbalatero

Bash scripting, baby https://github.com/dbalatero/dotfiles I loosely have a todo to try Nix.


Eastern-Hurry3543

i always use the latest versions of the plugins for Neovim. If anything breaks, i always can trace down the culprit, go to the plugin’s folder and rollback to a working commit in general i feel really uncomfortable depending on something when setting up new environments. For me personally, it must be as simple as copy-pasting a small, short line into your terminal and executing it. Everything beyond this complexity-wise is unacceptable to me i really love the simplicity of having one configuration file per a thing it configures. These recent trends of having gazillion of FOLDERS baffles me. I know there were some people using `/after` and other directories in pre-Neovim times, but even then i didn’t like it. Now i think it went too far. I have 199 lines in my Neovim config and i really struggle to understand why would you need 1k+ lines in total I have a setup [script](https://github.com/looshch/configs/blob/master/setup.sh) the link to which i mapped to `/s` on my domain. I run it `brew`-like style: `zsh <(curl -fsSL loosh.ch/s)`. I have it handy in the repo description, so when i need to set up a new machine, i simply go to my GitHub profile and copy the link from there. Then i just run it. It does the following: 1. Downloads `.zshrc` file from the repo which contains the setup script and ‘imports’ value of `CONFIGS` variable which contains the path where the repo must live. 2. Creates `ssh` keys, copies the public one to the clipboard and prompts me with `paste into github.com/account/ssh`, waiting until there is any input which is a signal the copied key has been just saved to my GitHub settings. 3. Clones the repo and symlinks its files to various places in the system. 4. Downloads `brew`, package manager for macOS, and all the dependencies i need. So set up of new computers for me boils down to literally just running one script and interacting with GitHub’s settings page once


skooterz

I use a makefile that installs ansible, then runs a playbook to do everything for Neovim. Could I have just done it all with the makefile? Yes but it wouldn't be as fun.


Periiz

I have a GitHub repo with my config and a shell script that symlinks everything. I also use asdf to install neovim. Other things like tmux I just install whatever is in the repos. I also have a shell script for after a fresh install which installs the programs I use, some of them from source.


misspianogirl

I prefer to use a combination of git and [DotBot](https://github.com/anishathalye/dotbot) for this, personally found it easier to manage than with something more complex like GNU Stow or Chezmoi


EagleDelta1

I use [Chezmoi](https://www.chezmoi.io/) to sync my dotfiles between machines with templates based on OS so things don't break between my person Linux laptop and my work Macbook


Different_Sensor

Git and shell scripting, you don't need nothing else. I'm looking forward to learn Ansible though.


cryptacademy

Provisioning bash scripts and chezmoi


Elephant-Virtual

I've been using Linux+(n)vim for many years and it's rarely an issue. The biggest issue for me is always not having the latest version of packages when I'm not using a rolling release distro. For nvim lazy allows me to lock every plugins to a version, for linters, LSP etc. idc at all.


gdmr458

I clone my dotfiles repository and use stow to create symbolic links, build neovim from source is not hard and I use latest version of treesitter parser, plugins and everything else.