Complete refactor + arch linux support

This commit is contained in:
Henrik Lissner 2016-10-19 16:56:37 +02:00
parent 72249d6950
commit 66c6bdc7d8
129 changed files with 2639 additions and 3153 deletions

View file

@ -1,26 +0,0 @@
#!/bin/bash
DOTFILES="$HOME/.dotfiles"
CACHE_DIR="$HOME/.cache"
is-callable() { command -v "$1" >/dev/null; }
is-interactive() { [[ $- == *i* ]]; }
is-root() { [[ "$UID" -eq 0 ]]; }
is-ssh() { [[ "$SSH_CONNECTION" != '' ]]; }
cache() {
if [[ -z "$CACHE_DIR" ]]; then
>&2 echo "Cache not set!"
return 1
fi
[[ ! -d "$CACHE_DIR" ]] && mkdir -p "$CACHE_DIR"
is-callable "$1" || return 1
local cache="${CACHE_DIR}/$1-$(basename $SHELL)"
if ! [[ -f "$cache" && -s "$cache" ]]; then
echo "Caching $1"
$@ > "$cache" 2> /dev/null
fi
source $cache
}

5
.gitignore vendored
View file

@ -1,5 +0,0 @@
vim/bundle/
vimperator/info/
tmp/
zsh/cache
Gemfile.lock

View file

@ -1,7 +1,25 @@
# Henrik's dotfiles
[![MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
They bite.
These are the dotfiles that fuel my madness, made for MacOS, Arch Linux and the various
debian-based boxes I frequently ssh into.
## Getting started
`./bootstrap` does everything, including install packages and symlink dotfiles. Pass it
the modules you want. e.g.
`./bootstrap install os/arch vcs/* shell/zsh`
To update all modules:
`./bootstrap update`
Or to clear out all your symlinked dotfilse:
`./bootstrap clean`
Each command has a one-letter shortcut, e.g. `./bootstrap i os/macos`
## Relevant

View file

@ -1 +0,0 @@
../zsh/aliases

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -e
(( $# > 0 )) || exit 1
(( $# > 0 )) || return
# Displays the time since $1 in a human readable format (e.g. 4h 25m 55s). If given a
# file, the modified time is used. If $1 == "--", then this script acts as a converter,
@ -13,8 +13,6 @@ set -e
date=date
if [[ "$OSTYPE" == darwin* ]]; then
date=gdate
elif [[ "$OSTYPE" == linux* ]]; then
date=date
else
echo "Unsupported system"
exit 1

82
bootstrap Executable file
View file

@ -0,0 +1,82 @@
#!/bin/bash
export DOTFILES=$(cd $(dirname $0) && pwd -P)
source "$DOTFILES/shell/common.sh"
set -e
#
install() {
for topic in $*;
do
local path="$(dirname $0)/$topic"
if [ -d "$path" ];
then
[ -f "$path/install" ] && . "$path/install"
# Link available dotfiles (1 level deep)
for file in "$1"/.[a-zA-Z]*
do
if [ -d "$file" ]; then
for subfile in "$file"/*
do
local base="$HOME/$(basename $file)"
[ ! -d "$base" ] && mkdir -p "$base"
ln -svf "$subfile" "$base"
done
elif [ -f "$file" ]; then
ln -svf "$file" "$HOME"
fi
done
# Symlink enabled topic folders
if [ ! -h "$DOTFILES/.enabled.d/$(basename $path)" ]
then
ln -svf "$DOTFILES/$path" "$DOTFILES/.enabled.d"
fi
elif [ -f "$path" ]
then
install $(cat "$path")
fi
done
}
update() {
for topic in $DOTFILES/.enabled.d/*/
do
[ -x "$topic/update" ] && . "$topic/update"
done
}
clean() {
# Temporarily move dotfiles to kill symlinks
mv $DOTFILES /tmp/dotfiles
# Clean up dead symlinks
find -L $HOME -iname '.*' -type l -maxdepth 1 -exec rm -fv {} \;
if [ -d "$HOME/.config" ]
then
find -L $HOME/.config -iname '.*' -type l -maxdepth 1 -exec rm -fv {} \;
fi
# Move it back
mv /tmp/dotfiles $DOTFILES
}
usage() {
echo "Nope"
exit
}
##
(( "$#" == 0 )) && usage
COMMAND="$1"
shift
case "$COMMAND" in
i|install) install $* ;;
u|update) update ;;
c|clean) clean ;;
r|reinstall)
clean
install $*
;;
*) usage ;;
esac

View file

@ -0,0 +1,68 @@
" ==Vimperator_Color_Scheme==
" name: Vnought
" url:
" ==Vnought_Colorscheme_Settings==
"StatusLine settings
hi StatusLine color: #d9d9d9; background: #1D1F21; "font-size: 9pt;
" hi StatusLineBroken color: #000000; background: #afafff; "font-size: 9pt;
" hi StatusLineSecure color: #000000; background: #afffaf; "font-size: 9pt;
"CmdLine settings excluding Gradient
hi Normal color: #afafaf; background: #1D1F21; font-size: 9pt; font-family: "Terminus", monospace;
hi CmdLine background: #1D1F21; color: #afafaf; font-size: 9pt;
hi CompDesc color: #c6c6c6; width: 50%; font-size: 9pt;
hi CompIcon width: 16px; min-width: 16px; display: inline-block; margin-right: .5ex;
hi CompItem[selected] background: #666666; color: #afafaf;
" hi CompLess text-align: center; height: 0; line-height: .5ex; padding-top: 1ex;
" hi CompMore text-align: center; height: .5ex; line-height: .5ex; margin-bottom: -.5ex;
hi CompMsg font-style: italic; margin-left: 16px;
hi CompResult width: 45%; overflow: hidden;font-size: 10pt; font-family: monospace; font-weight: normal;
hi CompTitle color: #afafaf; background: #1D1F21; font-weight: bold;
hi CompTitle>* padding: 0 .5ex;
hi Filter font-weight: bold;color: #afafaf;
"When using tab complete in CmdLine, line separating Title from function and description
" hi Gradient height: 1px; margin-bottom: -1px; margin-top: -1px;
" hi GradientLeft background-color: #00bbff;
" hi GradientRight background-color: #1D1F21;
"Used with ]f and [f
hi FrameIndicator background-color: #1D1F21; opacity: 0.5; z-index: 999; position: fixed; top: 0; bottom: 0; left: 0; right: 0;
hi Bell border: 0 none; background-color: #1D1F21;
hi ErrorMsg color: #ffffff; background: red; font-weight: bold;
"Hint section
"hi Hint font-family: Sans; font-size: 10px; font-weight: bold; color: #f6e9e9; background-color: red; border-color: ButtonShadow; border-width: 0px; border-style: solid; padding 0px 1px 0px 1px;
hi Hint font-family: Sans; font-size: 10px; font-weight: bold; color: white; background-color: rgba(0, 0, 0, 0.5); border: solid 1px LightGray;
hi Hint::after content: attr(number);
hi HintActive background: blue; color: #f6e9e9;
hi HintElem background-color: #1D1F21; color: #f6e9e9;
hi HintImage opacity: .5;
"Other important stuff
hi InfoMsg color: #afafaf; background: #1D1F21;
hi Message white-space: normal; min-width: 100%; padding-left: 2em; text-indent: -2em; display: block;
hi WarningMsg color: red; background: #1D1F21;
hi ModeMsg color: #afafaf; background: #1D1F21; "CmdLine when Not in Use
hi MoreMsg color: #afafaf; background: #1D1F21;
hi NonText color: lightblue; min-height: 16px; padding-left: 2px;
hi Question color: #ffffff; background: #1D1F21; font-weight: bold;
" hi Search font-size: inherit; padding: 0; color: #1D1F21; background-color: yellow; padding: 0;
hi Function color: lightgreen; background: #1D1F21;
hi Number color: tan; background: #1D1F21
hi String color: #1D1F21; background: #afafaf;
hi Tag color: #1D1F21; background: #afafaf;
hi Title color: #1D1F21; background: #afafaf; font-weight: bold;
hi URL text-decoration: none; color: lightblue; background: inherit;
hi URL:hover text-decoration: underline; cursor: pointer;
hi LineNr color: #afafaf; background: #1D1F21;
"style -name statusbar chrome://* <<EOM
"#status-bar statusbarpanel { padding: 0 1px !important; }
"statusbarpanel > * { margin: 0 !important; padding: 0 2px 0 0 !important; }
"EOM
"For other descriptions of each item, please see ``Styling'' section included with Vimperator

18
browser/.vimperatorrc Normal file
View file

@ -0,0 +1,18 @@
colorscheme vnought
set wildmode=list:full
set complete=slbh
set hintchars=asdfhjkl;
set hlsearch
set newtab=all
set animations
nnoremap ; :
nnoremap : ;
nnoremap . b
nnoremap <C-h> :tabmove! -1<CR>
nnoremap <C-l> :tabmove! +1<CR>
" Pass through all keys (like CTRL-Z) on Gmail and Google Reader:
autocmd LocationChange .* :js modes.passAllKeys = /mail\.google\.com|www\.google\.com\/reader\/view/.test(buffer.URL)

View file

@ -1 +0,0 @@
/Volumes/hlissner/.vim

View file

@ -1,272 +0,0 @@
/* Nightly Fox - about:newtab
* V15.07.21
* By NADIRP.DEVIANTART.COM */
/* i really want this to be global */
/* SETTINGS */
:root {
--main-page-bg-color: #524C59;
--main-page-cell-bg-color: rgba(255,255,255,.05);
--main-page-text-color: #FFFFFF;
--main-page-text-color-two: #FF9500;
--main-page-text-invert-color-two: #FFFFFF;
--main-page-link-color: #FF9500;
--main-border-radius: 0px;
--main-theme-border-color: rgba(0, 0, 0,.2);
--main-page-border-color: rgba(0, 0, 0,.2);
--main-font-family: "Open Sans", sans-serif;
}
/* :::::: NEW TAB :::::: */
@-moz-document url("about:newtab"){
body {
background: var(--main-page-bg-color);
color: #ccc;
}
#newtab-search-container { display: none; }
/* BG */
#newtab-scrollbox {
background: url("") top center /cover, var(--main-page-bg-color) !important;
background-color: var(--main-page-bg-color) !important;
}
/* SEARCH */
#newtab-search-container {
padding-top: 10px !important;
padding-bottom: 20px !important;
}
#newtab-search-logo {
display: none;
}
#newtab-search-text {
padding: 0px 15px 0px 15px !important;
min-height: 55px;
-moz-appearance: none !important;
background: transparent !important;
border: 1px solid var(--main-page-border-color)!important;
border-radius: 0px !important;
outline: 0 none !important;
box-shadow: none !important;
font-size: 16px !important;
color: var(--main-page-text-color-two) !important;
font-family: var(--main-font-family) !important;
transition-property: border;
transition-duration: 150ms;
}
#newtab-search-text:focus,
#newtab-search-text[autofocus] {
border: 1px solid var(--main-page-text-color-two)!important;
border-radius: 0px !important;
transition-property: border;
transition-duration: 150ms;
}
#newtab-search-submit {
padding: 0px 15px 0px 15px !important;
height: 55px;
-moz-appearance: none !important;
background: transparent !important;
border: 1px solid var(--main-page-border-color)!important;
border-left: 1px solid transparent!important;
border-radius: 0px !important;
box-shadow: none !important;
font-family: var(--main-font-family) !important;
font-size: 12px !important;
text-transform: uppercase;
color: var(--main-page-text-color) !important;
}
#newtab-search-text:focus + #newtab-search-submit,
#newtab-search-text[autofocus] + #newtab-search-submit{
background: transparent !important;
border: 1px solid var(--main-page-text-color-two)!important;
border-radius: 0px !important;
box-shadow: none !important;
color: var(--main-page-text-color-two) !important;
}
#newtab-search-text + #newtab-search-submit:hover {
background: var(--main-page-text-color-two) !important;
border: 1px solid var(--main-page-text-color-two)!important;
color: var(--main-page-text-invert-color-two) !important;
}
#newtab-search-text +#newtab-search-submit:hover:active {
background: var(--main-page-text-invert-color-two) !important;
border: 1px solid var(--main-page-text-color-two)!important;
color: var(--main-page-text-color-two) !important;
}
/* SITES */
.newtab-title {
border-radius: 0;
}
.newtab-site {
box-shadow: none !important;
border: none !important;
color: var(--main-page-text-color-two) !important;
margin: 0px;
border-radius: 0px;
}
.newtab-cell:not([ignorehover]) > .newtab-site:hover,
.newtab-site[dragged] {
border: none;
box-shadow: none ;
margin: 0px;
}
/* TITLES */
.newtab-sponsored,
.newtab-title,
.newtab-suggested {
/*text-align: left;*/
background-color: var(--main-page-bg-color) !important;
border: 1px solid var(--main-page-border-color)!important;
}
.newtab-sponsored,.newtab-title {
font-size: 12px !important;
font-family: var(--main-font-family) !important;
color:var(--main-page-text-color) !important;
transition-property: color;
transition-duration: 150ms;
}
.newtab-sponsored{
color:var(--main-page-text-color-two) !important;
}
.newtab-site:hover .newtab-title {
background-color: var(--main-page-link-color) !important;
}
/* THUMBNAILS */
.newtab-thumbnail {
border-radius: 0px !important;
filter: grayscale(1) opacity(.9);
border: none;
}
.newtab-site:hover .newtab-thumbnail {
border-radius: 0px;
transition: opacity 100ms ease-out;
/*background-color: var(--main-page-bg-color) !important;
background-blend-mode: overlay !important;*/
filter: grayscale(0) opacity(1);
transition-property: filter;
transition-duration: 50ms;
}
/* CELLS */
.newtab-cell {
background-color: var(--main-page-cell-bg-color);
border-radius: 0px;
}
.newtab-cell:hover {
background-color: var(--main-page-cell-bg-color);
border-radius: 0px;
}
.newtab-cell:empty {
outline: 1px dashed var(--main-theme-border-color) ;
-moz-outline-radius: 0px;
}
/* CELLS */
.newtab-cell,
.newtab-intro-cell,
.newtab-intro-cell-hover {
background-color: rgba(255,255,255,.2);
border-radius: 0px;
border: 0px;
}
.newtab-cell:empty {
outline: none;
-moz-outline-radius: 0px;
border: 0px solid white;
border-radius: 0px;
}
/* SITES */
.newtab-site {
border: 0px solid white;
border-radius: 0px;
box-shadow: none;
text-decoration: none;
transition-property: top, left, opacity, box-shadow, background-color;
}
.newtab-cell:not([ignorehover]) .newtab-control:hover ~ .newtab-link,
.newtab-cell:not([ignorehover]) .newtab-link:hover,
.newtab-site[dragged],
.newtab-intro-cell-hover .newtab-link {
border: 0px solid white;
border-radius: 0px;
box-shadow: none;
margin: 0px;
}
.newtab-cell ,.newtab-control ,.newtab-link,
.newtab-cell ,.newtab-link,
.newtab-intro-cell-hover, .newtab-link {
border: 0px solid white;
border-radius: 0px;
box-shadow: none;
}
/* CONTROLS */
.newtab-control-block {
opacity: 0;
transition-property: opacity;
transition-duration: 150ms;
}
.newtab-control-pin,
.newtab-site[pinned] .newtab-control-pin:hover:active {
opacity: 0;
transition-property: opacity;
transition-duration: 150ms;
}
/* UNDO */
#newtab-undo-container {
background: var(--main-page-text-color-two) !important;
border-radius: 0px;
border-color: transparent;
}
/* CUSTOMIZE */
#newtab-intro-what {
margin-top: -4px;
font-size: 12px !important;
font-family: var(--main-font-family) !important;
color: var(--main-page-link-color);
text-decoration: none;
/*transition-property: color;
transition-duration: 150ms;*/
}
#newtab-intro-what:hover {
color: var(--main-page-link-color);
}
#newtab-customize-button,
.newtab-customize {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAA7DAAAOwwHHb6hkAAADcUlEQVR4nJWVa0hUQRTHdfeurru6yIruFhJZQRFRivShEvSTBBVYJpH0wcLA6ksEQib4yoqEigh6YRn4oRApEhIrEoweULBlRCmVUb4yd43VFdf11W/0XpnWu7YODOecOTP/c/5n5tyrzMzMROiN8fHxlKioqINTU1NPFEV5Eezv7++3OByO46iD+Gunp6d1gRRddAbg9YhtRqPxxOjo6Cqr1fpb9judzgpEsdAnJia6ES1LCiDOqdIaExNzGEb3COYU5GDlJoFCbSNVGAsFEjIAh25FRkZmCR1ZDWC15iOQvPULvueUKPwAlZWVhrKysk2hggeN2EAgsAX5KqwAjY2NRsAbUPcEuXqZXUwrcz3TrK4vg1ErZduPfLAgALVdCcVK9G4yqc3NzS0KAn/G4RJeylttYXBwMDYhISGf0lVhOpjRBoOhfnJyMhO5mvU8SuxCP6cAfoYN+eIg+klEpAR+gayKg59gYmKiD3FzbGys2Ww2P0VfJ5ix9w3SIPYQZC+vq1khUgeGdla+vcd64PLgdfXAOsdkMrULFhq4RtTv9/co0DhNCdqRx1jM1rzQLVkMXBuw7iTJ26hH1KUh7Muwux4XF+eZvWQybYLOd+r8Qd3URVbv/geuDRK5T4JagE70Khpz1ph/RSw6pTPfwgUXA7ZfYaKZy2XffABoBaT16KUE4A6jJNOvG4B7+Cl16Ia2tjYlMzNzMpwAlDZdMnv+8blcLlNqamoRFI9K6/aMjIwcZGOYDAokM4tqNJHweQK/VNLS0kQfFAcf4k5qhoeHW20229Bi4FzwPgJkS0uiDLuoxnaaeK0okU1yeiPmGk2spfDMWnhuObz3vhDgeYDXSUvis52sYhjF3SgjIyOnAPoFrV6Px3PXbreLdm+KmGuazXTqZ3xXoNxE44inHMMTTmfPIQB2SuCfvF7vVovFksSe3Zz5KHpEUUtQIbqZT4DY+IjMCrFvoJtUNqVQLtXets7ooKN3xMfHe9Uq1GgO3c812dWRcR9S9y8VNN6TeZYKvmCE/OHAIFky3cwBZhJznClYb1R9K7inCQLo4iwW4ICmU8+zsLmk2eoPqRN1DdPOz1/cRcOSAjA8qhzy+Xx3uKt5R3l5Odc0fZEkrgobfYAElsbA7XYX8FN5yEfwNeB/gv0AXuOefsDOKxoqFM5futlcjM7bFg8AAAAASUVORK5CYII=) center no-repeat!important;
}
}

