ソースを参照

Migrate git/nix/tmux/x out of readme.el

master
Mitch Tishmack 10年前
コミット
6842a7013c
12個のファイルの変更677行の追加517行の削除
  1. +5
    -11
      Makefile
  2. +3
    -0
      ddiff
  3. +0
    -0
      defaults.el
  4. +41
    -1
      emacs.org
  5. +4
    -4
      etangle
  6. +140
    -0
      git.org
  7. +171
    -0
      nix.org
  8. +23
    -0
      osx-nonix.el
  9. +13
    -501
      readme.org
  10. +22
    -0
      tangle.el
  11. +152
    -0
      tmux.org
  12. +103
    -0
      x.org

+ 5
- 11
Makefile ファイルの表示

@@ -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


+ 3
- 0
ddiff ファイルの表示

@@ -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

options.el → defaults.el ファイルの表示


+ 41
- 1
emacs.org ファイルの表示

@@ -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)
)
)


+ 4
- 4
etangle ファイルの表示

@@ -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)


+ 140
- 0
git.org ファイルの表示

@@ -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

+ 171
- 0
nix.org ファイルの表示

@@ -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

+ 23
- 0
osx-nonix.el ファイルの表示

@@ -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)

+ 13
- 501
readme.org ファイルの表示

@@ -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.


+ 22
- 0
tangle.el ファイルの表示

@@ -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"))

+ 152
- 0
tmux.org ファイルの表示

@@ -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

+ 103
- 0
x.org ファイルの表示

@@ -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

読み込み中…
キャンセル
保存