morgant/mlvwmrc

make install overwrites user's local modifications

Opened this issue · 2 comments

While the Makefile has seen improvements lately, one major issue is that make install overwrites the user's ~/.mlvwm/ contents, so any local modifications are lost. Since ~/.mlvwmrc is symlinked to ~/.mlvwm/.mlvwmrc, this means that even some basic settings like preferred theme will be reset. Worse, since "Apple" menu items need to be added to the selected ~/.mlvwm/themes/ file, those items will also be lost.

My initial thoughts for this are:

  1. Using rsync to back up any existing ~/.mlvwm/ directory to a date-stamped ~/.mlvwm-$(date +%Y%m%d-%H%M%S) directory before installing, then using rsync to install directories to ~/.mlvwm/. Naturally, that adds rsync as a prerequisite.
  2. Perform a recursive diff against files & directories in ~/.mlvwm/ so that it warns if any files differ, but I'd assume that most files will differ because of updates to this repository.
  3. Splitting some configuration (like the entirety of the "Apple" menu) out into separate files so that they can be more easily modified, then also testing to see if user modifications can be Read in after the defaults to override prior settings from defaults.

Any other thoughts are welcome.

While fixing Issue #13, I updated the Makefile 'install' target to find & mv the $HOME/.mlvwm directory to a timestamped backup to prevent overwriting.

That's a start, but the user will still need to manually compare and re-apply modifications, so not ideal. Also, make install doesn't warn the user that this is the case and neither does the documentation.