View file

@ -1,69 +0,0 @@
@-moz-document regexp("^https://trello.com/[bc]/.+") {
#board .badge { margin-bottom: 2px; }
#board .badges { padding-bottom: 0; }
#board .list {
display: block;
min-width: 125px; max-width: 250px;
margin: 0 0 30px 0; padding: 0;
background: none;
font-size: 95%;
}
#board .list-wrapper { width: 225px; }
#board .list-wrapper:first-child { margin-left: 10px; }
#board .list-card-details {
font-size: 95%;
line-height: 17px;
margin-top: 1px;
}
#board .list-header { color: #e2e4e6; }
#board .open-card-composer { color: #e2e4e6; }
#board .open-card-composer:hover {
background: none;
color: #eee;
}
#board .list-card {
margin-bottom: 0px;
}
#board .list-card-title {
margin-bottom: 2px;
}
#board .list-card-labels {
float: left;
margin-top: -11px;
margin-left: -5px;
}
#board .list-card-labels .card-label {
width: 35px;
}
.card-detail-window .card-detail-item-header,
.card-detail-window .card-detail-item-header-edit {
display: none;
}
}
@-moz-document url-prefix("^https://trello.com/b/oNCdFuxc") {
/* Projects board */
.list-wrapper:nth-child(4) .badges { display: none; }
}
@-moz-document url("https://trello.com/") {
#content .board-list .details,
#content .board-list .js-add-board
{ min-height: 20px; }
#content .board-list li {
margin-bottom: 6px;
width: 220px;
height: 36px;
overflow: hidden;
}
#content .js-add-board { line-height: 20px; }
}

View file

@ -1,329 +0,0 @@
@namespace html url(http://www.w3.org/1999/xhtml);
@namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
/*
Original Author: Twily
Modified by: Henrik Lissner
Description: Minimal flat styled tabs for Australis
Compitability: Firefox Nightly v31.0a1 - v32.0a1 (Australis)
CSS Variables were introduced to Firefox in v29.0a1
Website: http://twily.info/
Note: To enable the urlbar; search this css for:
"make the url-bar visible" and "adjust margin-top to"
*/
:root {
/* TAB VARIABLES */
--bg-light: #524C59; --bg-dark: #282333;
--fg-light: #D6CCDC; --fg-dark: #AAA5AD;
--tab-triangle-correction: -1px;
--tab-height: 29px; --tab-icon-size: 16px; --tab-strip-margin: -8px; --tab-overlap: -5px;
--tab-fonts: "Ubuntu Mono",monospace,"Dejavu Sans"; --tab-font-size: 9.5pt;
--tab-text-align: left; /* left | center | right */
--tab-triangle: none; /* block | none */
/* URL VARIABLES */
--url-background: #3E3848; --url-color: var(--fg-light);
--url-height: 26px; --url-right-margin: 5px;
--url-fonts: "Ubuntu Mono",monospace,"Dejavu Sans"; --url-font-size: 12pt;
--url-text-align: left; /* left | center | right */
--url-position: absolute; /* absolute == top (under tabs) || fixed == bottom of browser */
margin-bottom: 0 !important;
}
@-moz-document url(chrome://browser/content/browser.xul) {
statuspanel label { background-color: var(--bg-dark); }
/*#downloads-button, #tabview-button { margin-top: -2px !important; padding-left: 10px !important; opacity: 0.5; }*/
#titlebar, #titlebar-placeholder-on-TabsToolbar-for-captions-buttons { display: none !important; }
/* URL-BAR */
#back-button, #forward-button, #back-button *, #forward-button *, /*#identity-box,*/ #urlbar-reload-button, #urlbar-stop-button, #urlbar-go-button,
#PanelUI-button, #bookmarks-menu-button, #home-button, #stylish-toolbar-button, #abp-toolbarbutton,
#notification-popup-box, #new-tab-button, #private-browsing-indicator, #search-container, #nav-bar-overflow-button,
.tabs-newtab-button, /*.tab-close-button, .tab-close,*/ .tab-background-start, .tab-background-end,
#window-controls /*, .tab-throbber, #alltabs-button, #tabview-button, .tab-icon-image, .tab-icon-image:not([pinned])*/ { display: none !important; }
#identity-box { max-width: 26px !important; margin-left: 0px !important; padding-left: 5px !important; }
#identity-box #identity-icon-labels { display: none !important; }
.autocomplete-richlistbox { height: auto !important; max-height: auto !important; background-color: var(--fg-light) !important; }
.autocomplete-richlistbox richlistitem[selected="true"] { background-color: var(--bg-dark) !important; }
.autocomplete-richlistbox .autocomplete-richlistitem .ac-url-box { display: none !important; }
.autocomplete-richlistbox .autocomplete-richlistitem[actiontype="searchengine"],
.autocomplete-richlistbox .autocomplete-richlistitem[type~="autofill"] { padding: 0 0 10px !important; }
/* --- Uncomment the section below to enable the Back/Forward buttons [EXPERIMENTAL] (Requires url-bar) --- */
/*
#back-button, #forward-button { display: block !important; }
#back-button::before, #forward-button::before {
display: inline-block !important; position: absolute !important;
width: var(--url-height) !important; height: var(--url-height) !important; top: 0 !important;
text-align: center !important; line-height: var(--url-height) !important;
}
#back-button::before { content: "<" !important; left: 0 !important; }
#forward-button::before { content: ">" !important; left: calc(var(--url-height) + 8px) !important; }
/**/
tab, .tabs-newtab-button { transition: background-color 0.1s ease-in-out !important; }
tab:hover { background-color: #3C364A !important; }
.tabs-newtab-button:hover { background-color: #3E384C !important; }
/* --- Uncomment the section below to enable the New Tab Button [EXPERIMENTAL] --- */
.tabs-newtab-button { display: block !important; background: #302A3A !important; margin: 0 0 0 0 !important; width: 28px !important; }
.tabs-newtab-button::before { content: "+" !important; position: relative; bottom: 1px; opacity: 0.4; }
.tabs-newtab-button .toolbarbutton-icon { display: none !important; }
/**/
.tab-drop-indicator { margin-bottom: 0 !important; }
#content-deck { /*padding-bottom: var(--url-height) !important;*/ }
#nav-bar {
position: var(--url-position) !important; bottom: 0px !important;
width: 100% !important; height: var(--url-height) !important;
min-height: var(--url-height) !important; max-height: var(--url-height) !important;
margin: 0 0 0 0 !important;
/* --- Uncomment the section below to attach the url-bar to the tab-bar [EXPERIMENTAL] (Require a line in "#TabsToolbar" below) --- */
/*
position: fixed !important; top: 0 !important; left: 0 !important;
width: 315px !important; max-width: 315px !important;
z-index: 100 !important;
/**/
}
#nav-bar-customization-target { width: 100% !important; }
#urlbar-wrapper {
width: 100.5% !important; margin-top: 0px !important; /* --- adjust margin-top to ~ -5px if you experience gap --- */
position: absolute !important; top: 0 !important; left: 0 !important;
padding-left: 6px;
border-bottom: 0px solid var(--bg-light) !important;
}
#urlbar-icons { padding-right: 5px !important; }
#urlbar {
border: none !important; border-radius: 0 !important;
margin: 0 0 0 0 !important; padding: 0 0 0 0 !important;
width: 100% !important;
height: var(--url-height) !important; min-height: var(--url-height) !important;
background: var(--url-background) !important; color: var(--url-color) !important;
font-family: var(--url-fonts) !important; font-size: var(--url-font-size) !important;
text-align: var(--url-text-align) !important;
}
/*#urlbar * { -moz-appearance: none !important; }*/
/* --- Comment out the section below to make the url-bar visible --- */
/*
#nav-bar {
width: 0 !important; height: 0 !important;
position: fixed !important; left: -1px !important; top: -1px !important;
overflow: hidden !important; visibility: hidden !important;
}
/**/
/* TABS */
.tabbrowser-tab[fadein]:not([pinned]) { min-width: 50px !important; max-width: 300px !important; margin-right: 1px !important; }
tab {
font-family: var(--tab-fonts) !important;
height: var(--tab-height) !important; min-height: var(--tab-height) !important;
background: var(--bg-dark) !important; color: var(--fg-dark) !important;
font-size: var(--tab-font-size) !important; text-shadow: none !important; text-align: var(--tab-text-align) !important;
padding-bottom: 0 !important;
}
.tabbrowser-tab[visuallyselected="true"] {
position: unset !important;
}
.tabbrowser-tab label { padding: 0 10px 0 15px !important; }
#tabbrowser-tabs .tabbrowser-tab[pinned] { width: 28px !important; }
#tabbrowser-tabs .tabbrowser-tab[pinned] label { display: none !important; }
#tabbrowser-tabs .tabbrowser-tab label { text-align: var(--url-text-align) !important; }
#tabbrowser-tabs .tabbrowser-tab .tab-icon-image {
margin: 0 -9px 0 7px !important;
width: var(--tab-icon-size) !important;
height: var(--tab-icon-size) !important;
}
.tabbrowser-tab *, .tabs-newtab-button * {
background: none !important;
margin: 0 0 0 0 !important; padding: 0 0 0 0 !important;
-moz-appearance: none !important;
}
.tabbrowser-tab .tab-close-button {
margin-right: 4px !important;
opacity: 0.25 !important;
}
.tabbrowser-tab .tab-throbber {
margin-left: 6px !important;
margin-right: -8px !important;
}
#tabbrowser-tabs .tabbrowser-tab[pinned] .tab-stack { height: var(--tab-height) !important; width: 100% !important; }
#tabbrowser-tabs .tabbrowser-arrowscrollbox .box-inherit.scrollbox-innerbox { max-height: var(--tab-height) !important; }
.scrollbutton-up, .scrollbutton-down { border: none !important; }
.tabbrowser-tab[selected="true"] .tab-stack {
background: var(--url-background) !important; color: var(--fg-light) !important;
border-radius: 0px !important; position: relative !important;
/*border-top: 1px solid #dc52a5 !important;/**/
}
#TabsToolbar, #tabbrowser-tabs {
-moz-appearance: none !important;
height: var(--tab-height) !important; min-height: var(--tab-height)!important;
margin: 0 -2px 0px var(--tab-strip-margin) !important;
padding-right: 0 !important;
background: var(--bg-dark) !important;
/* --- Uncomment the line below to attach the url-bar to the tab-bar [EXPERIMENTAL] (Require a line in "#nav-bar" above) --- */
/**********************************/
/*padding-left: 40px !important;/**/
/**********************************/
}
#TabsToolbar::after { display: none !important; }
.tabbrowser-tab::before, .tabbrowser-tab::after { background: none !important; opacity: 0 !important; visibility: visible !important; }
/*browser, #navigator-toolbox { -moz-appearance: none !important; background: transparent !important; }*/
#navigator-toolbox::after { height: 0px !important; background: var(--bg-light) !important; }
#liberator-separator { height: 0px !important; background: var(--bg-light) !important; border-top: 0 !important; }
/* MENUS */
menuitem + menuseparator, menu + menuseparator/*, .menu-iconic-left*/ { display: none !important; }
/*menuitem > label { margin-left: var(--tab-height) !important; }*/
menubar, menubutton, menulist, menu, menuitem {
font-family: var(--tab-fonts) !important; font-size: var(--tab-font-size);
height: var(--tab-height) !important;
}
/* HIDE ORANGE MENU BUTTON */
#appmenu-toolbar-button, #appmenu-button-container { display: none !important; }
/* HIDE STATUS BAR */
/*#status-bar, #statusbar-display, statuspanel { display: none !important; }*/
/* PRIVATE BROWSING ICON HIDE */
#main-window[privatebrowsingmode=temporary] #private-browsing-indicator,
#main-window[privatebrowsingmode=temporary] #private-browsing-indicator-titlebar { display: none !important; }
/* Vimperator icon style */
#liberator-statusline:not([customizing="true"]) { margin: -2px -2px !important; padding: 0 0 !important; height: 24px !important; }
#liberator-statusline:not([customizing="true"]) :-moz-any(toolbarbutton) { height: 100% !important; }
#tabview-button {
list-style-image: url(http://twily.info/img/tabview-button.png?v=2) /* 16x16 px image */ !important;
-moz-image-region: rect(0, 0, 0, 0) !important;
}
#liberator-completions { background: var(--bg-dark) !important; }
/* Tabgroup margin top fix */
#tab-view-deck #tab-view { margin: 24px 12px 12px 12px !important; }
#tab-view-deck { background: var(--bg-light) !important; }
window[sizemode="fullscreen"] #liberator-statusline { display: none !important; }
window[sizemode="fullscreen"] #liberator-bottombar {
margin-top: -24px !important;
transition: 1s ease !important; transition-delay: .3s !important;
}
/*window[sizemode="fullscreen"] #browser-panel { margin-top: -1px !important; }*/
}
/* Tab Group Page Style (Ctrl+Shift+E) */
@-moz-document url(chrome://browser/content/tabview.html) {
#content #bg, #actions, body { background: var(--bg-light) !important; }
body * { color: var(--fg-light) !important; }
body .groupItem, #content #actions, body .undo {
background: var(--bg-dark) !important;
border: 0 !important; border-radius: 0 !important; box-shadow: 0 0 0 0 !important;
}
#content #actions {
opacity: 0 !important; display: none !important; /* block | none */
transition: .3s ease-out !important;
}
#content #actions:hover { opacity: 1 !important; }
body .appTabTrayContainer { border: 0 !important; }
body .tab, body .tab .thumb {
box-shadow: 0 0 0 0 !important; border: 0 !important; border-radius: 0 !important;
background: transparent !important; padding : 0 !important;
}
body .tab .favicon { display: none !important; }
body .groupItem .name { border: 0 !important; }
body .tab .tab-title { padding-top: 2px !important; }
}
/* AGENT_SHEET */
@-moz-document url-prefix(http://), url-prefix(https://), url-prefix(chrome://liberator/), url-prefix(file:///) {
/* SCROLLBAR */
scrollbar[orient="vertical"], scrollbar thumb[orient="vertical"],
scrollbar[orient="horizontal"], scrollbar thumb[orient="horizontal"] {
display: block !important; /* none = hide || block = show */
}
/*
scrollbar > slider { -moz-appearance: none !important; }
scrollbar[orient="vertical"] { margin: -3px -7px -3px -3px !important; }
scrollbar[orient='vertical'] > slider { background: #282333 !important; max-width: 5px !important; }
scrollbar[orient='vertical'] > slider > thumb {
-moz-appearance: none !important;
background: #524C59 !important; border: 0 !important;
width: 5px !important; max-width: 5px !important;
}
scrollbar[orient="horizontal"] { margin: -3px -3px -7px -3px !important; }
scrollbar[orient='horizontal'] > slider { background: #282333 !important; max-height: 5px !important; }
scrollbar[orient='horizontal'] > slider > thumb {
-moz-appearance: none !important;
background: #524C59 !important; border: 0 !important;
height: 5px !important; max-height: 5px !important;
}
scrollbar > scrollbarbutton { -moz-appearance: none !important; border: none !important; background: none !important; }
scrollbar[orient='vertical'] > scrollbarbutton { min-height: 0 !important; }
scrollbar[orient='horizontal'] > scrollbarbutton { min-width: 0 !important; }
/**/
}
/* background color around/behind pictures opened in firefox (require html namespace on top) */
@-moz-document regexp("(https?://|file:///)(.*)\\.(jpeg|jpg|gif|png|apng|svg|bmp|webm|webp)") {
body { background: var(--bg-light) !important; }
img.decoded { background-color: transparent !important; }
}
/* About:Blank background */
@-moz-document url(about:blank) {
html,body { background: var(--bg-light) !important; }
}
/* about:stylish-edit toolbar style */
@-moz-document regexp("about:stylish-edit.*") {
#main-area, textbox { background: var(--bg-light) !important; }
textbox, grid, columns, rows, separator { border: 0 !important; }
.devtools-toolbarbutton { background: var(--bg-dark) !important; color: var(--fg-light) !important; }
}
/*----- Fix for white flash on new tab -----*/
tabbrowser tabpanels, #appcontent > #content { padding: 0 !important; margin: 0 !important; background: var(--url-background) !important; }
/* Set dark text in light textareas */
/*
@-moz-document regexp("https?://(?!(localhost|twily.info|.*.4chan.org|.*.youtube.com)).*") {
input, textarea { color: #222628 !important; -moz-appearance: none !important; }
}
/**/

