| @@ -6,22 +6,16 @@ LAST:=$(shell cat .last || echo 0) | |||||
| NEXT:=$(shell l=$(LAST); ((l=l+1)); echo $$l) | NEXT:=$(shell l=$(LAST); ((l=l+1)); echo $$l) | ||||
| NEXTGEN:=$(PWD)/generation/$(NEXT) | NEXTGEN:=$(PWD)/generation/$(NEXT) | ||||
| LASTGEN:=$(PWD)/generation/$(LAST) | 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) | GEN:=$(LAST) | ||||
| OPTIONS:= | 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 $@ | install -dm755 $@ | ||||
| generation: $(NEXTGEN) $(LASTGEN) tmp | generation: $(NEXTGEN) $(LASTGEN) tmp | ||||
| @@ -22,4 +22,7 @@ for file in $(find . -type f -print); do | |||||
| fi | fi | ||||
| done | done | ||||
| if [ $rc != 0 ]; then | |||||
| echo differences between ${src} and ${dest} | |||||
| fi | |||||
| exit $rc | exit $rc | ||||
| @@ -9,6 +9,18 @@ | |||||
| Startup related tasks/setup that might be used later on. | 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 | *** emacs package setup | ||||
| Setup the builtin emacs package manager. | Setup the builtin emacs package manager. | ||||
| @@ -596,6 +608,9 @@ Highlight matching ()'s []'s etc... | |||||
| *** org-mode | *** org-mode | ||||
| - foo | |||||
| - bar | |||||
| Org-mode keybindings and settings, pretty sparse really. | Org-mode keybindings and settings, pretty sparse really. | ||||
| #+BEGIN_SRC emacs-lisp | #+BEGIN_SRC emacs-lisp | ||||
| @@ -606,13 +621,38 @@ Org-mode keybindings and settings, pretty sparse really. | |||||
| ("C-c c" . org-capture) | ("C-c c" . org-capture) | ||||
| ("C-c l" . org-store-link) | ("C-c l" . org-store-link) | ||||
| ("C-c p" . org-latex-export-to-pdf)) | ("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 | :config | ||||
| (progn | (progn | ||||
| (custom-set-variables | (custom-set-variables | ||||
| '(org-log-done t) | '(org-log-done t) | ||||
| '(org-hide-leading-stars 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) | (org-reload) | ||||
| ) | ) | ||||
| ) | ) | ||||
| @@ -1,13 +1,13 @@ | |||||
| ;;-*-mode: emacs-lisp; coding: utf-8;-*- | ;;-*-mode: emacs-lisp; coding: utf-8;-*- | ||||
| ;; Copyright: 2016 Mitchell Tishmack | ;; Copyright: 2016 Mitchell Tishmack | ||||
| ;; Tangle an org mode file with babel using emacs. | ;; 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-install) | ||||
| (require 'org) | (require 'org) | ||||
| (load-file "./tangle.el") | |||||
| (load-defaults-or-options) | |||||
| ;; Iterate through all the files given and tangle them | ;; Iterate through all the files given and tangle them | ||||
| (dolist | (dolist | ||||
| (file command-line-args-left) | (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? | - [ ] Maybe checksum file contents somehow and use that? | ||||
| - [ ] More? For now its functional. | - [ ] 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 | * ~/.profile | ||||
| :PROPERTIES: | :PROPERTIES: | ||||
| :header-args: :tangle tmp/.profile :comments no :padline no :cache yes :mkdirp yes | :header-args: :tangle tmp/.profile :comments no :padline no :cache yes :mkdirp yes | ||||
| @@ -1535,226 +1548,6 @@ cal.each do |line| | |||||
| end | end | ||||
| end | end | ||||
| #+END_SRC | #+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 | * zsh | ||||
| ** ~/.zprofile | ** ~/.zprofile | ||||
| @@ -1945,153 +1738,6 @@ PROMPT="%(!.#.$) " # $ as a user # as root | |||||
| RPROMPT='${vcs_info_msg_0_} ${PWD/#$HOME/~}' | RPROMPT='${vcs_info_msg_0_} ${PWD/#$HOME/~}' | ||||
| #+END_SRC | #+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 | * vim | ||||
| ** ~/.vimrc | ** ~/.vimrc | ||||
| @@ -2125,139 +1771,6 @@ else | |||||
| endif " has("autocmd") | endif " has("autocmd") | ||||
| #+END_SRC | #+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 | * Language related | ||||
| ** Haskell | ** Haskell | ||||
| *** ~/.ghci | *** ~/.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 | #+BEGIN_SRC conf :tangle tmp/.hushlogin :results replace | ||||
| #+END_SRC | #+END_SRC | ||||
| * Reference for babel stuff | * Reference for babel stuff | ||||
| Found this STUPID useful for constructing the tangle 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 | |||||