43 lines
2.2 KiB
Markdown
43 lines
2.2 KiB
Markdown
---
|
|
title: Easy customisation using patches
|
|
date: 2025-01-13
|
|
permalink: daily/2025/01/13/patches
|
|
tags:
|
|
- software-development
|
|
- nix
|
|
snippet: |
|
|
I haven't written a patch file for a while, but I did this week to customise a script I use on my computer and to make everything more maintainable.
|
|
---
|
|
|
|
I'm a long-time Vim and tmux user.
|
|
|
|
I used them before [I switched to using Neovim full time][0] in July 2021.
|
|
|
|
More recently, I've used a script that creates and attaches to tmux sessions based on the directories in my Code directory, making it easy to switch between projects.
|
|
|
|
It was based on others by [Jess Archer][1] and ThePrimeagen, although Prime recently created a new version of his as its own project, so I decided to switch to his version.
|
|
|
|
But there was one issue - the paths to search for directory names is hard-coded and don't match mine.
|
|
|
|
I started by duplicating his and changing the paths, but that would mean missing any future updates and having to maintain my version separately.
|
|
|
|
Until I realised I could use his version and apply patches to it for my changes and customisations.
|
|
|
|
This is something I'm familiar with from my Drupal contributions, as we used to attach patch files to issues before moving to GitLab and merge requests.
|
|
|
|
I was able to make my changes and easily [apply the patch easily as part of my Nix derivation][2].
|
|
|
|
This means I'll get any future updates to the script, keep my changes and Nix will automatically apply my patch whenever I rebuild my system.
|
|
|
|
I really like this approach, as I'm no longer duplicating the script and don't have the maintenance overhead whilst still making any customisations I need.
|
|
|
|
In fact, there are Linux applications such as dwm, dmenu and st (a simple terminal), all written by suckless.org, that use this approach as the main method of configuration and customisation.
|
|
|
|
They release the core package and people write and contribute patch files to customise it as they need.
|
|
|
|
Although patches are no longer used on Drupal.org, they're still a great way to customise and contribute to open source software.
|
|
|
|
[0]: {{site.url}}/blog/going-full-vim
|
|
[1]: {{site.url}}/podcast/25-jess-archer-drush-laravel-prompts
|
|
[2]: https://code.oliverdavies.uk/opdavies/dotfiles/commit/5fd27efa502bd48eb7d897acec8aa3344bef2247
|