View file

@ -1,853 +0,0 @@
{
"Profiles": [
{
"Ansi 5 Color" : {
"Green Component" : 0.3294118,
"Red Component" : 0.5490196,
"Blue Component" : 0.9960784
},
"Working Directory" : "\/Users\/hlissner",
"Prompt Before Closing 2" : 0,
"Selected Text Color" : {
"Green Component" : 1,
"Red Component" : 1,
"Blue Component" : 1
},
"Rows" : 56,
"Ansi 11 Color" : {
"Green Component" : 0.9294118,
"Red Component" : 0.9960784,
"Blue Component" : 0.4235294
},
"Use Italic Font" : true,
"Foreground Color" : {
"Green Component" : 0.627451,
"Red Component" : 0.627451,
"Blue Component" : 0.627451
},
"Right Option Key Sends" : 0,
"Character Encoding" : 4,
"Selection Color" : {
"Green Component" : 0.3024194,
"Red Component" : 0.3024194,
"Blue Component" : 0.3024194
},
"Triggers" : [
],
"Blend" : 0.3,
"Mouse Reporting" : true,
"Ansi 4 Color" : {
"Green Component" : 0.7607843,
"Red Component" : 0.3372549,
"Blue Component" : 0.8392157
},
"Non-ASCII Anti Aliased" : true,
"Sync Title" : false,
"Disable Window Resizing" : true,
"Close Sessions On End" : true,
"Jobs to Ignore" : [
"rlogin",
"ssh",
"slogin",
"telnet"
],
"Scrollback With Status Bar" : false,
"Scrollback Lines" : 0,
"Scrollback in Alternate Screen" : true,
"Hide After Opening" : false,
"Prevent Opening in a Tab" : false,
"Flashing Bell" : false,
"BM Growl" : true,
"AWDS Window Directory" : "",
"Ansi 3 Color" : {
"Green Component" : 0.5921569,
"Red Component" : 0.9921569,
"Blue Component" : 0.1215686
},
"Use Non-ASCII Font" : true,
"Shortcut" : "",
"Background Image Location" : "",
"Bold Color" : {
"Green Component" : 1,
"Red Component" : 1,
"Blue Component" : 1
},
"Unlimited Scrollback" : true,
"Allow Title Setting" : false,
"Custom Command" : "No",
"AWDS Tab Option" : "No",
"Smart Selection Rules" : [
{
"notes" : "Word bounded by whitespace",
"regex" : "\\S+",
"precision" : "low"
},
{
"notes" : "C++ namespace::identifier",
"regex" : "([a-zA-Z0-9_]+::)+[a-zA-Z0-9_]+",
"precision" : "normal"
},
{
"notes" : "Paths",
"regex" : "\\~?\/?([[:letter:][:number:]._-]+\/+)+[[:letter:][:number:]._-]+\/?",
"precision" : "normal"
},
{
"notes" : "Quoted string",
"regex" : "@?\"(?:[^\"\\\\]|\\\\.)*\"",
"precision" : "normal"
},
{
"notes" : "Java\/Python include paths",
"regex" : "([[:letter:][:number:]._]+\\.)+[[:letter:][:number:]._]+",
"precision" : "normal"
},
{
"notes" : "mailto URL",
"regex" : "\\bmailto:([a-z0-9A-Z_]+@)?([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\b",
"precision" : "normal"
},
{
"notes" : "Obj-C selector",
"regex" : "@selector\\([^)]+\\)",
"precision" : "high"
},
{
"notes" : "email address",
"regex" : "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}\\b",
"precision" : "high"
},
{
"notes" : "HTTP URL",
"regex" : "https?:\/\/([a-z0-9A-Z]+(:[a-zA-Z0-9]+)?@)?[a-z0-9A-Z]+(\\.[a-z0-9A-Z]+)*((:[0-9]+)?)(\/[a-zA-Z0-9;\/\\.\\-_+%~?&@=#\\(\\)]*)?",
"precision" : "very_high"
},
{
"notes" : "SSH URL",
"regex" : "\\bssh:([a-z0-9A-Z_]+@)?([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\b",
"precision" : "very_high"
},
{
"notes" : "Telnet URL",
"regex" : "\\btelnet:([a-z0-9A-Z_]+@)?([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\b",
"precision" : "very_high"
}
],
"Keyboard Map" : {
"0xf702-0x240000" : {
"Text" : "[1;5D",
"Action" : 10
},
"0xf700-0x260000" : {
"Text" : "[1;6A",
"Action" : 10
},
"0xf704-0x20000" : {
"Text" : "[1;2P",
"Action" : 10
},
"0xf709-0x20000" : {
"Text" : "[17;2~",
"Action" : 10
},
"0xf70c-0x20000" : {
"Text" : "[20;2~",
"Action" : 10
},
"0xf729-0x20000" : {
"Text" : "[1;2H",
"Action" : 10
},
"0xf72b-0x40000" : {
"Text" : "[1;5F",
"Action" : 10
},
"0xf705-0x20000" : {
"Text" : "[1;2Q",
"Action" : 10
},
"0xf703-0x260000" : {
"Text" : "[1;6C",
"Action" : 10
},
"0xf700-0x220000" : {
"Text" : "[1;2A",
"Action" : 10
},
"0xf701-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x42",
"Action" : 11
},
"0x39-0x100000" : {
"Action" : 10,
"Text" : "[27;5;57~"
},
"0xf703-0x220000" : {
"Text" : "[1;2C",
"Action" : 10
},
"0x38-0x100000" : {
"Action" : 10,
"Text" : "[27;5;56~"
},
"0xf701-0x240000" : {
"Text" : "[1;5B",
"Action" : 10
},
"0xf70d-0x20000" : {
"Text" : "[21;2~",
"Action" : 10
},
"0xf702-0x260000" : {
"Text" : "[1;6D",
"Action" : 10
},
"0xf729-0x40000" : {
"Text" : "[1;5H",
"Action" : 10
},
"0x37-0x100000" : {
"Action" : 10,
"Text" : "[27;5;55~"
},
"0xf706-0x20000" : {
"Text" : "[1;2R",
"Action" : 10
},
"0xf700-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x41",
"Action" : 11
},
"0x36-0x100000" : {
"Action" : 10,
"Text" : "[27;5;54~"
},
"0xf70e-0x20000" : {
"Text" : "[23;2~",
"Action" : 10
},
"0xf702-0x220000" : {
"Text" : "[1;2D",
"Action" : 10
},
"0x35-0x100000" : {
"Action" : 10,
"Text" : "[27;5;53~"
},
"0xf703-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x43",
"Action" : 11
},
"0xf707-0x20000" : {
"Text" : "[1;2S",
"Action" : 10
},
"0xf700-0x240000" : {
"Text" : "[1;5A",
"Action" : 10
},
"0xf70a-0x20000" : {
"Text" : "[18;2~",
"Action" : 10
},
"0x34-0x100000" : {
"Action" : 10,
"Text" : "[27;5;52~"
},
"0xf70f-0x20000" : {
"Text" : "[24;2~",
"Action" : 10
},
"0x33-0x100000" : {
"Action" : 10,
"Text" : "[27;5;51~"
},
"0xf703-0x240000" : {
"Text" : "[1;5C",
"Action" : 10
},
"0xf701-0x260000" : {
"Text" : "[1;6B",
"Action" : 10
},
"0xf702-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x44",
"Action" : 11
},
"0xf72b-0x20000" : {
"Text" : "[1;2F",
"Action" : 10
},
"0xf708-0x20000" : {
"Text" : "[15;2~",
"Action" : 10
},
"0x32-0x100000" : {
"Action" : 10,
"Text" : "[27;5;50~"
},
"0xf701-0x220000" : {
"Text" : "[1;2B",
"Action" : 10
},
"0xf70b-0x20000" : {
"Text" : "[19;2~",
"Action" : 10
},
"0x9-0x40000" : {
"Text" : "9",
"Action" : 11
},
"0x31-0x100000" : {
"Action" : 10,
"Text" : "[27;5;49~"
}
},
"Log Directory" : "",
"Use Canonical Parser" : false,
"Ansi 14 Color" : {
"Green Component" : 0.6117647,
"Red Component" : 0.5372549,
"Blue Component" : 0.6313726
},
"Ansi 2 Color" : {
"Green Component" : 0.7058824,
"Red Component" : 0.509804,
"Blue Component" : 0.07843138
},
"Background Image Is Tiled" : false,
"Send Code When Idle" : false,
"ASCII Anti Aliased" : false,
"Tags" : [
],
"Ansi 9 Color" : {
"Green Component" : 0.3490196,
"Red Component" : 1,
"Blue Component" : 0.5843138
},
"Use Bold Font" : true,
"Silence Bell" : false,
"Ansi 12 Color" : {
"Green Component" : 0.9294118,
"Red Component" : 0.5490196,
"Blue Component" : 1
},
"Window Type" : 1,
"Allow Title Reporting" : false,
"Use Bright Bold" : true,
"Cursor Text Color" : {
"Green Component" : 0,
"Red Component" : 0,
"Blue Component" : 0
},
"Default Bookmark" : "No",
"Cursor Color" : {
"Green Component" : 0.5935404,
"Red Component" : 0.9901629,
"Blue Component" : 0.120789
},
"Disable Smcup Rmcup" : false,
"Name" : "Default",
"Blinking Cursor" : true,
"Guid" : "8D0E7A53-F1E6-4A96-BD43-EFF90E3A3897",
"Ansi 1 Color" : {
"Green Component" : 0.1490196,
"Red Component" : 0.9764706,
"Blue Component" : 0.4470588
},
"Ansi 8 Color" : {
"Green Component" : 0.3264537,
"Red Component" : 0.3099609,
"Blue Component" : 0.3295914
},
"Ansi 10 Color" : {
"Green Component" : 0.8901961,
"Red Component" : 0.7137255,
"Blue Component" : 0.3294118
},
"Idle Code" : 0,
"Automatically Log" : false,
"Smart Cursor Color" : false,
"Semantic History" : {
"text" : "",
"action" : "best editor",
"editor" : "com.sublimetext.3"
},
"Ambiguous Double Width" : false,
"Blur Radius" : 15,
"Ansi 0 Color" : {
"Green Component" : 0.1137255,
"Red Component" : 0.1058824,
"Blue Component" : 0.1176471
},
"Cursor Type" : 2,
"AWDS Pane Directory" : "",
"Blur" : false,
"Normal Font" : "TerminusTTF 12",
"Vertical Spacing" : 0.9856928,
"Disable Printing" : false,
"Ansi 7 Color" : {
"Green Component" : 0.8,
"Red Component" : 0.8,
"Blue Component" : 0.7764706
},
"AWDS Tab Directory" : "",
"AWDS Pane Option" : "No",
"Command" : "login -fpql hlissner \/usr\/local\/bin\/zsh",
"Terminal Type" : "xterm-256color",
"Horizontal Spacing" : 1,
"Reduce Flicker" : true,
"Option Key Sends" : 2,
"Blink Allowed" : false,
"Minimum Contrast" : 0,
"Ansi 15 Color" : {
"Green Component" : 0.972549,
"Red Component" : 0.972549,
"Blue Component" : 0.9490196
},
"Ansi 6 Color" : {
"Green Component" : 0.3294118,
"Red Component" : 0.2745098,
"Blue Component" : 0.3411765
},
"Transparency" : 0,
"Initial Text" : "tmux attach -t main || tmux new -s main",
"Background Color" : {
"Green Component" : 0.1122627,
"Red Component" : 0.09955534,
"Blue Component" : 0.1175956
},
"Screen" : 2,
"AWDS Window Option" : "No",
"Non Ascii Font" : "DejaVuSansMono 12",
"Ansi 13 Color" : {
"Green Component" : 0.4352941,
"Red Component" : 0.6196079,
"Blue Component" : 0.9960784
},
"Columns" : 100,
"Use Tab Color" : false,
"Visual Bell" : false,
"Custom Directory" : "No",
"Thin Strokes" : true,
"Set Local Environment Vars" : false
},
{
"Working Directory" : "\/Users\/hlissner",
"Prompt Before Closing 2" : 0,
"Selected Text Color" : {
"Green Component" : 1,
"Red Component" : 1,
"Blue Component" : 1
},
"Rows" : 40,
"Ansi 11 Color" : {
"Green Component" : 0.929411768913269,
"Red Component" : 0.9960784316062927,
"Blue Component" : 0.4235294163227081
},
"Use Italic Font" : true,
"Foreground Color" : {
"Green Component" : 0.6274510025978088,
"Red Component" : 0.6274510025978088,
"Blue Component" : 0.6274510025978088
},
"Right Option Key Sends" : 0,
"Character Encoding" : 4,
"Selection Color" : {
"Green Component" : 0.3024193644523621,
"Red Component" : 0.3024193644523621,
"Blue Component" : 0.3024193644523621
},
"Triggers" : [
],
"Blend" : 0.3,
"Mouse Reporting" : true,
"Cursor Boost" : 0,
"Ansi 4 Color" : {
"Green Component" : 0.7607843279838562,
"Red Component" : 0.3372549116611481,
"Blue Component" : 0.8392156958580017
},
"Non-ASCII Anti Aliased" : true,
"Sync Title" : false,
"Disable Window Resizing" : true,
"Close Sessions On End" : false,
"Jobs to Ignore" : [
"rlogin",
"ssh",
"slogin",
"telnet"
],
"Scrollback With Status Bar" : false,
"Scrollback Lines" : 0,
"Scrollback in Alternate Screen" : true,
"Hide After Opening" : false,
"Prevent Opening in a Tab" : false,
"Flashing Bell" : false,
"Cursor Guide Color" : {
"Red Component" : 0.6499999761581421,
"Color Space" : "Calibrated",
"Blue Component" : 1,
"Alpha Component" : 0.3759259259259259,
"Green Component" : 0.9100000262260437
},
"BM Growl" : true,
"Ansi 3 Color" : {
"Green Component" : 0.5921568870544434,
"Red Component" : 0.9921568632125854,
"Blue Component" : 0.1215686276555061
},
"Use Non-ASCII Font" : false,
"Link Color" : {
"Red Component" : 0.023,
"Color Space" : "Calibrated",
"Blue Component" : 0.678,
"Alpha Component" : 1,
"Green Component" : 0.27
},
"Shortcut" : "",
"Background Image Location" : "",
"Bold Color" : {
"Green Component" : 1,
"Red Component" : 1,
"Blue Component" : 1
},
"Use Cursor Guide" : false,
"Unlimited Scrollback" : true,
"Custom Command" : "No",
"Smart Selection Rules" : [
{
"notes" : "Word bounded by whitespace",
"regex" : "\\S+",
"precision" : "low"
},
{
"notes" : "C++ namespace::identifier",
"regex" : "([a-zA-Z0-9_]+::)+[a-zA-Z0-9_]+",
"precision" : "normal"
},
{
"notes" : "Paths",
"regex" : "\\~?\/?([[:letter:][:number:]._-]+\/+)+[[:letter:][:number:]._-]+\/?",
"precision" : "normal"
},
{
"notes" : "Quoted string",
"regex" : "@?\"(?:[^\"\\\\]|\\\\.)*\"",
"precision" : "normal"
},
{
"notes" : "Java\/Python include paths",
"regex" : "([[:letter:][:number:]._]+\\.)+[[:letter:][:number:]._]+",
"precision" : "normal"
},
{
"notes" : "mailto URL",
"regex" : "\\bmailto:([a-z0-9A-Z_]+@)?([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\b",
"precision" : "normal"
},
{
"notes" : "Obj-C selector",
"regex" : "@selector\\([^)]+\\)",
"precision" : "high"
},
{
"notes" : "email address",
"regex" : "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}\\b",
"precision" : "high"
},
{
"notes" : "HTTP URL",
"regex" : "https?:\/\/([a-z0-9A-Z]+(:[a-zA-Z0-9]+)?@)?[a-z0-9A-Z]+(\\.[a-z0-9A-Z]+)*((:[0-9]+)?)(\/[a-zA-Z0-9;\/\\.\\-_+%~?&@=#\\(\\)]*)?",
"precision" : "very_high"
},
{
"notes" : "SSH URL",
"regex" : "\\bssh:([a-z0-9A-Z_]+@)?([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\b",
"precision" : "very_high"
},
{
"notes" : "Telnet URL",
"regex" : "\\btelnet:([a-z0-9A-Z_]+@)?([a-zA-Z0-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\b",
"precision" : "very_high"
}
],
"Keyboard Map" : {
"0xf702-0x240000" : {
"Text" : "[1;5D",
"Action" : 10
},
"0xf700-0x260000" : {
"Text" : "[1;6A",
"Action" : 10
},
"0xf709-0x20000" : {
"Text" : "[17;2~",
"Action" : 10
},
"0xf70c-0x20000" : {
"Text" : "[20;2~",
"Action" : 10
},
"0xf729-0x20000" : {
"Text" : "[1;2H",
"Action" : 10
},
"0xf72b-0x40000" : {
"Text" : "[1;5F",
"Action" : 10
},
"0xf705-0x20000" : {
"Text" : "[1;2Q",
"Action" : 10
},
"0xf703-0x260000" : {
"Text" : "[1;6C",
"Action" : 10
},
"0xf700-0x220000" : {
"Text" : "[1;2A",
"Action" : 10
},
"0xf701-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x42",
"Action" : 11
},
"0xf703-0x220000" : {
"Text" : "[1;2C",
"Action" : 10
},
"0xf701-0x240000" : {
"Text" : "[1;5B",
"Action" : 10
},
"0xf70d-0x20000" : {
"Text" : "[21;2~",
"Action" : 10
},
"0xf702-0x260000" : {
"Text" : "[1;6D",
"Action" : 10
},
"0xf729-0x40000" : {
"Text" : "[1;5H",
"Action" : 10
},
"0xf706-0x20000" : {
"Text" : "[1;2R",
"Action" : 10
},
"0xf700-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x41",
"Action" : 11
},
"0xf70e-0x20000" : {
"Text" : "[23;2~",
"Action" : 10
},
"0xf702-0x220000" : {
"Text" : "[1;2D",
"Action" : 10
},
"0xf703-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x43",
"Action" : 11
},
"0xf707-0x20000" : {
"Text" : "[1;2S",
"Action" : 10
},
"0xf700-0x240000" : {
"Text" : "[1;5A",
"Action" : 10
},
"0xf70a-0x20000" : {
"Text" : "[18;2~",
"Action" : 10
},
"0xf70f-0x20000" : {
"Text" : "[24;2~",
"Action" : 10
},
"0xf703-0x240000" : {
"Text" : "[1;5C",
"Action" : 10
},
"0xf701-0x260000" : {
"Text" : "[1;6B",
"Action" : 10
},
"0xf702-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x44",
"Action" : 11
},
"0xf72b-0x20000" : {
"Text" : "[1;2F",
"Action" : 10
},
"0xf708-0x20000" : {
"Text" : "[15;2~",
"Action" : 10
},
"0xf701-0x220000" : {
"Text" : "[1;2B",
"Action" : 10
},
"0xf70b-0x20000" : {
"Text" : "[19;2~",
"Action" : 10
},
"0x9-0x40000" : {
"Text" : "9",
"Action" : 11
},
"0xf704-0x20000" : {
"Text" : "[1;2P",
"Action" : 10
}
},
"Log Directory" : "",
"Use Canonical Parser" : false,
"Ansi 14 Color" : {
"Green Component" : 0.6117647290229797,
"Red Component" : 0.5372549295425415,
"Blue Component" : 0.6313725709915161
},
"Ansi 2 Color" : {
"Green Component" : 0.7058823704719543,
"Red Component" : 0.5098039507865906,
"Blue Component" : 0.0784313753247261
},
"Background Image Is Tiled" : false,
"Send Code When Idle" : false,
"ASCII Anti Aliased" : false,
"Tags" : [
],
"Ansi 9 Color" : {
"Green Component" : 0.3490196168422699,
"Red Component" : 1,
"Blue Component" : 0.5843137502670288
},
"Use Bold Font" : true,
"Silence Bell" : false,
"Ansi 12 Color" : {
"Green Component" : 0.929411768913269,
"Red Component" : 0.5490196347236633,
"Blue Component" : 1
},
"Window Type" : 0,
"Allow Title Reporting" : false,
"Use Bright Bold" : true,
"Cursor Text Color" : {
"Green Component" : 0,
"Red Component" : 0,
"Blue Component" : 0
},
"Default Bookmark" : "No",
"Cursor Color" : {
"Green Component" : 0.593540370464325,
"Red Component" : 0.9901629090309143,
"Blue Component" : 0.1207889840006828
},
"Disable Smcup Rmcup" : false,
"Name" : "Floating",
"Blinking Cursor" : true,
"Ansi 1 Color" : {
"Green Component" : 0.1490196138620377,
"Red Component" : 0.9764705896377563,
"Blue Component" : 0.4470588266849518
},
"Guid" : "1CF91C6A-9A1D-47DD-B451-1727769012EB",
"Ansi 8 Color" : {
"Green Component" : 0.3254902064800262,
"Red Component" : 0.3137255012989044,
"Blue Component" : 0.3294117748737335
},
"Ansi 10 Color" : {
"Green Component" : 0.8901960849761963,
"Red Component" : 0.7137255072593689,
"Blue Component" : 0.3294117748737335
},
"Idle Code" : 0,
"Badge Color" : {
"Red Component" : 1,
"Color Space" : "Calibrated",
"Blue Component" : 0,
"Alpha Component" : 0.5,
"Green Component" : 0
},
"Automatically Log" : false,
"Smart Cursor Color" : false,
"Semantic History" : {
"editor" : "com.sublimetext.3",
"action" : "best editor",
"text" : ""
},
"Ambiguous Double Width" : false,
"Blur Radius" : 22.12692307692308,
"Ansi 0 Color" : {
"Green Component" : 0.1137254908680916,
"Red Component" : 0.105882354080677,
"Blue Component" : 0.1176470592617989
},
"Cursor Type" : 2,
"Blur" : false,
"Normal Font" : "TerminusTTF 12",
"Vertical Spacing" : 0.9947289156626505,
"Disable Printing" : false,
"Ansi 7 Color" : {
"Green Component" : 0.800000011920929,
"Red Component" : 0.800000011920929,
"Blue Component" : 0.7764706015586853
},
"Use HFS Plus Mapping" : false,
"Command" : "login -fpql hlissner \/usr\/local\/bin\/zsh",
"Terminal Type" : "xterm-256color",
"Horizontal Spacing" : 0.9944641848644578,
"Option Key Sends" : 2,
"Blink Allowed" : false,
"Minimum Contrast" : 0,
"Ansi 15 Color" : {
"Green Component" : 0.9725490212440491,
"Red Component" : 0.9725490212440491,
"Blue Component" : 0.9490196108818054
},
"Ansi 6 Color" : {
"Green Component" : 0.3294117748737335,
"Red Component" : 0.2745098173618317,
"Blue Component" : 0.3411764800548553
},
"Transparency" : 0.01959596893491124,
"Initial Text" : "",
"Background Color" : {
"Green Component" : 0.1137254908680916,
"Red Component" : 0.105882354080677,
"Blue Component" : 0.1176470592617989
},
"Screen" : -1,
"Bound Hosts" : [
],
"Non Ascii Font" : "Monaco 14",
"Ansi 13 Color" : {
"Green Component" : 0.43529412150383,
"Red Component" : 0.6196078658103943,
"Blue Component" : 0.9960784316062927
},
"Columns" : 100,
"Visual Bell" : false,
"Custom Directory" : "No",
"Ansi 5 Color" : {
"Green Component" : 0.3294117748737335,
"Red Component" : 0.5490196347236633,
"Blue Component" : 0.9960784316062927
},
"Set Local Environment Vars" : true
}
]
}

