summaryrefslogtreecommitdiff
path: root/README.org
diff options
context:
space:
mode:
Diffstat (limited to 'README.org')
-rw-r--r--README.org39
1 files changed, 20 insertions, 19 deletions
diff --git a/README.org b/README.org
index 0020720..34ca2b7 100644
--- a/README.org
+++ b/README.org
@@ -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.