diff options
author | fpi | 2020-06-12 15:05:55 +0200 |
---|---|---|
committer | fpi | 2020-06-12 15:08:39 +0200 |
commit | ffb23cc69641171ede39d798032b631e513fd4de (patch) | |
tree | 037a758dba05729cc271f910e7626f42aa0eedf8 | |
parent | Remove note of not tangling emacs-init.org (diff) |
Update readme to more accurately reflect status quo
-rw-r--r-- | README.org | 39 |
1 files changed, 20 insertions, 19 deletions
@@ -1,16 +1,22 @@ * My dotfiles -The config files are organized in emacs org files. They are tangled +The config files are organized in [[https://www.gnu.org/software/emacs/][emacs]] [[https://orgmode.org/][org mode]] files. They are tangled and symlinked to the appropriate directories. -[[file:emacs-init.org::*tangle%20dotfiles][A hook]] tangles all files automatically on each save. +[[file:emacs-init.org::tangle-hook][A hook]] tangles all files automatically on each save. In addition there +are shell scripts that tangle all =.org= files at once. -The symlinks can be created by manually running the appropriate src -block in each configuration file. For an automated solution see below. +The symlinks can be created by manually running the appropriate [[https://orgmode.org/worg/org-contrib/babel/][babel]] +source block in each configuration file or by running the scripts +below. ** Git Setup -Every program's configuration lives in its own branch. All branches -except the ones which end with a plus sign are then merged into -=master=. To keep the git history clean, I use this script: +This repository somewhat abuses git branches. Every program's +configuration lives in its own separate branch. All branches are then +merged into =master= using an [[https://git-scm.com/docs/merge-strategies#Documentation/merge-strategies.txt-octopus][octopus merge]]. To keep the git history +clean I reset =master= for every merge. Here is a small script to do +that and push the changes. I mark branches, which I want to keep local +only, with a trailing =+= and then exclude them with the ~+$~ pattern +in grep. #+begin_src shell :shebang "#!/bin/bash" :tangle tangle/merge.sh git checkout master @@ -20,10 +26,10 @@ git push --force origin master #+end_src ** Updating all tangled files -This script (re-)tangles all =.org= and =.org.gpg= files. Run this in -case the org files were updated outside of your local emacs (e.g. -after pulling from a remote). Make sure to run it from the dotfiles -directory. +This script (re-)tangles all =.org= and =.org.gpg= files in the +current directory. Run this in case the org files were updated outside +of your local emacs (e.g. after pulling from a remote). Make sure to +run it from the dotfiles directory. #+begin_src shell :shebang "#!/bin/bash" :tangle no emacs --batch --eval="\ @@ -32,9 +38,9 @@ emacs --batch --eval="\ (mapc 'org-babel-tangle-file (split-string \"$(ls *.org *.org.gpg)\"))))" #+end_src -The above won't quite work for me as I use ~org-crypt~ in some +The above won't quite work for me as I use [[https://orgmode.org/worg/org-tutorials/encrypting-files.html#org697961a][org-crypt]] in some configuration files and it also needs to be loaded & setup. For -details see [[file:emacs-init.org][emacs-init.org]]. +details see [[file:emacs-init.org::org-crypt-tangle-setup][emacs-init.org]]. #+begin_src shell :shebang "#!/bin/bash" :tangle tangle/tangle.sh emacs --batch --eval="\ @@ -65,7 +71,7 @@ the ~ln -siv~ calls: ~yes | tangle/link.sh~. Make sure to run it from the dotfiles directory. As the symlink shell source blocks are scattered in all configuration -files, all files are collected together using cat and then all blocks +files, all files are collected together using ~cat~ and then all blocks with the correct ~:tangle~ target are tangled. Unfortunately there is no function to directly only tangle blocks with a certain target, so this is not straightforward. @@ -86,8 +92,3 @@ rm $catFile $symlinkFile #+end_src - -* Window manager -I use [[https://github.com/ch11ng/exwm][exwm]] and [[https://awesomewm.org/][awesome]] as my window managers. When doing a lot of -coding and similar stuff I tend to use exwm as I will spend most of my -time in emacs anyway. |