View file

@ -1,213 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Blue Component</key>
<real>0.11764705926179886</real>
<key>Green Component</key>
<real>0.11372549086809158</real>
<key>Red Component</key>
<real>0.10588235408067703</real>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Blue Component</key>
<real>0.44705882668495178</real>
<key>Green Component</key>
<real>0.14901961386203766</real>
<key>Red Component</key>
<real>0.97647058963775635</real>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Blue Component</key>
<real>0.32941177487373352</real>
<key>Green Component</key>
<real>0.89019608497619629</real>
<key>Red Component</key>
<real>0.7137255072593689</real>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Blue Component</key>
<real>0.42352941632270813</real>
<key>Green Component</key>
<real>0.92941176891326904</real>
<key>Red Component</key>
<real>0.99607843160629272</real>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Blue Component</key>
<real>1</real>
<key>Green Component</key>
<real>0.92941176891326904</real>
<key>Red Component</key>
<real>0.54901963472366333</real>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Blue Component</key>
<real>0.99607843160629272</real>
<key>Green Component</key>
<real>0.43529412150382996</real>
<key>Red Component</key>
<real>0.61960786581039429</real>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Blue Component</key>
<real>0.63137257099151611</real>
<key>Green Component</key>
<real>0.61176472902297974</real>
<key>Red Component</key>
<real>0.5372549295425415</real>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Blue Component</key>
<real>0.94901961088180542</real>
<key>Green Component</key>
<real>0.97254902124404907</real>
<key>Red Component</key>
<real>0.97254902124404907</real>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Blue Component</key>
<real>0.078431375324726105</real>
<key>Green Component</key>
<real>0.70588237047195435</real>
<key>Red Component</key>
<real>0.50980395078659058</real>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Blue Component</key>
<real>0.12156862765550613</real>
<key>Green Component</key>
<real>0.59215688705444336</real>
<key>Red Component</key>
<real>0.99215686321258545</real>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Blue Component</key>
<real>0.83921569585800171</real>
<key>Green Component</key>
<real>0.7607843279838562</real>
<key>Red Component</key>
<real>0.33725491166114807</real>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Blue Component</key>
<real>0.99607843160629272</real>
<key>Green Component</key>
<real>0.32941177487373352</real>
<key>Red Component</key>
<real>0.54901963472366333</real>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Blue Component</key>
<real>0.34117648005485535</real>
<key>Green Component</key>
<real>0.32941177487373352</real>
<key>Red Component</key>
<real>0.27450981736183167</real>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Blue Component</key>
<real>0.7764706015586853</real>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.80000001192092896</real>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Blue Component</key>
<real>0.32941177487373352</real>
<key>Green Component</key>
<real>0.32549020648002625</real>
<key>Red Component</key>
<real>0.31372550129890442</real>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Blue Component</key>
<real>0.58431375026702881</real>
<key>Green Component</key>
<real>0.3490196168422699</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Background Color</key>
<dict>
<key>Blue Component</key>
<real>0.11764705926179886</real>
<key>Green Component</key>
<real>0.11372549086809158</real>
<key>Red Component</key>
<real>0.10588235408067703</real>
</dict>
<key>Bold Color</key>
<dict>
<key>Blue Component</key>
<real>1</real>
<key>Green Component</key>
<real>1</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Cursor Color</key>
<dict>
<key>Blue Component</key>
<real>0.12078898400068283</real>
<key>Green Component</key>
<real>0.59354037046432495</real>
<key>Red Component</key>
<real>0.99016290903091431</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Blue Component</key>
<real>0.0</real>
<key>Green Component</key>
<real>0.0</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Foreground Color</key>
<dict>
<key>Blue Component</key>
<real>0.62745100259780884</real>
<key>Green Component</key>
<real>0.62745100259780884</real>
<key>Red Component</key>
<real>0.62745100259780884</real>
</dict>
<key>Selected Text Color</key>
<dict>
<key>Blue Component</key>
<real>1</real>
<key>Green Component</key>
<real>1</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Selection Color</key>
<dict>
<key>Blue Component</key>
<real>0.30241936445236206</real>
<key>Green Component</key>
<real>0.30241936445236206</real>
<key>Red Component</key>
<real>0.30241936445236206</real>
</dict>
</dict>
</plist>

View file

@ -1,357 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.0</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.0</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.47843137383460999</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.46666666865348816</real>
<key>Red Component</key>
<real>0.94901961088180542</real>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.60000002384185791</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.60000002384185791</real>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.40000000596046448</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.60000002384185791</real>
<key>Red Component</key>
<real>0.40000000596046448</real>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.60000002384185791</real>
<key>Red Component</key>
<real>0.80000001192092896</real>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.40000000596046448</real>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.99999129772186279</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.99997437000274658</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.60000002384185791</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.60000002384185791</real>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.40000000596046448</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.60000002384185791</real>
<key>Red Component</key>
<real>0.40000000596046448</real>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.60000002384185791</real>
<key>Red Component</key>
<real>0.80000001192092896</real>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.40000000596046448</real>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.99999129772186279</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.99997437000274658</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.0</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.0</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.47843137383460999</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.46666666865348816</real>
<key>Red Component</key>
<real>0.94901961088180542</real>
</dict>
<key>Background Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.16306562721729279</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.14132377505302429</real>
<key>Red Component</key>
<real>0.15464302897453308</real>
</dict>
<key>Badge Color</key>
<dict>
<key>Alpha Component</key>
<real>0.5</real>
<key>Blue Component</key>
<real>0.0</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.0</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Bold Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.80000001192092896</real>
</dict>
<key>Cursor Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.80000001192092896</real>
</dict>
<key>Cursor Guide Color</key>
<dict>
<key>Alpha Component</key>
<real>0.048295454545454544</real>
<key>Blue Component</key>
<real>0.99273347854614258</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.77991330623626709</real>
<key>Red Component</key>
<real>0.78832453489303589</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.17647059261798859</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.17647059261798859</real>
<key>Red Component</key>
<real>0.17647059261798859</real>
</dict>
<key>Foreground Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.90656566619873047</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.90656566619873047</real>
<key>Red Component</key>
<real>0.90656566619873047</real>
</dict>
<key>Link Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.25682991743087769</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.67422866821289062</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Selected Text Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.80000001192092896</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.80000001192092896</real>
<key>Red Component</key>
<real>0.80000001192092896</real>
</dict>
<key>Selection Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.31764706969261169</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.31764706969261169</real>
<key>Red Component</key>
<real>0.31764706969261169</real>
</dict>
<key>Tab Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.0</real>
<key>Color Space</key>
<string>Calibrated</string>
<key>Green Component</key>
<real>0.0</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
</dict>
</plist>

0
dev/README.md Normal file
View file

0
dev/node/bootstrap Executable file
View file

3
dev/python/aliases.zsh Normal file
View file

@ -0,0 +1,3 @@
alias py='python'
alias pye='pyenv'
alias ipy='ipython'

3
dev/python/init.zsh Normal file
View file

@ -0,0 +1,3 @@
path=($HOME/.pyenv/bin $path)
cache pyenv init - --no-rehash

17
dev/python/install Executable file
View file

@ -0,0 +1,17 @@
#!/bin/bash
case "$OSTYPE" in
darwin*)
brew install pyenv
;;
linux*)
if [ ! -d "$HOME/.pyenv" ]; then
git clone https://github.com/yyuu/pyenv.git $HOME/.pyenv
fi
;;
esac
PWD=$(pwd -P)
mkdir -p $HOME/.config
[ -f "$HOME/.config/flake8" ] || ln -s "$PWD/dev/python/.config/flake8" "$HOME/.config/flake8"

11
dev/ruby/aliases.zsh Normal file
View file

@ -0,0 +1,11 @@
alias rb="ruby"
alias rbe="rbenv"
alias rdb="pry -r"
alias rk="noglob ${aliases[rk]:-rake}"
alias rkg="noglob ${aliases[rkg]:-rake -g}"
alias bu="bundle"
alias bue="bundle exec"
alias bui="bundle install -path vendor"

5
dev/ruby/init.zsh Normal file
View file

@ -0,0 +1,5 @@
path=($HOME/.rbenv/bin $path)
export RUBYOPT=rubygems
cache rbenv init - --no-rehash

12
dev/ruby/install Executable file
View file

@ -0,0 +1,12 @@
#!/bin/bash
case "$OSTYPE" in
darwin*)
brew install rbenv
;;
linux*)
git clone https://github.com/rbenv/rbenv.git $HOME/.rbenv
cd $HOME/.rbenv && src/configure && make -C src
git clone https://github.com/rbenv/ruby-build.git $HOME/.rbenv/plugins/ruby-build
;;
esac

