Merge pull request #2 from adamveld12/debian-based

Debian based
pull/5/head
Adam Veldhousen 5 years ago committed by GitHub
commit 650f37c07d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,5 @@
Downloads ~/Downloads
Go ~/projects/go/src/github.com
Home ~/
Work ~/projects/work
Projects ~/projects

@ -0,0 +1,195 @@
#!/bin/bash
#vim: set ft=sh
# Determine size of a file or total size of a directory
function fs() {
if du -b /dev/null > /dev/null 2>&1; then
local arg=-sbh;
else
local arg=-sh;
fi
if [[ -n "$@" ]]; then
du $arg -- "$@";
else
du $arg .[^.]* *;
fi;
}
# Create a .tar.gz archive, using `zopfli`, `pigz` or `gzip` for compression
function targz() {
local tmpFile="${@%/}.tar";
tar -cvf "${tmpFile}" --exclude=".DS_Store" "${@}" || return 1;
size=$(
stat -f"%z" "${tmpFile}" 2> /dev/null; # OS X `stat`
stat -c"%s" "${tmpFile}" 2> /dev/null # GNU `stat`
);
local cmd="";
if (( size < 52428800 )) && hash zopfli 2> /dev/null; then
# the .tar file is smaller than 50 MB and Zopfli is available; use it
cmd="zopfli";
else
if hash pigz 2> /dev/null; then
cmd="pigz";
else
cmd="gzip";
fi;
fi;
echo "Compressing .tar using \`${cmd}\`…";
"${cmd}" -v "${tmpFile}" || return 1;
[ -f "${tmpFile}" ] && rm "${tmpFile}";
echo "${tmpFile}.gz created successfully.";
}
# Create a new directory and enter it
function mkd() {
mkdir -p "$@" && cd "$_";
}
# runs vim outside of the term by forking the command and gvim, great for my windows box
function vd(){
if [[ $# -eq 0 ]]; then
gvim &
else
gvim --remote-tab-silent "$@" &
fi
}
# `v` with no arguments opens the current directory in Vim, otherwise opens the
# given location
function v(){
if [[ $# -eq 0 ]]; then
vim .;
else
vim --remote-tab-silent "$@";
fi
}
# `s` with no arguments opens the current directory in Sublime Text, otherwise
# opens the given location
function s() {
if [ $# -eq 0 ]; then
subl .;
else
subl "$@";
fi;
}
# delete merged local branches
function prunelocal(){
for b in `git branch --merged | grep -v \*`; do git branch -D $b; done
}
# generates a public key from a private key
function pubkey(){
if [[ -z $1 ]]; then
echo "Takes a path to a private key and prints a compatible public key to stdout"
echo "$1 required: path to a private key"
return -1
fi
ssh-keygen -y -f $1
}
# list network interfaces
function interfaces(){
ifconfig | grep "\: flags" | awk '{print $1}' | sed 's/:$//';
}
# Create a git.io short URL
function gitio() {
if [ -z "${1}" -o -z "${2}" ]; then
echo "Usage: \`gitio slug url\`";
return 1;
fi;
curl -i http://git.io/ -F "url=${2}" -F "code=${1}";
}
# kill the process using the specified port
function freeport(){
if [ -z $1 ]; then
echo "usage: freeport <port number>" >&2
return 1
fi
lsof -t -i tcp:$1 | xargs kill
}
# runs tcp dump on the port specified in $1. $1 defaults to 8080
function dumptcp(){
local DUMPPORT=$1
local DUMPINTERFACE=$2
if [ -z "$1" ]; then
DUMPPORT=8080
elif [[ "$1" == "help" ]]; then
echo "dumps tcp info at the specified port. Useful for looking at http requests"
echo "usage dumptcp <port>"
return 1
fi
if [ -z "$2" ]; then
DUMPINTERFACE=lo0
fi
echo "dumping tcp connections @ $DUMPINTERFACE on port $DUMPPORT..."
sudo tcpdump -s 0 -A -i $DUMPINTERFACE "tcp port $DUMPPORT and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)"
}
# Run `dig` and display the most useful info
function digga() {
dig +nocmd "$1" any +multiline +noall +answer;
}
# Simple calculator
function calc() {
local result="";
result="$(printf "scale=10;$*\n" | bc --mathlib | tr -d '\\\n')";
# └─ default (when `--mathlib` is used) is 20
#
if [[ "$result" == *.* ]]; then
# improve the output for decimal numbers
printf "$result" |
sed -e 's/^\./0./' # add "0" for cases like ".5"` \
-e 's/^-\./-0./' # add "0" for cases like "-.5"`\
-e 's/0*$//;s/\.$//'; # remove trailing zeros
else
printf "$result";
fi;
printf "\n";
}
# a shortcut for cloning from github
# usage: clone user/repo <dir>
function clone() {
if [ -z "$1" ]; then
echo "Missing git repository url ending"
echo "usage: clone 'git repository ending' ['target directory name']"
else
giturl="git@github.com:$1.git"
if [ -z "$2" ]; then
# we DON'T HAVE a target directory
git clone $giturl
else
# we HAVE a target directory
git clone $giturl $2
fi
fi
}
# Create a data URL from a file
function dataurl() {
local mimeType=$(file -b --mime-type "$1");
if [[ $mimeType == text/* ]]; then
mimeType="${mimeType};charset=utf-8";
fi
echo "data:${mimeType};base64,$(openssl base64 -in "$1" | tr -d '\n')";
}

@ -22,5 +22,5 @@ Host *
TCPKeepAlive yes
# refer to: https://github.com/FiloSottile/whosthere/blob/master/README.md
PubkeyAuthentication no
PubkeyAuthentication yes
IdentitiesOnly yes

@ -55,7 +55,7 @@ fi
echo ""
echo "setting up ssh default"
# a check to see if they're using a config file and if it has a host setup
if [ -f "${dest}/.ssh/config" && -z $(cat "${dest}/.ssh/config" | grep "[hH]ost \*") ]; then
if [ -f "${dest}/.ssh/config" && -z $(cat "${dest}/.ssh/config" | grep '[hH]ost \*') ]; then
echo "Appending ssh config"
# we append it so we don't destroy any custom settings they may have
cat "${source}/.ssh/config" >> "${dest}/.ssh/config"
@ -68,6 +68,8 @@ else
fi
mkdir -p ${dest}/projects/
echo ""
echo "installing platform stuff"
if [ $(uname -s) == "Darwin" ]; then
@ -78,11 +80,9 @@ if [ $(uname -s) == "Darwin" ]; then
sudo ./install/.osx
#rake
#~/tools/vim/bundle/YouCompleteMe/install.py --all
elif [ $(uname -s) == "Linux" ]; then
echo "installing linux stuff"
sudo ./install/debian.sh
${source}/install/debian.sh
elif [ $(uname -o) == "Msys" ]; then
echo "If you would like to install vim plugins, ensure you have ruby 1.9.3 + rake installed and do the following:"
@ -101,13 +101,31 @@ elif [ $(uname -o) == "Msys" ]; then
echo "go to $dest/fonts_to_install, select all of the font files and right-click -> install"
fi
mkdir ~/.extensions
cat <<EOF >~/.extensions/README.md
if [ -d "${dest}/.extensions" ]; then
echo "${dest}/.extensions exists"
else
mkdir ${dest}/.extensions
cat <<EOF >~/.extensions/README.md
# Extensions
All script files in this folder get loaded by the .profile, so this is a nice place to organize plugins
or enhancements to the dotfile setup
EOF
fi
rbenv install 1.9.3-p125;
rbenv global 1.9.3-p125;
rbenv rehash
rm -rf ${dest}/tools/modules/iTerm2-Color-Schemes
rm -rf ${dest}/tools/modules/tmux-MacOSX-pasteboard
#./tools/vim/bundle/YouCompleteMe/install.py --all &
rake
echo "You must install YouCompleteMe by going to ~/tools/vim/bundle/YouCompleteMe/ and following the instructions in the README.md"
if [ -f "~/.bashrc" ]; then
echo "sourcing .profile in .bashrc"

@ -0,0 +1,57 @@
// Place your key bindings in this file to overwrite the defaults
[
{
"key": "ctrl+shift+alt+y",
"command": "extension.vim_ctrl+y",
"when": "editorTextFocus && vim.active && vim.use<C-y> && !inDebugRepl"
},
{
"key": "ctrl+y",
"command": "-extension.vim_ctrl+y",
"when": "editorTextFocus && vim.active && vim.use<C-y> && !inDebugRepl"
},
{
"key": "ctrl+y",
"command": "redo",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+y",
"command": "-redo",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+w",
"command": "-extension.vim_ctrl+w",
"when": "editorTextFocus && vim.active && vim.use<C-w> && !inDebugRepl"
},
{
"key": "ctrl+w",
"command": "-workbench.action.closeWindow",
"when": "!editorIsOpen"
},
{
"key": "ctrl+shift+]",
"command": "editor.action.goToDeclaration",
"when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
},
{
"key": "f12",
"command": "-editor.action.goToDeclaration",
"when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
},
{
"key": "ctrl+n",
"command": "workbench.action.files.newUntitledFile"
},
{
"key": "ctrl+\\",
"command": "workbench.action.terminal.split",
"when": "terminalFocus"
},
{
"key": "ctrl+k ctrl+i",
"command": "editor.action.showHover",
"when": "editorTextFocus"
}
]

@ -0,0 +1,72 @@
{
"terminal.integrated.shellArgs.linux": ["--login"],
"terminal.integrated.shellArgs.osx": ["--login"],
"terminal.integrated.fontFamily": "'Ubuntu Mono derivative Powerline', 'Fira Code Retina:style=Retina', 'PragmataPro', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'",
"terminal.integrated.fontSize": 14,
"editor.renderWhitespace": "boundary",
"editor.formatOnType": true,
"editor.formatOnPaste": true,
"editor.fontFamily": "'Fira Code Retina', 'Fira Code', 'PragmataPro'",
"editor.fontSize": 14,
"editor.codeLens": true,
"editor.fontLigatures": true,
"editor.hideCursorInOverviewRuler": true,
"editor.rulers": [120],
"eslint.alwaysShowStatus": true,
"eslint.autoFixOnSave": true,
"eslint.enable": true,
"[markdown]": {
"editor.wordWrap": "off",
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": false
}
},
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/node_modules": true
},
"git.enableCommitSigning": true,
"git.autofetch": true,
"git.autorefresh": true,
"go.testOnSave": true,
"go.lintOnSave": "package",
"go.autocompleteUnimportedPackages": false,
"go.formatTool": "goreturns",
"prettier.eslintIntegration": true,
"prettier.tabWidth": 4,
"window.openFilesInNewWindow": "on",
"telemetry.enableTelemetry": false,
"vim.leader": ",",
"vim.surround": true,
"vim.useSystemClipboard": true,
"workbench.colorTheme": "Cobalt2",
"window.zoomLevel": 0,
"workbench.activityBar.visible": true,
"workbench.editor.enablePreview": false,
"workbench.editor.enablePreviewFromQuickOpen": false,
"explorer.confirmDragAndDrop": false,
"explorer.confirmDelete": false,
"[javascript]": {
"editor.formatOnSave": true
},
"fs.inotify.max_user_watches":524288,
"gitlens.keymap": "alternate",
"gitlens.advanced.messages": {
"suppressCommitHasNoPreviousCommitWarning": false,
"suppressCommitNotFoundWarning": false,
"suppressFileNotUnderSourceControlWarning": false,
"suppressGitVersionWarning": false,
"suppressLineUncommittedWarning": true,
"suppressNoRepositoryWarning": false,
"suppressResultsExplorerNotice": false,
"suppressShowKeyBindingsNotice": true
},
"gitlens.historyExplorer.enabled": true,
"gitlens.mode.active": "review",
}

@ -0,0 +1,108 @@
#vim: set ft=sh
# basic configuration
backend = "glx";
vsync = "opengl-swc";
# GLX backend: GLX buffer swap method we assume.
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
# undefined is the slowest and the safest, and the default value.
# copy is fastest, but may fail on some drivers,
# 2-6 are gradually slower but safer (6 is still faster than 0).
# Usually, double buffer means 2, triple buffer means 3.
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
# Useless with --glx-use-copysubbuffermesa.
# Partially breaks --resize-damage.
# Defaults to undefined.
glx-swap-method = "3";
glx-no-stencil = true;
glx-copy-from-front = false;
xrender-sync = true;
xrender-sync-fence = true;
paint-on-overlay = true;
detect-rounded-corners = true;
#################################
# Shadows
#################################
# Enabled client-side shadows on windows.
shadow = true;
# Don't draw shadows on DND windows.
no-dnd-shadow = true;
# Avoid drawing shadows on dock/panel windows.
no-dock-shadow = true;
# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.
clear-shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 5;
# The left offset for shadows. (default -15)
shadow-offset-x = -5;
# The top offset for shadows. (default -15)
shadow-offset-y = -5;
# The translucency for shadows. (default .75)
shadow-opacity = 0.5;
# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
shadow-exclude = [
"! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'compton'",
"name *= 'Chromium'",
"name *= 'Chrome'",
"name *= 'Firefox'",
"name *= 'Visual'",
"name *= 'Slack'",
"name *= 'Insomnia'",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'"
];
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
shadow-ignore-shaped = false;
#################################
#
# Opacity
#
#################################
menu-opacity = 1;
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
alpha-step = 0.06;
# Dim inactive windows. (0.0 - 1.0)
# inactive-dim = 0.2;
# Do not let dimness adjust based on window opacity.
# inactive-dim-fixed = true;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
# blur-background = true;
# Blur background of opaque windows with transparent frames as well.
# blur-background-frame = true;
# Do not let blur radius adjust based on window opacity.
blur-background-fixed = false;
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'"
];
# transparancy settings for i3
opacity-rule = [
"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];

@ -0,0 +1,326 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "300x5-30+20"
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# Transient notifications ignore this setting.
idle_threshold = 60
### Text ###
font = Arial 16
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# When word_wrap is set to no, specify where to ellipsize long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Merge multiple notifications with the same content
stack_duplicates = true
# Hide the count of merged notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# C1616lose notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = ctrl+grave
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#888888"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "#285577"
foreground = "#ffffff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
# vim: ft=cfg

@ -0,0 +1,213 @@
# i3 config file (v4)
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
# This config file uses keycodes (bindsym) and was written for the QWERTY
# layout.
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
font pango:DejaVu Sans Mono 12
######################################################
# STARTUP
#######################################
# set dpi settings
exec_always xrandr --dpi 165
exec --no-startup-id compton --config ~/.config/compton/compton.conf -b
# startup gnome
exec --no-startup-id /usr/lib/gnome-setting-daemon/gsd-xsettings
exec_always --no-startup-id gnome-power-manager
# startup pulse audio controls
exec pa-applet
# set wallpaper
exec_always --no-startup-id nitrogen --head=0 --save --set-centered ~/Pictures/Wallpapers/landscapes/03886_paintedplains_3840x2160.jpg &
exec_always --no-startup-id nitrogen --head=1 --save --set-centered ~/Pictures/Wallpapers/landscapes/03886_paintedplains_3840x2160.jpg &
exec_always --no-startup-id nitrogen --head=2 --save --set-centered ~/Pictures/Wallpapers/landscapes/03886_paintedplains_3840x2160.jpg &
# start polybar
exec_always --no-startup-id ~/.config/i3/polybar.sh &
# connect to pritunl on i3 start
exec --no-startup-id pritunl-client enable 65adf618f9dc44b9818b558d1b84bdba && pritunl-client start 65adf618f9dc44b9818b558d1b84bdba
# tell dunst to use the custom dunstrc
exec --no-startup-id dunst -config ~/.config/dunst/dunstrc &
#############################
# BINDINGS
##############################
# audio controls
bindsym XF86AudioRaiseVolume exec amixer -q set Master 2%+ unmute
bindsym XF86AudioLowerVolume exec amixer -q set Master 2%- unmute
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
#Pause actually works as a play toggle for MPRIS interfaces.
bindsym XF86AudioPlay exec qdbus org.mpris.clementine /Player Pause
# start a terminal
bindsym Mod1+Return exec terminator
bindsym Mod1+Shift+i exec sudo insomnia
# start chrome with correct DPI settings
bindsym Mod1+Shift+Return exec google-chrome-stable --force-device-scale-factor=1.65 %U
# Sets up 2 external displays side by side, with the laptop display on the far right
bindsym Mod1+Shift+f exec xrandr --output DVI-I-2-1 --auto --left-of DVI-I-3-2 && sleep 1 && xrandr --output DVI-I-3-2 --auto --left-of eDP-1-1 && sleep 1 && xrandr --output eDP-1-1 --auto --primary --preferred
bindsym Mod1+Shift+g exec xrandr --output DVI-I-3-2 --auto --left-of DVI-I-2-1 && sleep 1 && xrandr --output DVI-I-2-1 --auto --left-of eDP-1-1 && sleep 1 && xrandr --output eDP-1-1 --auto --primary --preferred
# disconnects the 2 external monitors
bindsym Mod1+Shift+Ctrl+g exec xrandr --output DVI-I-3-2 --off && xrandr --output DVI-I-2-1 --off
bindsym Mod1+Shift+x move workspace to output right
# turn off laptop monitor
bindsym Mod1+Shift+~ exec xrandr --output eDP-1-1 --off
# start/stop pritunl
bindsym Mod1+Shift+v exec pritunl-client start 65adf618f9dc44b9818b558d1b84bdba
bindsym Mod1+Shift+Ctrl+v exec pritunl-client stop 65adf618f9dc44b9818b558d1b84bdba
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that installed.
bindsym Mod1+d exec --no-startup-id i3-dmenu-desktop
# reload the configuration file
bindsym Mod1+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym Mod1+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym Mod1+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# move the currently focused window to the scratchpad
bindsym Mod1+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym Mod1+minus scratchpad show
# split in horizontal orientation
bindsym Mod1+i split h
# split in vertical orientation
bindsym Mod1+s split t
# enter fullscreen mode for the focused container
bindsym Mod1+f fullscreen toggle
# use Mouse+Mod1 to drag floating windows to their wanted position
floating_modifier Mod1
# kill focused window
bindsym Mod1+Shift+q kill
# use these keys for focus, movement, and resize directions when reaching for
# the arrows is not convenient
set $left h
set $down j
set $up k
set $right l
# change focus
bindsym Mod1+$left focus left
bindsym Mod1+$down focus down
bindsym Mod1+$up focus up
bindsym Mod1+$right focus right
# alternatively, you can use the cursor keys:
bindsym Mod1+Left focus left
bindsym Mod1+Down focus down
bindsym Mod1+Up focus up
bindsym Mod1+Right focus right
# move focused window
bindsym Mod1+Shift+$left move left
bindsym Mod1+Shift+$down move down
bindsym Mod1+Shift+$up move up
bindsym Mod1+Shift+$right move right
# alternatively, you can use the cursor keys:
bindsym Mod1+Shift+Left move left
bindsym Mod1+Shift+Down move down
bindsym Mod1+Shift+Up move up
bindsym Mod1+Shift+Right move right
# change container layout (stacked, tabbed, toggle split)
bindsym Mod1+e layout stacking
bindsym Mod1+w layout tabbed
bindsym Mod1+q layout toggle split
# toggle tiling / floating
bindsym Mod1+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym Mod1+space focus mode_toggle
# focus the parent container
bindsym Mod1+a focus parent
# focus the child container
#bindsym Mod1+d focus child
# switch to workspace
bindsym Mod1+1 workspace 1
bindsym Mod1+2 workspace 2
bindsym Mod1+3 workspace 3
bindsym Mod1+4 workspace 4
bindsym Mod1+5 workspace 5
bindsym Mod1+6 workspace 6
bindsym Mod1+7 workspace 7
bindsym Mod1+8 workspace 8
bindsym Mod1+9 workspace 9
bindsym Mod1+0 workspace 10
# move focused container to workspace
bindsym Mod1+Shift+1 move container to workspace 1
bindsym Mod1+Shift+2 move container to workspace 2
bindsym Mod1+Shift+3 move container to workspace 3
bindsym Mod1+Shift+4 move container to workspace 4
bindsym Mod1+Shift+5 move container to workspace 5
bindsym Mod1+Shift+6 move container to workspace 6
bindsym Mod1+Shift+7 move container to workspace 7
bindsym Mod1+Shift+8 move container to workspace 8
bindsym Mod1+Shift+9 move container to workspace 9
bindsym Mod1+Shift+0 move container to workspace 10
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym $left resize shrink width 5 px or 5 ppt
bindsym $down resize grow height 5 px or 5 ppt
bindsym $up resize shrink height 5 px or 5 ppt
bindsym $right resize grow width 5 px or 5 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 5 px or 5 ppt
bindsym Down resize grow height 5 px or 5 ppt
bindsym Up resize shrink height 5 px or 5 ppt
bindsym Right resize grow width 5 px or 5 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym Mod1+r mode "resize"
# finds out, if available)
#bar {
#status_command i3status
#}

@ -0,0 +1,8 @@
#!/bin/bash
killall -q polybar
while pgrep -x polybar >/dev/null; do sleep 1; done
MONITOR=eDP-1-1 polybar bar1 &
MONITOR=DVI-I-3-2 polybar bar1 &
MONITOR=DVI-I-2-1 polybar bar1 &

@ -0,0 +1,14 @@
[xin_0]
file=/home/adam/Pictures/Wallpapers/wallhaven-553335.jpg
mode=2
bgcolor=#6a8397
[xin_1]
file=/home/adam/Pictures/Wallpapers/wallhaven-553335.jpg
mode=2
bgcolor=#6a8397
[xin_2]
file=/home/adam/Pictures/Wallpapers/wallhaven-553335.jpg
mode=2
bgcolor=#6a8397

@ -0,0 +1,12 @@
[geometry]
posx=0
posy=24
sizex=1916
sizey=2134
[nitrogen]
view=icon
recurse=true
sort=alpha
icon_caps=true
dirs=/home/adam/Pictures/Wallpapers;

@ -0,0 +1,383 @@
;=====================================================
;
; To learn more about how to configure Polybar
; go to https://github.com/jaagr/polybar
;
; The README contains alot of information
;
;=====================================================
[colors]
;background = ${xrdb:color0:#222}
background = #222
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
[bar/bar1]
monitor = ${env:MONITOR:eDP-1-1}
width = 100%
height = 45
;offset-x = 1%
;offset-y = 1%
radius = 0
fixed-center = false
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3
line-color = #f00
border-size = 0
border-color = #00000000
padding-left = 5
padding-right = 5
module-margin-left = 1
module-margin-right = 2
font-0 = fixed:pixelsize=18;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=18;1
modules-left = bspwm i3 powermenu
modules-center = mpd
modules-right = filesystem volume cpu memory temperature battery wlan eth date
bottom = true
tray-position = right
tray-padding = 4
tray-transparent = false
;tray-background = #0063ff
;wm-restack = bspwm
;wm-restack = i3
;override-redirect = true
;scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev
;scroll-up = i3wm-wsnext
;scroll-down = i3wm-wsprev
cursor-click = pointer
cursor-scroll = ns-resize
[module/xwindow]
type = internal/xwindow
label = %title:0:30:...%
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-prefix-underline = ${colors.secondary}
label-layout = %layout%
label-layout-underline = ${colors.secondary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-background = ${colors.secondary}
label-indicator-underline = ${colors.secondary}
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground-alt}
[module/bspwm]
type = internal/bspwm
label-focused = %index%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.primary}
label-focused-padding = 2
label-occupied = %index%
label-occupied-padding = 2
label-urgent = %index%!
label-urgent-background = ${colors.alert}
label-urgent-padding = 2
label-empty = %index%
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2
[module/i3]
type = internal/i3
format = <label-state> <label-mode>
index-sort = true
wrapping-scroll = false
; Only show workspaces on the same output as the bar
;pin-workspaces = false
label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.primary}
; focused = Active workspace on focused monitor
label-focused = %index%
label-focused-background = ${module/bspwm.label-focused-background}
label-focused-underline = ${module/bspwm.label-focused-underline}
label-focused-padding = ${module/bspwm.label-focused-padding}
; unfocused = Inactive workspace on any monitor
label-unfocused = %index%
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
; visible = Active workspace on unfocused monitor
label-visible = %index%
label-visible-background = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-underline}
label-visible-padding = ${self.label-focused-padding}
; urgent = Workspace with urgency hint set
label-urgent = %index%
label-urgent-background = ${module/bspwm.label-urgent-background}
label-urgent-padding = ${module/bspwm.label-urgent-padding}
[module/mpd]
type = internal/mpd
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
icon-prev = 
icon-stop = 
icon-play = 
icon-pause = 
icon-next = 
label-song-maxlen = 25
label-song-ellipsis = true
[module/xbacklight]
type = internal/xbacklight
format = <label> <bar>
label = BL
bar-width = 10
bar-indicator = |
bar-indicator-foreground = #ff
bar-indicator-font = 2
bar-fill = ─
bar-fill-font = 2
bar-fill-foreground = #9f78e1
bar-empty = ─
bar-empty-font = 2
bar-empty-foreground = ${colors.foreground-alt}
[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #4bffdc
label = %gb_used%/%gb_total%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #f90000
label = CPU: %percentage:2%%
[module/wlan]
type = internal/network
interface = wlp110s0
interval = 1.0
label-connected = wlan: '%essid%' - %local_ip% - U-%upspeed% D-%downspeed%
format-connected = <ramp-signal> <label-connected>
format-connected-underline = #9f78e1
;format-disconnected =
format-disconnected = <label-disconnected>
format-disconnected-underline = ${self.format-connected-underline}
label-disconnected = %ifname% disconnected
label-disconnected-foreground = ${colors.foreground-alt}
ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-3 = 
ramp-signal-4 = 
ramp-signal-foreground = ${colors.foreground-alt}
[module/network]
type = internal/network
interface = enp109s0f1
;interface = enx8cae5cec01dd
interval = 3.0
format-connected-underline = #55aa55
;format-connected-prefix = " "
format-connected-prefix-foreground = ${colors.foreground-alt}
label-connected = eth %local_ip%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}
[module/date]
type = internal/date
interval = 5
date = "%Y-%m-%d"
date-alt = " %Y-%m-%d"
time = %H:%M
time-alt = %H:%M:%S
format-prefix = 
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #0a6cf5
label = %time% %date%
[module/volume]
type = internal/volume
format-volume = <label-volume> <bar-volume>
label-volume = 🔊
label-volume-foreground = ${root.foreground}
format-muted-prefix = " "
format-muted-foreground = ${colors.foreground-alt}
label-muted = sound muted
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = true
bar-volume-indicator = |
bar-volume-indicator-font = 2
bar-volume-fill = ─
bar-volume-fill-font = 2
bar-volume-empty = ─
bar-volume-empty-font = 2
bar-volume-empty-foreground = ${colors.foreground-alt}
[module/battery]
type = internal/battery
battery = BAT0
adapter = AC
full-at = 98
label-charging = %percentage%% - charging
format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a
label-discharging = %percentage%% - %time% remaining
format-discharging = <ramp-capacity> <label-discharging>
format-discharging-underline = ${self.format-charging-underline}
label-full = Full
format-full-prefix = " "
format-full-prefix-foreground = ${colors.foreground-alt}
format-full-underline = ${self.format-charging-underline}
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-foreground = ${colors.foreground-alt}
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-foreground = ${colors.foreground-alt}
animation-charging-framerate = 1000
[module/temperature]
type = internal/temperature
thermal-zone = 0
warn-temperature = 70
format = <ramp> <label>
format-underline = #f50a4d
format-warn = <ramp> <label-warn>
format-warn-underline = ${self.format-underline}
label = %temperature%
label-warn = !!%temperature%!!
label-warn-foreground = ${colors.secondary}
ramp-0 = 
ramp-1 = 
ramp-2 = 
ramp-foreground = ${colors.foreground-alt}
[module/powermenu]
type = custom/menu
expand-right = true
format-spacing = 1
label-open = I/O
label-open-foreground = ${colors.secondary}
label-close =  cancel
label-close-foreground = ${colors.secondary}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}
menu-0-0 = reboot
menu-0-0-exec = menu-open-1
menu-0-1 = power off
menu-0-1-exec = menu-open-2
menu-1-0 = cancel
menu-1-0-exec = menu-open-0
menu-1-1 = reboot
menu-1-1-exec = shutdown -r now
menu-2-0 = power off
menu-2-0-exec = shutdown now
menu-2-1 = cancel
menu-2-1-exec = menu-open-0
[settings]
screenchange-reload = true
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over
[global/wm]
margin-top = 5
margin-bottom = 5
; vim:ft=dosini

@ -0,0 +1,61 @@
[global_config]
enabled_plugins = CustomCommandsMenu, LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
inactive_color_offset = 0.936073059361
suppress_multiple_term_dialog = True
title_inactive_bg_color = "#555753"
title_receive_bg_color = "#ce5c00"
title_transmit_bg_color = "#204a87"
[keybindings]
close_term = <Primary>w
close_window = <Primary><Shift>w
edit_tab_title = <Primary>F2
edit_terminal_title = F2
go_down = <Primary><Shift>j
go_left = <Primary><Shift>h
go_right = <Primary><Shift>l
go_up = <Primary><Shift>k
line_down = <Shift>Down
line_up = <Shift>Up
new_tab = <Primary>t
new_window = <Primary>n
next_tab = <Primary>Tab
search = <Primary>f
split_horiz = <Primary>s
split_vert = <Primary>i
ungroup_all = <Primary><Shift>g
ungroup_tab = <Primary><Shift>u
zoom_in = <Primary><Alt>equal
zoom_normal = <Primary><Alt>0
zoom_out = <Primary><Alt>minus
[layouts]
[[default]]
[[[child0]]]
fullscreen = False
last_active_term = 83e6ff1b-e9c5-4688-af8c-efb0ae56dd94
last_active_window = True
maximised = False
order = 0
parent = ""
position = 0:18
size = 1916, 2120
title = /bin/bash
type = Window
[[[terminal1]]]
order = 0
parent = child0
profile = default
type = Terminal
uuid = 83e6ff1b-e9c5-4688-af8c-efb0ae56dd94
[plugins]
[profiles]
[[default]]
background_darkness = 0.85
background_type = transparent
cursor_color = "#aaaaaa"
font = Ubuntu Mono derivative Powerline 18
foreground_color = "#ffffff"
login_shell = True
palette = "#000000:#cc0000:#4e9a06:#c4a000:#3465a4:#75507b:#06989a:#d3d7cf:#555753:#ef2929:#8ae234:#fce94f:#729fcf:#ad7fa8:#34e2e2:#eeeeec"
scrollback_infinite = True
use_system_font = False
visible_bell = True

@ -1,31 +1,92 @@
#!/bin/bash
if [ -d "${dest}/.config" ]; then
echo ".config exists"
else
mkdir -p "${dest}/.config"
if [ ! -d ${dest}/config ]; then
mkdir -p ${dest}/.config/
cp -R ${source}/config/ ${dest}/.config/
fi
cp -r ${source}/config/ ${dest}/.config/
sudo apt-get update && sudo apt-get install \
apt-get update && apt-get install -y \
build-essential \
bison \
checkinstall \
cargo \
cmake \
cmake-data \
compton \
curl \
nvm \
git \
i3-wm \
libunwind-dev \
libcairo2-dev \
libxcb1-dev \
libxcb-ewmh-dev \
libxcb-icccm4-dev \
libxcb-image0-dev \
libxcb-randr0-dev \
libxcb-util0-dev \
libxcb-xkb-dev \
libxcb-xrm-dev \
libasound2-dev \
libssl-dev \
libpulse-dev \
libmpdclient-dev \
libiw-dev \
libcurl4-openssl-dev \
libxcb-cursor-dev \
nitrogen \
pkg-config \
python-xcbgen \
python \
snap \
rbenv \
ruby-build \
rust \
terminator \
tmux \
wget \
git;
xcb-proto;
snap install slack;
curl https://raw.githubusercontent.com/creationix/nvm/v0.25.0/install.sh | bash
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.gvm/scripts/gvm
gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.5
cd ${dest}/projects
# install polybar
git clone --branch 3.1.0 --recursive https://github.com/jaagr/polybar polybar
cd ./polybar
./build.sh
cd ..
# install vim with all of the necessary features
git clone https://github.com/vim/vim vim
cd ./vim
./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp=yes \
--enable-python3interp=yes \
--enable-perlinterp=yes \
--enable-luainterp=yes \
--enable-gui=gtk2 \
--enable-cscope \
--prefix=/usr/local
rbenv install 1.9.3-p125;
rbenv global 1.9.3-p125;
make VIMRUNTUME=~/tools/vim/
rm -rf ~/tools/modules/iTerm2-Color-Schemes
rm -rf ~/tools/modules/tmux-MacOSX-pasteboard
checkinstall
cd ..
rake
git clone https://github.com/51v4n/i3-gnome i3-gnome
cd ./i3-gnome
make install
cd ..
echo "You must install YouCompleteMe by going to ~/tools/vim/bundle/YouCompleteMe/ and following the instructions in the README.md"
cd ${dest}

@ -5,10 +5,9 @@ vimFolder = "tools/vim"
bundles_dir = File.join("#{vimFolder}/bundle/")
pluginsFile = File.join("#{vimFolder}/plugins.txt")
CLOBBER.include "#{bundles_dir}"
CLEAN.include "#{bundles_dir}"
task :default => ['vim:reinstall']
task :default => ['clean', 'vim:reinstall']
namespace :vim do
@ -21,7 +20,7 @@ namespace :vim do
puts "Loading #{lines.length} plugins..."
lines.each { |source|
if source[0] != "#" then
loadTask = Rake::Task['vim:loadPlugin']
loadTask = Rake::Task['vim:downloadPlugin']
loadTask.invoke source.sub "\n", ''
loadTask.reenable()
end
@ -29,8 +28,8 @@ namespace :vim do
puts "Plugins installed!"
end
desc 'Loads a vim plugin from a git repo.'
task :loadPlugin, [:source] => "#{bundles_dir}" do |t, args|
desc 'downloads a vim plugin from a git repo.'
task :downloadPlugin, [:source] => "#{bundles_dir}" do |t, args|
raise "Must specify git repo to pull from." unless args.source not(nil)
dir = gitName args.source
puts "Installing #{dir}...."
@ -42,11 +41,11 @@ namespace :vim do
end
desc "installs a new plugin and adds it to #{vimFolder}/plugins.txt"
desc "downloads a new plugin and adds it to #{vimFolder}/plugins.txt"
task :install, [:sourceName] do |t, args|
raise "Must specify git repo to pull from." unless args.sourceName not(nil)
source = "git://github.com/#{args.sourceName}.git"
Rake::Task['vim:loadPlugin'].invoke source
Rake::Task['vim:downloadPlugin'].invoke source
puts "Adding to #{vimFolder}/plugins.txt"
File.open pluginsFile, 'a' do |file|
file.puts "#{source}\n"

@ -22,7 +22,7 @@ git://github.com/cakebaker/scss-syntax.vim.git
git://github.com/gorodinskiy/vim-coloresque.git
git://github.com/tpope/vim-dispatch.git
git://github.com/scrooloose/syntastic.git
git://github.com/OmniSharp/omnisharp-vim.git
git://github.com/kien/ctrlp.vim.git
git://github.com/Valloric/YouCompleteMe.git
git://github.com/nathanaelkane/vim-indent-guides.git
git://github.com/easymotion/vim-easymotion.git

Loading…
Cancel
Save