uuid: - value: 46b8861e-c2e4-49ef-8b79-fb14effaef6a langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:08+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: 'To configure or not to configure' created: - value: '2024-08-08T00:00:00+00:00' changed: - value: '2025-05-11T09:00:08+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2024/08/08/to-configure-or-not-to-configure langcode: en body: - value: |

It's been more than nine years since I started my dotfiles repository, which is a collection of configuration files for tools I use.

Originally containing my .gitconfig configuration file for Git, it now contains my configuration for Neovim, tmux, Git and a lot more.

One of the things I like is being able to see and read other peoples' dotfiles and take inspiration from their configurations.

I see some configurations that are very complex and customised, and some which are simpler.

Recently, I've been thinking about how much customisation is too much, and moving towards a more minimal configuration.

This isn't specific to command-line tools and also applies to customising GUI programs such as PhpStorm or VSCode.

A more complex configuration means more code to maintain.

It's more difficult to work on different computers, whether you're pair or mob programming, or working on a remote server. Would you still be productive if you didn't have all your configurations?

If you've changed the default behaviour of a command, such as not allowing merge commits in Git or rebasing by default, if someone doesn't have that same option, is that going to cause confusion or introduce inconsistencies?

I'm not going to reset all my configuration files to their default values, but I'll continue to review and decide whether I want to customise something on a case by case basis and whether adding it - especially if it's a larger addition, such as adding a Vim plugin - is worth the maintenance overhead.

The same as in an application, I don't want to add modules or plugins that I'm not going to use or aren't adding value, and I want to ensure I'm making the most of what the software offers.

format: full_html processed: |

It's been more than nine years since I started my dotfiles repository, which is a collection of configuration files for tools I use.

Originally containing my .gitconfig configuration file for Git, it now contains my configuration for Neovim, tmux, Git and a lot more.

One of the things I like is being able to see and read other peoples' dotfiles and take inspiration from their configurations.

I see some configurations that are very complex and customised, and some which are simpler.

Recently, I've been thinking about how much customisation is too much, and moving towards a more minimal configuration.

This isn't specific to command-line tools and also applies to customising GUI programs such as PhpStorm or VSCode.

A more complex configuration means more code to maintain.

It's more difficult to work on different computers, whether you're pair or mob programming, or working on a remote server. Would you still be productive if you didn't have all your configurations?

If you've changed the default behaviour of a command, such as not allowing merge commits in Git or rebasing by default, if someone doesn't have that same option, is that going to cause confusion or introduce inconsistencies?

I'm not going to reset all my configuration files to their default values, but I'll continue to review and decide whether I want to customise something on a case by case basis and whether adding it - especially if it's a larger addition, such as adding a Vim plugin - is worth the maintenance overhead.

The same as in an application, I don't want to add modules or plugins that I'm not going to use or aren't adding value, and I want to ensure I'm making the most of what the software offers.

summary: null field_daily_email_cta: { }