4
docker/aliases.zsh Normal file
View file

@ -0,0 +1,4 @@
alias dk='docker'
alias dkm='docker-machine'
alias dkc='docker-compose'
alias dki='eval $(docker-machine env)'

0
docker/install Executable file
View file

0
editor/emacs/aliases.zsh Normal file
View file

28
editor/emacs/bootstrap Executable file
View file

@ -0,0 +1,28 @@
#!/bin/bash
case "$OSTYPE" in
darwin*)
brew install make cask python
brew tap railwaycat/emacsmacport
brew install emacs-mac --with-imagemagick --with-modern-icon --HEAD
;;
linux*)
if [ -f /etc/arch-release ]; then
sudo pacman -S make emacs python2
elif [ -f /etc/debian_version ]; then
sudo apt-get install make emacs python
fi
if [ ! -d ~/.cask ]
then
curl -fsSL https://raw.githubusercontent.com/cask/cask/master/go | python
fi
esac
if [ ! -d "$HOME/.emacs.d" ];
then
repo "hlissner/.emacs.d" "$HOME/.emacs.d"
cd "$HOME/.emacs.d"
make install
make snippets
fi

1
editor/emacs/init.zsh Normal file
View file

@ -0,0 +1 @@
path=(~/.cask/bin $path)

View file

@ -0,0 +1,2 @@
alias vim='nvim'
alias v='vim'

25
editor/neovim/bootstrap Executable file
View file

@ -0,0 +1,25 @@
#!/bin/bash
command -v nvim >/dev/null && exit
case "$OSTYPE" in
darwin*)
brew tap neovim/neovim
brew install make neovim
;;
linux*)
if [ -f /etc/arch-release ]; then
sudo pacman --noconfirm -S make neovim
elif [ -f /etc/debian_version ]; then
# TODO
exit 1
fi
;;
esac
if [ ! -d "$HOME/.vim" ]
then
git clone --recursive "hlissner/.vim" "$HOME/.vim"
cd "$HOME/.vim"
make install
fi

9
editor/neovim/update Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
command -v nvim >/dev/null || exit
if [ -d "$HOME/.vim" ]
then
cd "$HOME/.vim"
make update
fi

1
editor/vim/aliases.zsh Normal file
View file

@ -0,0 +1 @@
alias v='vim'

22
editor/vim/bootstrap Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
case "$OSTYPE" in
darwin*)
brew install make vim
;;
linux*)
if is-arch; then
sudo pacman -S make vim
else is-debian; then
# TODO
exit 1
fi
;;
esac
if [ ! -d "$HOME/.vim" ]
then
git-repo "hlissner/.vim" "$HOME/.vim"
cd "$HOME/.vim"
make install
fi

View file

@ -1,16 +0,0 @@
changeset = '\033[0;33m{node|short}\033[0m{branches}{bookmarks}\033[0m{tags} {desc|firstline|strip} \033[0;37m{author|person}, {date|age}\033[0m\n'
changeset_quiet = '\033[0;33m{rev}\033[0m {desc|firstline|strip}\n'
changeset_verbose = '\033[0;31m[{phase}]\033[0m \033[0;33m{rev}\033[0m:\033[0;33m{node|short}\033[0m{branches} {desc|firstline|strip} \033[1;30m({date|age} by {author|person}){bookmarks}\033[0m{tags}\n'
start_branches = ' '
branch = '\033[0;34m{branch}\033[0m'
start_bookmarks = ' '
bookmark = '\033[0;32m[{bookmark}]\033[0m '
last_bookmark = '\033[0;32m[{bookmark}]\033[0m'
start_tags = ' '
tag = '\033[0;33m{tag}\033[0m, '
last_tag = '\033[0;33m{tag}\033[0m'

View file

@ -1,22 +0,0 @@
#!/usr/bin/env bash
_clone() { [ -d "$2" ] || git clone --recursive "$1" "$2"; }
# In case this file was run via curl
_clone https://github.com/hlissner/dotfiles ~/.dotfiles
_clone https://github.com/hlissner/.vim ~/.vim
_clone https://github.com/tarjoilija/zgen ~/.zgen
_clone https://github.com/jimeh/tmuxifier ~/.tmuxifier
if [ "$(name)" == "Darwin" ]; then
_clone https://github.com/hlissner/.hammerspoon ~/.hammerspoon
fi
shopt -s extglob
for rcfile in "${HOME}"/.dotfiles/!(.*|bin|scripts|*.md|LICENSE|install.sh)
do
filep="$HOME/."$(basename "$rcfile")
[ "$1" == "--force" ] && rm -f "$filep"
[ -e "$filep" ] || ln -vs "$rcfile" "$filep"
done

View file

0
os/README.md Normal file
View file

67
os/arch/.Xresources Normal file
View file

@ -0,0 +1,67 @@
Xft.dpi: 72
Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb
! urxvt
urxvt*buffered: true
urxvt*cursorBlink: true
urxvt*underlineColor: yellow
urxvt*font: xft:terminus:size=9:antialias=false
urxvt*depth: 32
urxvt*borderless: 1
urxvt*scrollBar: false
urxvt*loginShell: true
urxvt*secondaryScroll: true
urxvt*saveLines: 5000
urxvt.termName: rxvt-256color
urxvt.perl-ext-common: default,matcher
urxvt.urlLauncher: firefox
urxvt.matcher.button: 1
urxvt.background: #22252c
urxvt.foreground: #bbc2cf
! rofi
rofi.font: Terminus 9
rofi.location: 1
rofi.levenshtein-sort: 1
rofi.width: 250
rofi.lines: 10
rofi.hide-scrollbar: true
rofi.bw: 0
! bg border
rofi.color-window: #22252c, #444449
! bg fg bgalt hlbg hlfg
rofi.color-normal: #22252c, #bbc2cf, #262930, #444449, #bbc2cf
rofi.color-urgent: #22252c, #bb828f, #262930, #744449, #dbe2ef
rofi.color-active: #22252c, #bbc2cf, #262930, #444449, #dbe2ef
! Colors
! dark0 + gray
*color0: #282828
*color8: #928374
! neutral_red + bright_red
*color1: #cc241d
*color9: #fb4934
! neutral_green + bright_green
*color2: #98971a
*color10: #b8bb26
! neutral_yellow + bright_yellow
*color3: #d79921
*color11: #fabd2f
! neutral_blue + bright_blue
*color4: #458588
*color12: #83a598
! neutral_purple + bright_purple
*color5: #b16286
*color13: #d3869b
! neutral_aqua + faded_aqua
*color6: #689d6a
*color14: #8ec07c
! light4 + light1
*color7: #a89984
*color15: #ebdbb2

72
os/arch/.config/bspwm/bspwmrc Executable file
View file

@ -0,0 +1,72 @@
#! /bin/sh
running() { pgrep "$1" >/dev/null; }
bspc config border_width 4
bspc config window_gap 14
bspc config bottom_padding 2
bspc config left_padding 4
bspc config right_padding 4
running panel || bspc config top_padding 2
bspc config split_ratio 0.50
bspc config borderless_monocle true
bspc config gapless_monocle true
bspc config paddingless_monocle true
bspc config focus_by_distance true
bspc config history_aware_focus true
#
# Appearance
#
bspc config normal_frame_opacity 0.0
bspc config focused_frame_opacity 0.1
bspc config normal_border_color "#22252c"
bspc config active_border_color "#1C1E20"
bspc config focused_border_color "#44474e"
#
# Displays
#
i=1
for monitor in $(bspc query -M); do
bspc monitor $monitor -n "$i" -d $1/{desktop,code,web,file,chat,art,misc,music}
let i++
done
NMON=$i
unset i
#
# Rules
#
bspc rule -a Gimp floating=on follow=on
bspc rule -a mplayer2 state=floating
bspc rule -a Kupfer.py focus=on
bspc rule -a Screenkey manage=off
bspc rule -a scratchpad sticky=on floating=on
bspc rule -a Emacs split_ratio=0.25
bspc rule -a Firefox split_ratio=0.30
#
#
#
# wallpaper
feh --bg-scale $HOME/pictures/wallpaper
# window manager helpers
running sxhkd || sxhkd &
running compton || compton &
# bar
running panel.sh || { cd ~/.config/panel && ./panel.sh & }
# bittorrent sync
running rslsync || { cd $HOME && /usr/local/bin/rslsync; }

View file

@ -0,0 +1,47 @@
backend = "glx";
paint-on-overlay = true;
glx-no-stencil = true;
glx-no-rebind-pixmap = true;
#vsync = "opengl-swc";
# Shadow
shadow = false;
no-dock-shadow = true;
no-dnd-shadow = true;
clear-shadow = true;
shadow-radius = 4;
shadow-offset-x = -4;
shadow-offset-y = -4;
shadow-opacity = 0.25;
# shadow-red
# shadow-green
# shadow-blue
shadow-exclude = [ "n:e:Notification" ];
# Opacity
menu-opacity = 0.95;
inactive-opacity = 0.96;
# frame-opacity = 0.8;
inactive-opacity-override = true;
opacity-rule = [ "35:class_g = 'Bspwm' && class_i = 'presel_feedback'" ];
# Fading
fading = true;
# fade-delta = 30;
fade-in-step = 0.06;
fade-out-step = 0.06;
# no-fading-openclose = true;
# Other
#inactive-dim = 0.2;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
# Window type settings
wintypes:
{
tooltip = { fade = true; shadow = false; opacity = 0.85; };
};

View file

@ -0,0 +1,11 @@
.window-frame, .window-frame:backdrop {
box-shadow: 0 0 0 black;
border-style: none;
margin: 0;
border-radius: 0;
}
.titlebar {
border-radius: 0;
}

View file

View file

View file

View file

@ -0,0 +1,7 @@
#!/usr/bin/env bash
while :
do
echo "U"$(checkupdates | wc -l)
sleep 3600
done > "$PANEL_FIFO" &

View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
# volume messages will be sent when volume is changed
echo "V$(amixer get Master | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p' | uniq)" > "$PANEL_FIFO" &
# while :
# do
# echo "V$(amixer get Master | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p' | uniq)"
# sleep 1
# done > "$PANEL_FIFO" &

View file

@ -0,0 +1,7 @@
#!/usr/bin/env bash
while :
do
echo "I"$(awk 'NR==3 {print $3}' /proc/net/wireless)
sleep 5
done > "$PANEL_FIFO" &

