1

As a Linux user, I have a lot of non-GUI applications for which I configure their desired behaviour through config files. One of the troubles I have is that I have multiple devices from which I would like to use these applications with minimal impact on my workflow. Some examples:

  • Make my neovim behaviour consistent between devices (remaps, relative line numbers etc.);
  • Enable the same zsh aliases between devices;
  • Have a consistent git configuration between devices (e.g., so I don't need to manually configure user.name and user.email on every device);
  • Organise my different ipython profiles and settings.

Also considering that:

  • Some configuration should be shared between devices (e.g., git config);
  • Some configuration would remain local (e.g., some specific zsh aliases).

What are available approaches to create, store and sync my configuration? On the most basic level, I was thinking about having a Git repository with different and multiple files under a local and shared subdirectories, which would then each be sourced on the application's default files on each machine. Is this a viable approach? If not, what would be the closest "manual" solution? Are there any specific software available to achieve this organisation?

Example of how this basic solution would be implemented today:

.
├── aliases.txt
├── git
├── ipython
│   ├── local
│   └── share
├── nvim
│   ├── local
│   │   ├── keymaps.lua
│   │   ├── options.lua
│   │   └── plugins.lua
│   └── share
├── pip
└── zsh
    ├── local
    │   ├── aliases.zsh
    │   ├── bindings.zsh
    │   ├── config.zsh
    │   ├── functions.zsh
    │   └── prompt.zsh
    └── share

0 Answers0