├── .gitignore ├── Chrome Extension Stylish ├── BBC Hudson CI.txt ├── Sass.txt └── W3C.txt ├── Chrome Snippets ├── Break on Access.js ├── Data URL all images.js ├── Global Variables.js ├── Load jQuery.js ├── Performance.js ├── Pretty Print Headers.js ├── Query String Values.js └── Show Colour Palette.js ├── README.md ├── Shell ├── .NERDTreeBookmarks ├── .agignore ├── .gitconfig ├── .gitignore_global ├── .irssi │ ├── config │ ├── config.autosave │ ├── default.theme │ └── scripts │ │ ├── autorun │ │ └── notifier.pl │ │ └── notifier.pl ├── .taskrc ├── .tmux.conf ├── .vim │ ├── autoload │ │ └── pathogen.vim │ ├── bundle │ │ ├── CSApprox │ │ │ ├── README │ │ │ ├── after │ │ │ │ └── plugin │ │ │ │ │ └── CSApprox.vim │ │ │ ├── autoload │ │ │ │ ├── csapprox.vim │ │ │ │ └── csapprox │ │ │ │ │ ├── common.vim │ │ │ │ │ └── per_component.vim │ │ │ ├── doc │ │ │ │ └── CSApprox.txt │ │ │ └── plugin │ │ │ │ └── CSApprox.vim │ │ ├── Dockerfile.vim │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── ftdetect │ │ │ │ └── Dockerfile.vim │ │ │ ├── snippets │ │ │ │ └── Dockerfile.snippets │ │ │ ├── syntax │ │ │ │ └── Dockerfile.vim │ │ │ └── vim-dockerfile-example.png │ │ ├── ZoomWin │ │ │ ├── autoload │ │ │ │ └── ZoomWin.vim │ │ │ ├── doc │ │ │ │ └── ZoomWin.txt │ │ │ └── plugin │ │ │ │ └── ZoomWinPlugin.vim │ │ └── vim-node │ │ │ ├── .gitignore │ │ │ ├── .mailmap │ │ │ ├── .packignore │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── Gemfile │ │ │ ├── Gemfile.lock │ │ │ ├── Guardfile │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── autoload │ │ │ ├── node.vim │ │ │ └── node │ │ │ │ └── lib.vim │ │ │ ├── ftdetect │ │ │ └── node.vim │ │ │ ├── plugin │ │ │ └── node.vim │ │ │ └── test │ │ │ ├── autoload │ │ │ └── lib_test.rb │ │ │ ├── autoload_test.rb │ │ │ ├── ftdetect_test.rb │ │ │ ├── helper.rb │ │ │ ├── plugin_test.rb │ │ │ └── vimrc │ ├── colors │ │ ├── Tomorrow-Solarized.vim │ │ ├── badwolf.vim │ │ ├── blazer.vim │ │ ├── flatland.vim │ │ ├── github.vim │ │ ├── gruvbox.vim │ │ ├── kellys.vim │ │ ├── vividchalk.vim │ │ └── whitebox.vim │ └── plugin │ │ ├── BufOnly.vim │ │ └── scratch.vim ├── .vimrc ├── .weechat │ ├── alias.conf │ ├── charset.conf │ ├── irc.conf │ ├── logger.conf │ ├── plugins.conf │ ├── relay.conf │ ├── rmodifier.conf │ ├── ruby │ │ └── autoload │ │ │ └── notification_center.rb │ ├── script.conf │ ├── sec.conf │ ├── weechat.conf │ └── xfer.conf ├── .zshrc ├── bin │ └── battery ├── fonts │ ├── Droid+Sans+Mono+for+Powerline.otf │ ├── Ubuntu Mono derivative Powerline Bold Italic.ttf │ ├── Ubuntu Mono derivative Powerline Bold.ttf │ ├── Ubuntu Mono derivative Powerline Italic.ttf │ └── Ubuntu Mono derivative Powerline.ttf └── themes │ ├── Smyck.terminal │ ├── Solarized Dark.terminal │ ├── Solarized Light.terminal │ ├── Tomorrow Night Bright.terminal │ └── Tomorrow.terminal ├── provision-complete.sh └── provision.sh /.gitignore: -------------------------------------------------------------------------------- 1 | .task 2 | .vmail 3 | Shell/.vim/.netrwhist 4 | Shell/.weechat/script/ 5 | -------------------------------------------------------------------------------- /Chrome Extension Stylish/BBC Hudson CI.txt: -------------------------------------------------------------------------------- 1 | https://ci-pal.(int|test).bbc.co.uk/hudson/?.* 2 | 3 | ------------------------------------------------------------------ 4 | 5 | #viewList { display: none; } 6 | 7 | #login-field b { 8 | overflow: hidden; 9 | width: 230px; 10 | display: inline-block; 11 | text-overflow: ellipsis; 12 | white-space: nowrap; 13 | } -------------------------------------------------------------------------------- /Chrome Extension Stylish/Sass.txt: -------------------------------------------------------------------------------- 1 | http:\/\/sass\-lang\.com\/docs\/yardoc\/.+ 2 | 3 | ------------------------------------------------------------------ 4 | 5 | @font-face { 6 | font-family: 'ChunkFiveRegular'; 7 | src: url('http://paulirish.com/fonts/Chunkfive.eot'); 8 | src: local('☺'), url('http://paulirish.com/fonts/Chunkfive.woff') format('woff'), url('http://paulirish.com/fonts/Chunkfive.ttf') format('truetype'), url('http://paulirish.com/fonts/Chunkfive.svg#ChunkFive') format('svg'); 9 | } 10 | 11 | h1, h2, h3, h4, h5, h6, p, a, ul, ol, dt, dd, table, caption, th, td { font-weight: normal !important; margin: 0; padding: 0; color: inherit; font-family: Georgia, Times, "Times New Roman", sans-serif; } 12 | 13 | a:link, a:visited { color: #366; text-decoration: none; } 14 | a:visited { color: #099; } 15 | 16 | body { margin: 2em auto; width: 33em; font-size: 1.4em; line-height: 1.45; background-image: none; background-color: #fff; } 17 | 18 | p, dt, td { color: #000; } 19 | 20 | div.head { position: relative; } 21 | div.head:before { content: 'W3C'; background-color: #7bb; color: #fff; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; position: absolute; top: 2em; left: -5em; font-weight: bold; font-size: 11px; padding: 3px 6px 2px; font-family: helvetica, sans-serif; text-align: right; letter-spacing: 0.1em; } 22 | div.head hr, div.head > a, img[src*="http://www.w3.org/Icons/"], div.head dl { display: none; } /* Hide hr, the logo, logo alternate and the dl list in the head section */ 23 | div.head h1 { font-family: "ChunkFiveRegular", impact; line-height: 1.4em; font-size: 2.9em; width: 530px; margin-bottom: 0.5em; text-shadow: 1px 1px 1px white; } 24 | div.head h2 { margin: 0 0 0.5em 0; } 25 | div.head h2.maturity { color: #666; font-size: 1em; border: 0px; } 26 | div.head p.copyright { color: #888; font-size: 0.8em; font-style: italic; width: 80%; line-height: 1.4em; } 27 | div.head p.copyright a { color: inherit; } 28 | 29 | h2, h2.maturity, h2.principal { display: inline-block; font-size: 1.6em; margin: 2em 0 0.5em 0; border-bottom: 2px solid #ccc; padding: 0em 0em 0.1em; } 30 | h3 { font-size: 1.2em; margin-bottom: 0.3em; } 31 | h3.guideline { border: none; margin: 1em 0; } 32 | h4, h5 { font-size: 1.0em; margin-bottom: 0.3em; color: #066; padding: 0.4em 0em 0em; } 33 | p { margin-bottom: 1em; } 34 | 35 | .editor-notes { display: none; } 36 | 37 | div.example { margin-bottom: 1em; } 38 | ul { margin: 0em 0em 1em; } 39 | ul li { list-style: none; position: relative; margin: 0em 0em 0.25em; } 40 | ul li:before { content: '\22c5'; font-size: 2em; color: #7bb; position: absolute; top: -0.35em; left: -0.65em; font-family: lucida; font-weight: bold; } 41 | ul li ul { margin: 0em; } 42 | li li { margin: 0em 0em 0em 1.2em; } 43 | code, pre { font-family: "Bitstream Vera Sans Mono", "DejaVu Sans Mono", "Andale Mono", Inconsolata, "Lucida Console", Consolas, Monaco, "courier new", courier; color: #066; font-size: 0.9em; } 44 | pre { margin: 0em 0em 1em -0.6em; background: #eff; display: inline-block; padding: 0.25em 0.6em; } 45 | dt { color: #7bb; } 46 | dd { margin: 0em 0em 0.5em; } 47 | 48 | table { border: 0px; } 49 | table th, table td { border: 0px; border-bottom: 1px solid #acc; padding: 4px; vertical-align: top; } 50 | table th li, table td li { margin: 0px 0px 0px 1.5em; } 51 | table caption, table th { text-align: left; color: #6cc; } 52 | table th { color: #099; } 53 | table td { vertical-align: top; padding: 0.25em 1.25em 0.25em 0em; } 54 | table tr, table tbody { border: 0px; } 55 | hr { border: 0px; height: 2px; background: #acc; margin: 2em 0em; } 56 | strong { text-shadow: 1px 1px 1px #fff; } 57 | 58 | .toc li { color: #7bb; } 59 | 60 | ul.toc { list-style: none; } 61 | ul.toc li:before { content: ''; } 62 | div.subtoc { background: transparent; border: 0em; } 63 | body .toc, body .subtoc { background: transparent; border: 0em; } 64 | 65 | h2, h3, h4, h5, h6 { position: relative; } 66 | div.section span.tocnum, .secno { background-color: #7bb; color: #fff; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; position: absolute; top: 0.7em; left: -6em; font-weight: bold; font-size: 11px; padding: 3px 6px; font-family: helvetica, sans-serif; text-align: right; letter-spacing: 0.1em; } 67 | a .secno { background-color: transparent; color: #7bb; border-radius: 0px; -moz-border-radius: 3px; -webkit-border-radius: 0px; position: static; font-weight: normal; font-size: 1em; padding: 0px; font-family: inherit; text-align: left; letter-spacing: 0em; } 68 | div.section h3 span.tocnum { top: 0.2em; } 69 | 70 | div.section { margin: 2em 0em 0em; } 71 | 72 | strong.rfc2119 { font-size: 0.8em; letter-spacing: 0.1; text-transform: uppercase; } 73 | 74 | /* Specific Overrides */ 75 | 76 | a.internalDFN { color: #366; border: 0px; } 77 | 78 | div.example, div.illegal-example, div.html, div.illegal-html, div.xml, div.illegal-xml, pre.example, pre.illegal-example, pre.html, pre.illegal-html, pre.xml, pre.illegal-xml { background: transparent; border: 1px dashed #9cc; } 79 | div.example:before { color: #fff; background: #7bb; padding: 0.5em; width: auto; background: #7BB; border: 0px; top: -1em; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } 80 | 81 | /* Mobile (iPhone) */ 82 | @media all and (max-device-width: 480px) { 83 | body { margin: 0 3em; font-size: 200%; } 84 | } 85 | 86 | /* Mobile (iPad) */ 87 | @media all and (max-device-width: 1024px) { 88 | body { margin: 0 5em; font-size: 400%; } 89 | } 90 | 91 | /* Pretty printing styles. Used with prettify.js. */ 92 | 93 | .str { color: #080; } 94 | .kwd { color: #008; } 95 | .com { color: #800; } 96 | .typ { color: #606; } 97 | .lit { color: #066; } 98 | .pun { color: #660; } 99 | .pln { color: #000; } 100 | .tag { color: #008; } 101 | .atn { color: #606; } 102 | .atv { color: #080; } 103 | .dec { color: #606; } 104 | pre.prettyprint { padding: 0.25em; } 105 | 106 | @media print { 107 | .str { color: #060; } 108 | .kwd { color: #006; font-weight: bold; } 109 | .com { color: #600; font-style: italic; } 110 | .typ { color: #404; font-weight: bold; } 111 | .lit { color: #044; } 112 | .pun { color: #440; } 113 | .pln { color: #000; } 114 | .tag { color: #006; font-weight: bold; } 115 | .atn { color: #404; } 116 | .atv { color: #060; } 117 | } 118 | 119 | .maruku_toc { 120 | position: fixed; 121 | left: 0; 122 | top: 0; 123 | height: 100%; 124 | overflow: scroll; 125 | width: 20%; 126 | } -------------------------------------------------------------------------------- /Chrome Extension Stylish/W3C.txt: -------------------------------------------------------------------------------- 1 | http:\/\/www\.w3\.org\/TR\/.+\/.+ 2 | http:\/\/dev\.w3\.org\/.+ 3 | http:\/\/www\.w3\.org\/TR\/.+ 4 | http:\/\/www\.w3\.org\/html\/wg\/drafts\/.+ 5 | https?:\/\/svgwg\.org\/.+ 6 | https?:\/\/dvcs\.w3\.org\/.+ 7 | 8 | ------------------------------------------------------------------ 9 | 10 | @font-face { 11 | font-family: 'ChunkFiveRegular'; 12 | src: url('http://paulirish.com/fonts/Chunkfive.eot'); 13 | src: local('☺'), url('http://paulirish.com/fonts/Chunkfive.woff') format('woff'), url('http://paulirish.com/fonts/Chunkfive.ttf') format('truetype'), url('http://paulirish.com/fonts/Chunkfive.svg#ChunkFive') format('svg'); 14 | } 15 | 16 | h1, h2, h3, h4, h5, h6, p, a, ul, ol, dt, dd, table, caption, th, td { font-weight: normal !important; margin: 0; padding: 0; color: inherit; font-family: Georgia, Times, "Times New Roman", sans-serif; } 17 | 18 | a:link, a:visited { color: #366; text-decoration: none; } 19 | a:visited { color: #099; } 20 | 21 | body { margin: 2em auto !important; width: 33em; font-size: 1.5em; line-height: 1.45; background-image: none; background-color: #fff; } 22 | 23 | p, dt, td { color: #000; } 24 | 25 | div.head { position: relative; } 26 | div.head:before { content: 'W3C'; background-color: #7bb; color: #fff; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; position: absolute; top: 2em; left: -5em; font-weight: bold; font-size: 11px; padding: 3px 6px 2px; font-family: helvetica, sans-serif; text-align: right; letter-spacing: 0.1em; } 27 | div.head hr, div.head > a, img[src*="http://www.w3.org/Icons/"], div.head dl { display: none; } /* Hide hr, the logo, logo alternate and the dl list in the head section */ 28 | div.head h1 { font-family: "ChunkFiveRegular", impact; line-height: 1.4em; font-size: 2.9em; width: 530px; margin-bottom: 0.5em; text-shadow: 1px 1px 1px white; } 29 | div.head h2 { margin: 0 0 0.5em 0; } 30 | div.head h2.maturity { color: #666; font-size: 1em; border: 0px; } 31 | div.head p.copyright { color: #888; font-size: 0.8em; font-style: italic; width: 80%; line-height: 1.4em; } 32 | div.head p.copyright a { color: inherit; } 33 | 34 | h2, h2.maturity, h2.principal { display: inline-block; font-size: 1.6em; margin: 2em 0 0.5em 0; border-bottom: 2px solid #ccc; padding: 0em 0em 0.1em; } 35 | h3 { font-size: 1.2em; margin-bottom: 0.3em; } 36 | h3.guideline { border: none; margin: 1em 0; } 37 | h4, h5 { font-size: 1.0em; margin-bottom: 0.3em; color: #066; padding: 0.4em 0em 0em; } 38 | p { margin-bottom: 1em; } 39 | 40 | .editor-notes { display: none; } 41 | 42 | div.example { margin-bottom: 1em; } 43 | ul { margin: 0em 0em 1em; } 44 | ul li { list-style: none; position: relative; margin: 0em 0em 0.25em; } 45 | ul li:before { content: '\22c5'; font-size: 2em; color: #7bb; position: absolute; top: -0.35em; left: -0.65em; font-family: lucida; font-weight: bold; } 46 | ul li ul { margin: 0em; } 47 | li li { margin: 0em 0em 0em 1.2em; } 48 | code, pre { font-family: "Bitstream Vera Sans Mono", "DejaVu Sans Mono", "Andale Mono", Inconsolata, "Lucida Console", Consolas, Monaco, "courier new", courier; color: #066; font-size: 0.9em; } 49 | pre { margin: 0em 0em 1em -0.6em; background: #eff; display: inline-block; padding: 0.25em 0.6em; } 50 | dt { color: #7bb; } 51 | dd { margin: 0em 0em 0.5em; } 52 | 53 | table { border: 0px; } 54 | table th, table td { border: 0px; border-bottom: 1px solid #acc; padding: 4px; vertical-align: top; } 55 | table th li, table td li { margin: 0px 0px 0px 1.5em; } 56 | table caption, table th { text-align: left; color: #6cc; } 57 | table th { color: #099; } 58 | table td { vertical-align: top; padding: 0.25em 1.25em 0.25em 0em; } 59 | table tr, table tbody { border: 0px; } 60 | hr { border: 0px; height: 2px; background: #acc; margin: 2em 0em; } 61 | strong { text-shadow: 1px 1px 1px #fff; } 62 | 63 | .toc li { color: #7bb; } 64 | 65 | ul.toc { list-style: none; } 66 | ul.toc li:before { content: ''; } 67 | div.subtoc { background: transparent; border: 0em; } 68 | body .toc, body .subtoc { background: transparent; border: 0em; } 69 | 70 | h2, h3, h4, h5, h6 { position: relative; } 71 | div.section span.tocnum, .secno { background-color: #7bb; color: #fff; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; position: absolute; top: 0.7em; left: -6em; font-weight: bold; font-size: 11px; padding: 3px 6px; font-family: helvetica, sans-serif; text-align: right; letter-spacing: 0.1em; } 72 | a .secno { background-color: transparent; color: #7bb; border-radius: 0px; -moz-border-radius: 3px; -webkit-border-radius: 0px; position: static; font-weight: normal; font-size: 1em; padding: 0px; font-family: inherit; text-align: left; letter-spacing: 0em; } 73 | div.section h3 span.tocnum { top: 0.2em; } 74 | 75 | div.section { margin: 2em 0em 0em; } 76 | 77 | strong.rfc2119 { font-size: 0.8em; letter-spacing: 0.1; text-transform: uppercase; } 78 | 79 | /* Specific Overrides */ 80 | 81 | a.internalDFN { color: #366; border: 0px; } 82 | 83 | div.example, div.illegal-example, div.html, div.illegal-html, div.xml, div.illegal-xml, pre.example, pre.illegal-example, pre.html, pre.illegal-html, pre.xml, pre.illegal-xml { background: transparent; border: 1px dashed #9cc; } 84 | div.example:before { color: #fff; background: #7bb; padding: 0.5em; width: auto; background: #7BB; border: 0px; top: -1em; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; } 85 | 86 | /* Mobile (iPhone) */ 87 | @media all and (max-device-width: 480px) { 88 | body { margin: 0 3em; font-size: 200%; } 89 | } 90 | 91 | /* Mobile (iPad) */ 92 | @media all and (max-device-width: 1024px) { 93 | body { margin: 0 5em; font-size: 400%; } 94 | } 95 | 96 | /* Pretty printing styles. Used with prettify.js. */ 97 | 98 | .str { color: #080; } 99 | .kwd { color: #008; } 100 | .com { color: #800; } 101 | .typ { color: #606; } 102 | .lit { color: #066; } 103 | .pun { color: #660; } 104 | .pln { color: #000; } 105 | .tag { color: #008; } 106 | .atn { color: #606; } 107 | .atv { color: #080; } 108 | .dec { color: #606; } 109 | pre.prettyprint { padding: 0.25em; } 110 | 111 | @media print { 112 | .str { color: #060; } 113 | .kwd { color: #006; font-weight: bold; } 114 | .com { color: #600; font-style: italic; } 115 | .typ { color: #404; font-weight: bold; } 116 | .lit { color: #044; } 117 | .pun { color: #440; } 118 | .pln { color: #000; } 119 | .tag { color: #006; font-weight: bold; } 120 | .atn { color: #404; } 121 | .atv { color: #060; } 122 | } 123 | -------------------------------------------------------------------------------- /Chrome Snippets/Break on Access.js: -------------------------------------------------------------------------------- 1 | function breakOn(obj, prop, mode){ 2 | 3 | var origValue = obj[prop] 4 | 5 | Object.defineProperty(obj, prop, { 6 | get: function () { 7 | if ( mode == 'read' ) 8 | debugger; 9 | return origValue; 10 | }, 11 | set: function(val) { 12 | debugger; 13 | obj[prop] = val; 14 | return val; 15 | } 16 | }); 17 | 18 | }; -------------------------------------------------------------------------------- /Chrome Snippets/Data URL all images.js: -------------------------------------------------------------------------------- 1 | // dataurl.js 2 | // https://github.com/bgrins/devtools-snippets 3 | // Print out data URLs for all images / canvases on the page. 4 | 5 | (function() { 6 | 7 | console.group("Data URLs"); 8 | 9 | [].forEach.call(document.querySelectorAll("img"), function(i) { 10 | var c = document.createElement("canvas"); 11 | var ctx = c.getContext("2d"); 12 | c.width = i.width; 13 | c.height = i.height; 14 | 15 | try { 16 | ctx.drawImage(i, 0, 0); 17 | console.log(i, c.toDataURL()); 18 | } 19 | catch(e) { 20 | console.log(i, "No Permission - try opening this image in a new tab and running the snippet again?", i.src); 21 | } 22 | }); 23 | 24 | [].forEach.call(document.querySelectorAll("canvas"), function(c) { 25 | try { 26 | console.log(c, c.toDataURL()); 27 | } 28 | catch(e) { 29 | console.log(c, "No Permission"); 30 | } 31 | }); 32 | 33 | console.groupEnd("Data URLs"); 34 | 35 | })(); -------------------------------------------------------------------------------- /Chrome Snippets/Global Variables.js: -------------------------------------------------------------------------------- 1 | /* 2 | log-globals 3 | by Sindre Sorhus 4 | https://github.com/sindresorhus/log-globals 5 | MIT License 6 | */ 7 | (function () { 8 | 'use strict'; 9 | 10 | function getIframe() { 11 | var el = document.createElement('iframe'); 12 | el.style.display = 'none'; 13 | document.body.appendChild(el); 14 | var win = el.contentWindow; 15 | document.body.removeChild(el); 16 | return win; 17 | } 18 | 19 | function detectGlobals() { 20 | var iframe = getIframe(); 21 | var ret = Object.create(null); 22 | 23 | for (var prop in window) { 24 | if (!(prop in iframe)) { 25 | ret[prop] = window[prop]; 26 | } 27 | } 28 | 29 | return ret; 30 | } 31 | 32 | console.log(detectGlobals()); 33 | })(); -------------------------------------------------------------------------------- /Chrome Snippets/Load jQuery.js: -------------------------------------------------------------------------------- 1 | // jquerify.js 2 | // https://github.com/bgrins/devtools-snippets 3 | // Add jQuery to any page that does not have it already. 4 | 5 | (function () { 6 | 7 | if ( !window.jQuery ) { 8 | var s = document.createElement('script'); 9 | s.setAttribute('src', '//code.jquery.com/jquery-latest.min.js'); 10 | document.body.appendChild(s); 11 | } 12 | 13 | })(); -------------------------------------------------------------------------------- /Chrome Snippets/Performance.js: -------------------------------------------------------------------------------- 1 | // performance.js 2 | // https://github.com/bgrins/devtools-snippets 3 | // Print out window.performance information. 4 | // https://developer.mozilla.org/en-US/docs/Navigation_timing 5 | 6 | (function () { 7 | 8 | var t = window.performance.timing; 9 | var timings = []; 10 | 11 | timings.push({ 12 | label: "Time Until Page Loaded", 13 | time: t.loadEventEnd - t.navigationStart + "ms" 14 | }); 15 | timings.push({ 16 | label: "Time Until DOMContentLoaded", 17 | time: t.domContentLoadedEventEnd - t.navigationStart + "ms" 18 | }); 19 | timings.push({ 20 | label: "Total Response Time", 21 | time: t.responseEnd - t.requestStart + "ms" 22 | }); 23 | timings.push({ 24 | label: "Connection", 25 | time: t.connectEnd - t.connectStart + "ms" 26 | }); 27 | timings.push({ 28 | label: "Response", 29 | time: t.responseEnd - t.responseStart + "ms" 30 | }); 31 | timings.push({ 32 | label: "Domain Lookup", 33 | time: t.domainLookupEnd - t.domainLookupStart + "ms" 34 | }); 35 | timings.push({ 36 | label: "Load Event", 37 | time: t.loadEventEnd - t.loadEventStart + "ms" 38 | }); 39 | timings.push({ 40 | label: "Unload Event", 41 | time: t.unloadEventEnd - t.unloadEventStart + "ms" 42 | }); 43 | timings.push({ 44 | label: "DOMContentLoaded Event", 45 | time: t.domContentLoadedEventEnd - t.domContentLoadedEventStart + "ms" 46 | }); 47 | 48 | var navigation = window.performance.navigation; 49 | var navigationTypes = { }; 50 | navigationTypes[navigation.TYPE_NAVIGATENEXT || 0] = "Navigation started by clicking on a link, or entering the URL in the user agent's address bar, or form submission.", 51 | navigationTypes[navigation.TYPE_RELOAD] = "Navigation through the reload operation or the location.reload() method.", 52 | navigationTypes[navigation.TYPE_BACK_FORWARD] = "Navigation through a history traversal operation.", 53 | navigationTypes[navigation.TYPE_UNDEFINED] = "Navigation type is undefined.", 54 | 55 | console.group("window.performance"); 56 | 57 | console.log(window.performance); 58 | 59 | console.group("Navigation Information"); 60 | console.log(navigationTypes[navigation.type]); 61 | console.log("Number of redirects that have taken place: ", navigation.redirectCount) 62 | console.groupEnd("Navigation Information"); 63 | 64 | console.group("Timing"); 65 | console.log(window.performance.timing); 66 | console.table(timings); 67 | console.groupEnd("Timing"); 68 | 69 | console.groupEnd("window.performance"); 70 | 71 | })(); -------------------------------------------------------------------------------- /Chrome Snippets/Pretty Print Headers.js: -------------------------------------------------------------------------------- 1 | // showheaders.js 2 | // https://github.com/bgrins/devtools-snippets 3 | // Print out response headers for current URL. 4 | 5 | (function() { 6 | 7 | var request=new XMLHttpRequest(); 8 | request.open('HEAD',window.location,false); 9 | request.send(null); 10 | 11 | var headers = request.getAllResponseHeaders(); 12 | var tab = headers.split("\n").map(function(h) { 13 | return { "Key": h.split(": ")[0], "Value": h.split(": ")[1] } 14 | }).filter(function(h) { return h.Value !== undefined; }); 15 | 16 | console.group("Request Headers"); 17 | console.log(headers); 18 | console.table(tab); 19 | console.groupEnd("Request Headers"); 20 | 21 | })(); -------------------------------------------------------------------------------- /Chrome Snippets/Query String Values.js: -------------------------------------------------------------------------------- 1 | // querystringvalues.js 2 | // https://github.com/bgrins/devtools-snippets 3 | // Print out key/value pairs from querystring. 4 | 5 | (function() { 6 | 7 | var url = location; 8 | var querystring = location.search.slice(1); 9 | var tab = querystring.split("&").map(function(qs) { 10 | return { "Key": qs.split("=")[0], "Value": qs.split("=")[1], "Pretty Value": decodeURIComponent(qs.split("=")[1]).replace(/\+/g," ") } 11 | }); 12 | 13 | console.group("Querystring Values"); 14 | console.log("URL: "+url+"\nQS: "+querystring); 15 | console.table(tab); 16 | console.groupEnd("Querystring Values"); 17 | 18 | })(); -------------------------------------------------------------------------------- /Chrome Snippets/Show Colour Palette.js: -------------------------------------------------------------------------------- 1 | // allcolors.js 2 | // https://github.com/bgrins/devtools-snippets 3 | // Print out CSS colors used in elements on the page. 4 | 5 | (function () { 6 | var allColors = {}; 7 | var props = ["background-color", "color", "border-top-color", "border-right-color", "border-bottom-color", "border-left-color"]; 8 | var skipColors = { "rgb(0, 0, 0)": 1, "rgba(0, 0, 0, 0)": 1, "rgb(255, 255, 255)": 1 }; 9 | 10 | [].forEach.call(document.querySelectorAll("*"), function (node) { 11 | var nodeColors = {}; 12 | props.forEach(function (prop) { 13 | var color = window.getComputedStyle(node, null).getPropertyValue(prop); 14 | if (color && !skipColors[color]) { 15 | if (!allColors[color]) { 16 | allColors[color] = { 17 | count: 0, 18 | nodes: [] 19 | }; 20 | } 21 | if (!nodeColors[color]) { 22 | allColors[color].count++; 23 | allColors[color].nodes.push(node); 24 | } 25 | nodeColors[color] = true; 26 | } 27 | }); 28 | }); 29 | 30 | var allColorsSorted = []; 31 | for (var i in allColors) { 32 | allColorsSorted.push({ 33 | key: i, 34 | value: allColors[i] 35 | }); 36 | } 37 | allColorsSorted = allColorsSorted.sort(function (a, b) { 38 | return b.value.count - a.value.count; 39 | }); 40 | 41 | var nameStyle = "font-weight:normal;"; 42 | var countStyle = "font-weight:bold;"; 43 | var colorStyle = function (color) { 44 | return "background:" + color + ";color:" + color + ";border:1px solid #333;"; 45 | }; 46 | 47 | console.group("All colors used in elements on the page"); 48 | allColorsSorted.forEach(function (c) { 49 | console.groupCollapsed("%c %c " + c.key + " %c(" + c.value.count + " times)", 50 | colorStyle(c.key), nameStyle, countStyle); 51 | c.value.nodes.forEach(function (node) { 52 | console.log(node); 53 | }); 54 | console.groupEnd(); 55 | }); 56 | console.groupEnd("All colors used in elements on the page"); 57 | })(); -------------------------------------------------------------------------------- /Shell/.NERDTreeBookmarks: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Shell/.agignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .git 3 | .svn 4 | .grunt 5 | .sass-cache 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /Shell/.gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = Integralist 3 | email = mark.mcdx@gmail.com 4 | 5 | [alias] 6 | up = "!git remote update -p; git merge --ff-only @{u}" 7 | lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative 8 | st = status 9 | sts = status -sb 10 | unstage = reset HEAD -- 11 | 12 | [core] 13 | excludesfile = ~/.gitignore_global 14 | editor = vim 15 | ignorecase = false 16 | ; pager = `brew --prefix git`/share/git-core/contrib/diff-highlight/diff-highlight | less 17 | 18 | [color] 19 | ui = true 20 | commit = red 21 | 22 | [color "branch"] 23 | current = yellow reverse 24 | local = yellow 25 | remote = green 26 | 27 | [color "diff"] 28 | meta = yellow 29 | frag = magenta 30 | old = red 31 | new = green 32 | 33 | [color "status"] 34 | added = red 35 | changed = blue 36 | untracked = magenta 37 | 38 | [push] 39 | default = upstream 40 | 41 | [apply] 42 | whitespace = nowarn 43 | 44 | [branch "develop"] 45 | rebase = true 46 | [mergetool] 47 | prompt = true 48 | [merge] 49 | tool = vimdiff 50 | conflictstyle = diff3 51 | -------------------------------------------------------------------------------- /Shell/.gitignore_global: -------------------------------------------------------------------------------- 1 | # bundler 2 | .gem 3 | .bin 4 | .ruby-version 5 | failed_cukes.sh 6 | 7 | # miscellaneous 8 | *.DS_Store 9 | .sass-cache 10 | .grunt 11 | tags 12 | *.swp 13 | logs 14 | *.log 15 | .vagrant* 16 | -------------------------------------------------------------------------------- /Shell/.irssi/config: -------------------------------------------------------------------------------- 1 | servers = ( 2 | { address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; }, 3 | { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; }, 4 | { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; }, 5 | { 6 | address = "irc.undernet.org"; 7 | chatnet = "Undernet"; 8 | port = "6667"; 9 | }, 10 | { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, 11 | { 12 | address = "irc.quakenet.org"; 13 | chatnet = "QuakeNet"; 14 | port = "6667"; 15 | }, 16 | { address = "irc.oftc.net"; chatnet = "OFTC"; port = "6667"; }, 17 | { 18 | address = "irc.gamesurge.net"; 19 | chatnet = "GameSurge"; 20 | port = "6667"; 21 | }, 22 | { address = "irc.webchat.org"; chatnet = "WebChat"; port = "6667"; }, 23 | { address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; }, 24 | { address = "irc.link-net.org"; chatnet = "LinkNet"; port = "6667"; }, 25 | { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; }, 26 | { 27 | address = "irc.dev.bbc.co.uk"; 28 | chatnet = "bbc"; 29 | port = "6697"; 30 | use_ssl = "yes"; 31 | ssl_cert = "/Users/markmcdonnell/Box Sync/Work/BBC/Certificates/Certificate.pem"; 32 | ssl_verify = "yes"; 33 | autoconnect = "yes"; 34 | } 35 | ); 36 | 37 | chatnets = { 38 | IRCnet = { 39 | type = "IRC"; 40 | max_kicks = "4"; 41 | max_msgs = "5"; 42 | max_whois = "4"; 43 | max_query_chans = "5"; 44 | }; 45 | EFNet = { 46 | type = "IRC"; 47 | max_kicks = "4"; 48 | max_msgs = "3"; 49 | max_whois = "1"; 50 | }; 51 | Undernet = { 52 | type = "IRC"; 53 | max_kicks = "1"; 54 | max_msgs = "3"; 55 | max_whois = "30"; 56 | }; 57 | DALnet = { 58 | type = "IRC"; 59 | max_kicks = "4"; 60 | max_msgs = "3"; 61 | max_whois = "30"; 62 | }; 63 | QuakeNet = { 64 | type = "IRC"; 65 | max_kicks = "1"; 66 | max_msgs = "3"; 67 | max_whois = "30"; 68 | }; 69 | OFTC = { 70 | type = "IRC"; 71 | max_kicks = "1"; 72 | max_msgs = "3"; 73 | max_whois = "30"; 74 | }; 75 | GameSurge = { 76 | type = "IRC"; 77 | max_kicks = "1"; 78 | max_msgs = "3"; 79 | max_whois = "30"; 80 | }; 81 | WebChat = { 82 | type = "IRC"; 83 | max_kicks = "1"; 84 | max_msgs = "3"; 85 | max_whois = "30"; 86 | }; 87 | Rizon = { 88 | type = "IRC"; 89 | max_kicks = "1"; 90 | max_msgs = "3"; 91 | max_whois = "30"; 92 | }; 93 | LinkNet = { 94 | type = "IRC"; 95 | max_kicks = "1"; 96 | max_msgs = "3"; 97 | max_whois = "30"; 98 | }; 99 | SILC = { type = "SILC"; }; 100 | bbc = { 101 | type = "IRC"; 102 | max_kicks = "1"; 103 | max_msgs = "4"; 104 | max_modes = "4"; 105 | max_whois = "1"; 106 | }; 107 | }; 108 | 109 | channels = ( 110 | { name = "#frameworks"; chatnet = "bbc"; autojoin = "Yes"; }, 111 | { name = "#news"; chatnet = "bbc"; autojoin = "Yes"; }, 112 | { name = "#lollibot"; chatnet = "bbc"; autojoin = "Yes"; } 113 | ); 114 | 115 | aliases = { 116 | J = "join"; 117 | WJOIN = "join -window"; 118 | WQUERY = "query -window"; 119 | LEAVE = "part"; 120 | BYE = "quit"; 121 | EXIT = "quit"; 122 | SIGNOFF = "quit"; 123 | DESCRIBE = "action"; 124 | DATE = "time"; 125 | HOST = "userhost"; 126 | LAST = "lastlog"; 127 | SAY = "msg *"; 128 | WI = "whois"; 129 | WII = "whois $0 $0"; 130 | WW = "whowas"; 131 | W = "who"; 132 | N = "names"; 133 | M = "msg"; 134 | T = "topic"; 135 | C = "clear"; 136 | CL = "clear"; 137 | K = "kick"; 138 | KB = "kickban"; 139 | KN = "knockout"; 140 | BANS = "ban"; 141 | B = "ban"; 142 | MUB = "unban *"; 143 | UB = "unban"; 144 | IG = "ignore"; 145 | UNIG = "unignore"; 146 | SB = "scrollback"; 147 | UMODE = "mode $N"; 148 | WC = "window close"; 149 | WN = "window new hide"; 150 | SV = "say Irssi $J ($V) - http://irssi.org/"; 151 | GOTO = "sb goto"; 152 | CHAT = "dcc chat"; 153 | RUN = "SCRIPT LOAD"; 154 | CALC = "exec - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi"; 155 | SBAR = "STATUSBAR"; 156 | INVITELIST = "mode $C +I"; 157 | Q = "QUERY"; 158 | "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save"; 159 | EXEMPTLIST = "mode $C +e"; 160 | ATAG = "WINDOW SERVER"; 161 | UNSET = "set -clear"; 162 | RESET = "set -default"; 163 | }; 164 | 165 | statusbar = { 166 | # formats: 167 | # when using {templates}, the template is shown only if it's argument isn't 168 | # empty unless no argument is given. for example {sb} is printed always, 169 | # but {sb $T} is printed only if $T isn't empty. 170 | 171 | items = { 172 | # start/end text in statusbars 173 | barstart = "{sbstart}"; 174 | barend = "{sbend}"; 175 | 176 | topicbarstart = "{topicsbstart}"; 177 | topicbarend = "{topicsbend}"; 178 | 179 | # treated "normally", you could change the time/user name to whatever 180 | time = "{sb $Z}"; 181 | user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; 182 | 183 | # treated specially .. window is printed with non-empty windows, 184 | # window_empty is printed with empty windows 185 | window = "{sb $winref:$tag/$itemname{sbmode $M}}"; 186 | window_empty = "{sb $winref{sbservertag $tag}}"; 187 | prompt = "{prompt $[.15]itemname}"; 188 | prompt_empty = "{prompt $winname}"; 189 | topic = " $topic"; 190 | topic_empty = " Irssi v$J - http://www.irssi.org"; 191 | 192 | # all of these treated specially, they're only displayed when needed 193 | lag = "{sb Lag: $0-}"; 194 | act = "{sb Act: $0-}"; 195 | more = "-- more --"; 196 | }; 197 | 198 | # there's two type of statusbars. root statusbars are either at the top 199 | # of the screen or at the bottom of the screen. window statusbars are at 200 | # the top/bottom of each split window in screen. 201 | default = { 202 | # the "default statusbar" to be displayed at the bottom of the window. 203 | # contains all the normal items. 204 | window = { 205 | disabled = "no"; 206 | 207 | # window, root 208 | type = "window"; 209 | # top, bottom 210 | placement = "bottom"; 211 | # number 212 | position = "1"; 213 | # active, inactive, always 214 | visible = "active"; 215 | 216 | # list of items in statusbar in the display order 217 | items = { 218 | barstart = { priority = "100"; }; 219 | time = { }; 220 | user = { }; 221 | window = { }; 222 | window_empty = { }; 223 | lag = { priority = "-1"; }; 224 | act = { priority = "10"; }; 225 | more = { priority = "-1"; alignment = "right"; }; 226 | barend = { priority = "100"; alignment = "right"; }; 227 | usercount = { }; 228 | }; 229 | }; 230 | 231 | # statusbar to use in inactive split windows 232 | window_inact = { 233 | type = "window"; 234 | placement = "bottom"; 235 | position = "1"; 236 | visible = "inactive"; 237 | items = { 238 | barstart = { priority = "100"; }; 239 | window = { }; 240 | window_empty = { }; 241 | more = { priority = "-1"; alignment = "right"; }; 242 | barend = { priority = "100"; alignment = "right"; }; 243 | }; 244 | }; 245 | 246 | # we treat input line as yet another statusbar :) It's possible to 247 | # add other items before or after the input line item. 248 | prompt = { 249 | type = "root"; 250 | placement = "bottom"; 251 | # we want to be at the bottom always 252 | position = "100"; 253 | visible = "always"; 254 | items = { 255 | prompt = { priority = "-1"; }; 256 | prompt_empty = { priority = "-1"; }; 257 | # treated specially, this is the real input line. 258 | input = { priority = "10"; }; 259 | }; 260 | }; 261 | 262 | # topicbar 263 | topic = { 264 | type = "root"; 265 | placement = "top"; 266 | position = "1"; 267 | visible = "always"; 268 | items = { 269 | topicbarstart = { priority = "100"; }; 270 | topic = { }; 271 | topic_empty = { }; 272 | topicbarend = { priority = "100"; alignment = "right"; }; 273 | }; 274 | }; 275 | }; 276 | }; 277 | settings = { 278 | core = { 279 | real_name = "Mark McDonnell"; 280 | user_name = "Integralist"; 281 | nick = "Integralist"; 282 | }; 283 | "fe-text" = { actlist_sort = "refnum"; }; 284 | "perl/core/scripts" = { 285 | # notifier_on_regex = "Integralist"; 286 | notifier_on_regex = ".*"; 287 | notifier_channel_regex = "(news|#news)"; 288 | notifier_on_privmsg = "1 "; 289 | }; 290 | "fe-common/core" = { 291 | autoclose_windows = "yes"; 292 | use_status_window = "yes"; 293 | window_auto_change = "yes"; 294 | }; 295 | }; 296 | hilights = ( 297 | { text = "nick"; nick = "yes"; word = "yes"; }, 298 | { text = "Integralist"; nick = "yes"; word = "yes"; }, 299 | { text = "close"; nick = "yes"; word = "yes"; }, 300 | { text = "exit"; nick = "yes"; word = "yes"; } 301 | ); 302 | -------------------------------------------------------------------------------- /Shell/.irssi/config.autosave: -------------------------------------------------------------------------------- 1 | servers = ( 2 | { address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; }, 3 | { address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; }, 4 | { address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; }, 5 | { 6 | address = "irc.undernet.org"; 7 | chatnet = "Undernet"; 8 | port = "6667"; 9 | }, 10 | { address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; }, 11 | { 12 | address = "irc.quakenet.org"; 13 | chatnet = "QuakeNet"; 14 | port = "6667"; 15 | }, 16 | { address = "irc.oftc.net"; chatnet = "OFTC"; port = "6667"; }, 17 | { 18 | address = "irc.gamesurge.net"; 19 | chatnet = "GameSurge"; 20 | port = "6667"; 21 | }, 22 | { address = "irc.webchat.org"; chatnet = "WebChat"; port = "6667"; }, 23 | { address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; }, 24 | { address = "irc.link-net.org"; chatnet = "LinkNet"; port = "6667"; }, 25 | { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; }, 26 | { 27 | address = "irc.dev.bbc.co.uk"; 28 | chatnet = "bbc"; 29 | port = "6697"; 30 | use_ssl = "yes"; 31 | ssl_cert = "/Users/markmcdonnell/Box Sync/Work/BBC/Certificates/Certificate.pem"; 32 | ssl_verify = "yes"; 33 | autoconnect = "yes"; 34 | } 35 | ); 36 | 37 | chatnets = { 38 | IRCnet = { 39 | type = "IRC"; 40 | max_kicks = "4"; 41 | max_msgs = "5"; 42 | max_whois = "4"; 43 | max_query_chans = "5"; 44 | }; 45 | EFNet = { 46 | type = "IRC"; 47 | max_kicks = "4"; 48 | max_msgs = "3"; 49 | max_whois = "1"; 50 | }; 51 | Undernet = { 52 | type = "IRC"; 53 | max_kicks = "1"; 54 | max_msgs = "3"; 55 | max_whois = "30"; 56 | }; 57 | DALnet = { 58 | type = "IRC"; 59 | max_kicks = "4"; 60 | max_msgs = "3"; 61 | max_whois = "30"; 62 | }; 63 | QuakeNet = { 64 | type = "IRC"; 65 | max_kicks = "1"; 66 | max_msgs = "3"; 67 | max_whois = "30"; 68 | }; 69 | OFTC = { 70 | type = "IRC"; 71 | max_kicks = "1"; 72 | max_msgs = "3"; 73 | max_whois = "30"; 74 | }; 75 | GameSurge = { 76 | type = "IRC"; 77 | max_kicks = "1"; 78 | max_msgs = "3"; 79 | max_whois = "30"; 80 | }; 81 | WebChat = { 82 | type = "IRC"; 83 | max_kicks = "1"; 84 | max_msgs = "3"; 85 | max_whois = "30"; 86 | }; 87 | Rizon = { 88 | type = "IRC"; 89 | max_kicks = "1"; 90 | max_msgs = "3"; 91 | max_whois = "30"; 92 | }; 93 | LinkNet = { 94 | type = "IRC"; 95 | max_kicks = "1"; 96 | max_msgs = "3"; 97 | max_whois = "30"; 98 | }; 99 | SILC = { type = "SILC"; }; 100 | bbc = { 101 | type = "IRC"; 102 | max_kicks = "1"; 103 | max_msgs = "4"; 104 | max_modes = "4"; 105 | max_whois = "1"; 106 | }; 107 | }; 108 | 109 | channels = ( 110 | { name = "#frameworks"; chatnet = "bbc"; autojoin = "Yes"; }, 111 | { name = "#news"; chatnet = "bbc"; autojoin = "Yes"; }, 112 | { name = "#lollibot"; chatnet = "bbc"; autojoin = "Yes"; } 113 | ); 114 | 115 | aliases = { 116 | J = "join"; 117 | WJOIN = "join -window"; 118 | WQUERY = "query -window"; 119 | LEAVE = "part"; 120 | BYE = "quit"; 121 | EXIT = "quit"; 122 | SIGNOFF = "quit"; 123 | DESCRIBE = "action"; 124 | DATE = "time"; 125 | HOST = "userhost"; 126 | LAST = "lastlog"; 127 | SAY = "msg *"; 128 | WI = "whois"; 129 | WII = "whois $0 $0"; 130 | WW = "whowas"; 131 | W = "who"; 132 | N = "names"; 133 | M = "msg"; 134 | T = "topic"; 135 | C = "clear"; 136 | CL = "clear"; 137 | K = "kick"; 138 | KB = "kickban"; 139 | KN = "knockout"; 140 | BANS = "ban"; 141 | B = "ban"; 142 | MUB = "unban *"; 143 | UB = "unban"; 144 | IG = "ignore"; 145 | UNIG = "unignore"; 146 | SB = "scrollback"; 147 | UMODE = "mode $N"; 148 | WC = "window close"; 149 | WN = "window new hide"; 150 | SV = "say Irssi $J ($V) - http://irssi.org/"; 151 | GOTO = "sb goto"; 152 | CHAT = "dcc chat"; 153 | RUN = "SCRIPT LOAD"; 154 | CALC = "exec - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi"; 155 | SBAR = "STATUSBAR"; 156 | INVITELIST = "mode $C +I"; 157 | Q = "QUERY"; 158 | "MANUAL-WINDOWS" = "set use_status_window off;set autocreate_windows off;set autocreate_query_level none;set autoclose_windows off;set reuse_unused_windows on;save"; 159 | EXEMPTLIST = "mode $C +e"; 160 | ATAG = "WINDOW SERVER"; 161 | UNSET = "set -clear"; 162 | RESET = "set -default"; 163 | }; 164 | 165 | statusbar = { 166 | # formats: 167 | # when using {templates}, the template is shown only if it's argument isn't 168 | # empty unless no argument is given. for example {sb} is printed always, 169 | # but {sb $T} is printed only if $T isn't empty. 170 | 171 | items = { 172 | # start/end text in statusbars 173 | barstart = "{sbstart}"; 174 | barend = "{sbend}"; 175 | 176 | topicbarstart = "{topicsbstart}"; 177 | topicbarend = "{topicsbend}"; 178 | 179 | # treated "normally", you could change the time/user name to whatever 180 | time = "{sb $Z}"; 181 | user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}"; 182 | 183 | # treated specially .. window is printed with non-empty windows, 184 | # window_empty is printed with empty windows 185 | window = "{sb $winref:$tag/$itemname{sbmode $M}}"; 186 | window_empty = "{sb $winref{sbservertag $tag}}"; 187 | prompt = "{prompt $[.15]itemname}"; 188 | prompt_empty = "{prompt $winname}"; 189 | topic = " $topic"; 190 | topic_empty = " Irssi v$J - http://www.irssi.org"; 191 | 192 | # all of these treated specially, they're only displayed when needed 193 | lag = "{sb Lag: $0-}"; 194 | act = "{sb Act: $0-}"; 195 | more = "-- more --"; 196 | }; 197 | 198 | # there's two type of statusbars. root statusbars are either at the top 199 | # of the screen or at the bottom of the screen. window statusbars are at 200 | # the top/bottom of each split window in screen. 201 | default = { 202 | # the "default statusbar" to be displayed at the bottom of the window. 203 | # contains all the normal items. 204 | window = { 205 | disabled = "no"; 206 | 207 | # window, root 208 | type = "window"; 209 | # top, bottom 210 | placement = "bottom"; 211 | # number 212 | position = "1"; 213 | # active, inactive, always 214 | visible = "active"; 215 | 216 | # list of items in statusbar in the display order 217 | items = { 218 | barstart = { priority = "100"; }; 219 | time = { }; 220 | user = { }; 221 | window = { }; 222 | window_empty = { }; 223 | lag = { priority = "-1"; }; 224 | act = { priority = "10"; }; 225 | more = { priority = "-1"; alignment = "right"; }; 226 | barend = { priority = "100"; alignment = "right"; }; 227 | usercount = { }; 228 | }; 229 | }; 230 | 231 | # statusbar to use in inactive split windows 232 | window_inact = { 233 | type = "window"; 234 | placement = "bottom"; 235 | position = "1"; 236 | visible = "inactive"; 237 | items = { 238 | barstart = { priority = "100"; }; 239 | window = { }; 240 | window_empty = { }; 241 | more = { priority = "-1"; alignment = "right"; }; 242 | barend = { priority = "100"; alignment = "right"; }; 243 | }; 244 | }; 245 | 246 | # we treat input line as yet another statusbar :) It's possible to 247 | # add other items before or after the input line item. 248 | prompt = { 249 | type = "root"; 250 | placement = "bottom"; 251 | # we want to be at the bottom always 252 | position = "100"; 253 | visible = "always"; 254 | items = { 255 | prompt = { priority = "-1"; }; 256 | prompt_empty = { priority = "-1"; }; 257 | # treated specially, this is the real input line. 258 | input = { priority = "10"; }; 259 | }; 260 | }; 261 | 262 | # topicbar 263 | topic = { 264 | type = "root"; 265 | placement = "top"; 266 | position = "1"; 267 | visible = "always"; 268 | items = { 269 | topicbarstart = { priority = "100"; }; 270 | topic = { }; 271 | topic_empty = { }; 272 | topicbarend = { priority = "100"; alignment = "right"; }; 273 | }; 274 | }; 275 | }; 276 | }; 277 | settings = { 278 | core = { 279 | real_name = "Mark McDonnell"; 280 | user_name = "Integralist"; 281 | nick = "Integralist"; 282 | }; 283 | "fe-text" = { actlist_sort = "refnum"; term_force_colors = "yes"; }; 284 | "perl/core/scripts" = { 285 | # notifier_on_regex = "Integralist"; 286 | notifier_on_regex = ".*"; 287 | notifier_channel_regex = "(news|#news)"; 288 | notifier_on_privmsg = "1 "; 289 | }; 290 | "fe-common/core" = { 291 | autoclose_windows = "yes"; 292 | use_status_window = "yes"; 293 | window_auto_change = "yes"; 294 | }; 295 | }; 296 | hilights = ( 297 | { text = "nick"; nick = "yes"; word = "yes"; }, 298 | { text = "close"; nick = "yes"; word = "yes"; }, 299 | { text = "exit"; nick = "yes"; word = "yes"; } 300 | ); 301 | -------------------------------------------------------------------------------- /Shell/.irssi/default.theme: -------------------------------------------------------------------------------- 1 | # When testing changes, the easiest way to reload the theme is with /RELOAD. 2 | # This reloads the configuration file too, so if you did any changes remember 3 | # to /SAVE it first. Remember also that /SAVE overwrites the theme file with 4 | # old data so keep backups :) 5 | 6 | # TEMPLATES: 7 | 8 | # The real text formats that irssi uses are the ones you can find with 9 | # /FORMAT command. Back in the old days all the colors and texts were mixed 10 | # up in those formats, and it was really hard to change the colors since you 11 | # might have had to change them in tens of different places. So, then came 12 | # this templating system. 13 | 14 | # Now the /FORMATs don't have any colors in them, and they also have very 15 | # little other styling. Most of the stuff you need to change is in this 16 | # theme file. If you can't change something here, you can always go back 17 | # to change the /FORMATs directly, they're also saved in these .theme files. 18 | 19 | # So .. the templates. They're those {blahblah} parts you see all over the 20 | # /FORMATs and here. Their usage is simply {name parameter1 parameter2}. 21 | # When irssi sees this kind of text, it goes to find "name" from abstracts 22 | # block below and sets "parameter1" into $0 and "parameter2" into $1 (you 23 | # can have more parameters of course). Templates can have subtemplates. 24 | # Here's a small example: 25 | # /FORMAT format hello {colorify {underline world}} 26 | # abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; } 27 | # When irssi expands the templates in "format", the final string would be: 28 | # hello %G%Uworld%U%n 29 | # ie. underlined bright green "world" text. 30 | # and why "$0-", why not "$0"? $0 would only mean the first parameter, 31 | # $0- means all the parameters. With {underline hello world} you'd really 32 | # want to underline both of the words, not just the hello (and world would 33 | # actually be removed entirely). 34 | 35 | # COLORS: 36 | 37 | # You can find definitions for the color format codes in docs/formats.txt. 38 | 39 | # There's one difference here though. %n format. Normally it means the 40 | # default color of the terminal (white mostly), but here it means the 41 | # "reset color back to the one it was in higher template". For example 42 | # if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would 43 | # print yellow "foo" (as set with %Y) but "bar" would be green, which was 44 | # set at the beginning before the {foo} template. If there wasn't the %g 45 | # at start, the normal behaviour of %n would occur. If you _really_ want 46 | # to use the terminal's default color, use %N. 47 | 48 | ############################################################################# 49 | 50 | # default foreground color (%N) - -1 is the "default terminal color" 51 | default_color = "-1"; 52 | 53 | # print timestamp/servertag at the end of line, not at beginning 54 | info_eol = "false"; 55 | 56 | # these characters are automatically replaced with specified color 57 | # (dark grey by default) 58 | replaces = { "[]=" = "%K$*%n"; }; 59 | 60 | abstracts = { 61 | ## 62 | ## generic 63 | ## 64 | 65 | # text to insert at the beginning of each non-message line 66 | line_start = "%B-%n!%B-%n "; 67 | 68 | # timestamp styling, nothing by default 69 | timestamp = "$*"; 70 | 71 | # any kind of text that needs hilighting, default is to bold 72 | hilight = "%_$*%_"; 73 | 74 | # any kind of error message, default is bright red 75 | error = "%R$*%n"; 76 | 77 | # channel name is printed 78 | channel = "%_$*%_"; 79 | 80 | # nick is printed 81 | nick = "%_$*%_"; 82 | 83 | # nick host is printed 84 | nickhost = "[$*]"; 85 | 86 | # server name is printed 87 | server = "%_$*%_"; 88 | 89 | # some kind of comment is printed 90 | comment = "[$*]"; 91 | 92 | # reason for something is printed (part, quit, kick, ..) 93 | reason = "{comment $*}"; 94 | 95 | # mode change is printed ([+o nick]) 96 | mode = "{comment $*}"; 97 | 98 | ## 99 | ## channel specific messages 100 | ## 101 | 102 | # highlighted nick/host is printed (joins) 103 | channick_hilight = "%C$*%n"; 104 | chanhost_hilight = "{nickhost %c$*%n}"; 105 | 106 | # nick/host is printed (parts, quits, etc.) 107 | channick = "%c$*%n"; 108 | chanhost = "{nickhost $*}"; 109 | 110 | # highlighted channel name is printed 111 | channelhilight = "%c$*%n"; 112 | 113 | # ban/ban exception/invite list mask is printed 114 | ban = "%c$*%n"; 115 | 116 | ## 117 | ## messages 118 | ## 119 | 120 | # the basic styling of how to print message, $0 = nick mode, $1 = nick 121 | msgnick = "%K<%n$0$1-%K>%n %|"; 122 | 123 | # message from you is printed. "msgownnick" specifies the styling of the 124 | # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the 125 | # whole line. 126 | 127 | # Example1: You want the message text to be green: 128 | # ownmsgnick = "{msgnick $0 $1-}%g"; 129 | # Example2.1: You want < and > chars to be yellow: 130 | # ownmsgnick = "%Y{msgnick $0 $1-%Y}%n"; 131 | # (you'll also have to remove <> from replaces list above) 132 | # Example2.2: But you still want to keep <> grey for other messages: 133 | # pubmsgnick = "%K{msgnick $0 $1-%K}%n"; 134 | # pubmsgmenick = "%K{msgnick $0 $1-%K}%n"; 135 | # pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n"; 136 | # ownprivmsgnick = "%K{msgnick $*%K}%n"; 137 | # privmsgnick = "%K{msgnick %R$*%K}%n"; 138 | 139 | # $0 = nick mode, $1 = nick 140 | ownmsgnick = "{msgnick $0 $1-}"; 141 | ownnick = "%_$*%n"; 142 | 143 | # public message in channel, $0 = nick mode, $1 = nick 144 | pubmsgnick = "{msgnick $0 $1-}"; 145 | pubnick = "%N$*%n"; 146 | 147 | # public message in channel meant for me, $0 = nick mode, $1 = nick 148 | pubmsgmenick = "{msgnick $0 $1-}"; 149 | menick = "%Y$*%n"; 150 | 151 | # public highlighted message in channel 152 | # $0 = highlight color, $1 = nick mode, $2 = nick 153 | pubmsghinick = "{msgnick $1 $0$2-%n}"; 154 | 155 | # channel name is printed with message 156 | msgchannel = "%K:%c$*%n"; 157 | 158 | # private message, $0 = nick, $1 = host 159 | privmsg = "[%R$0%K(%r$1-%K)%n] "; 160 | 161 | # private message from you, $0 = "msg", $1 = target nick 162 | ownprivmsg = "[%r$0%K(%R$1-%K)%n] "; 163 | 164 | # own private message in query 165 | ownprivmsgnick = "{msgnick $*}"; 166 | ownprivnick = "%_$*%n"; 167 | 168 | # private message in query 169 | privmsgnick = "{msgnick %R$*%n}"; 170 | 171 | ## 172 | ## Actions (/ME stuff) 173 | ## 174 | 175 | # used internally by this theme 176 | action_core = "%_ * $*%n"; 177 | 178 | # generic one that's used by most actions 179 | action = "{action_core $*} "; 180 | 181 | # own action, both private/public 182 | ownaction = "{action $*}"; 183 | 184 | # own action with target, both private/public 185 | ownaction_target = "{action_core $0}%K:%c$1%n "; 186 | 187 | # private action sent by others 188 | pvtaction = "%_ (*) $*%n "; 189 | pvtaction_query = "{action $*}"; 190 | 191 | # public action sent by others 192 | pubaction = "{action $*}"; 193 | 194 | 195 | ## 196 | ## other IRC events 197 | ## 198 | 199 | # whois 200 | whois = "%# $[8]0 : $1-"; 201 | 202 | # notices 203 | ownnotice = "[%r$0%K(%R$1-%K)]%n "; 204 | notice = "%K-%M$*%K-%n "; 205 | pubnotice_channel = "%K:%m$*"; 206 | pvtnotice_host = "%K(%m$*%K)"; 207 | servernotice = "%g!$*%n "; 208 | 209 | # CTCPs 210 | ownctcp = "[%r$0%K(%R$1-%K)] "; 211 | ctcp = "%g$*%n"; 212 | 213 | # wallops 214 | wallop = "%_$*%n: "; 215 | wallop_nick = "%n$*"; 216 | wallop_action = "%_ * $*%n "; 217 | 218 | # netsplits 219 | netsplit = "%R$*%n"; 220 | netjoin = "%C$*%n"; 221 | 222 | # /names list 223 | names_prefix = ""; 224 | names_nick = "[%_$0%_$1-] "; 225 | names_nick_op = "{names_nick $*}"; 226 | names_nick_halfop = "{names_nick $*}"; 227 | names_nick_voice = "{names_nick $*}"; 228 | names_users = "[%g$*%n]"; 229 | names_channel = "%G$*%n"; 230 | 231 | # DCC 232 | dcc = "%g$*%n"; 233 | dccfile = "%_$*%_"; 234 | 235 | # DCC chat, own msg/action 236 | dccownmsg = "[%r$0%K($1-%K)%n] "; 237 | dccownnick = "%R$*%n"; 238 | dccownquerynick = "%_$*%n"; 239 | dccownaction = "{action $*}"; 240 | dccownaction_target = "{action_core $0}%K:%c$1%n "; 241 | 242 | # DCC chat, others 243 | dccmsg = "[%G$1-%K(%g$0%K)%n] "; 244 | dccquerynick = "%G$*%n"; 245 | dccaction = "%_ (*dcc*) $*%n %|"; 246 | 247 | ## 248 | ## statusbar 249 | ## 250 | 251 | # default background for all statusbars. You can also give 252 | # the default foreground color for statusbar items. 253 | sb_background = "%4%w"; 254 | 255 | # default backround for "default" statusbar group 256 | #sb_default_bg = "%4"; 257 | # background for prompt / input line 258 | sb_prompt_bg = "%n"; 259 | # background for info statusbar 260 | sb_info_bg = "%8"; 261 | # background for topicbar (same default) 262 | #sb_topic_bg = "%4"; 263 | 264 | # text at the beginning of statusbars. sb-item already puts 265 | # space there,so we don't use anything by default. 266 | sbstart = ""; 267 | # text at the end of statusbars. Use space so that it's never 268 | # used for anything. 269 | sbend = " "; 270 | 271 | topicsbstart = "{sbstart $*}"; 272 | topicsbend = "{sbend $*}"; 273 | 274 | prompt = "[$*] "; 275 | 276 | sb = " %c[%n$*%c]%n"; 277 | sbmode = "(%c+%n$*)"; 278 | sbaway = " (%GzZzZ%n)"; 279 | sbservertag = ":$0 (change with ^X)"; 280 | sbnickmode = "$0"; 281 | 282 | # activity in statusbar 283 | 284 | # ',' separator 285 | sb_act_sep = "%c$*"; 286 | # normal text 287 | sb_act_text = "%c$*"; 288 | # public message 289 | sb_act_msg = "%W$*"; 290 | # hilight 291 | sb_act_hilight = "%M$*"; 292 | # hilight with specified color, $0 = color, $1 = text 293 | sb_act_hilight_color = "$0$1-%n"; 294 | }; 295 | -------------------------------------------------------------------------------- /Shell/.irssi/scripts/autorun/notifier.pl: -------------------------------------------------------------------------------- 1 | ../notifier.pl -------------------------------------------------------------------------------- /Shell/.irssi/scripts/notifier.pl: -------------------------------------------------------------------------------- 1 | # == WHAT 2 | # Simple script for irssi to trigger Mac OS X 10.8's Notification Center 3 | # 4 | # == WHO 5 | # Patrick Kontschak 2012 6 | # 7 | # Forked from Nate Murray's irssi-growl: https://github.com/jashmenn/irssi-growl 8 | # 9 | # == CONFIG 10 | # /SET notifier_on_regex [regex] 11 | # /SET notifier_channel_regex [regex] 12 | # 13 | # == EXAMPLES 14 | # 15 | # notifier on mynickname 16 | # /SET notifier_on_regex mynickname 17 | # 18 | # notifier on everything: 19 | # /SET notifier_on_regex .* 20 | # 21 | # everything but jdewey 22 | # /SET notifier_on_regex (?=^(?:(?!jdewey).)*$).* 23 | # 24 | # only notifier things for mychannel1 and mychannel2 25 | # /SET notifier_channel_regex (mychannel1|mychannel2) 26 | # 27 | # == INSTALL 28 | # Place notifier.pl in `~/.irssi/scripts/`. 29 | # /script load notifier.pl 30 | # 31 | 32 | use strict; 33 | use Irssi; 34 | use vars qw($VERSION %IRSSI); 35 | # use Config; 36 | 37 | # Dev. info ^_^ 38 | $VERSION = "0.0"; 39 | %IRSSI = ( 40 | authors => "Patrick Kontschak", 41 | contact => "patrick.kontschak\@gmail.com", 42 | name => "Notifier", 43 | description => "Simple script that will trigger Mac OS X 10.8's Notification Center", 44 | license => "GPL", 45 | url => "http://www.codinggoat.com", 46 | changed => "Wed 8 Aug 2012 14:40:15 EDT" 47 | ); 48 | 49 | # All the works 50 | sub do_notifier { 51 | my ($server, $title, $data) = @_; 52 | $data =~ s/["';]//g; 53 | system("terminal-notifier -message '$data' -title '$title' >> /dev/null 2>&1"); 54 | return 1 55 | } 56 | 57 | sub notifier_it { 58 | my ($server, $title, $data, $channel, $nick) = @_; 59 | 60 | my $filter = Irssi::settings_get_str('notifier_on_regex'); 61 | my $channel_filter = Irssi::settings_get_str('notifier_channel_regex'); 62 | my $notifier_on_nick = Irssi::settings_get_str('notifier_on_nick'); 63 | 64 | my $current_nick = $server->{nick}; 65 | if($filter) { 66 | return 0 if $data !~ /$filter/; 67 | } 68 | if($channel_filter && $server->ischannel($channel)) { 69 | return 0 if $channel !~ /$channel_filter/; 70 | } 71 | 72 | $title = $title . " " . $channel; 73 | do_notifier($server, $title, $data); 74 | } 75 | 76 | # All the works 77 | sub notifier_message { 78 | my ($server, $data, $nick, $mask, $target) = @_; 79 | notifier_it($server, $nick, $data, $target, $nick); 80 | Irssi::signal_continue($server, $data, $nick, $mask, $target); 81 | } 82 | 83 | sub notifier_join { 84 | my ($server, $channel, $nick, $address) = @_; 85 | notifier_it($server, "Join", "$nick has joined", $channel, $nick); 86 | Irssi::signal_continue($server, $channel, $nick, $address); 87 | } 88 | 89 | sub notifier_part { 90 | my ($server, $channel, $nick, $address) = @_; 91 | notifier_it($server, "Part", "$nick has parted", $channel, $nick); 92 | Irssi::signal_continue($server, $channel, $nick, $address); 93 | } 94 | 95 | sub notifier_quit { 96 | my ($server, $nick, $address, $reason) = @_; 97 | notifier_it($server, "Quit", "$nick has quit: $reason", $server, $nick); 98 | Irssi::signal_continue($server, $nick, $address, $reason); 99 | } 100 | 101 | sub notifier_invite { 102 | my ($server, $channel, $nick, $address) = @_; 103 | notifier_it($server, "Invite", "$nick has invited you on $channel", $channel, $nick); 104 | Irssi::signal_continue($server, $channel, $address); 105 | } 106 | 107 | sub notifier_topic { 108 | my ($server, $channel, $topic, $nick, $address) = @_; 109 | notifier_it($server, "Topic: $topic", "$nick has changed the topic to $topic on $channel", $channel, $nick); 110 | Irssi::signal_continue($server, $channel, $topic, $nick, $address); 111 | } 112 | 113 | sub notifier_privmsg { 114 | # $server = server record where the message came 115 | # $data = the raw data received from server, with PRIVMSGs it is: 116 | # "target :text" where target is either your nick or #channel 117 | # $nick = the nick who sent the message 118 | # $host = host of the nick who sent the message 119 | my ($server, $data, $nick, $host) = @_; 120 | my ($target, $text) = split(/ :/, $data, 2); 121 | # only notify if we're permitting notification on privmsg 122 | if (Irssi::settings_get_str('notifier_on_privmsg') == 1) { 123 | notifier_it($server, $nick, $data, $target, $nick); 124 | } 125 | Irssi::signal_continue($server, $data, $nick, $host); 126 | } 127 | 128 | # Hook me up 129 | Irssi::settings_add_str('misc', 'notifier_on_regex', 0); # false 130 | Irssi::settings_add_str('misc', 'notifier_channel_regex', 0); # false 131 | Irssi::settings_add_str('misc', 'notifier_on_nick', 1); # true 132 | Irssi::settings_add_str('misc', 'notifier_on_privmsg', 0); # false 133 | Irssi::signal_add('message public', 'notifier_message'); 134 | Irssi::signal_add('message private', 'notifier_message'); 135 | Irssi::signal_add('message own_public', 'notifier_message'); 136 | Irssi::signal_add('message own_private', 'notifier_message'); 137 | Irssi::signal_add('message join', 'notifier_join'); 138 | Irssi::signal_add('message part', 'notifier_part'); 139 | Irssi::signal_add('message quit', 'notifier_quit'); 140 | Irssi::signal_add('message invite', 'notifier_invite'); 141 | Irssi::signal_add('message topic', 'notifier_topic'); 142 | Irssi::signal_add('event privmsg', 'notifier_privmsg'); 143 | -------------------------------------------------------------------------------- /Shell/.taskrc: -------------------------------------------------------------------------------- 1 | # [Created by task 2.2.0 11/22/2013 14:47:22] 2 | # Taskwarrior program configuration file. 3 | # For more documentation, see http://taskwarrior.org or try 'man task', 'man task-faq', 4 | # 'man task-tutorial', 'man task-color', 'man task-sync' or 'man taskrc' 5 | 6 | # Here is an example of entries that use the default, override and blank values 7 | # variable=foo -- By specifying a value, this overrides the default 8 | # variable= -- By specifying no value, this means no default 9 | # #variable=foo -- By commenting out the line, or deleting it, this uses the default 10 | 11 | # Use the command 'task show' to see all defaults and overrides 12 | 13 | # Files 14 | data.location=~/.task 15 | 16 | # Color theme (uncomment one to use) 17 | #include /usr/local/share/doc/task/rc/light-16.theme 18 | #include /usr/local/share/doc/task/rc/light-256.theme 19 | #include /usr/local/share/doc/task/rc/dark-16.theme 20 | #include /usr/local/share/doc/task/rc/dark-256.theme 21 | #include /usr/local/share/doc/task/rc/dark-red-256.theme 22 | #include /usr/local/share/doc/task/rc/dark-green-256.theme 23 | #include /usr/local/share/doc/task/rc/dark-blue-256.theme 24 | #include /usr/local/share/doc/task/rc/dark-violets-256.theme 25 | #include /usr/local/share/doc/task/rc/dark-yellow-green.theme 26 | #include /usr/local/share/doc/task/rc/dark-gray-256.theme 27 | 28 | -------------------------------------------------------------------------------- /Shell/.tmux.conf: -------------------------------------------------------------------------------- 1 | # Bindings {{{ 2 | # Remap prefix 3 | unbind C-b 4 | set -g prefix C-Space 5 | 6 | # Quick key for moving back to the previous window 7 | bind-key L last-window 8 | 9 | # Vim style bindings for pane movement 10 | bind-key -r h select-pane -L 11 | bind-key -r j select-pane -D 12 | bind-key -r k select-pane -U 13 | bind-key -r l select-pane -R 14 | 15 | # Fix issue with tmux repeating -r the arrow directions (meaning when you switch panes you can accidentally jump back to the other pane again) 16 | bind-key Up select-pane -U 17 | bind-key Down select-pane -D 18 | bind-key Left select-pane -L 19 | bind-key Right select-pane -R 20 | 21 | # Make splitting windows easier 22 | bind-key v split-window -h 23 | bind-key s split-window -v 24 | 25 | # Reload tmux config 26 | # Same as in command mode :source-file ~/tmux.conf 27 | # Or outside of tmux with `tmux source-file ~/tmux.conf` 28 | bind-key r source-file ~/.tmux.conf 29 | 30 | # Allow Ctrl+k to clear the history 31 | bind-key -n C-k clear-history 32 | 33 | # Make resizing panes easier 34 | bind-key < resize-pane -L 5 35 | bind-key > resize-pane -R 5 36 | bind-key + resize-pane -U 5 37 | bind-key - resize-pane -D 5 38 | bind-key = select-layout even-vertical 39 | bind-key | select-layout even-horizontal 40 | # }}} 41 | 42 | # Settings {{{ 43 | # Ensure terminal starts with its own colour scheme (defined below) 44 | set -g default-terminal "screen-256color" 45 | 46 | set-window-option -g utf8 on 47 | 48 | # Note: if you have EDITOR=vim set 49 | # then the following two settings aren't needed 50 | 51 | # Use Vi style key bindings to move around command line mode 52 | set-option -g status-keys vi 53 | 54 | # Use Vi style key bindings to move around copy mode 55 | setw -g mode-keys vi 56 | 57 | # Remove delay when pressing esc in Vim 58 | set -sg escape-time 0 59 | 60 | # Fix issue with copying from within a tmux session and wanting to paste outside of it 61 | set -g default-command "reattach-to-user-namespace -l '/bin/zsh'" 62 | 63 | # Setup `v` and `y` operators to start and yank selections (like Vim) 64 | bind-key -t vi-copy 'v' begin-selection 65 | bind-key -t vi-copy 'y' copy-pipe "reattach-to-user-namespace pbcopy" # pbcopy is only available for Mac (not Linux) 66 | 67 | # Prevent tmux from renaming the tab when processes change 68 | # e.g. if you're in a directory which is a git repo and you fire up Pry then 69 | # tmux would first rename the tab to 'java' (for Pry) then 'git' when exiting Pry, then finally back to 'zsh' 70 | set-option -g allow-rename off 71 | 72 | # Tells tmux up front what shell to expect 73 | set-option -g default-shell /bin/zsh 74 | 75 | # Set base to 1 76 | set -g base-index 1 77 | 78 | # Enable UTF-8 support in status bar 79 | set -g status on 80 | set -g status-utf8 on 81 | 82 | # Increase scrollback lines 83 | set -g history-limit 30000 84 | 85 | # Renumber windows automatically after removing a window 86 | # Prevents my OCD and means I don't have to manually run {move|swap}-window 87 | set-option -g renumber-windows on 88 | 89 | # Colour reference... 90 | 91 | # Light Blue = 31 92 | # Dark Grey = 234 93 | # Light Grey = 240 94 | # White = 254 95 | 96 | # the ~/bin/battery bash script comes from https://github.com/richo/battery/ 97 | # don't forget to `chmod +x ~/bin/battery` 98 | set -g status-right "#(~/bin/battery) #[fg=colour234,bg=white,nobold,nounderscore,noitalics]#[fg=colour250,bg=colour234] %a #[fg=colour247,bg=colour234] #[fg=colour247,bg=colour234] %b %d  %R #[fg=colour252,bg=colour234,nobold,nounderscore,noitalics]#[fg=red,bg=colour234]#[fg=white,bg=red] #H" # sets right side of the status bar to look bit nicer 99 | 100 | set -g status-bg white # sets status bar background colour 101 | set -g status-justify 'left' # positions each window name to the left most edge of the status bar 102 | set -g pane-border-fg white # sets default pane border colour 103 | set -g pane-active-border-fg red # highlights border of current pane 104 | set -g message-bg red # sets status bar background colour when executing a command via command-line mode 105 | set -g message-fg white # sets colour of status bar font in command-line mode 106 | setw -g window-status-separator ' ' # adds separator (in this case some extra breathing space around the list of windows) 107 | setw -g window-status-current-format '#[fg=colour231,bg=colour31,bold] #I  #W #[fg=colour31,bg=white,nobold,nounderscore,noitalics]' # sets design of current window listed in the status bar 108 | 109 | # Explanation of settings I don't use... 110 | # 111 | # sets background colour of status bar when you try to ESC command-line mode: 112 | # set -g message-command-bg 'colour31' 113 | # 114 | # sets colour of status bar font in default mode: 115 | # setw -g window-status-fg black 116 | # 117 | # sets the background colour of the window listed in the status bar: 118 | # setw -g window-status-bg 'colour234' 119 | # 120 | # sets default design around each window listed in the status bar: 121 | # setw -g window-status-format '#[fg=colour234,bg=colour234,nobold,nounderscore,noitalics]#[default] #I  #W #[fg=colour234,bg=colour234,nobold,nounderscore,noitalics]' 122 | # 123 | # sets left side information of status bar: 124 | # set -g status-left '#[fg=colour16,bg=colour254,bold] #S #[fg=colour254,bg=colour240,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour240] #F #[fg=colour240,bg=colour236,nobold,nounderscore,noitalics]#[fg=colour247,bg=colour236] #W #[fg=colour236,bg=colour234,nobold,nounderscore,noitalics]' 125 | # }}} 126 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/CSApprox/README: -------------------------------------------------------------------------------- 1 | This is a mirror of http://www.vim.org/scripts/script.php?script_id=2390 2 | 3 | CSApprox.vim 4 | 5 | ============ 6 | DESCRIPTION 7 | ============ 8 | 9 | It's hard to find colorschemes for terminal Vim. Most colorschemes are 10 | written to only support GVim, and don't work at all in terminal Vim. 11 | 12 | This plugin makes GVim-only colorschemes Just Work in terminal Vim, as long 13 | as the terminal supports 88 or 256 colors - and most do these days. This 14 | usually requires no user interaction (but see the help for what to do if 15 | things don't Just Work). After getting this plugin happily installed, any 16 | time you use :colorscheme it will do its magic and make the colorscheme Just 17 | Work. 18 | 19 | Whenever you change colorschemes using the :colorscheme command this script 20 | will be executed. It will take the colors that the scheme specified for use 21 | in the GUI and use an approximation algorithm to try to gracefully degrade 22 | them to the closest color available in your terminal. If you are running in 23 | a GUI or if your terminal doesn't support 88 or 256 colors, no changes are 24 | made. Also, no changes will be made if the colorscheme seems to have been 25 | high color already. 26 | 27 | If for some reason this transparent method isn't suitable to you (for instance 28 | if your environment can't be configured to meet the |csapprox-requirements|, 29 | or you need to work in Vim 6), another option is also available: using the 30 | |:CSApproxSnapshot| command to create a new GUI/88-/256-color terminal 31 | colorscheme. To use this command, a user would generally start GVim, choose a 32 | colorscheme that sets up the desired colors, and then use |:CSApproxSnapshot| 33 | to create a new colorscheme based on those colors that works in high color 34 | terminals. This method is more flexible than the transparent mode and works 35 | in more places, but also requires more user intervention, and makes it harder 36 | to deal with colorschemes being updated and such. 37 | 38 | ====== 39 | NOTES 40 | ====== 41 | 42 | Ideally, this plugin should require absolutely no configuration, but you may 43 | need some tweaking to make sure vim realizes that your terminal supports more 44 | than 16 colors. Also, konsole and Eterm users will want to make sure that 45 | this plugin realizes that the terminal does not use colors that are exactly 46 | xterm-compatible; they will want to skim through the help articles 47 | |csapprox-palettes| and |csapprox-configuration| for a better end result. 48 | 49 | ============== 50 | SCREENSHOTS 51 | ============== 52 | 53 | Some quick side-by-side screenshots can be found at 54 | http://www.cs.drexel.edu/~mjw452/CSApprox/ 55 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/CSApprox/after/plugin/CSApprox.vim: -------------------------------------------------------------------------------- 1 | " Copyright (c) 2012, Matthew J. Wozniski 2 | " All rights reserved. 3 | " 4 | " Redistribution and use in source and binary forms, with or without 5 | " modification, are permitted provided that the following conditions are met: 6 | " * Redistributions of source code must retain the above copyright 7 | " notice, this list of conditions and the following disclaimer. 8 | " * Redistributions in binary form must reproduce the above copyright 9 | " notice, this list of conditions and the following disclaimer in the 10 | " documentation and/or other materials provided with the distribution. 11 | " * The names of the contributors may not be used to endorse or promote 12 | " products derived from this software without specific prior written 13 | " permission. 14 | " 15 | " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY 16 | " EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | " WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | " DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 19 | " DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | " (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | " LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | " ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | " (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | " SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | 26 | " The last thing to do when sourced is to run and actually fix up the colors. 27 | if !has('gui_running') && exists(':CSApprox') 28 | CSApprox 29 | endif 30 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/CSApprox/autoload/csapprox/common.vim: -------------------------------------------------------------------------------- 1 | " Copyright (c) 2012, Matthew J. Wozniski 2 | " All rights reserved. 3 | " 4 | " Redistribution and use in source and binary forms, with or without 5 | " modification, are permitted provided that the following conditions are met: 6 | " * Redistributions of source code must retain the above copyright 7 | " notice, this list of conditions and the following disclaimer. 8 | " * Redistributions in binary form must reproduce the above copyright 9 | " notice, this list of conditions and the following disclaimer in the 10 | " documentation and/or other materials provided with the distribution. 11 | " * The names of the contributors may not be used to endorse or promote 12 | " products derived from this software without specific prior written 13 | " permission. 14 | " 15 | " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY 16 | " EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | " WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | " DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 19 | " DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | " (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | " LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | " ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | " (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | " SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | 26 | let s:xterm_colors = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ] 27 | let s:eterm_colors = [ 0x00, 0x2A, 0x55, 0x7F, 0xAA, 0xD4 ] 28 | let s:konsole_colors = [ 0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF ] 29 | let s:xterm_greys = [ 0x08, 0x12, 0x1C, 0x26, 0x30, 0x3A, 30 | \ 0x44, 0x4E, 0x58, 0x62, 0x6C, 0x76, 31 | \ 0x80, 0x8A, 0x94, 0x9E, 0xA8, 0xB2, 32 | \ 0xBC, 0xC6, 0xD0, 0xDA, 0xE4, 0xEE ] 33 | 34 | let s:urxvt_colors = [ 0x00, 0x8B, 0xCD, 0xFF ] 35 | let s:urxvt_greys = [ 0x2E, 0x5C, 0x73, 0x8B, 36 | \ 0xA2, 0xB9, 0xD0, 0xE7 ] 37 | 38 | " Uses &term to determine which cube should be use. If &term is set to 39 | " "xterm" or begins with "screen", the variables g:CSApprox_eterm and 40 | " g:CSApprox_konsole can be used to select a different palette. 41 | function! csapprox#common#PaletteType() 42 | if &t_Co == 88 43 | let type = 'urxvt' 44 | elseif &term ==# 'xterm' || &term =~# '^screen' || &term==# 'builtin_gui' 45 | if exists('g:CSApprox_konsole') && g:CSApprox_konsole 46 | let type = 'konsole' 47 | elseif exists('g:CSApprox_eterm') && g:CSApprox_eterm 48 | let type = 'eterm' 49 | else 50 | let type = 'xterm' 51 | endif 52 | elseif &term =~? '^konsole' 53 | " Konsole only used its own palette up til KDE 4.2.0 54 | if executable('kde4-config') && system('kde4-config --kde-version') =~ '^4\.[10]\.' 55 | let type = 'konsole' 56 | elseif executable('kde-config') && system('kde-config --version') =~# 'KDE: 3\.' 57 | let type = 'konsole' 58 | else 59 | let type = 'xterm' 60 | endif 61 | elseif &term =~? '^eterm' 62 | let type = 'eterm' 63 | else 64 | let type = 'xterm' 65 | endif 66 | 67 | return type 68 | endfunction 69 | 70 | " Retrieve the list of greyscale ramp colors for the current palette 71 | function! csapprox#common#Greys() 72 | return (&t_Co == 88 ? s:urxvt_greys : s:xterm_greys) 73 | endfunction 74 | 75 | " Retrieve the list of non-greyscale ramp colors for the current palette 76 | function! csapprox#common#Colors() 77 | return s:{csapprox#common#PaletteType()}_colors 78 | endfunction 79 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/CSApprox/autoload/csapprox/per_component.vim: -------------------------------------------------------------------------------- 1 | " Copyright (c) 2012, Matthew J. Wozniski 2 | " All rights reserved. 3 | " 4 | " Redistribution and use in source and binary forms, with or without 5 | " modification, are permitted provided that the following conditions are met: 6 | " * Redistributions of source code must retain the above copyright 7 | " notice, this list of conditions and the following disclaimer. 8 | " * Redistributions in binary form must reproduce the above copyright 9 | " notice, this list of conditions and the following disclaimer in the 10 | " documentation and/or other materials provided with the distribution. 11 | " * The names of the contributors may not be used to endorse or promote 12 | " products derived from this software without specific prior written 13 | " permission. 14 | " 15 | " THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY 16 | " EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 | " WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 | " DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 19 | " DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | " (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | " LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 | " ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | " (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 | " SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | 26 | " Integer comparator used to sort the complete list of possible colors 27 | function! s:IntCompare(i1, i2) 28 | return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1 29 | endfunc 30 | 31 | " Color comparator to find the nearest element to a given one in a given list 32 | function! s:NearestElemInList(elem, list) 33 | let len = len(a:list) 34 | for i in range(len-1) 35 | if (a:elem <= (a:list[i] + a:list[i+1]) / 2) 36 | return a:list[i] 37 | endif 38 | endfor 39 | return a:list[len-1] 40 | endfunction 41 | 42 | " Takes 3 decimal values for r, g, and b, and returns the closest cube number. 43 | " 44 | " This approximator considers closeness based upon the individiual components. 45 | " For each of r, g, and b, it finds the closest cube component available on 46 | " the cube. If the three closest matches can combine to form a valid color, 47 | " this color is used, otherwise we repeat the search with the greys removed, 48 | " meaning that the three new matches must make a valid color when combined. 49 | function! csapprox#per_component#Approximate(r,g,b) 50 | let hex = printf("%02x%02x%02x", a:r, a:g, a:b) 51 | 52 | let colors = csapprox#common#Colors() 53 | let greys = csapprox#common#Greys() 54 | let type = csapprox#common#PaletteType() 55 | 56 | if !exists('s:approximator_cache_'.type) 57 | let s:approximator_cache_{type} = {} 58 | endif 59 | 60 | let rv = get(s:approximator_cache_{type}, hex, -1) 61 | if rv != -1 62 | return rv 63 | endif 64 | 65 | " Only obtain sorted list once 66 | if !exists("s:".type."_greys_colors") 67 | let s:{type}_greys_colors = sort(greys + colors, "s:IntCompare") 68 | endif 69 | 70 | let greys_colors = s:{type}_greys_colors 71 | 72 | let r = s:NearestElemInList(a:r, greys_colors) 73 | let g = s:NearestElemInList(a:g, greys_colors) 74 | let b = s:NearestElemInList(a:b, greys_colors) 75 | 76 | let len = len(colors) 77 | if (r == g && g == b && index(greys, r) != -1) 78 | let rv = 16 + len * len * len + index(greys, r) 79 | else 80 | let r = s:NearestElemInList(a:r, colors) 81 | let g = s:NearestElemInList(a:g, colors) 82 | let b = s:NearestElemInList(a:b, colors) 83 | let rv = index(colors, r) * len * len 84 | \ + index(colors, g) * len 85 | \ + index(colors, b) 86 | \ + 16 87 | endif 88 | 89 | let s:approximator_cache_{type}[hex] = rv 90 | return rv 91 | endfunction 92 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.swo 3 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Eugene Kalinin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/Makefile: -------------------------------------------------------------------------------- 1 | install: 2 | @echo "Installation:" 3 | @mkdir -p ~/.vim/syntax 4 | @mkdir -p ~/.vim/ftdetect 5 | @mkdir -p ~/.vim/snippets 6 | @echo " * Dirs ... success." 7 | @cp ./syntax/Dockerfile.vim ~/.vim/syntax/ 8 | @echo " * Syntax ... success." 9 | @cp ./ftdetect/Dockerfile.vim ~/.vim/ftdetect/ 10 | @echo " * Filetype ... success." 11 | @cp ./snippets/Dockerfile.snippets ~/.vim/snippets/ 12 | @echo " * Snippets ... success." 13 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/README.md: -------------------------------------------------------------------------------- 1 | Dockerfile.vim 2 | ============== 3 | 4 | Vim syntax file for [Docker](http://docker.io/)'s [Dockerfile](http://docs.docker.io/en/latest/use/builder/) 5 | and snippets for [snipMate](http://www.vim.org/scripts/script.php?script_id=2540). 6 | 7 | Screenshot 8 | ========== 9 | 10 | Here is an example in gnome-terminal with [vim-monokai](https://github.com/sickill/vim-monokai) color scheme: 11 | 12 | 13 | ![Vim & Dockerfile.vim ](https://raw.github.com/ekalinin/Dockerfile.vim/master/vim-dockerfile-example.png) 14 | 15 | 16 | 17 | Installation 18 | ============ 19 | 20 | ````bash 21 | $ git clone https://github.com/ekalinin/Dockerfile.vim.git 22 | $ cd Dockerfile.vim 23 | $ make install 24 | ```` 25 | 26 | ####OR using Pathogen: 27 | ```bash 28 | # Clone directly into the bundle folder. 29 | git clone https://github.com/ekalinin/Dockerfile.vim.git bundle/Dockerfile 30 | ``` 31 | 32 | ####OR using Vundle: 33 | ```bash 34 | # near the top of your .vimrc 35 | Bundle "ekalinin/Dockerfile.vim" 36 | ``` 37 | 38 | License 39 | ======= 40 | 41 | See [LICENSE](https://github.com/ekalinin/Dockerfile.vim/blob/master/LICENSE) file. 42 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/ftdetect/Dockerfile.vim: -------------------------------------------------------------------------------- 1 | " Dockerfile 2 | autocmd BufRead,BufNewFile Dockerfile* setf Dockerfile 3 | autocmd BufRead,BufNewFile *.dock setf Dockerfile 4 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/snippets/Dockerfile.snippets: -------------------------------------------------------------------------------- 1 | snippet F 2 | FROM ${1:ubuntu} 3 | snippet f 4 | FROM ${1:ubuntu} 5 | snippet M 6 | MAINTAINER ${1:name} 7 | snippet m 8 | MAINTAINER ${1:name} 9 | snippet R 10 | RUN ${1:command} 11 | snippet r 12 | RUN ${1:command} 13 | snippet C 14 | CMD ${1:} 15 | snippet c 16 | CMD ${1:} 17 | snippet CP 18 | COPY ${1:src} ${2:dest} 19 | snippet cp 20 | COPY ${1:src} ${2:dest} 21 | snippet EXP 22 | EXPOSE ${1:public-port} ${2:private-port} 23 | snippet exp 24 | EXPOSE ${1:public-port} ${2:private-port} 25 | snippet E 26 | ENV ${1:key} ${2:value} 27 | snippet e 28 | ENV ${1:key} ${2:value} 29 | snippet A 30 | ADD ${1:src} ${2:dst} 31 | snippet a 32 | ADD ${1:src} ${2:dst} 33 | snippet ENT 34 | ENTRYPOINT ${1:command} 35 | snippet ent 36 | ENTRYPOINT ${1:command} 37 | snippet V 38 | VOLUME ["${1:path}"] 39 | snippet v 40 | VOLUME ["${1:path}"] 41 | snippet U 42 | USER ${1:name} 43 | snippet u 44 | USER ${1:name} 45 | snippet W 46 | WORKDIR ${1:path} 47 | snippet w 48 | WORKDIR ${1:path} 49 | snippet upd 50 | # update packages 51 | RUN echo "deb http://archive.ubuntu.com/ubuntu ${1:precise} main universe" > /etc/apt/sources.list 52 | RUN apt-get update 53 | RUN apt-get -y upgrade 54 | ${2} 55 | snippet head 56 | # ${1:Description} 57 | # 58 | # VERSION ${2:0.1.0} 59 | ${3} 60 | snippet O 61 | ONBUILD ${1} 62 | snippet o 63 | ONBUILD ${1} 64 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/syntax/Dockerfile.vim: -------------------------------------------------------------------------------- 1 | " Vim syntax file 2 | " Language: Dockerfile 3 | " Maintainer: Eugene Kalinin 4 | " Latest Revision: 11 September 2013 5 | " Source: http://docs.docker.io/en/latest/use/builder/ 6 | 7 | if exists("b:current_syntax") 8 | finish 9 | endif 10 | 11 | " No case sensitivity 12 | syn case ignore 13 | 14 | " Keywords 15 | syn keyword dockerfileKeywords FROM MAINTAINER RUN CMD COPY 16 | syn keyword dockerfileKeywords EXPOSE ENV ADD ENTRYPOINT 17 | syn keyword dockerfileKeywords VOLUME USER WORKDIR ONBUILD 18 | 19 | " Bash statements 20 | setlocal iskeyword+=- 21 | syn keyword bashStatement chmod clear complete du egrep expr fgrep cd 22 | syn keyword bashStatement find gnufind gnugrep grep less ls echo 23 | syn keyword bashStatement mkdir mv rm rmdir rpm sed sleep sort strip tail touch 24 | syn keyword bashStatement aptitude apt-get add-apt-repository 25 | syn keyword bashStatement node npm python virtualenv ruby 26 | "syn keyword bashStatement svn git hg bzr 27 | 28 | " Strings 29 | syn region dockerfileString start=/"/ skip=/\\"/ end=/"/ 30 | syn region dockerfileString1 start=/'/ skip=/\\'/ end=/'/ 31 | 32 | " Emails 33 | syn region dockerfileEmail start=// contains=@ 34 | 35 | " Urls 36 | syn match dockerfileUrl /\(http\|https\|ssh\|hg\|git\)\:\/\/[a-zA-Z0-9\/\-\.]\+/ 37 | 38 | " Comments 39 | syn match dockerfileComment "#.*$" 40 | 41 | " Highlighting 42 | hi link dockerfileKeywords Keyword 43 | hi link dockerfileString String 44 | hi link dockerfileString1 String 45 | hi link dockerfileComment Comment 46 | hi link dockerfileEmail Identifier 47 | hi link dockerfileUrl Identifier 48 | hi link bashStatement Function 49 | 50 | let b:current_syntax = "dockerfile" 51 | 52 | set commentstring=#\ %s 53 | -------------------------------------------------------------------------------- /Shell/.vim/bundle/Dockerfile.vim/vim-dockerfile-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Integralist/Fresh-Install/a57b098d0ce1a5bb6bd462e269b8cdd54d6e8503/Shell/.vim/bundle/Dockerfile.vim/vim-dockerfile-example.png -------------------------------------------------------------------------------- /Shell/.vim/bundle/ZoomWin/doc/ZoomWin.txt: -------------------------------------------------------------------------------- 1 | *ZoomWin.txt* Zoom into/out-of a window Mar 09, 2014 2 | Authors: Charles E. Campbell *zoomwin* 3 | Ron Aaron 4 | Copyright: (c) 2004-2014 by Charles E. Campbell *zoomwin-copyright* 5 | The VIM LICENSE applies to ZoomWin.vim and ZoomWin.txt 6 | (see |copyright|) except use "ZoomWin" instead of "Vim" 7 | No warranty, express or implied. Use At-Your-Own-Risk. 8 | 9 | ============================================================================== 10 | 1. Usage *zoomwin-usage* 11 | 12 | :call ZoomWin() 13 | :ZoomWin 14 | o 15 | 16 | Either of the two commands or the normal mode o will toggle between 17 | * selecting the current window for display as the only window or 18 | * restoring the original multiple-window view. 19 | 20 | 21 | ============================================================================== 22 | 2. Setup *zoomwin-setup* 23 | 24 | ZoomWin comes as a vimball; to install it, simply > 25 | 26 | vim ZoomWin.vba.gz 27 | :so % 28 | :q 29 | < 30 | Your .vimrc needs to have, at least: > 31 | 32 | set nocp 33 | filetype plugin on 34 | < 35 | (see |'nocp'|, |:filetype|, and |filetype-plugin-on| for an explanation of 36 | these commands) 37 | 38 | ============================================================================== 39 | 3. Options *zoomwin-options* 40 | 41 | *g:ZoomWin_funcref* : this variable is used as a function reference 42 | (|Funcref|) or as a |List| of function references. 43 | It is called with a single argument: > 44 | 0 : multi-window display; not zoomed in 45 | 1 : single-window display; zoomed in 46 | < What this does is permits ZoomWin users to have a 47 | function called whenever ZoomWin changes state. 48 | As an example, consider having the status line 49 | indicate whether one is ZoomWin'd in or not: > 50 | set stl=Normal 51 | fun! ZWStatline(state) 52 | if a:state 53 | set stl=ZoomWin 54 | else 55 | set stl=Normal 56 | endif 57 | endfun 58 | if !exists("g:ZoomWin_funcref") 59 | let g:ZoomWin_funcref= function("ZWStatline") 60 | endif 61 | < The function, ZWStatline(), is called by ZoomWin() 62 | every time it changes state. 63 | 64 | *g:zoomwin_localoptlist* specify a set of windows options to be 65 | saved and restored during zoom-in and zoom-out. 66 | It may be empty. 67 | Default: > 68 | let s:localoptlist = [ 69 | \ "ai" , "ar" , "bh" , "bin", "bl" , 70 | \ "bomb", "bt" , "cfu" , "ci" , "cin" , 71 | \ "cink", "cino", "cinw", "cms", "com" , 72 | \ "cpt" , "efm" , "eol" , "ep" , "et" , 73 | \ "fenc", "fex" , "ff" , "flp", "fo" , 74 | \ "ft" , "gp" , "imi" , "ims", "inde", 75 | \ "inex", "indk", "inf" , "isk", "key" , 76 | \ "kmp" , "lisp", "mps" , "ml" , "ma" , 77 | \ "mod" , "nf" , "ofu" , "oft", "pi" , 78 | \ "qe" , "ro" , "sw" , "sn" , "si" , 79 | \ "sts" , "spc" , "spf" , "spl", "sua" , 80 | \ "swf" , "smc" , "syn" , "ts" , "tx" , 81 | \ "tw" , "udf" , "wm"] 82 | < 83 | *g:zoomwin_preserve_taglist* open and close a taglist window on 84 | zooms 85 | 86 | *g:zoomwin_preserve_winmanager* open and close winmanager a window on 87 | zooms 88 | 89 | 90 | ============================================================================== 91 | 4. History *zoomwin-history* 92 | 93 | v25 Jul 30, 2012 : (Paul, google01239) ZoomWin wasn't saving the 94 | local value of |'diff'|. It has now been included 95 | in the s:localoptlist (options which are local). 96 | * (Adam George) when clipboard=unnamed, ZoomWin 97 | was overwriting the @* register. Fixed. 98 | Oct 16, 2012 * (Marcin Szamotulski) reported that vim -o x y, 99 | then zooming in and zooming back out resulted 100 | in |:swapname| showing "No swap file". Fixed. 101 | Oct 31, 2012 * (Adam George) reported that |E13| errors occurred 102 | * when one zoomed in, zoomed out, and then 103 | * attempted to write. Fixed (due to [Scratch] 104 | * file renaming) 105 | Jan 14, 2013 * (Jorge Rodrigues) reported on errors in 106 | RestoreUserSettings() associated with 107 | saving and restoring the |'scrolloff'| setting. 108 | ZoomWin now protects against that by testing 109 | if the current vim supports |xterm-clipboard|. 110 | Mar 13, 2013 * (Ingo Karkat) provided patches for three 111 | problems: 112 | 1) setting some options (like |'keymap'|) has 113 | side effects; only restore an option if its 114 | changed 115 | 2) |:windo| has side effect of changing the height 116 | of every visited window from 0 to 1 117 | 3) matches are saved and restored (see 118 | |getmatches()| and |setmatches()|) 119 | * buffers with bh=wipe were being wiped out during 120 | zoom in and out. Fixed (cec) 121 | Jul 15, 2013 * (Ingo Karkat) ZoomWin now works with |i_CTRL-O|, 122 | removes an |E481| when a count is used with 123 | ZoomWin, and removed a superfluous