41
os/arch/.config/panel/panel.sh Executable file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env dash
# Quit if already running
if [ $(pgrep -cx "$(basename $0)") -gt 1 ]
then
echo "Lemonbar already running"
exit 1
fi
PWD=$(dirname $0)
. $PWD/scripts/config.sh
trap 'trap - TERM; kill 0' INT TERM QUIT EXIT
# Bootstrap
[ -e "$PANEL_FIFO" ] && rm "$PANEL_FIFO"
mkfifo "$PANEL_FIFO"
#
bspc config top_padding "$PANEL_HEIGHT"
bspc subscribe report > "$PANEL_FIFO" &
clock -sf 'T%A, %b %d::%I:%M %p' > "$PANEL_FIFO" &
for comp in $PWD/lemons/*.sh
do
echo "INIT: $(basename $comp)"
. "$comp"
done
$PWD/scripts/parse.sh < "$PANEL_FIFO" | \
lemonbar \
-a 32 \
-g x$PANEL_HEIGHT \
-f "$PANEL_FONT" \
-f "$ICON_FONT" \
-F "$COLOR_DEFAULT_FG" \
-B "$COLOR_DEFAULT_BG" \
| sh &
wait

View file

@ -0,0 +1,32 @@
#!/bin/bash
PANEL_HEIGHT=24
PANEL_FIFO=/tmp/panel-fifo
PANEL_FONT="gohufont:size=11:antialias=false"
ICON_FONT="siji:size=9:antialias=false"
# Colors
FG="#bbc2cf" # 1a6582
BG="#e022252c"
HIGHLIGHT="#00185b75"
COLOR_DEFAULT_FG=$FG
COLOR_DEFAULT_BG=$BG
COLOR_MONITOR_FG="#8dbcdf"
COLOR_MONITOR_BG=$BG
COLOR_FOCUSED_MONITOR_FG="#b1d0e8"
COLOR_FOCUSED_MONITOR_BG=$BG
COLOR_FREE_FG="#155872"
COLOR_FREE_BG=$BG
COLOR_FOCUSED_FREE_FG="#000000"
COLOR_FOCUSED_FREE_BG=$HIGHLIGHT
COLOR_OCCUPIED_FG="#a7a5a5"
COLOR_OCCUPIED_BG=$BG
COLOR_FOCUSED_OCCUPIED_FG="#d6d3d2"
COLOR_FOCUSED_OCCUPIED_BG=$HIGHLIGHT
COLOR_URGENT_FG="#f15d66"
COLOR_URGENT_BG=$BG
COLOR_FOCUSED_URGENT_FG="#501d1f"
COLOR_FOCUSED_URGENT_BG="#d5443e"
COLOR_STATE_FG="#89b09c"
COLOR_STATE_BG=$BG

View file

@ -0,0 +1,121 @@
#!/usr/bin/env bash
. $(dirname $0)/config.sh
num_mon=$(bspc query -M | wc -l)
declare -A ICONS
ICONS[desktop]='\ue1d7'
ICONS[code]='\ue1ec'
ICONS[art]='\ue1c7'
ICONS[web]='\ue26d'
ICONS[chat]='\ue19f'
ICONS[file]='\ue1e1'
ICONS[music]='\ue1a6'
ICONS[misc]='\ue140'
while read -r line
do
data="${line#?}"
case $line in
E*) # TODO ethernet
;;
T*) # clock output
date=" \ue267 ${data%::*} "
clock=" \ue016 ${data#*::} "
;;
I*) # wifi
if [[ $data ]]
then
signal="\ue25d"
case "$data" in
100|[6-9][0-9]*) signal="\ue261" ;;
[4-5][0-9]*) signal="\ue260" ;;
[2-3][0-9]*) signal="\ue25f" ;;
*) signal="\ue25e" ;;
esac
wifi=" $signal $(iwgetid -r) "
else
wifi=" %{F$COLOR_FREE_FG}\ue21a%{F-} "
fi
;;
M*) # TODO mail
mail=" \ue1a8 2 "
;;
S*) # TODO current song
playing=" \ue1a6 ... "
;;
B*) # TODO bluetooth
bt="\ue00b"
;;
W*) # bspwm's state
wm=""
IFS=':'
set -- $data
while [[ $# > 0 ]]
do
id=$1
name=${id#??}
case $id in
[mM]*)
[[ $num_mon < 2 ]] && shift && continue
case $id in
m*) # monitor
FG=$COLOR_MONITOR_FG
BG=$COLOR_MONITOR_BG
;;
M*) # focused monitor
FG=$COLOR_FOCUSED_MONITOR_FG
BG=$COLOR_FOCUSED_MONITOR_BG
;;
esac
wm="${wm}%{F${FG}}%{B${BG}}%{A:bspc monitor -f ${id}:} ${name} %{A}%{B-}%{F-}"
;;
[fFoOuU]*)
case $id in
f*) # free desktop
FG=$COLOR_FREE_FG
BG=$COLOR_FREE_BG
;;
F*) # focused free desktop
FG=$COLOR_FOCUSED_FREE_FG
BG=$COLOR_FOCUSED_FREE_BG
;;
o*) # occupied desktop
FG=$COLOR_OCCUPIED_FG
BG=$COLOR_OCCUPIED_BG
;;
O*) # focused occupied desktop
FG=$COLOR_FOCUSED_OCCUPIED_FG
BG=$COLOR_FOCUSED_OCCUPIED_BG
;;
u*) # urgent desktop
FG=$COLOR_URGENT_FG
BG=$COLOR_URGENT_BG
;;
U*) # focused urgent desktop
FG=$COLOR_FOCUSED_URGENT_FG
BG=$COLOR_FOCUSED_URGENT_BG
;;
esac
wm="${wm}%{F${FG}}%{B${BG}}%{A:bspc desktop -f ${id#?}:} ${name} %{A}%{B-}%{F-}"
;;
esac
shift
done
;;
U*) # updates
updates=" \ue00f $data updates "
;;
V*) # volume
case "$data" in
0|off)
vol="%{F$COLOR_FREE_FG}\ue202%{F-}"
;;
*) vol="\ue203"
;;
esac
;;
esac
echo -e "%{l}${wm}${playing}%{r}${mail} ${wifi} ${date} ${clock} ${bt}${vol} "
done

View file

@ -0,0 +1,159 @@
#
# wm independent hotkeys
#
# terminal emulator
super + Return
urxvt
# scratchpad
super + grave
xdotool search --onlyvisible --classname scratchpad windowunmap \
|| xdotool search --classname scratchpad windowmap \
|| termite --name scratchpad --class scratchpad --geometry 400x120
# program launcher
super + space
rofi -show run
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
#
# bspwm hotkeys
#
# quit bspwm normally
super + alt + Escape
bspc quit
# close and kill
super + {_,shift + }w
bspc node -{c,k}
# alternate between the tiled and monocle layout
super + m
bspc desktop -l next
# if the current node is automatic, send it to the last manual, otherwise pull the last leaf
super + y
bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused
# swap the current node and the biggest node
super + g
bspc node -s biggest
#
# state/flags
#
# set the window state
super + {t,shift + t,s,f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# set the node flags
super + ctrl + {x,y,z}
bspc node -g {locked,sticky,private}
#
# focus/swap
#
# focus the node in the given direction
super + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# focus the node for the given path jump
super + {p,b,comma,period}
bspc node -f @{parent,brother,first,second}
# focus the next/previous node
super + {_,shift + }c
bspc node -f {next,prev}
# focus the next/previous desktop
super + bracket{left,right}
bspc desktop -f {prev,next}
# focus the last node/desktop
super + Tab
bspc node -f last
# focus the older or newer node in the focus history
super + {o,i}
bspc wm -h off; \
bspc node {older,newer} -f; \
bspc wm -h on
# focus or send to the given desktop
super + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '^{1-9,10}'
#
# preselect
#
# preselect the direction
super + ctrl + {h,j,k,l}
bspc node -p {west,south,north,east}
# preselect the ratio
super + ctrl + {1-9}
bspc node -o 0.{1-9}
# cancel the preselection for the focused node
super + ctrl + space
bspc node -p cancel
# cancel the preselection for the focused desktop
super + ctrl + shift + space
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
#
# resize tiled/floating
#
# expand the tiled space in the given direction
super + alt + {h,j,k,l}
bspc node {@west -r -10,@south -r +10,@north -r -10,@east -r +10}
# contract the tiled space in the given direction
super + alt + shift + {h,j,k,l}
bspc node {@east -r -10,@north -r +10,@south -r -10,@west -r +10}
# move a floating window
super + {Left,Down,Up,Right}
xdo move {-x -20,-y +20,-y -20,-x +20}
#
# pointer focus/move/resize
#
# focus
~button1
bspc pointer -g focus
# start move/resize
super + button{1-3}
bspc pointer -g {move,resize_side,resize_corner}
# end move/resize
super + @button{1-3}
bspc pointer -u
#
# Volume
#
super + shift + {Down,Up}
amixer set Master 5%{-,+}; \
echo "V$(amixer get Master | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p' | uniq)" > /tmp/panel-fifo
super + ctrl + shift + Up
amixer set Master unmute; \
echo "V$(amixer get Master | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p' | uniq)" > /tmp/panel-fifo
super + ctrl + shift + Down
amixer set Master mute; \
echo "V0" > /tmp/panel-fifo

View file

@ -0,0 +1,32 @@
[colors]
foreground = #839496
foreground_bold = #eee8d5
#foreground_dim = #888888
# background = #22252c
background = rgba(34, 37, 44, 0.95)
cursor = #93a1a1
# if unset, will reverse foreground and background
#highlight = #839496
# colors from color0 to color254 can be set
color0 = #073642
color1 = #dc322f
color2 = #859900
color3 = #b58900
color4 = #268bd2
color5 = #d33682
color6 = #2aa198
color7 = #eee8d5
color8 = #002b36
color9 = #cb4b16
color10 = #586e75
color11 = #657b83
color12 = #839496
color13 = #6c71c4
color14 = #93a1a1
color15 = #fdf6e3
[options]
font = FontAwesome 12
font = Terminus 12

389
os/arch/.ncmpcpp/bindings Normal file
View file

@ -0,0 +1,389 @@
#def_key "mouse"
# mouse_event
#
#def_key "up"
# scroll_up
#
#def_key "shift-up"
# select_item
# scroll_up
#
#def_key "down"
# scroll_down
#
#def_key "shift-down"
# select_item
# scroll_down
#
#def_key "["
# scroll_up_album
#
#def_key "]"
# scroll_down_album
#
#def_key "{"
# scroll_up_artist
#
#def_key "}"
# scroll_down_artist
#
#def_key "page_up"
# page_up
#
#def_key "page_down"
# page_down
#
#def_key "home"
# move_home
#
#def_key "end"
# move_end
#
#def_key "insert"
# select_item
#
#def_key "enter"
# enter_directory
#
#def_key "enter"
# toggle_output
#
#def_key "enter"
# run_action
#
#def_key "enter"
# play_item
#
#def_key "space"
# add_item_to_playlist
#
#def_key "space"
# toggle_lyrics_update_on_song_change
#
#def_key "space"
# toggle_visualization_type
#
#def_key "delete"
# delete_playlist_items
#
#def_key "delete"
# delete_browser_items
#
#def_key "delete"
# delete_stored_playlist
#
#def_key "right"
# next_column
#
#def_key "right"
# slave_screen
#
#def_key "right"
# volume_up
#
#def_key "+"
# volume_up
#
#def_key "left"
# previous_column
#
#def_key "left"
# master_screen
#
#def_key "left"
# volume_down
#
#def_key "-"
# volume_down
#
#def_key ":"
# execute_command
#
#def_key "tab"
# next_screen
#
#def_key "shift-tab"
# previous_screen
#
#def_key "f1"
# show_help
#
#def_key "1"
# show_playlist
#
#def_key "2"
# show_browser
#
#def_key "2"
# change_browse_mode
#
#def_key "3"
# show_search_engine
#
#def_key "3"
# reset_search_engine
#
#def_key "4"
# show_media_library
#
#def_key "4"
# toggle_media_library_columns_mode
#
#def_key "5"
# show_playlist_editor
#
#def_key "6"
# show_tag_editor
#
#def_key "7"
# show_outputs
#
#def_key "8"
# show_visualizer
#
#def_key "="
# show_clock
#
#def_key "@"
# show_server_info
#
#def_key "s"
# stop
#
#def_key "p"
# pause
#
#def_key ">"
# next
#
#def_key "<"
# previous
#
#def_key "ctrl-h"
# jump_to_parent_directory
#
#def_key "ctrl-h"
# replay_song
#
#def_key "backspace"
# jump_to_parent_directory
#
#def_key "backspace"
# replay_song
#
#def_key "f"
# seek_forward
#
#def_key "b"
# seek_backward
#
#def_key "r"
# toggle_repeat
#
#def_key "z"
# toggle_random
#
#def_key "y"
# save_tag_changes
#
#def_key "y"
# start_searching
#
#def_key "y"
# toggle_single
#
#def_key "R"
# toggle_consume
#
#def_key "Y"
# toggle_replay_gain_mode
#
#def_key "T"
# toggle_add_mode
#
#def_key "|"
# toggle_mouse
#
#def_key "#"
# toggle_bitrate_visibility
#
#def_key "Z"
# shuffle
#
#def_key "x"
# toggle_crossfade
#
#def_key "X"
# set_crossfade
#
#def_key "u"
# update_database
#
#def_key "ctrl-s"
# sort_playlist
#
#def_key "ctrl-s"
# toggle_browser_sort_mode
#
#def_key "ctrl-s"
# toggle_media_library_sort_mode
#
#def_key "ctrl-r"
# reverse_playlist
#
#def_key "ctrl-_"
# select_found_items
#
#def_key "/"
# find
#
#def_key "/"
# find_item_forward
#
#def_key "?"
# find
#
#def_key "?"
# find_item_backward
#
#def_key "."
# next_found_item
#
#def_key ","
# previous_found_item
#
#def_key "w"
# toggle_find_mode
#
#def_key "e"
# edit_song
#
#def_key "e"
# edit_library_tag
#
#def_key "e"
# edit_library_album
#
#def_key "e"
# edit_directory_name
#
#def_key "e"
# edit_playlist_name
#
#def_key "e"
# edit_lyrics
#
#def_key "i"
# show_song_info
#
#def_key "I"
# show_artist_info
#
#def_key "g"
# jump_to_position_in_song
#
#def_key "l"
# show_lyrics
#
#def_key "ctrl-v"
# select_range
#
#def_key "v"
# reverse_selection
#
#def_key "V"
# remove_selection
#
#def_key "B"
# select_album
#
#def_key "a"
# add_selected_items
#
#def_key "c"
# clear_playlist
#
#def_key "c"
# clear_main_playlist
#
#def_key "C"
# crop_playlist
#
#def_key "C"
# crop_main_playlist
#
#def_key "m"
# move_sort_order_up
#
#def_key "m"
# move_selected_items_up
#
#def_key "m"
# set_visualizer_sample_multiplier
#
#def_key "n"
# move_sort_order_down
#
#def_key "n"
# move_selected_items_down
#
#def_key "M"
# move_selected_items_to
#
#def_key "A"
# add
#
#def_key "S"
# save_playlist
#
#def_key "o"
# jump_to_playing_song
#
#def_key "G"
# jump_to_browser
#
#def_key "G"
# jump_to_playlist_editor
#
#def_key "~"
# jump_to_media_library
#
#def_key "E"
# jump_to_tag_editor
#
#def_key "U"
# toggle_playing_song_centering
#
#def_key "P"
# toggle_display_mode
#
#def_key "\\"
# toggle_interface
#
#def_key "!"
# toggle_separators_between_albums
#
#def_key "L"
# toggle_lyrics_fetcher
#
#def_key "F"
# toggle_fetching_lyrics_in_background
#
#def_key "ctrl-l"
# toggle_screen_lock
#
#def_key "`"
# toggle_library_tag_type
#
#def_key "`"
# refetch_lyrics
#
#def_key "`"
# add_random_items
#
#def_key "ctrl-p"
# set_selected_items_priority
#
#def_key "q"
# quit
#

481
os/arch/.ncmpcpp/config Normal file
View file

@ -0,0 +1,481 @@
##### directories ######
ncmpcpp_directory = ~/.ncmpcpp
## Directory for storing downloaded lyrics.
#lyrics_directory = ~/.lyrics
##### connection settings #####
#mpd_host = localhost
#mpd_port = 6600
#mpd_connection_timeout = 5
## Needed for tag editor and file operations to work.
#mpd_music_dir = ~/music
#mpd_crossfade_time = 5
##### music visualizer #####
##
## Note: In order to make music visualizer work you'll
## need to use mpd fifo output, whose format parameter
## has to be set to 44100:16:1 for mono visualization
## or 44100:16:2 for stereo visualization. Example
## configuration (it has to be put into mpd.conf):
##
## audio_output {
## type "fifo"
## name "Visualizer feed"
## path "/tmp/mpd.fifo"
## format "44100:16:2"
## }
##
#visualizer_fifo_path = /tmp/mpd.fifo
##
## Note: Below parameter is needed for ncmpcpp
## to determine which output provides data for
## visualizer and thus allow syncing between
## visualization and sound as currently there
## are some problems with it.
##
#visualizer_output_name = Visualizer feed
##
## If you set format to 44100:16:2, make it 'yes'.
##
#visualizer_in_stereo = yes
##
## Multiply received samples by given value. Very
## useful for proper visualization of quiet music.
##
#visualizer_sample_multiplier = 1
##
## Note: Below parameter defines how often ncmpcpp
## has to "synchronize" visualizer and audio outputs.
## 30 seconds is optimal value, but if you experience
## synchronization problems, set it to lower value.
## Keep in mind that sane values start with >=10.
##
#visualizer_sync_interval = 30
##
## Note: To enable spectrum frequency visualization
## you need to compile ncmpcpp with fftw3 support.
##
#
## Available values: spectrum, wave, wave_filled, ellipse.
##
#visualizer_type = wave
#
#visualizer_look = ●▮
#
#visualizer_color = blue, cyan, green, yellow, magenta, red
#
## Alternative subset of 256 colors for terminals that support it.
##
#visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
#
##### system encoding #####
##
## ncmpcpp should detect your charset encoding
## but if it failed to do so, you can specify
## charset encoding you are using here.
##
## Note: You can see whether your ncmpcpp build
## supports charset detection by checking output
## of `ncmpcpp --version`.
##
## Note: Since MPD uses UTF-8 by default, setting
## this option makes sense only if your encoding
## is different.
##
#
#system_encoding = ""
#
##### delays #####
#
## Time of inactivity (in seconds) after playlist
## highlighting will be disabled (0 = always on).
##
#playlist_disable_highlight_delay = 5
#
## Defines how long messages are supposed to be visible.
##
#message_delay_time = 5
#
##### song format #####
##
## For a song format you can use:
##
## %l - length
## %f - filename
## %D - directory
## %a - artist
## %A - album artist
## %t - title
## %b - album
## %y - date
## %n - track number (01/12 -> 01)
## %N - full track info (01/12 -> 01/12)
## %g - genre
## %c - composer
## %p - performer
## %d - disc
## %C - comment
## %P - priority
## $R - begin right alignment
##
## If you want to make sure that a part of the format is displayed
## only when certain tags are present, you can archieve it by
## grouping them with brackets, e.g. '{%a - %t}' will be evaluated
## to 'ARTIST - TITLE' if both tags are present or '' otherwise.
## It is also possible to define a list of alternatives by providing
## several groups and separating them with '|', e.g. '{%t}|{%f}'
## will be evaluated to 'TITLE' or 'FILENAME' if the former is not
## present.
##
## Note: If you want to set limit on maximal length of a tag, just
## put the appropriate number between % and character that defines
## tag type, e.g. to make album take max. 20 terminal cells, use '%20b'.
##
## In addition, formats support markers used for text attributes.
## They are followed by character '$'. After that you can put:
##
## - 0 - default window color (discards all other colors)
## - 1 - black
## - 2 - red
## - 3 - green
## - 4 - yellow
## - 5 - blue
## - 6 - magenta
## - 7 - cyan
## - 8 - white
## - 9 - end of current color
## - b - bold text
## - u - underline text
## - r - reverse colors
## - a - use alternative character set
##
## If you don't want to use a non-color attribute anymore, just put it
## again, but this time insert character '/' between '$' and attribute
## character, e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag
## or filename with reversed colors.
##
## If you want to use 256 colors and/or background colors in formats
## (the naming scheme is described below in section about color
## definitions), it can be done with the syntax $(COLOR), e.g. to set
## the artist tag to one of the non-standard colors and make it have
## yellow background, you need to write $(197_yellow)%a$(end). Note
## that for standard colors this is interchangable with attributes
## listed above.
##
## Note: colors can be nested.
##
#
#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
#
#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
#
#song_library_format = {%n - }{%t}|{%f}
#
#
#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
#
#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
#
#now_playing_prefix = $b
#
#now_playing_suffix = $/b
#
#browser_playlist_prefix = "$2playlist$9 "
#
#selected_item_prefix = $6
#
#selected_item_suffix = $9
#
#modified_item_prefix = $3> $9
#
##
## Note: attributes are not supported for the following variables.
##
#song_window_title_format = {%a - }{%t}|{%f}
##
## Note: Below variables are used for sorting songs in browser.
## The sort mode determines how songs are sorted, and can be used
## in combination with a sort format to specify a custom sorting format.
## Available values for browser_sort_mode are "name", "mtime", "format"
## and "noop".
##
#
#browser_sort_mode = name
#
#browser_sort_format = {%a - }{%t}|{%f} {(%l)}
#
##### columns settings #####
##
## syntax of song columns list format is "column column etc."
##
## - syntax for each column is:
##
## (width of the column)[color of the column]{displayed tag}
##
## Note: Width is by default in %, if you want a column to
## have fixed size, add 'f' after the value, e.g. (10)[white]{a}
## will be the column that take 10% of screen (so the real width
## will depend on actual screen size), whereas (10f)[white]{a}
## will take 10 terminal cells, no matter how wide the screen is.
##
## - color is optional (if you want the default one,
## leave the field empty).
##
## Note: You can give a column additional attributes by putting appropriate
## character after displayed tag character. Available attributes are:
##
## - r - column will be right aligned
## - E - if tag is empty, empty tag marker won't be displayed
##
## You can also:
##
## - give a column custom name by putting it after attributes,
## separated with character ':', e.g. {lr:Length} gives you
## right aligned column of lengths named "Length".
##
## - define sequence of tags, that have to be displayed in case
## predecessor is empty in a way similar to the one in classic
## song format, i.e. using '|' character, e.g. {a|c|p:Owner}
## creates column named "Owner" that tries to display artist
## tag and then composer and performer if previous ones are
## not available.
##
#
#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
#
##### various settings #####
#
##
## Note: Custom command that will be executed each
## time song changes. Useful for notifications etc.
##
#execute_on_song_change = ""
#
#playlist_show_mpd_host = no
#
#playlist_show_remaining_time = no
#
#playlist_shorten_total_times = no
#
#playlist_separate_albums = no
#
##
## Note: Possible display modes: classic, columns.
##
#playlist_display_mode = columns
#
#browser_display_mode = classic
#
#search_engine_display_mode = classic
#
#playlist_editor_display_mode = classic
#
#discard_colors_if_item_is_selected = yes
#
#incremental_seeking = yes
#
#seek_time = 1
#
#volume_change_step = 2
#
#autocenter_mode = no
#
#centered_cursor = no
#
##
## Note: You can specify third character which will
## be used to build 'empty' part of progressbar.
##
#progressbar_look = =>
#
#progressbar_boldness = yes
#
## Available values: database, playlist.
##
#default_place_to_search_in = database
#
## Available values: classic, alternative.
##
#user_interface = classic
#
#data_fetching_delay = yes
#
## Available values: artist, album_artist, date, genre, composer, performer.
##
#media_library_primary_tag = artist
#
## Available values: wrapped, normal.
##
#default_find_mode = wrapped
#
#default_tag_editor_pattern = %n - %t
#
#header_visibility = yes
#
#statusbar_visibility = yes
#
#titles_visibility = yes
#
#header_text_scrolling = yes
#
#cyclic_scrolling = no
#
#lines_scrolled = 2
#
#follow_now_playing_lyrics = no
#
#fetch_lyrics_for_current_song_in_background = no
#
#store_lyrics_in_song_dir = no
#
#generate_win32_compatible_filenames = yes
#
#allow_for_physical_item_deletion = no
#
##
## Note: If you set this variable, ncmpcpp will try to
## get info from last.fm in language you set and if it
## fails, it will fall back to english. Otherwise it will
## use english the first time.
##
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
##
#lastfm_preferred_language = en
#
#show_hidden_files_in_local_browser = no
#
##
## How shall screen switcher work?
##
## - "previous" - switch between the current and previous screen.
## - "screen1,...,screenN" - switch between given sequence of screens.
##
## Screens available for use: help, playlist, browser, search_engine,
## media_library, playlist_editor, tag_editor, outputs, visualizer, clock.
##
#screen_switcher_mode = playlist, browser
#
##
## Note: You can define startup screen
## by choosing screen from the list above.
##
#startup_screen = playlist
#
##
## Note: You can define startup slave screen
## by choosing screen from the list above or
## an empty value for no slave screen.
##
#startup_slave_screen = ""
#
#startup_slave_screen_focus = no
#
##
## Default width of locked screen (in %).
## Acceptable values are from 20 to 80.
##
#
#locked_screen_width_part = 50
#
#ask_for_locked_screen_width_part = yes
#
#jump_to_now_playing_song_at_start = yes
#
#ask_before_clearing_playlists = yes
#
#clock_display_seconds = no
#
#display_volume_level = yes
#
#display_bitrate = no
#
#display_remaining_time = no
#
## Available values: none, basic, extended, perl.
##
#regular_expressions = perl
#
##
## Note: If below is enabled, ncmpcpp will ignore leading
## "The" word while sorting items in browser, tags in
## media library, etc.
##
#ignore_leading_the = no
#
#block_search_constraints_change_if_items_found = yes
#
#mouse_support = yes
#
#mouse_list_scroll_whole_page = yes
#
#empty_tag_marker = <empty>
#
#tags_separator = " | "
#
#tag_editor_extended_numeration = no
#
#media_library_sort_by_mtime = no
#
#enable_window_title = yes
#
##
## Note: You can choose default search mode for search
## engine. Available modes are:
##
## - 1 - use mpd built-in searching (no regexes, pattern matching)
## - 2 - use ncmpcpp searching (pattern matching with support for regexes,
## but if your mpd is on a remote machine, downloading big database
## to process it can take a while
## - 3 - match only exact values (this mode uses mpd function for searching
## in database and local one for searching in current playlist)
##
search_engine_default_search_mode = 2
external_editor = vim
## Note: set to yes if external editor is a console application.
use_console_editor = yes
##### colors definitions #####
##
## It is possible to set a background color by setting a color
## value "<foreground>_<background>", e.g. red_black will set
## foregound color to red and background color to black.
##
## In addition, for terminals that support 256 colors it
## is possible to set one of them by using a number in range
## [1, 256] instead of color name, e.g. numerical value
## corresponding to red_black is 2_1. To find out if the
## terminal supports 256 colors, run ncmpcpp and check out
## the bottom of the help screen for list of available colors
## and their numerical values.
##
## Note: due to technical limitations of ncurses, if 256 colors
## are used, it is possible to either use only the colors with
## default background color, or all pairs from 1_1 up to 254_127,
## depending on the ncurses version used.
##
#colors_enabled = yes
#empty_tag_color = cyan
#header_window_color = default
#volume_color = default
#state_line_color = default
#state_flags_color = default
#main_window_color = yellow
#color1 = white
#color2 = green
#main_window_highlight_color = yellow
#progressbar_color = black
#progressbar_elapsed_color = green
#statusbar_color = default
#alternative_ui_separator_color = black
#active_column_color = red
#window_border_color = green
#active_window_border = red

8
os/arch/.xprofile Normal file
View file

@ -0,0 +1,8 @@
sxhkd &
compton &
# wallpaper
feh --bg-scale $HOME/pictures/wallpaper
# Start bittorrent sync
pgrep rslsync >/dev/null || { cd $HOME && /usr/local/bin/rslsync; }

14
os/arch/aliases.zsh Normal file
View file

@ -0,0 +1,14 @@
alias ls="${aliases[ls]:-ls} --color=auto"
alias open='xdg-open'
alias pac='sudo pacman'
alias pacu='sudo pacman -Syu'
if (( $+commands[xclip] )); then
alias y='xclip -selection clipboard -in'
alias p='xclip -selection clipboard -out'
elif (( $+commands[xsel] )); then
alias y='xsel --clipboard --input'
alias p='xsel --clipboard --output'
fi

46
os/arch/install Executable file
View file

@ -0,0 +1,46 @@
#!/bin/bash
PWD=$(dirname $0)
sudo pacman --noconfirm -S \
wget curl make tmux rsync tree the_silver_searcher bc \
wpa_supplicant wpa_actiond dhcpcd netctl dialog \
xorg-init xorg-server xorg-xandr xorg-xrdb xorg-xmodmap xorg-fonts-75dpi xorg-xfd xdotool \
lightdm bspwm sxhkd compton feh \
rofi rxvt-unicode firefox mpd ncmpcpp \
obs-studio youtube-dl
install() {
local cmd="$1"
local repo="$2"
local dest=$(basename -s .git "$repo")
command -v "$cmd" >/dev/null && return
TEMP=$(mktemp -d)
cd "$TEMP"
if [ ! -d "$dest" ]
then
git clone "$repo" "$dest"
pushd "$dest"
makepkg -sri --noconfirm
popd
fi
rm -rf "$TEMP"
}
# Bar utilities
install lemonbar https://aur.archlinux.org/lemonbar-xft-git.git
install xtitle https://aur.archlinux.org/xtitle.git
install clock https://aur.archlinux.org/sutils-git.git
install xdo https://aur.archlinux.org/xdo-git.git
install siji https://aur.archlinux.org/siji-git.git
# WM Greeter
if [ ! -d /usr/share/lightdm-webkit ]
then
install "" https://aur.archlinux.org/lightdm-webkit-greeter.git
fi
# Utilities
install git-crypt https://aur.archlinux.org/git-crypt.git
install fasd https://aur.archlinux.org/fasd-git.git

3
os/arch/update Executable file
View file

@ -0,0 +1,3 @@
#!/bin/bash
sudo pacman -Syu

16
os/macos/aliases.zsh Normal file
View file

@ -0,0 +1,16 @@
alias ls='ls -G'
alias ls="${aliases[ls]:-ls} -G"
alias date='gdate'
alias y='pbcopy'
alias p='pbpaste'
alias br='brew'
alias bru='brew update && brew upgrade --all && brew cleanup'
alias brc='brew cask'
# OS X has no `md5sum`, so use `md5` as a fallback
is-callable md5sum || alias md5sum="md5"
# OS X has no `sha1sum`, so use `shasum` as a fallback
is-callable sha1sum || alias sha1sum="shasum"

10
os/macos/install Executable file
View file

@ -0,0 +1,10 @@
#!/bin/bash
# Install homebrew
if ! command -v brew;
then
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Installing essentials
brew install wget curl make
fi

18
os/macos/macos.zsh Normal file
View file

@ -0,0 +1,18 @@
export BROWSER='open'
# export CC=/usr/bin/clang
# export CXX=/usr/bin/clang++
# export CXXFLAGS="-I/usr/local/include"
export C_INCLUDE_PATH="/usr/local/include"
export CPLUS_INCLUDE_PATH="/usr/local/include"
export LIBRARY_PATH="/usr/local/lib"
# export LDFLAGS="-L/usr/local/lib"
if [[ "$OSTYPE" == darwin* ]]; then
[[ -x /usr/libexec/path_helper ]] && eval $(/usr/libexec/path_helper -s)
fi
export LESS='-g -i -M -R -S -w -z-4'
if is-callable lesspipe; then
export LESSOPEN='| /usr/bin/env lesspipe %s 2>&-'
fi

11
os/macos/update Executable file
View file

@ -0,0 +1,11 @@
#!/bin/bash
if command -v brew;
then
brew update
brew upgrade --all
brew cleanup
brew prune
else
2>&1 echo "homebrew wasn't found"
fi

592
osx
View file

@ -1,592 +0,0 @@
#!/usr/bin/env bash
# ~/.osx — https://mths.be/osx
# Ask for the administrator password upfront
sudo -v
# Keep-alive: update existing `sudo` time stamp until `.osx` has finished
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
###############################################################################
# General UI/UX #
###############################################################################
# Set computer name (as done via System Preferences → Sharing)
#sudo scutil --set ComputerName "0x6D746873"
#sudo scutil --set HostName "0x6D746873"
#sudo scutil --set LocalHostName "0x6D746873"
#sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "0x6D746873"
# Set standby delay to 24 hours (default is 1 hour)
sudo pmset -a standbydelay 86400
# Disable the sound effects on boot
sudo nvram SystemAudioVolume=" "
# Disable transparency in the menu bar and elsewhere on Yosemite
# defaults write com.apple.universalaccess reduceTransparency -bool true
# Menu bar: hide the Time Machine, Volume, and User icons
# for domain in ~/Library/Preferences/ByHost/com.apple.systemuiserver.*; do
# defaults write "${domain}" dontAutoLoad -array \
# "/System/Library/CoreServices/Menu Extras/TimeMachine.menu" \
# "/System/Library/CoreServices/Menu Extras/Volume.menu" \
# "/System/Library/CoreServices/Menu Extras/User.menu"
# done
# defaults write com.apple.systemuiserver menuExtras -array \
# "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" \
# "/System/Library/CoreServices/Menu Extras/AirPort.menu" \
# "/System/Library/CoreServices/Menu Extras/Battery.menu" \
# "/System/Library/CoreServices/Menu Extras/Clock.menu"
# Set highlight color to green
# defaults write NSGlobalDomain AppleHighlightColor -string "0.764700 0.976500 0.568600"
# Set sidebar icon size to medium
# defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 2
# Always show scrollbars
# defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
# Possible values: `WhenScrolling`, `Automatic` and `Always`
# Disable the over-the-top focus ring animation
defaults write NSGlobalDomain NSUseAnimatedFocusRing -bool false
# Disable smooth scrolling
# (Uncomment if youre on an older Mac that messes up the animation)
#defaults write NSGlobalDomain NSScrollAnimationEnabled -bool false
# Increase window resize speed for Cocoa applications
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001
# Expand save panel by default
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
# Expand print panel by default
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
# Save to disk (not to iCloud) by default
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
# Automatically quit printer app once the print jobs complete
defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true
# Disable the “Are you sure you want to open this application?” dialog
defaults write com.apple.LaunchServices LSQuarantine -bool false
# Remove duplicates in the “Open With” menu (also see `lscleanup` alias)
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
# Display ASCII control characters using caret notation in standard text views
# Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true
# Disable Resume system-wide
defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false
# Disable automatic termination of inactive apps
defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true
# Disable the crash reporter
#defaults write com.apple.CrashReporter DialogType -string "none"
# Set Help Viewer windows to non-floating mode
defaults write com.apple.helpviewer DevMode -bool true
# Fix for the ancient UTF-8 bug in QuickLook (https://mths.be/bbo)
# Commented out, as this is known to cause problems in various Adobe apps :(
# See https://github.com/mathiasbynens/dotfiles/issues/237
#echo "0x08000100:0" > ~/.CFUserTextEncoding
# Reveal IP address, hostname, OS version, etc. when clicking the clock
# in the login window
sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
# Restart automatically if the computer freezes
sudo systemsetup -setrestartfreeze on
# Never go into computer sleep mode
sudo systemsetup -setcomputersleep Off > /dev/null
# Check for software updates daily, not just once per week
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
# Disable Notification Center and remove the menu bar icon
# launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist 2> /dev/null
# Disable smart quotes as theyre annoying when typing code
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
# Disable smart dashes as theyre annoying when typing code
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
###############################################################################
# SSD-specific tweaks #
###############################################################################
# Disable local Time Machine snapshots
sudo tmutil disablelocal
# Disable hibernation (speeds up entering sleep mode)
sudo pmset -a hibernatemode 0
# Remove the sleep image file to save disk space
sudo rm /private/var/vm/sleepimage
# Create a zero-byte file instead…
sudo touch /private/var/vm/sleepimage
# …and make sure it cant be rewritten
sudo chflags uchg /private/var/vm/sleepimage
# Disable the sudden motion sensor as its not useful for SSDs
sudo pmset -a sms 0
###############################################################################
# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
###############################################################################
# Trackpad: enable tap to click for this user and for the login screen
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
# Trackpad: map bottom right corner to right-click
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true
defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1
defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true
# Disable “natural” (Lion-style) scrolling
defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false
# Increase sound quality for Bluetooth headphones/headsets
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40
# Enable full keyboard access for all controls
# (e.g. enable Tab in modal dialogs)
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
# Use scroll gesture with the Ctrl (^) modifier key to zoom
defaults write com.apple.universalaccess closeViewScrollWheelToggle -bool true
defaults write com.apple.universalaccess HIDScrollZoomModifierMask -int 262144
# Follow the keyboard focus while zoomed in
defaults write com.apple.universalaccess closeViewZoomFollowsFocus -bool true
# Disable press-and-hold for keys in favor of key repeat
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
# Set a blazingly fast keyboard repeat rate
defaults write NSGlobalDomain KeyRepeat -int 0
# Set language and text formats
# defaults write NSGlobalDomain AppleLanguages -array "en" "en"
defaults write NSGlobalDomain AppleLocale -string "en_US@currency=CAD"
defaults write NSGlobalDomain AppleMeasurementUnits -string "Centimeters"
defaults write NSGlobalDomain AppleMetricUnits -bool true
# Set the timezone; see `sudo systemsetup -listtimezones` for other values
sudo systemsetup -settimezone "America/Toronto" > /dev/null
# Disable auto-correct
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
# Stop iTunes from responding to the keyboard media keys
#launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist 2> /dev/null
###############################################################################
# Screen #
###############################################################################
# Require password immediately after sleep or screen saver begins
# defaults write com.apple.screensaver askForPassword -int 1
# defaults write com.apple.screensaver askForPasswordDelay -int 0
# Save screenshots to the desktop
defaults write com.apple.screencapture location -string "${HOME}/Desktop"
# Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
defaults write com.apple.screencapture type -string "png"
# Disable shadow in screenshots
defaults write com.apple.screencapture disable-shadow -bool true
# Enable subpixel font rendering on non-Apple LCDs
defaults write NSGlobalDomain AppleFontSmoothing -int 2
# Enable HiDPI display modes (requires restart)
# sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
###############################################################################
# Finder #
###############################################################################
# Finder: allow quitting via ⌘ + Q; doing so will also hide desktop icons
defaults write com.apple.finder QuitMenuItem -bool true
# Finder: disable window animations and Get Info animations
defaults write com.apple.finder DisableAllAnimations -bool true
# Set Desktop as the default location for new Finder windows
# For other paths, use `PfLo` and `file:///full/path/here/`
defaults write com.apple.finder NewWindowTarget -string "PfDe"
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/Desktop/"
# Show icons for hard drives, servers, and removable media on the desktop
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true
defaults write com.apple.finder ShowMountedServersOnDesktop -bool true
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true
# Finder: show hidden files by default
#defaults write com.apple.finder AppleShowAllFiles -bool true
# Finder: show all filename extensions
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# Finder: show status bar
defaults write com.apple.finder ShowStatusBar -bool true
# Finder: show path bar
defaults write com.apple.finder ShowPathbar -bool true
# Display full POSIX path as Finder window title
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
# When performing a search, search the current folder by default
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
# Disable the warning when changing a file extension
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
# Enable spring loading for directories
defaults write NSGlobalDomain com.apple.springing.enabled -bool true
# Remove the spring loading delay for directories
defaults write NSGlobalDomain com.apple.springing.delay -float 1
# Avoid creating .DS_Store files on network volumes
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
# Disable disk image verification
defaults write com.apple.frameworks.diskimages skip-verify -bool true
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true
# Automatically open a new Finder window when a volume is mounted
defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true
defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true
defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true
# Show item info near icons on the desktop and in other icon views
/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
# Show item info to the right of the icons on the desktop
/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:labelOnBottom false" ~/Library/Preferences/com.apple.finder.plist
# Enable snap-to-grid for icons on the desktop and in other icon views
/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
# Increase grid spacing for icons on the desktop and in other icon views
/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
# Increase the size of icons on the desktop and in other icon views
/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
# Use column view in all Finder windows by default
# Four-letter codes for the other view modes: `icnv`, `clmv`, `Flwv`
defaults write com.apple.finder FXPreferredViewStyle -string "clmv"
# Disable the warning before emptying the Trash
defaults write com.apple.finder WarnOnEmptyTrash -bool false
# Enable AirDrop over Ethernet and on unsupported Macs running Lion
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
# Enable the MacBook Air SuperDrive on any Mac
# sudo nvram boot-args="mbasd=1"
# Show the ~/Library folder
chflags nohidden ~/Library
# Remove Dropboxs green checkmark icons in Finder
# file=/Applications/Dropbox.app/Contents/Resources/emblem-dropbox-uptodate.icns
# [ -e "${file}" ] && mv -f "${file}" "${file}.bak"
# Expand the following File Info panes:
# “General”, “Open with”, and “Sharing & Permissions”
defaults write com.apple.finder FXInfoPanesExpanded -dict \
General -bool true \
OpenWith -bool true \
Privileges -bool true
###############################################################################
# Dock, Dashboard, and hot corners #
###############################################################################
# Enable highlight hover effect for the grid view of a stack (Dock)
defaults write com.apple.dock mouse-over-hilite-stack -bool true
# Set the icon size of Dock items to 36 pixels
defaults write com.apple.dock tilesize -int 36
# Change minimize/maximize window effect
# defaults write com.apple.dock mineffect -string "scale"
# Minimize windows into their applications icon
defaults write com.apple.dock minimize-to-application -bool true
# Enable spring loading for all Dock items
defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true
# Show indicator lights for open applications in the Dock
defaults write com.apple.dock show-process-indicators -bool true
# Wipe all (default) app icons from the Dock
# This is only really useful when setting up a new Mac, or if you dont use
# the Dock to launch apps.
#defaults write com.apple.dock persistent-apps -array
# Show only open applications in the Dock
#defaults write com.apple.dock static-only -bool true
# Dont animate opening applications from the Dock
defaults write com.apple.dock launchanim -bool false
# Speed up Mission Control animations
defaults write com.apple.dock expose-animation-duration -float 0.1
# Dont group windows by application in Mission Control
# (i.e. use the old Exposé behavior instead)
defaults write com.apple.dock expose-group-by-app -bool false
# Disable Dashboard
defaults write com.apple.dashboard mcx-disabled -bool true
# Dont show Dashboard as a Space
defaults write com.apple.dock dashboard-in-overlay -bool true
# Dont automatically rearrange Spaces based on most recent use
defaults write com.apple.dock mru-spaces -bool false
# Remove the auto-hiding Dock delay
defaults write com.apple.dock autohide-delay -float 0
# Remove the animation when hiding/showing the Dock
# defaults write com.apple.dock autohide-time-modifier -float 0
# Automatically hide and show the Dock
defaults write com.apple.dock autohide -bool true
# Make Dock icons of hidden applications translucent
defaults write com.apple.dock showhidden -bool true
###############################################################################
# Safari & WebKit #
###############################################################################
# Privacy: dont send search queries to Apple
defaults write com.apple.Safari UniversalSearchEnabled -bool false
defaults write com.apple.Safari SuppressSearchSuggestions -bool true
# Press Tab to highlight each item on a web page
defaults write com.apple.Safari WebKitTabToLinksPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks -bool true
# Show the full URL in the address bar (note: this still hides the scheme)
defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true
# Set Safaris home page to `about:blank` for faster loading
defaults write com.apple.Safari HomePage -string "about:blank"
# Prevent Safari from opening safe files automatically after downloading
defaults write com.apple.Safari AutoOpenSafeDownloads -bool false
# Allow hitting the Backspace key to go to the previous page in history
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool true
# Hide Safaris bookmarks bar by default
defaults write com.apple.Safari ShowFavoritesBar -bool false
# Hide Safaris sidebar in Top Sites
defaults write com.apple.Safari ShowSidebarInTopSites -bool false
# Disable Safaris thumbnail cache for History and Top Sites
defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2
# Enable Safaris debug menu
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
# Make Safaris search banners default to Contains instead of Starts With
defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false
# Remove useless icons from Safaris bookmarks bar
defaults write com.apple.Safari ProxiesInBookmarksBar "()"
# Enable the Develop menu and the Web Inspector in Safari
defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
# Add a context menu item for showing the Web Inspector in web views
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
###############################################################################
# Spotlight #
###############################################################################
# Hide Spotlight tray-icon (and subsequent helper)
sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
# Disable Spotlight indexing for any volume that gets mounted and has not yet
# been indexed before.
# Use `sudo mdutil -i off "/Volumes/foo"` to stop indexing any volume.
sudo defaults write /.Spotlight-V100/VolumeConfiguration Exclusions -array "/Volumes"
# Change indexing order and disable some search results
# Yosemite-specific search results (remove them if you are using OS X 10.9 or older):
# MENU_DEFINITION
# MENU_CONVERSION
# MENU_EXPRESSION
# MENU_SPOTLIGHT_SUGGESTIONS (send search queries to Apple)
# MENU_WEBSEARCH (send search queries to Apple)
# MENU_OTHER
defaults write com.apple.spotlight orderedItems -array \
'{"enabled" = 1;"name" = "APPLICATIONS";}' \
'{"enabled" = 1;"name" = "SYSTEM_PREFS";}' \
'{"enabled" = 1;"name" = "DIRECTORIES";}' \
'{"enabled" = 0;"name" = "PDF";}' \
'{"enabled" = 0;"name" = "FONTS";}' \
'{"enabled" = 0;"name" = "DOCUMENTS";}' \
'{"enabled" = 0;"name" = "MESSAGES";}' \
'{"enabled" = 0;"name" = "CONTACT";}' \
'{"enabled" = 0;"name" = "EVENT_TODO";}' \
'{"enabled" = 0;"name" = "IMAGES";}' \
'{"enabled" = 0;"name" = "BOOKMARKS";}' \
'{"enabled" = 0;"name" = "MUSIC";}' \
'{"enabled" = 0;"name" = "MOVIES";}' \
'{"enabled" = 0;"name" = "PRESENTATIONS";}' \
'{"enabled" = 0;"name" = "SPREADSHEETS";}' \
'{"enabled" = 0;"name" = "SOURCE";}' \
'{"enabled" = 0;"name" = "MENU_DEFINITION";}' \
'{"enabled" = 0;"name" = "MENU_OTHER";}' \
'{"enabled" = 0;"name" = "MENU_CONVERSION";}' \
'{"enabled" = 0;"name" = "MENU_EXPRESSION";}' \
'{"enabled" = 0;"name" = "MENU_WEBSEARCH";}' \
'{"enabled" = 0;"name" = "MENU_SPOTLIGHT_SUGGESTIONS";}'
# Load new settings before rebuilding the index
killall mds > /dev/null 2>&1
# Make sure indexing is enabled for the main volume
sudo mdutil -i on / > /dev/null
# Rebuild the index from scratch
sudo mdutil -E / > /dev/null
###############################################################################
# iTerm 2 #
###############################################################################
# Dont display the annoying prompt when quitting iTerm
defaults write com.googlecode.iterm2 PromptOnQuit -bool false
###############################################################################
# Time Machine #
###############################################################################
# Prevent Time Machine from prompting to use new hard drives as backup volume
defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true
# Disable local Time Machine backups
hash tmutil &> /dev/null && sudo tmutil disablelocal
###############################################################################
# Activity Monitor #
###############################################################################
# Show the main window when launching Activity Monitor
defaults write com.apple.ActivityMonitor OpenMainWindow -bool true
# Visualize CPU usage in the Activity Monitor Dock icon
defaults write com.apple.ActivityMonitor IconType -int 5
# Show all processes in Activity Monitor
defaults write com.apple.ActivityMonitor ShowCategory -int 0
# Sort Activity Monitor results by CPU usage
defaults write com.apple.ActivityMonitor SortColumn -string "CPUUsage"
defaults write com.apple.ActivityMonitor SortDirection -int 0
###############################################################################
# Address Book, Dashboard, iCal, TextEdit, and Disk Utility #
###############################################################################
# Use plain text mode for new TextEdit documents
defaults write com.apple.TextEdit RichText -int 0
# Open and save files as UTF-8 in TextEdit
defaults write com.apple.TextEdit PlainTextEncoding -int 4
defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4
# Enable the debug menu in Disk Utility
defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true
defaults write com.apple.DiskUtility advanced-image-options -bool true
###############################################################################
# Google Chrome & Google Chrome Canary #
###############################################################################
# Allow installing user scripts via GitHub Gist or Userscripts.org
defaults write com.google.Chrome ExtensionInstallSources -array "https://gist.githubusercontent.com/" "http://userscripts.org/*"
defaults write com.google.Chrome.canary ExtensionInstallSources -array "https://gist.githubusercontent.com/" "http://userscripts.org/*"
# Use the system-native print preview dialog
defaults write com.google.Chrome DisablePrintPreview -bool true
defaults write com.google.Chrome.canary DisablePrintPreview -bool true
# Expand the print dialog by default
defaults write com.google.Chrome PMPrintingExpandedStateForPrint2 -bool true
defaults write com.google.Chrome.canary PMPrintingExpandedStateForPrint2 -bool true
###############################################################################
# Transmission.app #
###############################################################################
# Dont prompt for confirmation before downloading
defaults write org.m0k.transmission DownloadAsk -bool false
# Trash original torrent files
defaults write org.m0k.transmission DeleteOriginalTorrent -bool true
# Hide the donate message
defaults write org.m0k.transmission WarningDonate -bool false
# Hide the legal disclaimer
defaults write org.m0k.transmission WarningLegal -bool false
###############################################################################
# Tweetbot.app #
###############################################################################
# Bypass the annoyingly slow t.co URL shortener
defaults write com.tapbots.TweetbotMac OpenURLsDirectly -bool true
###############################################################################
# Kill affected applications #
###############################################################################
for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
"Dock" "Finder" "Google Chrome" "Google Chrome Canary" "Mail" "Messages" \
"Opera" "Safari" "SizeUp" "Spectacle" "SystemUIServer" "Terminal" \
"Transmission" "Tweetbot" "Twitter" "iCal"; do
killall "${app}" &> /dev/null
done
echo "Done. Note that some of these changes require a logout/restart to take effect."

1
rcrc
View file

@ -1 +0,0 @@
EXCLUDES="README.md LICENSE Brewfile custom"

3
recipes/callisto Normal file
View file

@ -0,0 +1,3 @@
os/deb
editor/vim
shell/zsh

5
recipes/europa Normal file
View file

@ -0,0 +1,5 @@
os/macos
browser
editor/{emacs,neovim}
shell/zsh
vcs/*

6
recipes/ganymede Normal file
View file

@ -0,0 +1,6 @@
os/macos
browser
dev/*
editor/{emacs,neovim}
shell/zsh
vcs/*

7
recipes/io Normal file
View file

@ -0,0 +1,7 @@
os/arch
browser
docker
dev/*
editor/{emacs,neovim}
shell/zsh
vcs/*

3
recipes/remote Normal file
View file

@ -0,0 +1,3 @@
os/deb
shell/bash
editor/vim

7
recipes/thebe Normal file
View file

@ -0,0 +1,7 @@
os/arch
vcs/*
shell/zsh
editor/emacs
editor/neovim
dev/*
browser

0
shell/README.md Normal file
View file

14
shell/aliases.sh Normal file
View file

@ -0,0 +1,14 @@
alias q='exit'
alias clr='clear'
alias sudo='sudo '
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias -- -='cd -'
alias ls="${aliases[ls]:-ls} --group-directories-first"
alias l='ls -l'
alias ll='ls -la'
alias ln='ln -v' # verbose ln

3
shell/bash/README.md Normal file
View file

@ -0,0 +1,3 @@
# Bash
I use bash on remote debian/centOS systems where I can't install zsh.

1
shell/bash/aliases.bash Normal file
View file

@ -0,0 +1 @@
source $DOTFILES/shell/aliases.sh

45
shell/common.sh Normal file
View file

@ -0,0 +1,45 @@
#!/bin/bash
CACHE_DIR="$DOTFILES/shell/zsh/cache"
is-callable() { command -v "$1" >/dev/null; }
is-interactive() { [[ $- == *i* ]]; }
is-root() { [[ "$UID" -eq 0 ]]; }
is-ssh() { [[ "$SSH_CONNECTION" != '' ]]; }
info() { printf "\r[ \033[00;34m..\033[0m ] $1\n"; }
success() { printf "\r\033[2K[ \033[00;32mOK\033[0m ] $1\n"; }
fail() { printf "\r\033[2K[\033[0;31mFAIL\033[0m] $1\n"; echo; exit; }
load () { source "$DOTFILES/$*"; }
loadall () {
for file in "$DOTFILES"/$1/*.zsh;
do
source "$file"
done
}
cache() {
[ -z "$CACHE_DIR" ] && error "Cache not set!"
[ ! -d "$CACHE_DIR" ] && mkdir -p "$CACHE_DIR"
is-callable "$1" || return 1
local cache="${CACHE_DIR}/$1-$(basename $SHELL)"
if ! [[ -f "$cache" && -s "$cache" ]]; then
echo "Caching $1"
$@ > "$cache" 2> /dev/null
fi
source $cache
}
cache-clear() {
[ -d "$CACHE_DIR" ] && rm -f "$CACHE_DIR/*"
}
repo() {
if [ ! -d "$2" ];
then
git clone "https://github.com/$1" "$2"
fi
}

1
shell/fasd/fasd.zsh Normal file
View file

@ -0,0 +1 @@
cache fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install

21
shell/fasd/install Executable file
View file

@ -0,0 +1,21 @@
#!/bin/bash
case "$OSTYPE" in
darwin*)
brew install fasd
;;
linux*)
if [ -f /etc/arch-release ]
then
mkdir -p $HOME/build && cd $HOME/build
git clone https://aur.archlinux.org/fasd.git fasd
cd fasd
makepkg -sri
elif [ -f /etc/debian_version ];
then
sudo add-apt-repository ppa:aacebedo/fasd
sudo apt update
sudo apt install fasd
fi
;;
esac

View file

@ -123,11 +123,11 @@ set -g status-interval 30
set -g status-justify left
set -g status-right-length 100
set -g status-left-length 80
set -g status-left "#(~/.dotfiles/tmux/conf-status.sh left) "
set -g status-right "#(~/.dotfiles/tmux/conf-status.sh right) "
set -g status-left "#($DOTFILES/shell/tmux/scripts/conf-status.sh left) "
set -g status-right "#($DOTFILES/shell/tmux/scripts/conf-status.sh right) "
set -g window-status-format " #I #W:#T "
set -g window-status-current-format " #W:#T "
####
run-shell "~/.dotfiles/tmux/prefix_highlight.tmux"
run-shell "$DOTFILES/shell/tmux/scripts/prefix_highlight.tmux"

27
shell/tmux/aliases.zsh Normal file
View file

@ -0,0 +1,27 @@
alias ta='tmux attach'
alias tl='tmux ls'
if [ -n "$TMUX" ]; then
alias t='tmux'
alias tf='tmux find-window'
# Detach all other clients to this session
alias mine='tmux detach -a'
# Send command to other tmux window
tt() { tmux send-keys -t .+ C-u && tmux set-buffer "$*" && tmux paste-buffer -t .+ && tmux send-keys -t .+ Enter; }
# Create new session (from inside one)
tn() {
local name="${1:-`basename $PWD`}"
TMUX= tmux new-session -d -s "$name"
tmux switch-client -t "$name"
tmux display-message "Session #S created"
}
else
t() {
if (( $# > 0 )); then
tmux $@ || tmux attach -t main
else tmux new -s main; fi
}
# Start grouped session so I can be in two different windows in one session
tdup() { tmux new-session -t "${1:-`tmux display-message -p '#S'`}"; }
fi

13
shell/tmux/install Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
case "$OSTYPE" in
darwin*)
brew install tmux
;;
linux*)
if [ -f /etc/arch-release ]; then
sudo pacman -S tmux
elif [ -f /etc/debian-version ]; then
sudo apt-get install tmux
fi
esac

Some files were not shown because too many files have changed in this diff Show more