summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Minar <miminar@redhat.com>2013-11-03 09:15:51 +0100
committerMichal Minar <miminar@redhat.com>2013-11-03 09:15:51 +0100
commit4fce1308e61547e79b751de6e9259f7379af0fb5 (patch)
treeefd53c65fa0854dfba30fdcb365d5a33bf73389b
downloadrcs-4fce1308e61547e79b751de6e9259f7379af0fb5.zip
rcs-4fce1308e61547e79b751de6e9259f7379af0fb5.tar.gz
rcs-4fce1308e61547e79b751de6e9259f7379af0fb5.tar.xz
initial commit
-rw-r--r--.Xdefaults46
-rw-r--r--.bash_aliases112
-rw-r--r--.bash_logout6
-rw-r--r--.bash_profile18
-rw-r--r--.bashrc116
-rw-r--r--.cvsignore3
-rw-r--r--.gitconfig21
-rw-r--r--.gitignore_global25
-rw-r--r--.gvimrc9
-rw-r--r--.htoprc23
-rw-r--r--.inputrc41
-rw-r--r--.mplayer/config27
-rw-r--r--.profile26
-rw-r--r--.pythonrc16
-rw-r--r--.rpmmacros4
-rw-r--r--.tmux.conf67
-rw-r--r--.urxvt/ext/clipboard13
-rw-r--r--.urxvt/ext/url-select325
-rw-r--r--.vimrc10
-rw-r--r--.xscreensaver261
-rw-r--r--.zshrc34
21 files changed, 1203 insertions, 0 deletions
diff --git a/.Xdefaults b/.Xdefaults
new file mode 100644
index 0000000..a9ef4fa
--- /dev/null
+++ b/.Xdefaults
@@ -0,0 +1,46 @@
+! fonts ***********************************************************************
+URxvt.font : -*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*
+URxvt.keysym.M-C-1 : command:\033]710;-*-terminus-medium-r-*-*-12-*-*-*-*-*-*-*\007
+URxvt.keysym.M-C-2 : command:\033]710;-*-terminus-medium-r-*-*-14-*-*-*-*-*-*-*\007
+URxvt.keysym.M-C-3 : command:\033]710;-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*\007
+URxvt.keysym.M-C-4 : command:\033]710;-*-terminus-medium-r-*-*-18-*-*-*-*-*-*-*\007
+URxvt.keysym.M-C-5 : command:\033]710;-*-terminus-medium-r-*-*-20-*-*-*-*-*-*-*\007
+URxvt.keysym.M-C-6 : command:\033]710;-*-terminus-medium-r-*-*-22-*-*-*-*-*-*-*\007
+URxvt.keysym.M-C-7 : command:\033]710;-*-terminus-medium-r-*-*-24-*-*-*-*-*-*-*\007
+
+! colors **********************************************************************
+URxvt.background : #563B10
+URxvt.foreground : #f4c91c
+URxvt.color12 : #007FFF
+URxvt.keysym.M-C-b : command:\033]11;black\007\033]10;#f4c91c\007
+URxvt.keysym.M-C-d : command:\033]11;#563B10\007\033]10;#f4c91c\007
+URxvt.keysym.M-C-w : command:\033]11;white\007\033]10;black\007
+
+urxvt256c*.termName : rxvt-256color
+urxvt256c-ml*.termName : rxvt-256color
+
+! make a scrollbar that's nearly black
+URxvt.scrollBar : true
+URxvt.scrollBar_floating : true
+URxvt.scrollBar_right : true
+URxvt.scrollColor : #202020
+URxvt.scrollWithBuffer : true
+URxvt.saveLines : 8192
+URxvt.urgentOnBell : true
+URxvt.iconFile : /usr/share/icons/HighContrast/scalable/apps/utilities-terminal.svg
+
+URxvt.iso14755_52 : false
+
+! extensions ******************************************************************
+URxvt.perl-ext : default,url-select,matcher,clipboard
+! url-select setting
+URxvt.urlLauncher : /usr/local/bin/chrome
+URxvt.underlineURLs : true
+! matcher
+URxvt.matcher.button : 3
+
+! extension keys **************************************************************
+URxvt.keysym.M-C-c : perl:clipboard:copy
+URxvt.keysym.M-C-v : perl:clipboard:paste
+URxvt.keysym.M-C-e : perl:clipboard:paste_escaped
+URxvt.keysym.M-C-u : perl:url-select:select_next
diff --git a/.bash_aliases b/.bash_aliases
new file mode 100644
index 0000000..2d13992
--- /dev/null
+++ b/.bash_aliases
@@ -0,0 +1,112 @@
+alias ll='ls -alF'
+alias la='ls -A'
+alias l='ls -CF'
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+ alias ls='ls --color=auto'
+ alias dir='dir --color=auto'
+ alias vdir='vdir --color=auto'
+
+ alias grep='grep --color=auto'
+ alias fgrep='fgrep --color=auto'
+ alias egrep='egrep --color=auto'
+fi
+
+alias info='info --vi-keys'
+alias less='less -i'
+alias mplayer='mplayer -stop-xscreensaver'
+alias vim='vimx'
+alias scpnpw='scp -i ~/.ssh/id_rsa_nopw'
+alias sshnpw='ssh -i ~/.ssh/id_rsa_nopw'
+function gitroot() {
+ dir=`git rev-parse --show-toplevel`
+ usage="Usage: gitroot [-h | -p | -i]\n
+Options:\n -h print help\n -p push directory
+ -i just print the git root directory\n"
+ if [[ $# = 0 ]]; then
+ cd "$dir"
+ elif [[ $1 = -p ]]; then
+ shift
+ pushd $dir "$@"
+ elif [[ $1 = -h ]]; then
+ printf "$usage"
+ elif [[ $1 = -i ]]; then
+ echo $dir
+ elif [[ $1 =~ ^- ]]; then
+ printf "$usage" >2
+ return 1
+ else
+ cd "$dir/$1"
+ fi
+}
+
+
+function scp_konecny() {
+ scp -P3389 $@ root@217.197.144.71:/home/root
+}
+alias ssh_konecny="ssh -p3389 root@217.197.144.71"
+alias ssh_elko="ssh -p5522 michal@217.197.144.56"
+alias ssh_elko_x="ssh -p5522 -X michal@217.197.144.56"
+alias vlcvutbr="vlc --loop http://televize.kn.vutbr.cz/playlist"
+# convert czech subtitles to encoding cp1250
+alias convert_subtitles='enconv -L czech -x cp1250'
+
+function unrpm() {
+ rpm2cpio "$1" | cpio -idmv
+}
+
+function rxvtinfo() {
+ infocmp rxvt-256color | ssh $@ "mkdir -p .terminfo && cat >/tmp/ti && tic /tmp/ti"
+ infocmp rxvt-unicode-256color | ssh $@ "mkdir -p .terminfo && cat >/tmp/ti && tic /tmp/ti"
+}
+
+function vga_enable() {
+ /usr/local/bin/monitor-hotplug
+}
+
+function vga_disable() {
+ outs=`xrandr | grep -v '^LVDS1' | sed -n 's/^\([^ ]*\)\s\+connected\>.*/\1/p'`
+ for out in DP{1,2,3} HDMI{3,2,1} VGA1; do
+ if echo "$outs" | grep -q "$out"; then
+ echo "switching off external monitor $out"
+ xrandr --output "$out" --off --output LVDS1 --auto
+ xmonad --restart
+ monitor_found="$out"
+ break
+ fi
+ done
+ [[ -z "$monitor_found" ]] && echo "no external monitor found"
+}
+
+
+function swap() {
+ # swap two file name's
+ # http://stackoverflow.com/questions/1115904/shortest-way-to-swap-two-files-in-bash
+ tmpfile=$(mktemp $(dirname "$1")/XXXXXX)
+ mv "$1" "$tmpfile"
+ mv "$2" "$1"
+ mv "$tmpfile" "$2"
+}
+
+function abspath {
+ # convert relative path to absolute one
+ # http://www.linuxquestions.org/questions/programming-9/bash-script-return-full-path-and-filename-680368/page3.html#post4309783
+ if [[ -d "$1" ]]
+ then
+ pushd "$1" >/dev/null
+ pwd
+ popd >/dev/null
+ elif [[ -e $1 ]]
+ then
+ pushd $(dirname $1) >/dev/null
+ echo $(pwd)/$(basename $1)
+ popd >/dev/null
+ else
+ echo $1 does not exist! >&2
+ return 127
+ fi
+}
+
+# ex:ts=4:et:sw=4:ft=sh
diff --git a/.bash_logout b/.bash_logout
new file mode 100644
index 0000000..09df5b1
--- /dev/null
+++ b/.bash_logout
@@ -0,0 +1,6 @@
+# ~/.bash_logout: executed by bash(1) when login shell exits.
+
+# when leaving the console clear the screen to increase privacy
+if [ "$SHLVL" = 1 ]; then
+ [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
+fi
diff --git a/.bash_profile b/.bash_profile
new file mode 100644
index 0000000..6304c92
--- /dev/null
+++ b/.bash_profile
@@ -0,0 +1,18 @@
+# .bash_profile
+
+# Get the aliases and functions
+if [ -f ~/.bashrc ]; then
+ . ~/.bashrc
+fi
+
+# PATH variable modification
+# these paths are relative to $HOME directory; the latter, the higher priority
+paths=".local/bin/squeak/bin .cabal/bin .local/bin bin"
+for p in $paths; do
+ abs="$HOME/$p"
+ if [[ -d "$abs" ]] && echo "$PATH" | grep -qvF "$abs"; then
+ PATH="$abs:$PATH"
+ fi
+done
+unset paths abs
+export PATH
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..46c7874
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,116 @@
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+# Source global definitions
+if [ -f /etc/bashrc ]; then
+ . /etc/bashrc
+fi
+
+# environment settings ********************************************************
+export EDITOR=/usr/bin/vimx
+export PYTHONSTARTUP="$HOME/.pythonrc"
+export PYTHONPATH="$HOME/workspace/python_sandbox"
+export PYTHONDOCS="/usr/share/doc/python2.7-doc/html/"
+#export JAVA_HOME="/usr/lib/jvm/java-openjdk"
+#export JDK_HOME="$JAVA_HOME"
+#export _JAVA_AWT_WM_NONREPARENTING=1
+export RUBYOPT=rubygems
+export BROWSER=/usr/local/bin/chrome
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return # non-interactive shell
+
+# don't put duplicate lines in the history. See bash(1) for more options
+# ... or force ignoredups and ignorespace
+export HISTCONTROL=erasedups:ignorespace
+# single press of escape means cancel
+export KEYBOARD_KEY_TIMEOUT_US=1000
+
+# append to the history file, don't overwrite it
+#shopt -s histappend # already in /etc/bashrc
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=10000
+HISTFILESIZE=100000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS. (already in /etc/bashrc)
+#shopt -s checkwinsize
+# append commands to history immediately
+PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[[ -x /usr/bin/lesspipe ]] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+ xterm-color|*256color) color_prompt=true;;
+ *) color_prompt=false;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+#force_color_prompt=true
+if ( ! $color_prompt ) && $force_color_prompt; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+ # We have color support; assume it's compliant with Ecma-48
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+ # a case would tend to support setf rather than setaf.)
+ color_prompt=true
+ else
+ color_prompt=false
+ fi
+fi
+
+if [[ -e /usr/share/git-core/contrib/completion/git-prompt.sh ]]; then
+ export GIT_PS1_SHOWDIRTYSTATE=true
+ export GIT_PS1_SHOWUNTRACKEDFILES=true
+ export GIT_PS1_SHOWUPSTREAM="auto"
+ . /usr/share/git-core/contrib/completion/git-prompt.sh
+fi
+
+if $color_prompt; then
+ case "$TERM" in
+ *256color*)
+ c_local=`tput setaf 7`
+ c_mark=`tput setaf 9`
+ ;;
+ *)
+ c_local=`tput setaf 3`
+ c_mark=`tput setaf 1`
+ ;;
+ esac
+ c_date=`tput setaf 7`
+ c_path=`tput setaf 2`
+ c_none=`tput sgr0`
+ PS1='\['${c_local}'\]\u\['${c_mark}'\]@\['${c_local}'\]\h: \['${c_path}'\]\W\['${c_none}'\]'
+ PS1="${PS1}"'$(declare -F __git_ps1 &>/dev/null && __git_ps1 " (%s)") '
+ PS1="${PS1}\n"'\['${c_mark}'\]\$\['${c_none}'\] '
+ PS1="\[${c_mark}\][\[${c_date}\]"'$(date +%H:%M:%S)'"\[${c_mark}\]]\[${c_none}\] ${PS1}"
+else
+ PS1='[$(date +%H:%M:%S)] \u@\h: \W'
+ PS1="${PS1}"'$(declare -F __git_ps1 &>/dev/null && __git_ps1 " (%s)")\n\$ '
+fi
+unset color_prompt force_color_prompt c_local c_mark c_path c_none
+
+# Alias definitions.
+if [[ -f ~/.bash_aliases ]]; then
+ . ~/.bash_aliases
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if [[ -f /etc/bash_completion ]] && ! shopt -oq posix; then
+ . /etc/bash_completion
+ complete -cf sudo
+fi
+
+# hack for tmux/bash
+[[ $TERM == "screen" ]] && export -p TERM="screen-256color"
+
+#CDPATH=".:$HOME/Documents/vutbr:$HOME/workspace"
+# motto of the day
+[[ -x $HOME/.local/bin/dynmotd ]] && $HOME/.local/bin/dynmotd
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000..2242574
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,3 @@
+tags
+*~
+*.swp
diff --git a/.gitconfig b/.gitconfig
new file mode 100644
index 0000000..8ffc712
--- /dev/null
+++ b/.gitconfig
@@ -0,0 +1,21 @@
+# ex:noet:sw=4:ts=4
+[user]
+ name = Michal Minar
+ email = miminar@redhat.com
+[color]
+ status = auto
+ branch = auto
+ diff = auto
+[core]
+ excludesfile = "~/.cvsignore"
+[github]
+ token = miminar
+ user = 4a00719f7fb01931f3a9729972dae10e
+[merge]
+ tool = fugitive
+[mergetool "fugitive"]
+ cmd = vim -f -c \"Gdiff\" \"$MERGED\"
+[push]
+ default = simple
+[pull]
+ rebase = true
diff --git a/.gitignore_global b/.gitignore_global
new file mode 100644
index 0000000..1a05c21
--- /dev/null
+++ b/.gitignore_global
@@ -0,0 +1,25 @@
+# compiles sources ************************************************************
+*.pyc
+*.pyo
+*.o
+*.exe
+*.so
+*.dll
+*.com
+*.class
+
+# packages ********************************************************************
+*.7z
+*.dmg
+*.gz
+*.iso
+*.jar
+*.rar
+*.tar
+*.zip
+
+# special *********************************************************************
+*.swp
+*.log
+*.sql
+*.sqlite
diff --git a/.gvimrc b/.gvimrc
new file mode 100644
index 0000000..6a13ec8
--- /dev/null
+++ b/.gvimrc
@@ -0,0 +1,9 @@
+" set guifont=Dina\ 9
+set guifont=Terminus\ 10
+" menu bar
+set guioptions-=m
+" toolbar
+set guioptions-=T
+" scrollbar
+" set guioptions-=r
+colorscheme desert256
diff --git a/.htoprc b/.htoprc
new file mode 100644
index 0000000..60dbdfe
--- /dev/null
+++ b/.htoprc
@@ -0,0 +1,23 @@
+# Beware! This file is rewritten every time htop exits.
+# The parser is also very primitive, and not human-friendly.
+# (I know, it's in the todo list).
+fields=0 48 17 18 38 39 40 2 46 47 49 1
+sort_key=47
+sort_direction=1
+hide_threads=1
+hide_kernel_threads=1
+hide_userland_threads=1
+shadow_other_users=0
+show_thread_names=1
+highlight_base_name=0
+highlight_megabytes=1
+highlight_threads=0
+tree_view=0
+header_margin=1
+detailed_cpu_time=0
+color_scheme=0
+delay=15
+left_meters=AllCPUs Memory Swap
+left_meter_modes=1 1 1
+right_meters=Tasks LoadAverage Uptime
+right_meter_modes=2 2 2
diff --git a/.inputrc b/.inputrc
new file mode 100644
index 0000000..570b39c
--- /dev/null
+++ b/.inputrc
@@ -0,0 +1,41 @@
+set editing-mode: emacs
+
+"\eo": "\C-p\C-a\ef "
+$if mode=emacs
+ "\ei": overwrite-mode
+ "\ew": kill-region
+ #"\C-w": kill-region
+ #"\ew": copy-region-as-kill
+ "\e ": set-mark
+$endif
+
+# Incremental searching with Up and Down
+"\e[A": history-search-backward
+"\e[B": history-search-forward
+
+# Make Meta+S cycle through the list of completions
+"\em": menu-complete
+
+# autocomplete by pressing Tab
+Tab: complete
+
+# edit single line
+#set horizontal-scroll-mode on
+
+set visible-stats On
+set mark-modified-lines On
+set mark-directories On
+set page-completions On
+set skip-completed-text On
+set match-hidden-files Off
+set completion-ignore-case: On
+set show-all-if-ambiguous On
+
+# disable beep
+set bell-style none
+
+
+$if Bash
+ Space: magic-space
+$endif
+
diff --git a/.mplayer/config b/.mplayer/config
new file mode 100644
index 0000000..d2cbc03
--- /dev/null
+++ b/.mplayer/config
@@ -0,0 +1,27 @@
+# Write your default config options here!
+cache=16384
+
+# video ***********************************************************************
+double=yes # buffering
+
+# audio ***********************************************************************
+alang=jp,en,eng,cz,cr,sk
+
+# subtitles *******************************************************************
+ass=yes
+embeddedfonts=yes
+ass-font-scale=2.0
+ass-border-color=97004530
+ass-color=FFFFFF00
+#subfont-text-scale=2.5
+#subfont-osd-scale=4.4
+subpos=98
+spuaa=4
+subfont-blur=2.0
+subfont-outline=2.0
+slang=en,cz,cr,sk
+subcp='windows-1250'
+subfont-encoding=unicode
+sub-fuzziness=1
+unicode=yes
+stop-xscreensaver=yes
diff --git a/.profile b/.profile
new file mode 100644
index 0000000..c1ec903
--- /dev/null
+++ b/.profile
@@ -0,0 +1,26 @@
+# ~/.profile: executed by the command interpreter for login shells.
+# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
+# exists.
+# see /usr/share/doc/bash/examples/startup-files for examples.
+# the files are located in the bash-doc package.
+
+# the default umask is set in /etc/profile; for setting the umask
+# for ssh logins, install and configure the libpam-umask package.
+#umask 022
+
+# if running bash
+if [ -n "$BASH_VERSION" ]; then
+ # include .bashrc if it exists
+ if [ -f "$HOME/.bashrc" ]; then
+ . "$HOME/.bashrc"
+ fi
+fi
+
+# set PATH so it includes user's private bin if it exists
+if [ -d "$HOME/bin" ] ; then
+ PATH="$HOME/bin:$PATH"
+fi
+export LANGUAGE="en"
+export LC_MESSAGES="en_US.UTF-8"
+export LC_CTYPE="en_US.UTF-8"
+export LC_COLLATE="en_US.UTF-8"
diff --git a/.pythonrc b/.pythonrc
new file mode 100644
index 0000000..9f7cd95
--- /dev/null
+++ b/.pythonrc
@@ -0,0 +1,16 @@
+import atexit
+import os
+import readline
+import rlcompleter
+
+history_path = os.path.expanduser("~/.pyhistory")
+
+def save_history(history_path=history_path):
+ import readline
+ readline.write_history_file(history_path)
+
+if os.path.exists(history_path):
+ readline.read_history_file(history_path)
+
+atexit.register(save_history)
+del os, atexit, readline, rlcompleter, save_history, history_path
diff --git a/.rpmmacros b/.rpmmacros
new file mode 100644
index 0000000..43d3ec8
--- /dev/null
+++ b/.rpmmacros
@@ -0,0 +1,4 @@
+%_smp_mflags -j20
+%__arch_install_post \
+/usr/lib/rpm/check-rpaths \
+/usr/lib/rpm/check-buildroot
diff --git a/.tmux.conf b/.tmux.conf
new file mode 100644
index 0000000..30e379b
--- /dev/null
+++ b/.tmux.conf
@@ -0,0 +1,67 @@
+set -g default-command bash
+
+setw -g automatic-rename
+setw -g monitor-activity on
+set -g visual-activity on
+
+set-option -g status-utf8 on
+set-option -g status-justify left
+set-option -g status-bg black
+set-option -g status-fg white
+set-option -g status-left-length 40
+
+set-option -g pane-active-border-fg green
+set-option -g pane-active-border-bg black
+set-option -g pane-border-fg white
+set-option -g pane-border-bg black
+
+set-option -g message-fg black
+set-option -g message-bg green
+
+set-option -g mouse-select-pane on
+set-option -g status-keys vi
+set-option -g bell-action any
+set-option -g visual-bell on
+
+set -g status-left '#[fg=red]#H#[fg=green]:#[fg=white]#S #[fg=green]][#[default]'
+
+# set -g status-right '#[fg=green]][#[fg=white] #T #[fg=green]][ #[fg=blue]%Y-%m-%d #[fg=white]%H:%M#[default]'
+set -g status-right '#[fg=green]][ #[fg=blue]%Y-%m-%d #[fg=white]%H:%M#[default]'
+
+set -g history-limit 4096
+
+setw -g window-status-bg black
+setw -g window-status-current-fg green
+#setw -g window-status-alert-attr default
+#setw -g window-status-alert-fg yellow
+
+# This configuration file binds many vi- and vim-like bindings to the
+# appropriate tmux key bindings. Note that for many key bindings there is no
+# tmux analogue. This is intended for tmux 1.3, which handles pane selection
+# differently from the previous versions
+
+# split windows like vim
+# vim's definition of a horizontal/vertical split is reversed from tmux's
+bind s split-window -v
+bind v split-window -h
+
+# move around panes with hjkl, as one would in vim after pressing ctrl-w
+bind h select-pane -L
+bind j select-pane -D
+bind k select-pane -U
+bind l select-pane -R
+
+# resize panes like vim
+# feel free to change the "1" to however many lines you want to resize by, only
+# one at a time can be slow
+bind < resize-pane -L 1
+bind > resize-pane -R 1
+bind - resize-pane -D 1
+bind + resize-pane -U 1
+
+bind r source-file ~/.tmux.conf
+
+# vi-style controls for copy mode
+setw -g mode-keys vi
+
+set -g set-titles on
diff --git a/.urxvt/ext/clipboard b/.urxvt/ext/clipboard
new file mode 100644
index 0000000..fb36603
--- /dev/null
+++ b/.urxvt/ext/clipboard
@@ -0,0 +1,13 @@
+#! /usr/bin/perl
+
+sub on_sel_grab
+{
+ my $query = $_[0]->selection;
+ open (my $pipe,'|-','xsel -ib') or die;
+ print $pipe $query;
+ close $pipe;
+ open (my $pipe,'|-','xsel -ip') or die;
+ print $pipe $query;
+ close $pipe;
+}
+
diff --git a/.urxvt/ext/url-select b/.urxvt/ext/url-select
new file mode 100644
index 0000000..f7b7eaf
--- /dev/null
+++ b/.urxvt/ext/url-select
@@ -0,0 +1,325 @@
+#! perl -w
+# Author: Bert Muennich
+# Website: http://www.github.com/muennich/urxvt-perls
+# Based on: http://www.jukie.net/~bart/blog/urxvt-url-yank
+# Version: git-20120120
+# License: GPLv2
+
+# Use keyboard shortcuts to select URLs.
+# This should be used as a replacement for the default matcher extension,
+# it also makes URLs clickable with the middle mouse button.
+
+# Usage: put the following lines in your .Xdefaults/.Xresources:
+# URxvt.perl-ext-common: ...,url-select
+# URxvt.keysym.M-u: perl:url-select:select_next
+
+# Use Meta-u to activate URL selection mode, then use the following keys:
+# j/k: Select next downward/upward URL (also with arrow keys)
+# g/G: Select first/last URL (also with home/end key)
+# o/Return: Open selected URL in browser, Return: deactivate afterwards
+# y: Copy (yank) selected URL and deactivate selection mode
+# q/Escape: Deactivate URL selection mode
+
+# Options:
+# URxvt.urlLauncher: Browser/command to open selected URL with
+# URxvt.underlineURLs: If set to true, all URLs get underlined
+# URvxt.urlButton: Mouse button to click-open URLs (default: 2)
+
+
+use strict;
+
+my $url_matcher = qr{(
+ (?:https?://|ftp://|news://|mailto:|file://|www\.)
+ [\w\-\@;\/?:&=%\$_.+!*\x27(),~#]+[\w\-\@;\/?&=%\$_+!*\x27()~]
+)}x;
+
+sub on_start {
+ my ($self) = @_;
+
+ # read resource settings
+ if ($self->x_resource('urlLauncher')) {
+ @{$self->{browser}} = split /\s+/, $self->x_resource('urlLauncher');
+ } else {
+ @{$self->{browser}} = ('x-www-browser');
+ }
+ if ($self->x_resource('underlineURLs') eq 'true') {
+ $self->enable(line_update => \&line_update);
+ }
+ if($self->x_resource('urlButton') =~ /^\d+$/) {
+ $self->{button} = $self->x_resource('urlButton');
+ } else {
+ $self->{button} = 2;
+ }
+
+ ()
+}
+
+
+sub line_update {
+ my ($self, $row) = @_;
+
+ my $line = $self->line($row);
+ my $text = $line->t;
+ my $rend = $line->r;
+
+ while ($text =~ /$url_matcher/g) {
+ my $url = $1;
+ my ($beg, $end) = ($-[1], $+[1] - 1);
+ --$end if $url =~ /["')]$/;
+
+ for (@{$rend}[$beg .. $end]) {
+ $_ |= urxvt::RS_Uline;
+ }
+ $line->r($rend);
+ }
+
+ ()
+}
+
+
+sub on_user_command {
+ my ($self, $cmd) = @_;
+
+ if ($cmd eq 'url-select:select_next') {
+ if (not $self->{active}) {
+ activate($self);
+ }
+ select_next($self, -1);
+ }
+
+ ()
+}
+
+
+sub key_press {
+ my ($self, $event, $keysym) = @_;
+ my $char = chr($keysym);
+
+ if ($keysym == 0xff1b || lc($char) eq 'q') {
+ deactivate($self);
+ } elsif ($keysym == 0xff0d || $char eq 'o') {
+ $self->exec_async(@{$self->{browser}}, ${$self->{found}[$self->{n}]}[4]);
+ deactivate($self) unless $char eq 'o';
+ } elsif ($char eq 'y') {
+ my $found = $self->{found}[$self->{n}];
+ $self->selection_beg(${$found}[0], ${$found}[1]);
+ $self->selection_end(${$found}[2], ${$found}[3]);
+ $self->selection_make($event->{time});
+ $self->selection_beg(1, 0);
+ $self->selection_end(1, 0);
+ deactivate($self);
+ } elsif ($char eq 'k' || $keysym == 0xff52 || $keysym == 0xff51) {
+ select_next($self, -1);
+ } elsif ($char eq 'j' || $keysym == 0xff54 || $keysym == 0xff53) {
+ select_next($self, 1);
+ } elsif ($char eq 'g' || $keysym == 0xff50) {
+ $self->{row} = $self->top_row - 1;
+ delete $self->{found};
+ select_next($self, 1);
+ } elsif ($char eq 'G' || $keysym == 0xff57) {
+ $self->{row} = $self->nrow;
+ delete $self->{found};
+ select_next($self, -1);
+ }
+
+ return 1;
+}
+
+
+sub on_button_press {
+ my ($self, $event) = @_;
+
+ my $mask = $self->ModLevel3Mask | $self->ModMetaMask |
+ urxvt::ShiftMask | urxvt::ControlMask;
+
+ if ($event->{button} == $self->{button} && ($event->{state} & $mask) == 0) {
+ $self->{button_pressed} = 1;
+ $self->{button_col} = $event->{col};
+ $self->{button_row} = $event->{row};
+ }
+
+ ()
+}
+
+sub on_button_release {
+ my ($self, $event) = @_;
+
+ if ($self->{button_pressed} && $event->{button} == $self->{button}) {
+ my $col = $event->{col};
+ my $row = $event->{row};
+
+ $self->{button_pressed} = 0;
+
+ if ($col == $self->{button_col} && $row == $self->{button_row}) {
+ my $line = $self->line($row);
+ my $text = $line->t;
+
+ while ($text =~ /$url_matcher/g) {
+ my ($url, $beg, $end) = ($1, $-[0], $+[0]);
+ --$end if $url =~ s/["')]$//;
+
+ if ($col >= $beg && $col <= $end) {
+ $self->exec_async(@{$self->{browser}}, $url);
+ return 1;
+ }
+ }
+ }
+ }
+
+ ()
+}
+
+
+sub select_next {
+ # $dir < 0: up, > 0: down
+ my ($self, $dir) = @_;
+ my $row = $self->{row};
+
+ if (($dir < 0 && $self->{n} > 0) ||
+ ($dir > 0 && $self->{n} < $#{ $self->{found} })) {
+ # another url on current line
+ $self->{n} += $dir;
+ hilight($self);
+ return;
+ }
+
+ while (($dir < 0 && $row > $self->top_row) ||
+ ($dir > 0 && $row < $self->nrow - 1)) {
+ my $line = $self->line($row);
+ $row = ($dir < 0 ? $line->beg : $line->end) + $dir;
+ $line = $self->line($row);
+ my $text = $line->t;
+
+ if ($text =~ /$url_matcher/g) {
+ delete $self->{found};
+
+ do {
+ my ($beg, $end) = ($-[0], $+[0]);
+ --$end if $& =~ /['")]$/;
+ push @{$self->{found}}, [$line->coord_of($beg),
+ $line->coord_of($end), substr($text, $beg, $end - $beg)];
+ } while ($text =~ /$url_matcher/g);
+
+ $self->{row} = $row;
+ $self->{n} = $dir < 0 ? $#{$self->{found}} : 0;
+ hilight($self);
+ return;
+ }
+ }
+
+ deactivate($self) unless $self->{found};
+
+ ()
+}
+
+
+sub hilight {
+ my ($self) = @_;
+
+ if ($self->{found}) {
+ if ($self->{row} < $self->view_start() ||
+ $self->{row} >= $self->view_start() + $self->nrow) {
+ # scroll selected url into visible area
+ my $top = $self->{row} - ($self->nrow >> 1);
+ $self->view_start($top < 0 ? $top : 0);
+ }
+
+ status_area($self);
+ $self->want_refresh();
+ }
+
+ ()
+}
+
+
+sub refresh {
+ my ($self) = @_;
+
+ if ($self->{found}) {
+ $self->scr_xor_span(@{$self->{found}[$self->{n}]}[0 .. 3], urxvt::RS_RVid);
+ }
+
+ ()
+}
+
+
+sub status_area {
+ my ($self) = @_;
+
+ my $row = $self->{row} < 0 ?
+ $self->{row} - $self->top_row : abs($self->top_row) + $self->{row};
+ my $text = sprintf("%d,%d ", $row + 1, $self->{n} + 1);
+
+ if ($self->top_row == 0) {
+ $text .= "All";
+ } elsif ($self->view_start() == $self->top_row) {
+ $text .= "Top";
+ } elsif ($self->view_start() == 0) {
+ $text .= "Bot";
+ } else {
+ $text .= sprintf("%2d%",
+ ($self->top_row - $self->view_start) * 100 / $self->top_row);
+ }
+
+ my $text_len = length($text);
+
+ if ($self->{overlay_len} != $text_len) {
+ delete $self->{overlay} if $self->{overlay};
+ $self->{overlay} = $self->overlay(-1, -1, $text_len, 1,
+ urxvt::OVERLAY_RSTYLE, 0);
+ $self->{overlay_len} = $text_len;
+ }
+
+ $self->{overlay}->set(0, 0, $self->special_encode($text));
+ $self->{overlay}->show();
+
+ ()
+}
+
+
+sub tt_write {
+ return 1;
+}
+
+
+sub activate {
+ my ($self) = @_;
+
+ $self->{active} = 1;
+
+ $self->{row} = $self->view_start() + $self->nrow;
+ $self->{n} = 0;
+ $self->{overlay_len} = 0;
+ $self->{button_pressed} = 0;
+
+ $self->{view_start} = $self->view_start();
+ $self->{pty_ev_events} = $self->pty_ev_events(urxvt::EV_NONE);
+
+ $self->enable(
+ key_press => \&key_press,
+ refresh_begin => \&refresh,
+ refresh_end => \&refresh,
+ tt_write => \&tt_write,
+ );
+
+ ()
+}
+
+
+sub deactivate {
+ my ($self) = @_;
+
+ $self->disable("key_press", "refresh_begin", "refresh_end", "tt_write");
+ $self->view_start($self->{view_start});
+ $self->pty_ev_events($self->{pty_ev_events});
+
+ delete $self->{overlay} if $self->{overlay};
+ delete $self->{found} if $self->{found};
+
+ $self->want_refresh();
+
+ $self->{active} = 0;
+
+ ()
+}
+
diff --git a/.vimrc b/.vimrc
new file mode 100644
index 0000000..b80cbe8
--- /dev/null
+++ b/.vimrc
@@ -0,0 +1,10 @@
+runtime! vimrc_common
+
+" tag files
+set tags+=~/.vim/tags/stl_glibc
+
+" using vim as man pager
+let $PAGER=''
+
+" use ack instead of grep
+set grepprg=ack\ -a
diff --git a/.xscreensaver b/.xscreensaver
new file mode 100644
index 0000000..cff1b54
--- /dev/null
+++ b/.xscreensaver
@@ -0,0 +1,261 @@
+# XScreenSaver Preferences File
+# Written by xscreensaver-demo 5.22 for miminar on Sat Nov 2 21:42:00 2013.
+# http://www.jwz.org/xscreensaver/
+
+timeout: 0:10:00
+cycle: 0:00:00
+lock: True
+lockTimeout: 0:00:00
+passwdTimeout: 0:00:15
+visualID: default
+installColormap: True
+verbose: False
+timestamp: True
+splash: False
+splashDuration: 0:00:05
+demoCommand: xscreensaver-demo
+prefsCommand: xscreensaver-demo -prefs
+nice: 10
+memoryLimit: 0
+fade: False
+unfade: False
+fadeSeconds: 0:00:00
+fadeTicks: 20
+captureStderr: True
+ignoreUninstalledPrograms:True
+font: *-medium-r-*-140-*-m-*
+dpmsEnabled: True
+dpmsQuickOff: True
+dpmsStandby: 0:00:00
+dpmsSuspend: 0:00:00
+dpmsOff: 0:00:00
+grabDesktopImages: False
+grabVideoFrames: False
+chooseRandomImages: False
+imageDirectory:
+
+mode: blank
+selected: -1
+
+textMode: file
+textLiteral: XScreenSaver
+textFile: /etc/fedora-release
+textProgram: fortune -s
+textURL: http://planet.fedoraproject.org/rss20.xml
+
+programs: \
+ maze -root \n\
+ GL: superquadrics -root \n\
+ attraction -root \n\
+ blitspin -root \n\
+ greynetic -root \n\
+ helix -root \n\
+ hopalong -root \n\
+ imsmap -root \n\
+- noseguy -root \n\
+- pyro -root \n\
+ qix -root \n\
+- rocks -root \n\
+ rorschach -root \n\
+ decayscreen -root \n\
+ flame -root \n\
+ halo -root \n\
+ slidescreen -root \n\
+ pedal -root \n\
+ bouboule -root \n\
+- braid -root \n\
+ coral -root \n\
+ deco -root \n\
+ drift -root \n\
+- fadeplot -root \n\
+ galaxy -root \n\
+ goop -root \n\
+ grav -root \n\
+ ifs -root \n\
+ GL: jigsaw -root \n\
+ julia -root \n\
+- kaleidescope -root \n\
+ GL: moebius -root \n\
+ moire -root \n\
+ GL: morph3d -root \n\
+ mountain -root \n\
+ munch -root \n\
+ penrose -root \n\
+ GL: pipes -root \n\
+ rd-bomb -root \n\
+ GL: rubik -root \n\
+- sierpinski -root \n\
+ slip -root \n\
+ GL: sproingies -root \n\
+ starfish -root \n\
+ strange -root \n\
+ swirl -root \n\
+ triangle -root \n\
+ xjack -root \n\
+ xlyap -root \n\
+ GL: atlantis -root \n\
+- bsod -root \n\
+ GL: bubble3d -root \n\
+ GL: cage -root \n\
+- crystal -root \n\
+ cynosure -root \n\
+ discrete -root \n\
+ distort -root \n\
+ epicycle -root \n\
+ flow -root \n\
+- GL: glplanet -root \n\
+ interference -root \n\
+ kumppa -root \n\
+ GL: lament -root \n\
+ moire2 -root \n\
+ GL: sonar -root \n\
+ GL: stairs -root \n\
+ truchet -root \n\
+- vidwhacker -root \n\
+ blaster -root \n\
+ bumps -root \n\
+ ccurve -root \n\
+ compass -root \n\
+ deluxe -root \n\
+- demon -root \n\
+ GL: extrusion -root \n\
+- loop -root \n\
+ penetrate -root \n\
+ petri -root \n\
+ phosphor -root \n\
+ GL: pulsar -root \n\
+ ripples -root \n\
+ shadebobs -root \n\
+ GL: sierpinski3d -root \n\
+ spotlight -root \n\
+ squiral -root \n\
+ wander -root \n\
+- webcollage -root \n\
+ xflame -root \n\
+ xmatrix -root \n\
+ GL: gflux -root \n\
+- nerverot -root \n\
+ xrayswarm -root \n\
+ xspirograph -root \n\
+ GL: circuit -root \n\
+ GL: dangerball -root \n\
+- GL: dnalogo -root \n\
+ GL: engine -root \n\
+ GL: flipscreen3d -root \n\
+ GL: gltext -root \n\
+ GL: menger -root \n\
+ GL: molecule -root \n\
+ rotzoomer -root \n\
+ speedmine -root \n\
+ GL: starwars -root \n\
+ GL: stonerview -root \n\
+ vermiculate -root \n\
+ whirlwindwarp -root \n\
+ zoom -root \n\
+ anemone -root \n\
+ apollonian -root \n\
+ GL: boxed -root \n\
+ GL: cubenetic -root \n\
+ GL: endgame -root \n\
+ euler2d -root \n\
+ fluidballs -root \n\
+ GL: flurry -root \n\
+- GL: glblur -root \n\
+ GL: glsnake -root \n\
+ halftone -root \n\
+ GL: juggler3d -root \n\
+ GL: lavalite -root \n\
+- polyominoes -root \n\
+ GL: queens -root \n\
+- GL: sballs -root \n\
+ GL: spheremonics -root \n\
+- thornbird -root \n\
+ twang -root \n\
+- GL: antspotlight -root \n\
+ apple2 -root \n\
+ GL: atunnel -root \n\
+ barcode -root \n\
+ GL: blinkbox -root \n\
+ GL: blocktube -root \n\
+ GL: bouncingcow -root \n\
+ cloudlife -root \n\
+ GL: cubestorm -root \n\
+ eruption -root \n\
+ GL: flipflop -root \n\
+ GL: flyingtoasters -root \n\
+ fontglide -root \n\
+ GL: gleidescope -root \n\
+ GL: glknots -root \n\
+ GL: glmatrix -root \n\
+- GL: glslideshow -root \n\
+ GL: hypertorus -root \n\
+- GL: jigglypuff -root \n\
+ metaballs -root \n\
+ GL: mirrorblob -root \n\
+ piecewise -root \n\
+ GL: polytopes -root \n\
+ pong -root \n\
+ popsquares -root \n\
+ GL: surfaces -root \n\
+ xanalogtv -root \n\
+- abstractile -root \n\
+ anemotaxis -root \n\
+- GL: antinspect -root \n\
+ fireworkx -root \n\
+ fuzzyflakes -root \n\
+ interaggregate -root \n\
+ intermomentary -root \n\
+ memscroller -root \n\
+ GL: noof -root \n\
+ pacman -root \n\
+ GL: pinion -root \n\
+ GL: polyhedra -root \n\
+- GL: providence -root \n\
+ substrate -root \n\
+ wormhole -root \n\
+- GL: antmaze -root \n\
+ GL: boing -root \n\
+ boxfit -root \n\
+ GL: carousel -root \n\
+ celtic -root \n\
+ GL: crackberg -root \n\
+ GL: cube21 -root \n\
+ fiberlamp -root \n\
+ GL: fliptext -root \n\
+ GL: glhanoi -root \n\
+ GL: tangram -root \n\
+ GL: timetunnel -root \n\
+ GL: glschool -root \n\
+ GL: topblock -root \n\
+ GL: cubicgrid -root \n\
+ cwaves -root \n\
+ GL: gears -root \n\
+ GL: glcells -root \n\
+ GL: lockward -root \n\
+ m6502 -root \n\
+ GL: moebiusgears -root \n\
+ GL: voronoi -root \n\
+ GL: hypnowheel -root \n\
+ GL: klein -root \n\
+- lcdscrub -root \n\
+ GL: photopile -root \n\
+ GL: skytentacles -root \n\
+ GL: rubikblocks -root \n\
+ GL: companioncube -root \n\
+ GL: hilbert -root \n\
+ GL: tronbit -root \n\
+ hexadrop -root \n\
+ GL: kaleidocycle -root \n\
+ GL: quasicrystal -root \n\
+ GL: unknownpleasures -root \n\
+
+
+pointerPollTime: 0:00:05
+pointerHysteresis: 10
+windowCreationTimeout:0:00:30
+initialDelay: 0:00:00
+GetViewPortIsFullOfLies:False
+procInterrupts: True
+xinputExtensionDev: False
+overlayStderr: True
+
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 0000000..9935bec
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,34 @@
+#
+# .zshrc is sourced in interactive shells.
+# It should contain commands to set up aliases,
+# functions, options, key bindings, etc.
+#
+
+autoload -U compinit
+compinit
+
+#allow tab completion in the middle of a word
+setopt COMPLETE_IN_WORD
+
+## keep background processes at full speed
+#setopt NOBGNICE
+## restart running processes on exit
+#setopt HUP
+
+## history
+#setopt APPEND_HISTORY
+## for sharing history between zsh processes
+#setopt INC_APPEND_HISTORY
+#setopt SHARE_HISTORY
+
+## never ever beep ever
+#setopt NO_BEEP
+
+## automatically decide when to page a list of completions
+#LISTMAX=0
+
+## disable mail checking
+#MAILCHECK=0
+
+# autoload -U colors
+#colors