XMonad
roxterm
zshrc
Custom Scripts (scripts/ folder)
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
YCPRKUMAHYHNGCZF5FYN332QJXYUO7TPEIR5VQ5VMSBVVC3GIW4AC
WUTLDZ45C2Q6X72A3QQ2SEX2MRWOTW4WFYGW7655WECZRX4OHD6AC
YV3JNCHDYZYHHCSCA5EP4AB3JY7Z77UGR5BAJDONOUDMWQZYULCQC
RCTW4VQVWMZEYSBORRWDV6OPIE63XTYOWYZUADF37S26CLQSBVBQC
NLM7RUDTNDVPJK2JELSMKF7UR435LHIDBU3FEQL5XUJVATTES42QC
YR2TRQQAEELAEJLABFCOMUZRYEQE5Q5NIGQFQHQKB7MWM63JZUPQC
IMMB6ZKLCUL7UEXN4RGAGXWFIEOAYGBZ73C3R3G2XZX72D4RFMBAC
LLW2FQPVXSBPFNZ3AHXRNLKNPV626QR32TTW53YHTKJTWK2YOUMAC
#compdef symbcalc
_symbcalc() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments \
'1: :->template'
case $state in
template)
compadd `basename -a $SYMBCALC_TEMPLATES/* | sed 's/\.tmpl$//'`
esac
}
# Drudge Report Reader
# requires my rss2json script, my interface to python-goose, pandoc and my rss zsh plugin
check_drudge() {
rss2json http://www.drudgereportarchives.com/rss/popular.xml | jq '[.[0].entries[] | {title:.title, link:.link}]'
}
read_drudge() {
if [[ "$1" == "1" ]]; then
check_drudge | jq -r '.[0].link' | xargs goosify | dump_html
return 0
fi
unset choice
data=`check_drudge`
cmd='echo $data | jq ".[].title"'
if [[ "$1" == "" ]]; then
echo $data | jq '.[].title' | nl | head -n 10
elif [[ "$1" == "all" ]]; then
echo $data | jq '.[].title' | nl
else
echo $data | jq '.[].title' | nl | head -n "$1"
fi
echo -n "your choice? "
choice=-1
read choice
if [[ $choice == "" ]]; then
return
fi
echo $data | jq -r '.[].link' | sed -n "${choice}p" | xargs goosify | dump_html
}
alias current_news='read_drudge 1'
# Requires pandoc
pandoc_view() {
input="$2"
if [[ "$input" == "" ]]; then
input="-"
fi
pandoc -s -f "$1" -t man "$input" | man -l -
}
dump_html() {
pandoc_view html "$1"
}
dump_md() {
pandoc_view markdown "$1"
}
export SYMBCALC_TEMPLATES=$HOME/.symbcalc/templates
# Requires my pandoc functions
rss_firststory() {
rss2json "$1" | jq '.[].entries[0].content[].value' | json-destringify | dump_html -
}
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
#!/bin/bash
#
# Watches the folder or files passed as arguments to the script and when it
# detects a change it automatically refreshes the current selected Chrome tab or
# window.
#
# Usage:
# ./chrome-refresh.sh /folder/to/watch /some/folder/file_to_watch.html
TIME_FORMAT='%F %H:%M'
OUTPUT_FORMAT='%T Event(s): %e fired for file: %w. Refreshing.'
while inotifywait -q -r --timefmt "${TIME_FORMAT}" --format "${OUTPUT_FORMAT}" "$@"; do
CHROME_WINDOW_ID=$(xdotool search --onlyvisible --class google-chrome | head -1)
xdotool key --window $CHROME_WINDOW_ID 'ALT+1'
xdotool key --window $CHROME_WINDOW_ID 'CTRL+r'
done
#!/usr/bin/python3
import urllib.parse
import sys
for x in sys.argv[1:]:
print(urllib.parse.unquote(x))
#!/usr/bin/env zsh
pushd $HOME/github_repos
for x in `find -maxdepth 1 -type d | grep -v '^[.]$'`; do
pushd $x
if [[ -d .git ]]; then
git pull
fi
popd
done
popd
#!/usr/bin/python -u
from __future__ import print_function
import sys
import itertools
def file_iter(fil):
line = None
line = fil.readline()
while line != '':
yield line
line = fil.readline()
def row_iter(file_iter, split):
for line in file_iter:
yield line.split(split)
def chunk(itr, chunk_amount=25):
lst = itertools.cycle(itertools.chain([0]*chunk_amount, [1]*chunk_amount))
def grouper(key):
return lst.next()
return (list(x[1]) for x in itertools.groupby(itr, grouper))
def tabularize(fil, count, split):
itr = row_iter(file_iter(fil), split)
for chnk in chunk(itr, count):
maxlens = [map(len,x) for x in chnk]
maxlens = [max(x) for x in zip(*maxlens)]
for line in chnk:
print(' '.join(x.ljust(maxlens[idx]) for idx,x in enumerate(line)).rstrip())
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--count', nargs='?', default=25, type=int)
parser.add_argument('-s', '--split', nargs='?', default=None)
parser.add_argument('inp', nargs='?', default='-')
args = parser.parse_args()
inp = sys.stdin
if args.inp != '-':
inp = open(args.inp)
with inp:
try:
tabularize(inp, count=args.count, split=args.split)
except IOError, e:
if e.errno != 32: raise
#!/bin/zsh
export PATH=$HOME/bin:$PATH
# Load resources
xrdb -merge $HOME/.Xresources
# Set the background color<
xsetroot -solid black
xsetbg $HOME/.xmonad/cheatsheet.png
if [ -e $HOME/Pictures/backgrund.png ]; then
xloadimage -onroot -quiet $HOME/Pictures/background.png
fi
conky -bd
xscreensaver -no-splash &
# Set up an icon tray
trayer --edge top --align right --SetDockType true --SetPartialStrut true --expand true --width 10 --transparent true --tint 0x000000 --height 17 &
synergys
# notifications
dunst &
# dropbox
dropbox start &
btsync
# notes
tomboy &
# mixer
qasmixer -t &
# Fire up apps
$HOME/github_repos/shairport/shairport -a srv2 -o pulse -d | swap_variable SHAIRPORT_PID
sonata --hidden &
if [[ -x /usr/bin/nm-applet ]] ; then
nm-applet --sm-disable &
fi
eval `ssh-agent`
exec xmonad
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
vRH4
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
print args.name
proc = subprocess.call([GPG, "-r", "Fiddlerwoaroof <fiddler.wo.a.roof@gmail.com>", "-o", os.path.join(base, args.name[0]), "-e"])
print args.name
proc = subprocess.call([GPG, "-r", "Fiddlerwoaroof <fiddler.wo.a.roof@gmail.com>", "-o", os.path.join(base, args.name), "-e"])
proc = subprocess.call([GPG, "-r", "Fiddlerwoaroof <fiddler.wo.a.roof@gmail.com>", "-d", os.path.join(base, args.name[0])])
print args.name
proc = subprocess.call([GPG, "-r", "Fiddlerwoaroof <fiddler.wo.a.roof@gmail.com>", "-d", os.path.join(base, args.name)])
elif args.list:
files = os.listdir(base)
max_itm = max(len(x) for x in files)
for x in range(len(files)/3 + 1):
items = files[x*3:(x+1)*3]
print ' '.join(item.rjust(max_itm+3) for item in items)
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<interface>
<requires lib="gtk+" version="3.12"/>
<object class="GtkImage" id="evalImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-execute</property>
</object>
<object class="GtkImage" id="goImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-media-play</property>
</object>
<object class="GtkListStore" id="historyModel">
<columns>
<!-- column-name item -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkApplicationWindow" id="mainWindow">
<property name="can_focus">False</property>
<property name="title" translatable="yes">pyBrowse</property>
<property name="default_width">500</property>
<property name="default_height">600</property>
<property name="show_menubar">False</property>
<child>
<object class="GtkBox" id="topBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkEntry" id="goTxt">
<property name="visible">True</property>
<property name="can_focus">True</property>
<signal name="activate" handler="goBtn_clicked_cb" object="goTxt" swapped="yes"/>
<accelerator key="l" signal="grab-focus" modifiers="GDK_CONTROL_MASK"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="goBtn">
<property name="label">_Go</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">goImage</property>
<property name="use_underline">True</property>
<signal name="clicked" handler="goBtn_clicked_cb" object="goTxt" swapped="yes"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow" id="mainview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkComboBox" id="combobox1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">historyModel</property>
<property name="button_sensitivity">on</property>
<property name="has_entry">True</property>
<property name="entry_text_column">0</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
<child internal-child="entry">
<object class="GtkEntry" id="evalTxt">
<property name="can_focus">True</property>
<property name="placeholder_text" translatable="yes"><python code here></property>
<signal name="activate" handler="evalBtn_clicked_cb" object="evalTxt" swapped="yes"/>
<accelerator key="e" signal="grab-focus" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="evalBtn">
<property name="label" translatable="yes">_Eval</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="image">evalImage</property>
<property name="use_underline">True</property>
<signal name="clicked" handler="evalBtn_clicked_cb" object="evalTxt" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
#!/usr/bin/env python3.4
from gi.repository import Gtk, WebKit
import os.path
print(__file__)
basepath = os.path.dirname(__file__)
builder = Gtk.Builder()
builder.add_from_file(os.path.join(basepath,"pybrowse.glade"))
window = builder.get_object("mainWindow")
webview = WebKit.WebView()
def onLoad(webview, stat_type):
if webview.get_load_status() == WebKit.LoadStatus.FINISHED:
builder.get_object("goTxt").set_text(webview.get_uri())
window.set_title(webview.get_title())
webview.connect("notify::load-status", onLoad)
mv = builder.get_object("mainview")
mv.add(webview)
class SigHandler(object):
eval_model = builder.get_object('historyModel')
def goBtn_clicked_cb(self, v):
print(self,v)
webview.load_uri(v.get_text())
eval_locals = dict()
def evalBtn_clicked_cb(self, v):
txt = v.get_text()
exec(txt, globals(), self.eval_locals)
self.eval_model.append([txt])
def row_activated(self, s, *a):
model, itr = s.get_selected()
eval_txt = builder.get_object('evalTxt')
eval_txt.set_text(model[itr][0])
eval_txt.grab_focus()
def row_added(self, *a):
print('row_added')
print(a)
builder.connect_signals(SigHandler())
window.connect("delete-event", Gtk.main_quit)
window.show_all()
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('uri', nargs='?', default='http://google.com')
args = parser.parse_args()
import urllib.parse
def fix_uri(uri):
if '://' not in uri:
uri = 'http://%s' % uri
return uri
webview.load_uri(fix_uri(args.uri))
Gtk.main()
#!/bin/zsh
# We have to supress less and grep for the pattern to work accurately
if [[ $1 == "" ]]; then
ps ax | egrep -v '(grep|pslist|less)' | less
else
ps ax | egrep -v '(grep|pslist|less)' | less -p $*
fi
#!/bin/zsh
COMMAND=
case $1 in
next)
COMMAND=next
;;
prev)
COMMAND=prev
;;
pause)
COMMAND=pause
;;
play)
COMMAND=play
;;
esac
zenity --info --text="`mpc $COMMAND`"
line = line.split()
if line == []: continue
elif line[0] == 'import':
qualified = line[1] == 'qualified'
module = line[1]
if qualified: module = line[2]
lines.append(((1 if qualified else 0), module, len(module.split('.')), line))
else:
raise ValueError('Can\'t handle lines without import statements')
line = line.split()
if line == []: continue
elif line[0] == 'import':
qualified = line[1] == 'qualified'
module = line[1]
if qualified: module = line[2]
lines.append(((1 if qualified else 0), module, len(module.split('.')), line))
else:
raise ValueError('Can\'t handle lines without import statements')
#!/usr/bin/env python2
import goose
import lxml
import argparse
p = argparse.ArgumentParser()
p.add_argument('url')
args = p.parse_args()
g = goose.Goose()
a = g.extract(args.url)
print lxml.html.tostring(a.doc)
#!/usr/bin/env python
from __future__ import print_function
import sys
import base64
import os
outfn = os.getenv('OUTFILE', os.path.join(os.getenv('HOME'), '.ctextfile'))
basename = os.path.basename(sys.argv[0])
def fiter(fil):
line = None
while line != '':
line = fil.readline()
yield line
if basename == 'ctext':
dat = sys.stdin.read()
dat = base64.b64encode(dat)
with open(outfn, 'a') as f:
print('%%',file=f)
print(dat,file=f)
elif basename == 'ptext':
jmplist = []
with open(outfn, 'r') as f:
for line in fiter(f):
if line.strip() == '%%':
jmplist.append(f.tell()) # We want the pos __after__ the separator
if jmplist:
f.seek(jmplist[-1],0)
dat = f.read().strip()
print(base64.b64decode(dat),end='')
else:
raise ValueError('Empty Clipboard!')
else:
print('Bad argv[0]', sys.argv[0])
[roxterm colour scheme]
foreground=#838394949696
background=#00002b2b3636
0=#070736364242
1=#dcdc32322f2f
2=#858599990000
3=#b5b589890000
4=#26268b8bd2d2
5=#d3d336368282
6=#2a2aa1a19898
7=#eeeee8e8d5d5
8=#00002b2b3636
9=#cbcb4b4b1616
10=#58586e6e7575
11=#65657b7b8383
12=#838394949696
13=#6c6c7171c4c4
14=#9393a1a1a1a1
15=#fdfdf6f6e3e3
16=#4c4c4c4c4c4c
17=#a8a830303030
18=#202088882020
19=#a8a888880000
20=#555555559898
21=#888830308888
22=#303088888888
23=#d8d8d8d8d8d8
cursor=#9393a1a1a1a1
palette_size=16
[roxterm colour scheme]
foreground=#838394949696
background=#00002b2b3636
0=#070736364242
1=#dcdc32322f2f
2=#858599990000
3=#b5b589890000
4=#26268b8bd2d2
5=#d3d336368282
6=#2a2aa1a19898
7=#eeeee8e8d5d5
8=#00002b2b3636
9=#cbcb4b4b1616
10=#58586e6e7575
11=#65657b7b8383
12=#838394949696
13=#6c6c7171c4c4
14=#9393a1a1a1a1
15=#fdfdf6f6e3e3
16=#4c4c4c4c4c4c
17=#a8a830303030
18=#202088882020
19=#a8a888880000
20=#555555559898
21=#888830308888
22=#303088888888
23=#d8d8d8d8d8d8
cursor=#9393a1a1a1a1
palette_size=16