| @@ -6,22 +6,16 @@ LAST:=$(shell cat .last || echo 0) | |||
| NEXT:=$(shell l=$(LAST); ((l=l+1)); echo $$l) | |||
| NEXTGEN:=$(PWD)/generation/$(NEXT) | |||
| LASTGEN:=$(PWD)/generation/$(LAST) | |||
| TANGLERS:=readme.org emacs.org | |||
| CUSTOM:= | |||
| TANGLERS:=$(CUSTOM) readme.org emacs.org tmux.org git.org x.org nix.org | |||
| GEN:=$(LAST) | |||
| OPTIONS:= | |||
| all: clean tangle-next | |||
| tmp: | |||
| install -dm755 $@ | |||
| INSTALLDIRS=tmp $(NEXTGEN) $(LASTGEN) generation/$(GEN) | |||
| $(NEXTGEN): | |||
| install -dm755 $@ | |||
| $(LASTGEN): | |||
| install -dm755 $@ | |||
| all: clean tangle-next | |||
| generation/$(GEN): | |||
| $(INSTALLDIRS): | |||
| install -dm755 $@ | |||
| generation: $(NEXTGEN) $(LASTGEN) tmp | |||
| @@ -22,4 +22,7 @@ for file in $(find . -type f -print); do | |||
| fi | |||
| done | |||
| if [ $rc != 0 ]; then | |||
| echo differences between ${src} and ${dest} | |||
| fi | |||
| exit $rc | |||
| @@ -9,6 +9,18 @@ | |||
| Startup related tasks/setup that might be used later on. | |||
| *** tangle functions | |||
| Duplicated from tangle.el just to make using org easier. | |||
| TODO: make this stuff work sanely in emacs org mode and | |||
| via external tangling. Not tangled for now. | |||
| #+BEGIN_SRC emacs-lisp :tangle no | |||
| (defun tangle/yn (p) (if (bound-and-true-p p) "yes" "no")) | |||
| (defun tangle/file (p file) (if (bound-and-true-p p) (concat "tmp/" file) "no")) | |||
| #+END_SRC | |||
| *** emacs package setup | |||
| Setup the builtin emacs package manager. | |||
| @@ -596,6 +608,9 @@ Highlight matching ()'s []'s etc... | |||
| *** org-mode | |||
| - foo | |||
| - bar | |||
| Org-mode keybindings and settings, pretty sparse really. | |||
| #+BEGIN_SRC emacs-lisp | |||
| @@ -606,13 +621,38 @@ Org-mode keybindings and settings, pretty sparse really. | |||
| ("C-c c" . org-capture) | |||
| ("C-c l" . org-store-link) | |||
| ("C-c p" . org-latex-export-to-pdf)) | |||
| :init (use-package org-bullets) | |||
| :init (use-package org-bullets | |||
| :config | |||
| (progn | |||
| (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))) | |||
| :config | |||
| (progn | |||
| (custom-set-variables | |||
| '(org-log-done t) | |||
| '(org-hide-leading-stars t) | |||
| '(org-hide-emphasis-markers t) | |||
| ) | |||
| (font-lock-add-keywords 'org-mode | |||
| '(("^ +\\([-*]\\) " | |||
| (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) | |||
| (let* ((variable-tuple (cond ((x-list-fonts "Source Sans Pro") '(:font "Source Sans Pro")) | |||
| ((x-list-fonts "Lucida Grande") '(:font "Lucida Grande")) | |||
| ((x-list-fonts "Verdana") '(:font "Verdana")) | |||
| ((x-family-fonts "Sans Serif") '(:family "Sans Serif")) | |||
| (nil (warn "Cannot find a Sans Serif Font. Install Source Sans Pro.")))) | |||
| (base-font-color (face-foreground 'default nil 'default)) | |||
| (headline `(:inherit default :weight bold :foreground ,base-font-color))) | |||
| (custom-theme-set-faces 'user | |||
| `(org-level-8 ((t (,@headline ,@variable-tuple)))) | |||
| `(org-level-7 ((t (,@headline ,@variable-tuple)))) | |||
| `(org-level-6 ((t (,@headline ,@variable-tuple)))) | |||
| `(org-level-5 ((t (,@headline ,@variable-tuple)))) | |||
| `(org-level-4 ((t (,@headline ,@variable-tuple :height 1.1)))) | |||
| `(org-level-3 ((t (,@headline ,@variable-tuple :height 1.25)))) | |||
| `(org-level-2 ((t (,@headline ,@variable-tuple :height 1.5)))) | |||
| `(org-level-1 ((t (,@headline ,@variable-tuple :height 1.75)))) | |||
| `(org-document-title ((t (,@headline ,@variable-tuple :height 1.5 :underline nil)))))) | |||
| (org-reload) | |||
| ) | |||
| ) | |||
| @@ -1,13 +1,13 @@ | |||
| ;;-*-mode: emacs-lisp; coding: utf-8;-*- | |||
| ;; Copyright: 2016 Mitchell Tishmack | |||
| ;; Tangle an org mode file with babel using emacs. | |||
| (load-file (if (getenv "OPTIONS") | |||
| (concat (concat "./" (getenv "OPTIONS")) ".el") | |||
| "./options.el")) | |||
| (require 'org-install) | |||
| (require 'org) | |||
| (load-file "./tangle.el") | |||
| (load-defaults-or-options) | |||
| ;; Iterate through all the files given and tangle them | |||
| (dolist | |||
| (file command-line-args-left) | |||
| @@ -0,0 +1,140 @@ | |||
| #+TITLE: Git Configuration | |||
| #+AUTHOR: Mitch Tishmack | |||
| #+STARTUP: hidestars | |||
| #+STARTUP: odd | |||
| #+BABEL: :cache yes | |||
| #+PROPERTY: header-args :cache yes :padline no :comments no | |||
| General git configuration split out into sections mostly. | |||
| * ~/.gitconfig | |||
| :PROPERTIES: | |||
| :header-args: :tangle tmp/.gitconfig :comments no :padline no :cache yes :mkdirp yes | |||
| :END: | |||
| ** pager | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [pager] | |||
| color = true | |||
| #+END_SRC | |||
| ** color | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [color] | |||
| status = auto | |||
| diff = auto | |||
| branch = auto | |||
| [color "status"] | |||
| added = green | |||
| changed = blue | |||
| untracked = red | |||
| [color "branch"] | |||
| current = green | |||
| local = blue | |||
| remote = red | |||
| [color "diff"] | |||
| meta = blue bold | |||
| frag = black reverse | |||
| old = red reverse | |||
| new = green reverse | |||
| #+END_SRC | |||
| ** alias | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [alias] | |||
| begin = !git init && git commit --allow-empty -m 'Initial empty commit' | |||
| up = !git pull --rebase && git push | |||
| wsdiff = diff --color-words --ignore-space-at-eol --ignore-space-change --ignore-all-space --ignore-all-space | |||
| wdiff = diff --color-words | |||
| ci = commit | |||
| ciu = commit --all | |||
| co = checkout | |||
| ds = diff --stat | |||
| ba = branch --all | |||
| st = status --short --branch | |||
| s = status --short --branch --untracked-files=no | |||
| unstage = reset HEAD | |||
| tlog = log --graph --color=always --abbrev-commit --date=relative --pretty=oneline | |||
| hist = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative | |||
| slog = log --oneline --decorate | |||
| fixup = commit --fixup | |||
| squash = commit --squash | |||
| ri = rebase --interactive --autosquash | |||
| ra = rebase --abort | |||
| effit = reset --hard | |||
| # What commits differ between branches, note, equivalent commits are omitted. | |||
| # Use this with three dot operator aka master...origin/master | |||
| cpdiff = log --no-merges --left-right --graph --cherry-pick --oneline | |||
| # Same as ^ only equivalent commits are listed with a = sign. | |||
| cmdiff = log --no-merges --left-right --graph --cherry-mark --oneline | |||
| # git update with submodule update | |||
| sup = git pull && git submodule update --init --recursive | |||
| # git clone with submodules | |||
| sc = !git clone --recursive $1 | |||
| # what files are getting updated a lot | |||
| churn = !git log --all -M -C --name-only --format='format:' "$@" | sort | grep -v '^$' | uniq -c | sort | awk 'BEGIN {print "count,file"} {print $1 "," $2}' | |||
| # help the gc a bit and get a bit more space back for a local clone | |||
| trim = !git reflog expire --expire=now --all && git gc --prune=now | |||
| #+END_SRC | |||
| ** github | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [github] | |||
| user = mitchty | |||
| #+END_SRC | |||
| ** credential | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [credential] | |||
| helper = netrc -v -f ~/.netrc.gpg -f ~/.netrc | |||
| #+END_SRC | |||
| ** advice | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [advice] | |||
| statushints = false | |||
| #+END_SRC | |||
| ** gui | |||
| #+BEGIN_SRC conf :tangle (tangle/file 'git-p ".gitconfig") | |||
| [gui] | |||
| fontui = -family Monaco -size 8 -weight normal -slant roman -underline 0 -overstrike 0 | |||
| fontdiff = -family Monaco -size 8 -weight normal -slant roman -underline 0 -overstrike 0 | |||
| #+END_SRC | |||
| ** http | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [http] | |||
| postBuffer = 209715200 | |||
| #+END_SRC | |||
| ** push | |||
| #+BEGIN_SRC conf :tangle (when (eq git-p t) "tmp/.gitconfig") | |||
| [push] | |||
| default = simple | |||
| #+END_SRC | |||
| ** url rewrites | |||
| #+BEGIN_SRC conf :tangle (tangle/file 'git-p ".gitconfig") | |||
| [url "https://github.com/"] | |||
| insteadOf = git://github.com/ | |||
| #+END_SRC | |||
| ** username/email | |||
| #+BEGIN_SRC conf :tangle (tangle/file 'git-p ".gitconfig") | |||
| [user] | |||
| name = Mitch Tishmack | |||
| email = mitch.tishmack@gmail.com | |||
| #+END_SRC | |||
| * ~/.gitignore | |||
| :PROPERTIES: | |||
| :header-args: :tangle tmp/.gitignore :comments no :padline no :cache yes :mkdirp yes | |||
| :END: | |||
| Common crap/build artifacts that git should always ignore. | |||
| #+BEGIN_SRC conf :tangle no | |||
| .*~ | |||
| *~ | |||
| .\#* | |||
| \#* | |||
| \#*\# | |||
| .\#*\# | |||
| .DS_Store | |||
| *.pyc | |||
| *.rbc | |||
| *.elc | |||
| *.swp | |||
| *.[oa] | |||
| *.hi | |||
| #+END_SRC | |||
| @@ -0,0 +1,171 @@ | |||
| #+TITLE: Nix Configuration | |||
| #+AUTHOR: Mitch Tishmack | |||
| #+STARTUP: hidestars | |||
| #+STARTUP: odd | |||
| #+BABEL: :cache yes | |||
| #+PROPERTY: header-args :tangle tmp/.nixpkgs/config.nix :cache yes :padline no :mkdirp yes :comments no | |||
| Nix user config.nix setup. | |||
| #+BEGIN_SRC conf :tangle (when (eq nix-p t) "tmp/.nixpkgs/config.nix") | |||
| { | |||
| allowUnfree = true; | |||
| allowBroken = true; | |||
| packageOverrides = pkgs: rec { | |||
| pinentry = pkgs.pinentry.override { gtk2 = null; qt4 = null; ncurses = null; }; | |||
| gnupg = pkgs.gnupg.override { x11Support = false; pinentry = false; }; | |||
| youtube-dl = pkgs.youtube-dl.override { pandoc = null; }; | |||
| # This didn't work | |||
| # haskell = pkgs.haskell // { | |||
| # packages = pkgs.haskell.packages // { | |||
| # ghc = pkgs.haskell.packages.ghc.override { | |||
| # overrides = self: pkgs: { | |||
| # idris = self.callPackage ./idris-0.10.nix {}; | |||
| # }; | |||
| # }; | |||
| # }; | |||
| # }; | |||
| # Nor this | |||
| # idris = pkgs.haskell.lib.overrideCabal pkgs.idris (oldAttrs: { | |||
| # version = "0.10"; | |||
| # sha256 = "043adsnadjxfyk8lqkv6dgq3l6qijsj5s4rpky0zy06x5k5gx4sm"; | |||
| # }); | |||
| default = with pkgs; buildEnv { | |||
| name = "default"; | |||
| paths = [ | |||
| ansible | |||
| ack | |||
| aria | |||
| iperf | |||
| cacert | |||
| curl | |||
| clang | |||
| clang-analyzer | |||
| diffutils | |||
| patchutils | |||
| gitAndTools.gitFull | |||
| gitAndTools.git-extras | |||
| bazaarTools | |||
| mercurial | |||
| subversionClient | |||
| gist | |||
| mercurial | |||
| docbook5 | |||
| entr | |||
| emacs | |||
| gnupg1compat | |||
| gnutar | |||
| gnumake | |||
| sloccount | |||
| cloc | |||
| less | |||
| multitail | |||
| rlwrap | |||
| gdbm | |||
| mosh | |||
| htop | |||
| # imagemagick also busted on osx now | |||
| keychain | |||
| silver-searcher | |||
| aspell | |||
| aspellDicts.en | |||
| openssl | |||
| pinentry | |||
| pbzip2 | |||
| pigz | |||
| pv | |||
| postgresql | |||
| readline | |||
| rsync | |||
| sqlite | |||
| # texLiveFull and now this things broken on osx nix, sigh | |||
| tmux | |||
| tree | |||
| wget | |||
| wakelan | |||
| unzip | |||
| upx | |||
| xz | |||
| multimarkdown | |||
| jq | |||
| # rtags broken again on osx, fix it | |||
| # p7zip broken again on osx, god nix is terribad at keeping things working | |||
| unrar | |||
| watch | |||
| nox | |||
| mutt | |||
| duply | |||
| zsh | |||
| pylint | |||
| python27Packages.howdoi | |||
| python27Packages.youtube-dl | |||
| python27Packages.pyflakes | |||
| python27Packages.flake8 | |||
| python27Packages.virtualenv | |||
| python27Packages.pip | |||
| # xhyve compiles normally, figure out hypervisor framework issue | |||
| lastpass-cli | |||
| haskellPackages.alex | |||
| haskellPackages.happy | |||
| haskellPackages.bake | |||
| haskellPackages.cabal-dependency-licenses | |||
| haskellPackages.cabal-install | |||
| haskellPackages.cabal-meta | |||
| haskellPackages.ghc-core | |||
| haskellPackages.ghc-mod | |||
| haskellPackages.hasktags | |||
| haskellPackages.hindent | |||
| haskellPackages.hoogle | |||
| haskellPackages.hspec | |||
| haskellPackages.pandoc | |||
| haskellPackages.shake | |||
| haskellPackages.ShellCheck | |||
| haskellPackages.stack | |||
| haskellPackages.nats | |||
| haskellPackages.transformers-compat | |||
| ]; | |||
| }; | |||
| }; | |||
| } | |||
| #+END_SRC | |||
| Because idris 0.11 fails its testsuite, got no time to figure it out right now. | |||
| #+END_SRC conf :tangle (when (eq nix-p t) ".nixpkgs/idris-0.10.nix") | |||
| { mkDerivation, annotated-wl-pprint, ansi-terminal, ansi-wl-pprint | |||
| , async, base, base64-bytestring, binary, blaze-html, blaze-markup | |||
| , bytestring, cheapskate, containers, deepseq, directory, filepath | |||
| , fingertree, fsnotify, haskeline, mtl, network | |||
| , optparse-applicative, parsers, pretty, process, safe, split | |||
| , stdenv, text, time, transformers, transformers-compat, trifecta | |||
| , uniplate, unix, unordered-containers, utf8-string, vector | |||
| , vector-binary-instances, zip-archive, zlib | |||
| }: | |||
| mkDerivation { | |||
| pname = "idris"; | |||
| version = "0.10"; | |||
| sha256 = "043adsnadjxfyk8lqkv6dgq3l6qijsj5s4rpky0zy06x5k5gx4sm"; | |||
| isLibrary = true; | |||
| isExecutable = true; | |||
| libraryHaskellDepends = [ | |||
| annotated-wl-pprint ansi-terminal ansi-wl-pprint async base | |||
| base64-bytestring binary blaze-html blaze-markup bytestring | |||
| cheapskate containers deepseq directory filepath fingertree | |||
| fsnotify haskeline mtl network optparse-applicative parsers pretty | |||
| process safe split text time transformers transformers-compat | |||
| trifecta uniplate unix unordered-containers utf8-string vector | |||
| vector-binary-instances zip-archive zlib | |||
| ]; | |||
| executableHaskellDepends = [ | |||
| base directory filepath haskeline transformers | |||
| ]; | |||
| homepage = "http://www.idris-lang.org/"; | |||
| description = "Functional Programming Language with Dependent Types"; | |||
| license = stdenv.lib.licenses.bsd3; | |||
| } | |||
| #+END_SRC | |||
| @@ -0,0 +1,23 @@ | |||
| ;;-*-mode: emacs-lisp; coding: utf-8;-*- | |||
| ;; All these variables control what/how readme.org gets tangled | |||
| ;; into dotfiles. Off by default set to t to turn them on as | |||
| ;; needed. | |||
| ;; OS types | |||
| (setq bsd-p nil) | |||
| (setq linux-p nil) | |||
| (setq osx-p t) | |||
| ;; Optional things | |||
| (setq nix-p nil) | |||
| (setq tmux-p t) | |||
| (setq git-p t) | |||
| (setq emacs-p t) | |||
| (setq vim-p nil) | |||
| (setq zsh-p t) | |||
| (setq mosh-p t) | |||
| (setq x-p t) | |||
| ;; Language specific | |||
| (setq haskell-p t) | |||
| (setq perl-p t) | |||
| @@ -133,6 +133,19 @@ N and don't increment. | |||
| - [ ] Maybe checksum file contents somehow and use that? | |||
| - [ ] More? For now its functional. | |||
| * External Tanglers | |||
| Putting everything in readme.org was getting annoying. | |||
| | name | file | | |||
| |-------+-----------| | |||
| | emacs | [[file:emacs.org][emacs.org]] | | |||
| | tmux | [[file:tmux.org][tmux.org]] | | |||
| | git | [[file:git.org][git.org]] | | |||
| | x | [[file:x.org][x.org]] | | |||
| | nix | [[file:nix.org][nix.org]] | | |||
| * ~/.profile | |||
| :PROPERTIES: | |||
| :header-args: :tangle tmp/.profile :comments no :padline no :cache yes :mkdirp yes | |||
| @@ -1535,226 +1548,6 @@ cal.each do |line| | |||
| end | |||
| end | |||
| #+END_SRC | |||
| * git | |||
| ** ~/.gitconfig | |||
| :PROPERTIES: | |||
| :header-args: :tangle tmp/.gitconfig :comments no :padline no :cache yes :mkdirp yes | |||
| :END: | |||
| General git configuration. | |||
| *** pager | |||
| #+BEGIN_SRC conf | |||
| [pager] | |||
| color = true | |||
| #+END_SRC | |||
| *** color | |||
| #+BEGIN_SRC conf | |||
| [color] | |||
| status = auto | |||
| diff = auto | |||
| branch = auto | |||
| [color "status"] | |||
| added = green | |||
| changed = blue | |||
| untracked = red | |||
| [color "branch"] | |||
| current = green | |||
| local = blue | |||
| remote = red | |||
| [color "diff"] | |||
| meta = blue bold | |||
| frag = black reverse | |||
| old = red reverse | |||
| new = green reverse | |||
| #+END_SRC | |||
| *** alias | |||
| #+BEGIN_SRC conf | |||
| [alias] | |||
| begin = !git init && git commit --allow-empty -m 'Initial empty commit' | |||
| up = !git pull --rebase && git push | |||
| wsdiff = diff --color-words --ignore-space-at-eol --ignore-space-change --ignore-all-space --ignore-all-space | |||
| wdiff = diff --color-words | |||
| ci = commit | |||
| ciu = commit --all | |||
| co = checkout | |||
| ds = diff --stat | |||
| ba = branch --all | |||
| st = status --short --branch | |||
| s = status --short --branch --untracked-files=no | |||
| unstage = reset HEAD | |||
| tlog = log --graph --color=always --abbrev-commit --date=relative --pretty=oneline | |||
| hist = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative | |||
| slog = log --oneline --decorate | |||
| fixup = commit --fixup | |||
| squash = commit --squash | |||
| ri = rebase --interactive --autosquash | |||
| ra = rebase --abort | |||
| effit = reset --hard | |||
| # What commits differ between branches, note, equivalent commits are omitted. | |||
| # Use this with three dot operator aka master...origin/master | |||
| cpdiff = log --no-merges --left-right --graph --cherry-pick --oneline | |||
| # Same as ^ only equivalent commits are listed with a = sign. | |||
| cmdiff = log --no-merges --left-right --graph --cherry-mark --oneline | |||
| # git update with submodule update | |||
| sup = !git checkout master && git pull && git submodule update --init --recursive | |||
| # git clone with submodules | |||
| sc = !git clone --recursive $1 | |||
| # what files are getting updated a lot | |||
| churn = !git log --all -M -C --name-only --format='format:' "$@" | sort | grep -v '^$' | uniq -c | sort | awk 'BEGIN {print "count,file"} {print $1 "," $2}' | |||
| # help the gc a bit and get a bit more space back for a local clone | |||
| trim = !git reflog expire --expire=now --all && git gc --prune=now | |||
| #+END_SRC | |||
| *** github | |||
| #+BEGIN_SRC conf | |||
| [github] | |||
| user = mitchty | |||
| #+END_SRC | |||
| *** credential | |||
| #+BEGIN_SRC conf | |||
| [credential] | |||
| helper = netrc -v -f ~/.netrc.gpg -f ~/.netrc | |||
| #+END_SRC | |||
| *** advice | |||
| #+BEGIN_SRC conf | |||
| [advice] | |||
| statushints = false | |||
| #+END_SRC | |||
| *** gui | |||
| #+BEGIN_SRC | |||
| [gui] | |||
| fontui = -family Monaco -size 8 -weight normal -slant roman -underline 0 -overstrike 0 | |||
| fontdiff = -family Monaco -size 8 -weight normal -slant roman -underline 0 -overstrike 0 | |||
| #+END_SRC | |||
| *** http | |||
| #+BEGIN_SRC | |||
| [http] | |||
| postBuffer = 209715200 | |||
| #+END_SRC | |||
| *** push | |||
| #+BEGIN_SRC conf | |||
| [push] | |||
| default = simple | |||
| #+END_SRC | |||
| *** url rewrites | |||
| #+BEGIN_SRC conf | |||
| [url "https://github.com/"] | |||
| insteadOf = git://github.com/ | |||
| #+END_SRC | |||
| *** username/email | |||
| #+BEGIN_SRC conf | |||
| [user] | |||
| name = Mitch Tishmack | |||
| email = mitch.tishmack@gmail.com | |||
| #+END_SRC | |||
| ** ~/.gitignore | |||
| Common crap/build artifacts that git should always ignore. | |||
| #+BEGIN_SRC conf :tangle tmp/.gitignore :results replace | |||
| .*~ | |||
| *~ | |||
| .\#* | |||
| \#* | |||
| \#*\# | |||
| .\#*\# | |||
| .DS_Store | |||
| *.pyc | |||
| *.rbc | |||
| *.elc | |||
| *.swp | |||
| *.[oa] | |||
| *.hi | |||
| #+END_SRC | |||
| * x | |||
| ** ~/.Xdefaults | |||
| X defaults, just urxvt for the moment. Slightly linux/bsd only but not really. | |||
| #+BEGIN_SRC conf :tangle (when (eq x-p t) "tmp/.Xdefaults") :results replace | |||
| ! urxvt generalish stuff | |||
| ! | |||
| urxvt*termName: rxvt-256color | |||
| urxvt*font: xft:menlo:size=12:antialias=true | |||
| urxvt*perl-ext-common: default,matcher | |||
| urxvt*jumpScroll: true | |||
| urxvt*cursorColor: pink | |||
| urxvt*loginShell: true | |||
| urxvt*scrollBar: true | |||
| urxvt*scrollstyle: next | |||
| urxvt*scrollBar_right: true | |||
| urxvt*scrollTtyOutput: false | |||
| urxvt*cursorBlink: true | |||
| urxvt*saveLines: 10000 | |||
| urxvt*urlLauncher: /usr/bin/google-chrome | |||
| urxvt*matcher.button: 1 | |||
| urxvt*allowWindowOps: true | |||
| #+END_SRC | |||
| ** ~/.Xmodmap | |||
| Swap around left/right clicks basically. | |||
| #+BEGIN_SRC conf :tangle (when (and (eq x-p t) (not (eq osx-p t))) "tmp/.Xmodmap") | |||
| pointer = 3 2 1 4 5 | |||
| #+END_SRC | |||
| OSX is odd. | |||
| #+BEGIN_SRC conf :tangle (when (and (eq x-p t) (eq osx-p t)) "tmp/.Xmodmap") | |||
| pointer = 1 2 3 4 5 | |||
| #+END_SRC | |||
| ** ~/.Xresources | |||
| I can't remember why I did all this effort. But I'll remove it some year I bet. | |||
| #+BEGIN_SRC conf :tangle (when (eq x-p t) "tmp/.Xresources") :results replace | |||
| #define brightblack #ffffff | |||
| #define normblack #f9f9f9 | |||
| #define normgreen #00cc33 | |||
| #define brightgreen #00cc99 | |||
| #define normblue #f00033 | |||
| #define brightblue #0099ff | |||
| #define normcyan #66ccff | |||
| #define brightcyan #66ccff | |||
| #define normwhite #060606 | |||
| #define brightwhite #000000 | |||
| #define normyellow #ffcc33 | |||
| #define brightyellow #ffcc33 | |||
| #define normred #ff3300 | |||
| #define brightred #ff3300 | |||
| #define normmagenta #ff66ff | |||
| #define brightmagenta #ff66ff | |||
| *background: normblack | |||
| *foreground: normwhite | |||
| *fading: 40 | |||
| *fadeColor: brightblack | |||
| *cursorColor: brightcyan | |||
| *pointerColorBackground: #3f3f3f | |||
| *pointerColorForeground: #f3f3f3 | |||
| *color0: #090909 | |||
| *color1: #f00000 | |||
| *color2: normgreen | |||
| *color3: normyellow | |||
| *color4: #0066ff | |||
| *color5: normmagenta | |||
| *color6: normcyan | |||
| *color7: #c8c8c8 | |||
| *color8: #888888 | |||
| *color9: #f00033 | |||
| *color10: brightgreen | |||
| *color11: brightyellow | |||
| *color12: #0099ff | |||
| *color13: brightmagenta | |||
| *color14: brightcyan | |||
| *color15: #f9f9f9 | |||
| #+END_SRC | |||
| * zsh | |||
| ** ~/.zprofile | |||
| @@ -1945,153 +1738,6 @@ PROMPT="%(!.#.$) " # $ as a user # as root | |||
| RPROMPT='${vcs_info_msg_0_} ${PWD/#$HOME/~}' | |||
| #+END_SRC | |||
| * tmux | |||
| ** ~/.tmux.conf | |||
| Tmux configuration. Pretty boring in most ways. | |||
| #+BEGIN_SRC conf :tangle tmp/.tmux.conf | |||
| # Setup utf8 by default and vi mode | |||
| set-window-option -g utf8 on | |||
| set-window-option -g mode-keys vi | |||
| set-window-option -g aggressive-resize on | |||
| # Force zsh to be a login shell | |||
| set-option -g default-command 'zsh -l' | |||
| set-option -g default-terminal 'xterm-256color' | |||
| # Status line options, mainly coloring | |||
| set-window-option -g window-status-bg colour6 | |||
| set-window-option -g window-status-fg black | |||
| set-window-option -g window-status-current-bg white | |||
| # Status line options | |||
| set-option -g status-bg black | |||
| set-option -g status-fg colour7 | |||
| set-option -g status-left-length 24 | |||
| set-option -g status-left '' | |||
| set-option -g status-right-length 13 | |||
| set-option -g status-right "%a %H:%M:%S" | |||
| set-option -g status-interval 7 | |||
| set-option -g status-utf8 on | |||
| # Pane border options, mimics the status line coloring | |||
| set-option -g pane-border-bg colour15 | |||
| set-option -g pane-border-fg colour82 | |||
| set-option -g pane-active-border-bg colour15 | |||
| set-option -g pane-active-border-fg colour2 | |||
| # Alert related things | |||
| set-option -g visual-activity on | |||
| set-option -g visual-bell on | |||
| set-option -g message-bg colour7 | |||
| set-option -g message-fg black | |||
| # Pass through the window title and display it automatically on changes. | |||
| set-option -g set-titles on | |||
| set-option -g set-titles-string '#T' | |||
| set-window-option -g automatic-rename on | |||
| # Key rebinding to make things more au naturalle | |||
| bind-key R \ | |||
| source-file ~/.tmux.conf \;\ | |||
| display 'reloaded tmux config' | |||
| # Log pane output to a file, save with an iso8601 datestamp | |||
| bind-key o \ | |||
| pipe-pane -o "cat >> $HOME/tmux-`iso8601`.log" \;\ | |||
| set-window-option window-status-current-fg green \; | |||
| bind-key O \ | |||
| pipe-pane \;\ | |||
| set-window-option window-status-current-fg default \; | |||
| bind-key N new-session -t default | |||
| # Using s for synchronizing panes, means that s for choosing sessions | |||
| # is now e | |||
| unbind-key s # interactive select sessions | |||
| bind-key e choose-tree | |||
| # (un)synchronize panes with prefix-s | |||
| bind-key s \ | |||
| if-shell \ | |||
| "tmux show-window-options | grep 'synchronize-panes on'" \ | |||
| "set-window-option window-status-current-bg colour7; \ | |||
| set-window-option pane-active-border-fg colour2; \ | |||
| set-window-option pane-active-border-bg colour15; \ | |||
| set-window-option synchronize-panes off; \ | |||
| display 'synchronization off'" \ | |||
| "set-window-option window-status-current-bg red; \ | |||
| set-window-option pane-active-border-fg red; \ | |||
| set-window-option pane-active-border-bg colour15; \ | |||
| set-window-option synchronize-panes on; \ | |||
| display 'synchronizing'" | |||
| # same thing as ^ so it sets up things if we were started with | |||
| # something else that set synchronization. | |||
| if-shell \ | |||
| "tmux show-window-options | grep 'synchronize-panes on' || /bin/true" \ | |||
| "set-window-option window-status-current-bg red; \ | |||
| set-window-option pane-active-border-fg yellow; \ | |||
| set-window-option pane-active-border-bg red" | |||
| # Setup splits to be less annoying | |||
| bind-key \ split-window -h | |||
| bind-key - split-window -v | |||
| # vi keybindings for pane navigation | |||
| bind-key k select-pane -U | |||
| bind-key j select-pane -D | |||
| bind-key h select-pane -L | |||
| bind-key l select-pane -R | |||
| # Make it so that I can detach/etc while holding control down, | |||
| # PURE LAZY | |||
| bind-key C-d detach | |||
| bind-key C-n next-window | |||
| bind-key C-p previous-window | |||
| bind-key C-k select-pane -U | |||
| bind-key C-j select-pane -D | |||
| bind-key C-h select-pane -L | |||
| bind-key C-l select-pane -R | |||
| # Non confirming kill pane plskthxbai | |||
| bind-key x kill-pane | |||
| # In case something I run exits straight away, i'd like to know about it. | |||
| set-option -g set-remain-on-exit on | |||
| # Lets change the prefix key so we don't clobber emacs back one char key | |||
| unbind-key C-b | |||
| # hacky, but C-\ isn't used by anything overly important in emacs | |||
| set-option -g prefix 'C-\' | |||
| # two C-\'s == C-\, if i need it, likely not | |||
| bind 'C-\' send-prefix | |||
| # Delay in sending things is dumb | |||
| set-option -s escape-time 1 | |||
| # so we can scroll the mouse, select panes, etc... | |||
| set -g mouse on | |||
| bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'" | |||
| bind-key m \ | |||
| if-shell \ | |||
| "tmux show-options -g | grep 'mouse on'" \ | |||
| "set -g mouse off; \ | |||
| display 'Mouse modes off'" \ | |||
| "set -g mouse on; \ | |||
| display 'Mouse modes on'" | |||
| #+END_SRC | |||
| #+BEGIN_SRC conf :tangle (when (not (eq osx-p t)) "tmp/.tmux.conf") | |||
| # Assume linux for things, load osx stuff only on osx | |||
| bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer" | |||
| bind C-y run "tmux save-buffer - | xclip -i" | |||
| #+END_SRC | |||
| * vim | |||
| ** ~/.vimrc | |||
| @@ -2125,139 +1771,6 @@ else | |||
| endif " has("autocmd") | |||
| #+END_SRC | |||
| * nix | |||
| #+BEGIN_SRC conf :mkdirp yes :tangle (when (eq nix-p t) "tmp/.nixpkgs/config.nix") | |||
| {pkgs}: { | |||
| allowUnfree = true; | |||
| allowBroken = true; | |||
| packageOverrides = pkgs: with pkgs; { | |||
| pinentry = pkgs.pinentry.override { | |||
| gtk2 = null; | |||
| qt4 = null; | |||
| ncurses = null; | |||
| }; | |||
| gnupg = pkgs.gnupg.override { | |||
| x11Support = false; | |||
| pinentry = true; | |||
| }; | |||
| youtube-dl = pkgs.youtube-dl.override { | |||
| pandoc = null; | |||
| }; | |||
| # haskellPackages = haskellPackages.override { | |||
| # extension = self : super : { | |||
| # cabal = pkgs.haskellPackages.cabalNoTest; | |||
| # }; | |||
| # }; | |||
| default = with pkgs; buildEnv { | |||
| name = "default"; | |||
| paths = [ | |||
| ansible | |||
| ack | |||
| aria | |||
| iperf | |||
| cacert | |||
| curl | |||
| clang | |||
| clang-analyzer | |||
| diffutils | |||
| patchutils | |||
| gitAndTools.gitFull | |||
| gitAndTools.git-extras | |||
| bazaarTools | |||
| mercurial | |||
| subversionClient | |||
| gist | |||
| mercurial | |||
| docbook5 | |||
| entr | |||
| emacs | |||
| gnupg1compat | |||
| gnutar | |||
| gnumake | |||
| sloccount | |||
| cloc | |||
| less | |||
| multitail | |||
| rlwrap | |||
| gdbm | |||
| mosh | |||
| htop | |||
| imagemagick | |||
| keychain | |||
| silver-searcher | |||
| aspell | |||
| aspellDicts.en | |||
| openssl | |||
| pinentry | |||
| pbzip2 | |||
| pigz | |||
| pv | |||
| postgresql | |||
| readline | |||
| rsync | |||
| sqlite | |||
| texLiveFull | |||
| tmux | |||
| tree | |||
| wget | |||
| wakelan | |||
| unzip | |||
| upx | |||
| xz | |||
| multimarkdown | |||
| jq | |||
| # rtags broken again on osx, fix it | |||
| p7zip | |||
| unrar | |||
| watch | |||
| nox | |||
| mutt | |||
| duply | |||
| zsh | |||
| pylint | |||
| python27Packages.howdoi | |||
| python27Packages.youtube-dl | |||
| python27Packages.pyflakes | |||
| python27Packages.flake8 | |||
| python27Packages.virtualenv | |||
| python27Packages.pip | |||
| # xhyve compiles normally, figure out hypervisor framework issue | |||
| # lastpass-cli no worky on osx TODO fix this it works on homebrew | |||
| ]; | |||
| }; | |||
| env_hs = | |||
| pkgs.haskell.packages.ghc7103.ghcWithPackages | |||
| (haskellPackages: with haskellPackages; [ | |||
| alex | |||
| happy | |||
| bake | |||
| cabal-dependency-licenses | |||
| cabal-install | |||
| cabal-meta | |||
| ghc-core | |||
| ghc-mod | |||
| hasktags | |||
| hindent | |||
| hoogle | |||
| hspec | |||
| # idris # zlib is complaining for some reason, hmmm | |||
| pandoc | |||
| shake | |||
| ShellCheck | |||
| stack | |||
| stylish-haskell | |||
| nats | |||
| transformers-compat | |||
| ] | |||
| ); | |||
| }; | |||
| } | |||
| #+END_SRC | |||
| * Language related | |||
| ** Haskell | |||
| *** ~/.ghci | |||
| @@ -2489,7 +2002,6 @@ Because who gives a rats when and where I last logged on from? | |||
| #+BEGIN_SRC conf :tangle tmp/.hushlogin :results replace | |||
| #+END_SRC | |||
| * Reference for babel stuff | |||
| Found this STUPID useful for constructing the tangle stuff. | |||
| @@ -0,0 +1,22 @@ | |||
| ;;-*-mode: emacs-lisp; coding: utf-8;-*- | |||
| ;; File: tangle.el | |||
| ;; Load the default options used or what was passed in as OPTIONS | |||
| (defun load-defaults-or-options () | |||
| (load-file (if (getenv "OPTIONS") | |||
| (concat (concat "./" (getenv "OPTIONS")) ".el") | |||
| "./defaults.el"))) | |||
| ;; Define functions we use in :tangle blocks | |||
| ;; tangle/yn | |||
| ;; tangle to "yes" or "no" if the predicate given exists and defined as t. | |||
| ;; | |||
| ;; Iff predicate is bound, and t, "yes" | |||
| ;; rest is "no" | |||
| (defun tangle/yn (p) (load-defaults-or-options) (if (bound-and-true-p p) "yes" "no")) | |||
| ;; tangle/file | |||
| ;; tangle to filename if predicate is bound and t | |||
| ;; Note, prepends tmp/ to the filename to conform to match expected layout | |||
| (defun tangle/file (p file) (load-defaults-or-options) (if (bound-and-true-p p) (concat "tmp/" file) "no")) | |||
| @@ -0,0 +1,152 @@ | |||
| #+TITLE: Tmux Configuration | |||
| #+AUTHOR: Mitch Tishmack | |||
| #+STARTUP: hidestars | |||
| #+STARTUP: odd | |||
| #+BABEL: :cache yes | |||
| #+PROPERTY: header-args :cache yes :padline no :mkdirp yes :comments no | |||
| Tmux configuration. Pretty boring in most ways. | |||
| #+BEGIN_SRC conf :tangle (tangle/file tmux-p ".tmux.conf") | |||
| # Setup utf8 by default and vi mode | |||
| set-window-option -g utf8 on | |||
| set-window-option -g mode-keys vi | |||
| set-window-option -g aggressive-resize on | |||
| # Force zsh to be a login shell | |||
| set-option -g default-command 'zsh -l' | |||
| set-option -g default-terminal 'xterm-256color' | |||
| # Status line options, mainly coloring | |||
| set-window-option -g window-status-bg colour6 | |||
| set-window-option -g window-status-fg black | |||
| set-window-option -g window-status-current-bg white | |||
| # Status line options | |||
| set-option -g status-bg black | |||
| set-option -g status-fg colour7 | |||
| set-option -g status-left-length 24 | |||
| set-option -g status-left '' | |||
| set-option -g status-right-length 13 | |||
| set-option -g status-right "%a %H:%M:%S" | |||
| set-option -g status-interval 7 | |||
| set-option -g status-utf8 on | |||
| # Pane border options, mimics the status line coloring | |||
| set-option -g pane-border-bg colour15 | |||
| set-option -g pane-border-fg colour82 | |||
| set-option -g pane-active-border-bg colour15 | |||
| set-option -g pane-active-border-fg colour2 | |||
| # Alert related things | |||
| set-option -g visual-activity on | |||
| set-option -g visual-bell on | |||
| set-option -g message-bg colour7 | |||
| set-option -g message-fg black | |||
| # Pass through the window title and display it automatically on changes. | |||
| set-option -g set-titles on | |||
| set-option -g set-titles-string '#T' | |||
| set-window-option -g automatic-rename on | |||
| # Key rebinding to make things more au naturalle | |||
| bind-key R \ | |||
| source-file ~/.tmux.conf \;\ | |||
| display 'reloaded tmux config' | |||
| # Log pane output to a file, save with an iso8601 datestamp | |||
| bind-key o \ | |||
| pipe-pane -o "cat >> $HOME/tmux-`iso8601`.log" \;\ | |||
| set-window-option window-status-current-fg green \; | |||
| bind-key O \ | |||
| pipe-pane \;\ | |||
| set-window-option window-status-current-fg default \; | |||
| bind-key N new-session -t default | |||
| # Using s for synchronizing panes, means that s for choosing sessions | |||
| # is now e | |||
| unbind-key s # interactive select sessions | |||
| bind-key e choose-tree | |||
| # (un)synchronize panes with prefix-s | |||
| bind-key s \ | |||
| if-shell \ | |||
| "tmux show-window-options | grep 'synchronize-panes on'" \ | |||
| "set-window-option window-status-current-bg colour7; \ | |||
| set-window-option pane-active-border-fg colour2; \ | |||
| set-window-option pane-active-border-bg colour15; \ | |||
| set-window-option synchronize-panes off; \ | |||
| display 'synchronization off'" \ | |||
| "set-window-option window-status-current-bg red; \ | |||
| set-window-option pane-active-border-fg red; \ | |||
| set-window-option pane-active-border-bg colour15; \ | |||
| set-window-option synchronize-panes on; \ | |||
| display 'synchronizing'" | |||
| # same thing as ^ so it sets up things if we were started with | |||
| # something else that set synchronization. | |||
| if-shell \ | |||
| "tmux show-window-options | grep 'synchronize-panes on' || /bin/true" \ | |||
| "set-window-option window-status-current-bg red; \ | |||
| set-window-option pane-active-border-fg yellow; \ | |||
| set-window-option pane-active-border-bg red" | |||
| # Setup splits to be less annoying | |||
| bind-key \ split-window -h | |||
| bind-key - split-window -v | |||
| # vi keybindings for pane navigation | |||
| bind-key k select-pane -U | |||
| bind-key j select-pane -D | |||
| bind-key h select-pane -L | |||
| bind-key l select-pane -R | |||
| # Make it so that I can detach/etc while holding control down, | |||
| # PURE LAZY | |||
| bind-key C-d detach | |||
| bind-key C-n next-window | |||
| bind-key C-p previous-window | |||
| bind-key C-k select-pane -U | |||
| bind-key C-j select-pane -D | |||
| bind-key C-h select-pane -L | |||
| bind-key C-l select-pane -R | |||
| # Non confirming kill pane plskthxbai | |||
| bind-key x kill-pane | |||
| # In case something I run exits straight away, i'd like to know about it. | |||
| set-option -g set-remain-on-exit on | |||
| # Lets change the prefix key so we don't clobber emacs back one char key | |||
| unbind-key C-b | |||
| # hacky, but C-\ isn't used by anything overly important in emacs | |||
| set-option -g prefix 'C-\' | |||
| # two C-\'s == C-\, if i need it, likely not | |||
| bind 'C-\' send-prefix | |||
| # Delay in sending things is dumb | |||
| set-option -s escape-time 1 | |||
| # so we can scroll the mouse, select panes, etc... | |||
| set -g mouse on | |||
| bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'" | |||
| bind-key m \ | |||
| if-shell \ | |||
| "tmux show-options -g | grep 'mouse on'" \ | |||
| "set -g mouse off; \ | |||
| display 'Mouse modes off'" \ | |||
| "set -g mouse on; \ | |||
| display 'Mouse modes on'" | |||
| #+END_SRC | |||
| Only set xclip for x setup. | |||
| #+BEGIN_SRC conf :tangle (eq (tangle/file tmux-p ".tmux.conf") (tangle/file x-p ".tmux.conf")) | |||
| bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer" | |||
| bind C-y run "tmux save-buffer - | xclip -i" | |||
| #+END_SRC | |||
| @@ -0,0 +1,103 @@ | |||
| #+TITLE: X Configuration | |||
| #+AUTHOR: Mitch Tishmack | |||
| #+STARTUP: hidestars | |||
| #+STARTUP: odd | |||
| #+BABEL: :cache yes | |||
| #+PROPERTY: header-args :cache yes :padline no :mkdirp yes :comments no | |||
| X related configuration, nothing overly huge to be honest just stupid configuration. | |||
| * ~/.Xdefaults | |||
| :PROPERTIES: | |||
| :header-args: :tangle (when (eq x-p t) "tmp/.Xdefaults") :comments no :padline no :cache yes :mkdirp yes | |||
| :END: | |||
| X defaults, just urxvt for the moment. Slightly linux/bsd only but not really. | |||
| #+BEGIN_SRC conf | |||
| ! urxvt generalish stuff | |||
| ! | |||
| urxvt*termName: rxvt-256color | |||
| urxvt*font: xft:menlo:size=12:antialias=true | |||
| urxvt*perl-ext-common: default,matcher | |||
| urxvt*jumpScroll: true | |||
| urxvt*cursorColor: pink | |||
| urxvt*loginShell: true | |||
| urxvt*scrollBar: true | |||
| urxvt*scrollstyle: next | |||
| urxvt*scrollBar_right: true | |||
| urxvt*scrollTtyOutput: false | |||
| urxvt*cursorBlink: true | |||
| urxvt*saveLines: 10000 | |||
| urxvt*urlLauncher: /usr/bin/google-chrome | |||
| urxvt*matcher.button: 1 | |||
| urxvt*allowWindowOps: true | |||
| #+END_SRC | |||
| * ~/.Xmodmap | |||
| :PROPERTIES: | |||
| :header-args: :tangle (when (eq x-p t) "tmp/.Xmodmap") :comments no :padline no :cache yes :mkdirp yes | |||
| :END: | |||
| Swap around left/right clicks basically. | |||
| #+BEGIN_SRC conf :tangle (when (not (and (eq x-p t) (eq osx-p t))) "tmp/.Xmodmap") | |||
| pointer = 3 2 1 4 5 | |||
| #+END_SRC | |||
| OSX is odd/inverted cause reasons (who cares why). | |||
| #+BEGIN_SRC conf :tangle (when (and (eq x-p t) (eq osx-p t)) "tmp/.Xmodmap") | |||
| pointer = 1 2 3 4 5 | |||
| #+END_SRC | |||
| * ~/.Xresources | |||
| :PROPERTIES: | |||
| :header-args: :tangle (when (eq x-p t) "tmp/.Xresources") :comments no :padline no :cache yes :mkdirp yes | |||
| :END: | |||
| I can't remember why I did all this effort. But I'll remove it some year I bet. | |||
| #+BEGIN_SRC conf | |||
| #define brightblack #ffffff | |||
| #define normblack #f9f9f9 | |||
| #define normgreen #00cc33 | |||
| #define brightgreen #00cc99 | |||
| #define normblue #f00033 | |||
| #define brightblue #0099ff | |||
| #define normcyan #66ccff | |||
| #define brightcyan #66ccff | |||
| #define normwhite #060606 | |||
| #define brightwhite #000000 | |||
| #define normyellow #ffcc33 | |||
| #define brightyellow #ffcc33 | |||
| #define normred #ff3300 | |||
| #define brightred #ff3300 | |||
| #define normmagenta #ff66ff | |||
| #define brightmagenta #ff66ff | |||
| *background: normblack | |||
| *foreground: normwhite | |||
| *fading: 40 | |||
| *fadeColor: brightblack | |||
| *cursorColor: brightcyan | |||
| *pointerColorBackground: #3f3f3f | |||
| *pointerColorForeground: #f3f3f3 | |||
| *color0: #090909 | |||
| *color1: #f00000 | |||
| *color2: normgreen | |||
| *color3: normyellow | |||
| *color4: #0066ff | |||
| *color5: normmagenta | |||
| *color6: normcyan | |||
| *color7: #c8c8c8 | |||
| *color8: #888888 | |||
| *color9: #f00033 | |||
| *color10: brightgreen | |||
| *color11: brightyellow | |||
| *color12: #0099ff | |||
| *color13: brightmagenta | |||
| *color14: brightcyan | |||
| *color15: #f9f9f9 | |||
| #+END_SRC | |||