summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
l---------[-rw-r--r--].Xdefaults19
l---------.bash_login1
l---------[-rw-r--r--].bash_logout10
l---------[-rw-r--r--].bashrc121
-rw-r--r--.config/X11/clientrc27
-rw-r--r--.config/X11/defaults18
-rw-r--r--.config/X11/login9
-rw-r--r--.config/X11/modmap (renamed from .xmodmap)0
-rw-r--r--.config/X11/serverrc6
-rw-r--r--.config/bash/aliases.sh (renamed from .bash_aliases)13
-rw-r--r--.config/bash/login.sh9
-rw-r--r--.config/bash/logout.sh9
-rw-r--r--.config/bash/rc.d/emacs.sh (renamed from .bash.d/emacs.sh)0
-rw-r--r--.config/bash/rc.sh80
-rw-r--r--.full.asound347
-rw-r--r--.git.info.exclude.in (renamed from .git.info.exclude)13
l---------.kde1
l---------.kde4/share/apps1
l---------.kde4/share/config1
-rw-r--r--.login-daemons10
-rw-r--r--.maildirproc/default.rc1
-rw-r--r--.profile74
-rw-r--r--.wicd/CLIENT_CURSES_WARNING6
l---------.wicd/WHEREAREMYFILES1
-rwxr-xr-x.wmii/autostart13
-rw-r--r--.wmii/config.sh249
-rw-r--r--.wmii/ctl-init5
-rw-r--r--.wmii/fixes.sh24
-rwxr-xr-x.wmii/help-events3
-rwxr-xr-x.wmii/help-keys3
-rw-r--r--.wmii/include.sh67
-rwxr-xr-x.wmii/quit2
-rwxr-xr-x.wmii/rbar_battery5
-rwxr-xr-x.wmii/rbar_clock5
-rwxr-xr-x.wmii/rbar_cpu7
-rwxr-xr-x.wmii/rbar_wifi5
-rw-r--r--.wmii/tagrules3
-rw-r--r--.wmii/util.sh128
-rwxr-xr-x.wmii/wmiirc263
-rw-r--r--.wmii/wmiirc_local6
l---------[-rw-r--r--].xinitrc27
l---------.xserverrc1
l---------[-rw-r--r--].xsession11
-rw-r--r--Makefile9
44 files changed, 662 insertions, 951 deletions
diff --git a/.Xdefaults b/.Xdefaults
index ceabc5c..7588317 100644..120000
--- a/.Xdefaults
+++ b/.Xdefaults
@@ -1,18 +1 @@
-URxvt.background: #000000
-URxvt.foreground: #CCCCCC
-
-URxvt.scrollstyle: plain
-URxvt.scrollBar_floating: true
-
-URxvt.font: xft:Monospace-8
-URxvt.cursorBlink: true
-URxvt.termName: xterm-256color
-URxvt.pastableTabs: true
-
-URxvt.scrollTtyOutput: false
-URxvt.scrollTtyKeypress: false
-URxvt.scrollWithBuffer: true
-
-URxvt.perl-ext-common: default,matcher
-URxvt.urlLauncher: v-www-browser
-URxvt.matcher.button: 1
+.config/X11/defaults \ No newline at end of file
diff --git a/.bash_login b/.bash_login
new file mode 120000
index 0000000..31231da
--- /dev/null
+++ b/.bash_login
@@ -0,0 +1 @@
+.config/bash/login.sh \ No newline at end of file
diff --git a/.bash_logout b/.bash_logout
index a8b88c1..d8117ff 100644..120000
--- a/.bash_logout
+++ b/.bash_logout
@@ -1,9 +1 @@
-# ~/.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
-
-make -C "$HOME"
+.config/bash/logout.sh \ No newline at end of file
diff --git a/.bashrc b/.bashrc
index ff11c5b..18faac1 100644..120000
--- a/.bashrc
+++ b/.bashrc
@@ -1,120 +1 @@
-# ~/.bashrc: executed by bash(1) for non-login shells.
-# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
-# for examples
-
-# I include this file for all interactive invocations of bash(1), whether
-# they are login shells or not.
-
-# If not running interactively, don't do anything
-[ -z "$PS1" ] && return
-
-# don't put duplicate lines in the history. See bash(1) for more options
-# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
-export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
-# ... or force ignoredups and ignorespace
-export HISTCONTROL=ignoreboth
-
-# append to the history file, don't overwrite it
-shopt -s histappend
-
-# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
-
-# check the window size after each command and, if necessary,
-# update the values of LINES and COLUMNS.
-shopt -s checkwinsize
-
-# Let ** recursively scan directories
-shopt -s globstar
-
-# Why is this not on by default?
-# "We have a cached value, but it isn't valid anymore. Should we trash it?"
-shopt -s checkhash
-
-# make less more friendly for non-text input files, see lesspipe(1)
-[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
-
-# set variable identifying the chroot you work in (used in the prompt below)
-if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
- debian_chroot=$(cat /etc/debian_chroot)
-fi
-
-case "$TERM" in
- xterm) export TERM=xterm-256color;;
-esac
-
-# set a fancy prompt (non-color, unless we know we "want" color)
-case "$TERM" in
- linux) color_prompt=yes;;
- *-*color*) color_prompt=yes;;
-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=yes
-
-if [ -n "$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=yes
- else
- color_prompt=
- fi
-fi
-
-if [ "$color_prompt" = yes ]; then
- PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
-else
- PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\n\$ '
-fi
-unset color_prompt force_color_prompt
-
-# If this is an xterm set the title to user@host:dir
-case "$TERM" in
-xterm*|rxvt*)
- PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
- ;;
-*)
- ;;
-esac
-
-# Include modular config files
-if [ -d ~/.bash.d ]; then
- for file in ~/.bash.d/*.sh; do
- . $file;
- done
-fi
-
-# Alias definitions.
-# You may want to put all your additions into a separate file like
-# ~/.bash_aliases, instead of adding them here directly.
-# See /usr/share/doc/bash-doc/examples in the bash-doc package.
-
-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 ]; then
- . /etc/bash_completion
-fi
-
-if [ -f "$HOME/.login-daemons" ]; then
- . "$HOME/.login-daemons"
-fi
-
-if [ -f "${HOME}/.gnupg/agent-info" ]; then
- . "${HOME}/.gnupg/agent-info"
- export GPG_AGENT_INFO
- #export SSH_AUTH_SOCK
-fi
-
-export PERL_LOCAL_LIB_ROOT="/home/luke/perl5";
-export PERL_MB_OPT="--install_base /home/luke/perl5";
-export PERL_MM_OPT="INSTALL_BASE=/home/luke/perl5";
-export PERL5LIB="/home/luke/perl5/lib/perl5/i686-linux-thread-multi:/home/luke/perl5/lib/perl5";
-export PATH="/home/luke/perl5/bin:$PATH";
+.config/bash/rc.sh \ No newline at end of file
diff --git a/.config/X11/clientrc b/.config/X11/clientrc
new file mode 100644
index 0000000..d1e1725
--- /dev/null
+++ b/.config/X11/clientrc
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# ~/.xinitrc
+#
+# Executed by startx (run your window manager from here)
+
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+ echo ' ==> Running scripts in Entering xinitrc.d/*'
+ for f in /etc/X11/xinit/xinitrc.d/*; do
+ echo " -> $f"
+ [ -x "$f" ] && "$f" &
+ done
+ unset f
+ echo ' -> done'
+fi
+
+usermodmap="$XDG_CONFIG_HOME/X11/modmap"
+if [ -f "$usermodmap" ]; then
+ xmodmap "$usermodmap"
+fi
+
+# exec gnome-session
+# exec startkde
+# exec startxfce4
+# ...or the Window Manager of your choice
+#export WMII_CONFPATH="$XDG_CONFIG_HOME/wmii"
+exec wmii
diff --git a/.config/X11/defaults b/.config/X11/defaults
new file mode 100644
index 0000000..ceabc5c
--- /dev/null
+++ b/.config/X11/defaults
@@ -0,0 +1,18 @@
+URxvt.background: #000000
+URxvt.foreground: #CCCCCC
+
+URxvt.scrollstyle: plain
+URxvt.scrollBar_floating: true
+
+URxvt.font: xft:Monospace-8
+URxvt.cursorBlink: true
+URxvt.termName: xterm-256color
+URxvt.pastableTabs: true
+
+URxvt.scrollTtyOutput: false
+URxvt.scrollTtyKeypress: false
+URxvt.scrollWithBuffer: true
+
+URxvt.perl-ext-common: default,matcher
+URxvt.urlLauncher: v-www-browser
+URxvt.matcher.button: 1
diff --git a/.config/X11/login b/.config/X11/login
new file mode 100644
index 0000000..03bad2a
--- /dev/null
+++ b/.config/X11/login
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+#
+# ~/.xsession
+#
+# Executed by xdm/gdm/kdm at login
+#
+
+/bin/bash --login -i ~/.xinitrc
diff --git a/.xmodmap b/.config/X11/modmap
index e4ade24..e4ade24 100644
--- a/.xmodmap
+++ b/.config/X11/modmap
diff --git a/.config/X11/serverrc b/.config/X11/serverrc
new file mode 100644
index 0000000..d6c6ffc
--- /dev/null
+++ b/.config/X11/serverrc
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+VT=vt07
+#VT=$(tty|sed 's@/dev/tty@vt@')
+
+exec /usr/bin/X -nolisten tcp "$VT" "$@"
diff --git a/.bash_aliases b/.config/bash/aliases.sh
index de1a321..8241b95 100644
--- a/.bash_aliases
+++ b/.config/bash/aliases.sh
@@ -48,19 +48,12 @@ alias gitk='gitk --all --date-order'
redshift='redshift -l39.9030:85.9979'
alias gtk-redshift="gtk-$redshift"
alias redshift="$redshift"
+unset redshift
######################################################################
# Some almost-function aliases #
######################################################################
-#alias serva='ssh luke@servb.ath.cx -p3440'
-#alias phpdoctor='php /usr/gnu/www/0-other/phpdoctor-head/phpdoc.php'
-function xterm-title () { echo "];$@"; } # Oh, wait this one *is* a function
+xterm-title() { echo "];$@"; } # Oh, wait this one *is* a function
alias lock="clear; away -C 'This terminal is locked'"
alias plock="xterm-title Terminal Locked;lock"
-
-######################################################################
-# Other #
-######################################################################
-case "$TERM" in
- eterm*) alias editor='editor -n';;
-esac
+mvln() { mv $1 $2; ln -s $2 $1; }
diff --git a/.config/bash/login.sh b/.config/bash/login.sh
new file mode 100644
index 0000000..1269a03
--- /dev/null
+++ b/.config/bash/login.sh
@@ -0,0 +1,9 @@
+# ~/.bash_login: executed by bash(1) when login shell starts.
+
+# I think this is sane default behavior
+
+# Load user settings
+. "$HOME/.profile"
+
+# Load bash settings (automatic for non-login shells)
+. "$HOME/.bashrc"
diff --git a/.config/bash/logout.sh b/.config/bash/logout.sh
new file mode 100644
index 0000000..a8b88c1
--- /dev/null
+++ b/.config/bash/logout.sh
@@ -0,0 +1,9 @@
+# ~/.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
+
+make -C "$HOME"
diff --git a/.bash.d/emacs.sh b/.config/bash/rc.d/emacs.sh
index f484bbb..f484bbb 100644
--- a/.bash.d/emacs.sh
+++ b/.config/bash/rc.d/emacs.sh
diff --git a/.config/bash/rc.sh b/.config/bash/rc.sh
new file mode 100644
index 0000000..ed55f75
--- /dev/null
+++ b/.config/bash/rc.sh
@@ -0,0 +1,80 @@
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+# I include this file for all interactive invocations of bash(1), whether
+# they are login shells or not.
+
+# If not running interactively, don't do anything
+[ -z "$PS1" ] && return
+
+# don't put duplicate lines in the history. See bash(1) for more options
+export HISTCONTROL=ignoredups
+export HISTFILE=${XDG_CACHE_HOME}/bash/history
+export HISTTIMEFORMAT='[%Y-%m-%d %H:%M] '
+shopt -s histappend # append to the history file, don't overwrite it
+
+shopt -s checkwinsize # update the values of LINES and COLUMNS
+shopt -s globstar # Let ** recursively scan directories
+
+# Why is this not on by default?
+# "We have a cached value, but it isn't valid anymore. Should we trash it?"
+shopt -s checkhash
+
+# make less more friendly for non-text input files, see lesspipe(1)
+[ -x "`which lesspipe 2>/dev/null`" ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
+ debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+make_prompt() {
+ local RESET=''
+ local BOLD=''
+ local GREEN=''
+ local BLUE=''
+ if $1; then
+ RESET="$(tput sgr0)"
+ BOLD="$(tput bold)"
+ GREEN="$(tput setaf 2)"
+ BLUE="$(tput setaf 4)"
+ fi
+ local CHROOT='${debian_chroot:+($debian_chroot)}'
+ echo "${RESET}${BOLD}${CHROOT}${GREEN}"'\u@\h'"${RESET}:${BOLD}${BLUE}"'\w'"${RESET}"
+}
+
+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.)
+ PS1="$(make_prompt true )"'\n\$ '
+else
+ PS1="$(make_prompt false)"'\n\$ '
+fi
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+ xterm*|rxvt*)
+ PS1="\[\e]0;$(make_prompt false)\a\]$PS1";;
+esac
+
+unset make_prompt
+
+# Include modular config files
+if [ -d "${XDG_CONFIG_HOME}/rc.d" ]; then
+ for file in "${XDG_CONFIG_HOME}/rc.d"/*.sh; do
+ . "$file"
+ done
+fi
+
+if [ -f ${XDG_CONFIG_HOME}/bash/aliases.sh ]; then
+ . ${XDG_CONFIG_HOME}/bash/aliases.sh
+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 ]; then
+ . /etc/bash_completion
+fi
diff --git a/.full.asound b/.full.asound
deleted file mode 100644
index bf41e03..0000000
--- a/.full.asound
+++ /dev/null
@@ -1,347 +0,0 @@
-state.PCH {
- control.1 {
- iface MIXER
- name 'Headphone Playback Volume'
- value.0 87
- value.1 87
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 87'
- dbmin -6525
- dbmax 0
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.2 {
- iface MIXER
- name 'Headphone Playback Switch'
- value.0 true
- value.1 true
- comment {
- access 'read write'
- type BOOLEAN
- count 2
- }
- }
- control.3 {
- iface MIXER
- name 'Speaker Playback Volume'
- value.0 87
- value.1 87
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 87'
- dbmin -6525
- dbmax 0
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.4 {
- iface MIXER
- name 'Speaker Playback Switch'
- value.0 true
- value.1 true
- comment {
- access 'read write'
- type BOOLEAN
- count 2
- }
- }
- control.5 {
- iface MIXER
- name 'Mic Playback Volume'
- value.0 0
- value.1 0
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 31'
- dbmin -3450
- dbmax 1200
- dbvalue.0 -3450
- dbvalue.1 -3450
- }
- }
- control.6 {
- iface MIXER
- name 'Mic Playback Switch'
- value.0 false
- value.1 false
- comment {
- access 'read write'
- type BOOLEAN
- count 2
- }
- }
- control.7 {
- iface MIXER
- name 'Internal Mic Playback Volume'
- value.0 0
- value.1 0
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 31'
- dbmin -3450
- dbmax 1200
- dbvalue.0 -3450
- dbvalue.1 -3450
- }
- }
- control.8 {
- iface MIXER
- name 'Internal Mic Playback Switch'
- value.0 false
- value.1 false
- comment {
- access 'read write'
- type BOOLEAN
- count 2
- }
- }
- control.9 {
- iface MIXER
- name 'Auto-Mute Mode'
- value Enabled
- comment {
- access 'read write'
- type ENUMERATED
- count 1
- item.0 Disabled
- item.1 Enabled
- }
- }
- control.10 {
- iface MIXER
- name 'Mic Boost Volume'
- value.0 0
- value.1 0
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 3'
- dbmin 0
- dbmax 3600
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.11 {
- iface MIXER
- name 'Internal Mic Boost Volume'
- value.0 0
- value.1 0
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 3'
- dbmin 0
- dbmax 3600
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.12 {
- iface MIXER
- name 'Capture Switch'
- value.0 true
- value.1 true
- comment {
- access 'read write'
- type BOOLEAN
- count 2
- }
- }
- control.13 {
- iface MIXER
- name 'Capture Volume'
- value.0 19
- value.1 19
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 31'
- dbmin -1650
- dbmax 3000
- dbvalue.0 1200
- dbvalue.1 1200
- }
- }
- control.14 {
- iface MIXER
- name 'Beep Playback Volume'
- value.0 0
- value.1 0
- comment {
- access 'read write'
- type INTEGER
- count 2
- range '0 - 31'
- dbmin -3450
- dbmax 1200
- dbvalue.0 -3450
- dbvalue.1 -3450
- }
- }
- control.15 {
- iface MIXER
- name 'Beep Playback Switch'
- value.0 false
- value.1 false
- comment {
- access 'read write'
- type BOOLEAN
- count 2
- }
- }
- control.16 {
- iface MIXER
- name 'Master Playback Volume'
- value 87
- comment {
- access 'read write'
- type INTEGER
- count 1
- range '0 - 87'
- dbmin -6525
- dbmax 0
- dbvalue.0 0
- }
- }
- control.17 {
- iface MIXER
- name 'Master Playback Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.18 {
- iface CARD
- name 'Headphone Jack'
- value false
- comment {
- access read
- type BOOLEAN
- count 1
- }
- }
- control.19 {
- iface CARD
- name 'Mic Jack'
- value false
- comment {
- access read
- type BOOLEAN
- count 1
- }
- }
- control.20 {
- iface CARD
- name 'HDMI/DP,pcm=3 Jack'
- value false
- comment {
- access read
- type BOOLEAN
- count 1
- }
- }
- control.21 {
- iface MIXER
- name 'IEC958 Playback Con Mask'
- value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- comment {
- access read
- type IEC958
- count 1
- }
- }
- control.22 {
- iface MIXER
- name 'IEC958 Playback Pro Mask'
- value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- comment {
- access read
- type IEC958
- count 1
- }
- }
- control.23 {
- iface MIXER
- name 'IEC958 Playback Default'
- value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- comment {
- access 'read write'
- type IEC958
- count 1
- }
- }
- control.24 {
- iface MIXER
- name 'IEC958 Playback Switch'
- value true
- comment {
- access 'read write'
- type BOOLEAN
- count 1
- }
- }
- control.25 {
- iface PCM
- device 3
- name ELD
- value ''
- comment {
- access read
- type BYTES
- count 0
- }
- }
- control.26 {
- iface MIXER
- name 'Digital Capture Volume'
- value.0 60
- value.1 60
- comment {
- access 'read write user'
- type INTEGER
- count 2
- range '0 - 120'
- tlv '0000000100000008fffff44800000032'
- dbmin -3000
- dbmax 3000
- dbvalue.0 0
- dbvalue.1 0
- }
- }
- control.27 {
- iface MIXER
- name 'PCM Playback Volume'
- value.0 255
- value.1 255
- comment {
- access 'read write user'
- type INTEGER
- count 2
- range '0 - 255'
- tlv '0000000100000008ffffec1400000014'
- dbmin -5100
- dbmax 0
- dbvalue.0 0
- dbvalue.1 0
- }
- }
-}
diff --git a/.git.info.exclude b/.git.info.exclude.in
index 871ebf6..612ecf2 100644
--- a/.git.info.exclude
+++ b/.git.info.exclude.in
@@ -16,7 +16,8 @@
# Ignore temp/log/history files
*.log
-log*
+log.*
+log
*.tmp
*.tmp.*
@@ -49,20 +50,17 @@ lock
# Ignore these special-purpose cache/temp files
.camel_certs
.compiz/session/*
+.config/RecentDocuments/*
.config/chromium/Default/History\ Index*
-.current.asound
+.config/okular/docdata/*
.dbus/session-bus/*
.ddd/sessions
-.dvdcss
.esd_auth
.evolution/.*
.gconfd/saved_state
.gnash-media
.gnash/SharedObjects/*
-.kde/share/apps/RecentDocuments/*
.kde/socket-*
-.kde4/share/apps/RecentDocuments/*
-.kde4/share/apps/okular/docdata/*
.kde4/socket-*
.lesshst
.link*/*.his
@@ -83,9 +81,10 @@ lock
.xsession-errors*
# Ignore files that are autogenerated
+.config/libretools/blacklist.txt
.folders
+.git.info.exclude
.nanorc
-.config/libretools/blacklist.txt
# Ignore these files for no good reason
.bogofilter
diff --git a/.kde b/.kde
new file mode 120000
index 0000000..e604d30
--- /dev/null
+++ b/.kde
@@ -0,0 +1 @@
+.kde4 \ No newline at end of file
diff --git a/.kde4/share/apps b/.kde4/share/apps
new file mode 120000
index 0000000..7f8f949
--- /dev/null
+++ b/.kde4/share/apps
@@ -0,0 +1 @@
+../../.config \ No newline at end of file
diff --git a/.kde4/share/config b/.kde4/share/config
new file mode 120000
index 0000000..7f8f949
--- /dev/null
+++ b/.kde4/share/config
@@ -0,0 +1 @@
+../../.config \ No newline at end of file
diff --git a/.login-daemons b/.login-daemons
deleted file mode 100644
index bf8cf21..0000000
--- a/.login-daemons
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-if [ -x "`which daemon`" ]; then
- daemon maildirproc
- daemon gpg-agent --daemon --write-env-file "${HOME}/.gnupg/agent-info"
- daemon batterymon 20 "
- alsactl restore --file $HOME/.full.asound;
- espeak 'PLUG ME IN';
- sleep .2;"
-fi
diff --git a/.maildirproc/default.rc b/.maildirproc/default.rc
index 71bc00c..c2ad6f2 100644
--- a/.maildirproc/default.rc
+++ b/.maildirproc/default.rc
@@ -165,6 +165,7 @@ def my_filters(mail):
for address in [
"justicejade10@aol.com",
"parsonsjade@aol.com",
+ "parsonstjade@gmail.com",
]:
if mail["From"].contains(address):
mail.move(".misc.Jade")
diff --git a/.profile b/.profile
index 2e2e1d0..a6c4d91 100644
--- a/.profile
+++ b/.profile
@@ -1,4 +1,8 @@
# ~/.profile: executed by the command interpreter for login shells.
+# Should be whether logging in graphically or not.
+#
+# This file should be executable by /bin/sh, but I'm going to assume bash(1)
+#
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
@@ -9,33 +13,44 @@ umask 022
## Paths #############################################################
# Unix
-bins=$(echo $HOME/bin $HOME/.local.`uname -m`/bin $HOME/.local/bin $HOME/.prefix.`uname -m`/bin $HOME/.prefix/bin $HOME/.gem/ruby/*/bin)
-for dir in $bins; do
- if [ -d "$dir" ]; then
- export PATH="$dir:$PATH"
- fi
+bins=($HOME/bin $HOME/.local.`uname -m`/bin $HOME/.local/bin $HOME/.prefix.`uname -m`/bin $HOME/.prefix/bin $HOME/.gem/ruby/*/bin)
+for dir in "${bins[@]}"; do
+ if [ -d "$dir" ]; then
+ export PATH="$dir:$PATH"
+ fi
done
# Ruby
for dir in $HOME/.prefix/lib; do
- if [ -d "$dir" ]; then
- export RUBYLIB="$dir"
- fi
+ if [ -d "$dir" ]; then
+ export RUBYLIB="$dir"
+ fi
done
# Settings ###########################################################
# Text editor
if [ -f "$HOME/.selected_editor" ]; then
- . "$HOME/.selected_editor"
- export SELECTED_EDITOR
- export ALTERNATE_EDITOR
- export EDITOR="${EDITOR:-$SELECTED_EDITOR}"
- export VISUAL="${VISUAL:-$SELECTED_EDITOR}"
+ . "$HOME/.selected_editor"
+ export SELECTED_EDITOR
+ export ALTERNATE_EDITOR
+ export EDITOR="${EDITOR:-$SELECTED_EDITOR}"
+ export VISUAL="${VISUAL:-$SELECTED_EDITOR}"
fi
# GPG
-export GPGKEY=D4FFBFC9
+if [ -z "$GPGKEY" ] && [ -f "${HOME}/.gnupg/gpg.conf" ]; then
+ export GPGKEY=`sed -nr 's/^\s*default-key\s+//p' "${HOME}/.gnupg/gpg.conf"`
+fi
+if [ -z "$(pgrep -u `whoami` gpg-agent)" ]; then
+ mkdir -p ${XDG_RUNTIME_DIR}/sessions/gpg
+ gpg-agent --daemon --write-env-file "${XDG_RUNTIME_DIR}/sessions/gpg"
+fi
+if [ -f "${XDG_RUNTIME_DIR}/sessions/gpg" ]; then
+ . "${XDG_RUNTIME_DIR}/sessions/gpg"
+ export GPG_AGENT_INFO
+ #export SSH_AUTH_SOCK
+fi
# Java
_JAVA_OPTIONS=''
@@ -43,36 +58,27 @@ _JAVA_OPTIONS+=' -Dawt.useSystemAAFontSettings=on'
_JAVA_OPTIONS+=' -Dswing.aatext=true'
_JAVA_OPTIONS+=' -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'
if [ -n "$TMPDIR" ]; then
- _JAVA_OPTIONS+=" -Djava.io.tmpdir=$TMPDIR"
+ _JAVA_OPTIONS+=" -Djava.io.tmpdir=$TMPDIR"
fi
export _JAVA_OPTIONS
-# ALSA
-if [ -x "`which alsactl 2>/dev/null`" ]; then
- alsactl restore "$HOME/.current.asound" &> /dev/null || true
-fi
-
# X11
if [ -z "$XAUTHORITY" ]; then
- export XAUTHORITY=$HOME/.Xauthority
+ export XAUTHORITY=$HOME/.Xauthority
fi
# D-Bus
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
- eval `dbus-launch`
- export DBUS_SESSION_BUS_ADDRESS
- export DBUS_SESSION_BUS_PID
-fi
+ # I want a separate instance for each login
+ #dbus-launch > "${HOME}/.cache/sessions/dbus"
+ #. "${HOME}/.cache/sessions/dbus"
+ eval `dbus-launch`
-# Start background programs ##########################################
-if [ -f "$HOME/.login-daemons" ]; then
- . "$HOME/.login-daemons"
+ export DBUS_SESSION_BUS_ADDRESS
+ export DBUS_SESSION_BUS_PID
fi
-# BASH ###############################################################
-if [ -n "$BASH_VERSION" ]; then
- # include .bashrc if it exists
- if [ -f "$HOME/.bashrc" ]; then
- . "$HOME/.bashrc"
- fi
+# Load any box-specific stuff
+if [ -f "$HOME/.profile.local" ]; then
+ . "$HOME/.profile.local"
fi
diff --git a/.wicd/CLIENT_CURSES_WARNING b/.wicd/CLIENT_CURSES_WARNING
deleted file mode 100644
index c98f13a..0000000
--- a/.wicd/CLIENT_CURSES_WARNING
+++ /dev/null
@@ -1,6 +0,0 @@
-The wicd-client script checks for the existence of this file to determine
-whether it should warn the user before launching wicd-curses instead, in
-the event of the gui client being launched outside of the X Window environment.
-
-If you delete this file, then wicd-client will print the warning if it is
-launched outside of X (and then recreate this file again).
diff --git a/.wicd/WHEREAREMYFILES b/.wicd/WHEREAREMYFILES
deleted file mode 120000
index 5e06b02..0000000
--- a/.wicd/WHEREAREMYFILES
+++ /dev/null
@@ -1 +0,0 @@
-/var/lib/wicd/WHEREAREMYFILES \ No newline at end of file
diff --git a/.wmii/autostart b/.wmii/autostart
index aae23f4..d95ce34 100755
--- a/.wmii/autostart
+++ b/.wmii/autostart
@@ -1,4 +1,11 @@
#!/bin/bash
-daemon lxpanel &> /dev/null
-daemon wicd-client -t &> /dev/null
-daemon notifyd &> /dev/null
+. "$HOME/.wmii/include.sh"
+
+daemon lxpanel &> /dev/null
+daemon nm-applet &> /dev/null
+daemon notifyd &> /dev/null
+
+#Action rbar_cpu 01 &
+#Action rbar_wifi 97 &
+Action rbar_battery 98 &
+Action rbar_clock 99 &
diff --git a/.wmii/config.sh b/.wmii/config.sh
new file mode 100644
index 0000000..1dac0ad
--- /dev/null
+++ b/.wmii/config.sh
@@ -0,0 +1,249 @@
+#!/bin/bash
+
+MODKEY=Mod4 # "super"
+UP=p
+DOWN=n
+LEFT=b
+RIGHT=f
+
+HIST="`conffile history`"
+
+# Colors tuples: "<text> <background> <border>"
+. `conffile theme-solarized-dark`
+
+Event() {
+ event=$1; shift;
+ case "$event" in
+ ## Mouse event meanings:
+ ## MouseDown = mouse down
+ ## Click = mouse up
+ ## DND = hover, while dragging something (Drag 'n' Drop)
+ ## The associated mouse button is always "1"
+ ##
+ ## Mouse-button IDs:
+ ## 1 = left
+ ## 2 = middle
+ ## 3 = right
+
+ ## Custom (non-WMII-generated) events
+ WmiircStart) ## No args
+ echo ' ==> Starting wmiirc'
+ is_mounted $WMII_DIR && Event WmiircUnmount
+ Event WmiircMount
+
+ # Configure wmii
+ < "`conffile tagrules`" expand_variables >> $WMII_DIR/tagrules
+ < "`conffile ctl-init`" expand_variables >> $WMII_DIR/ctl
+ scansection Key | cut -sf2 >> $WMII_DIR/keys
+ # Configure X11
+ xsetroot -solid "$WMII_BACKGROUND"
+
+ # Clear the LBar and RBar
+ find $WMII_DIR/{l,r}bar -type f -delete
+ # Populate the LBar by emulating [Create|Focus]Tag events
+ seltag=`sed 1q $WMII_DIR/tag/sel/ctl`
+ lstags | while read tag; do
+ Event CreateTag "$tag"
+ if [ "$tag" = "$seltag" ]; then
+ Event FocusTag "$tag"
+ fi
+ done
+
+ # Run the autostart action
+ Action autostart 2>/dev/null &
+ ;;
+ WmiircQuit) ## No args
+ echo ' ==> Stopping wmiirc'
+ exit;;
+ WmiircMount) ## No args
+ echo " -> Creating mountpoint WMII_DIR=$WMII_DIR..."
+ mkdir -p "$WMII_DIR"
+ echo " -> Mounting WMII_DIR=$WMII_DIR..."
+ 9mount -i "unix!$WMII_NAMESPACE/wmii" "$WMII_DIR";;
+ WmiircUnmount) ## No args
+ echo " -> Unmounting WMII_DIR=$WMII_DIR..."
+ 9umount "$WMII_DIR"
+ echo " -> Removing mountpoint WMII_DIR=$WMII_DIR..."
+ rmdir "$WMII_DIR";;
+ ## WMII-meta events
+ Quit) ## No args
+ echo ' ==> wmii quit: unmounting'
+ trap - EXIT
+ Event WmiircUnmount
+ Event WmiircQuit;;
+ Warning) ## $@=string
+ notify-send "wmii warning: $*";;
+ Key) ## $1=keystroke
+ Key "$@";;
+
+ ## WMII Window management events
+ FocusFloating) ## No args
+ ;;
+ AreaFocus) ## $1=area
+ ;;
+ DestroyArea) ## $1=area
+ ;;
+ ColumnFocus) ## $1=column
+ ;;
+ CreateColumn) ## $1=column
+ ;;
+
+ ## Client events
+ CreateClient) ## $1=client
+ ;;
+ DestroyClient) ## $1=client
+ ;;
+ Urgent) ## $1=client $2=[Manager|Client]
+ ;;
+ NotUrgent) ## $1=client $2=[Manager|Client]
+ ;;
+ ClientMouseDown) ## $1=client $2=button
+ client=$1
+ button=$2
+ case $button in
+ 1) ;;
+ 2) ;;
+ 3)
+ {
+ case `wmii9menu Delete Fullscreen` in
+ Delete)
+ echo kill >> $WMII_DIR/client/$client/ctl;;
+ Fullscreen)
+ echo Fullscreen on >> $WMII_DIR/client/$1/ctl;;
+ esac
+ }& ;;
+ esac;;
+ ClientClick) ## $1=client $2=button
+ ;;
+ Unresponsive) ## $1=client
+ client=$1
+ client_name=`cat $WMII_DIR/client/$client/label`
+ msg="The client \`${client_name}' is not responding."
+ msg+=" What would you like to do?"
+ {
+ resp=$(wihack -transient $client \
+ xmessage -nearmouse -buttons Kill,Wait -print "$msg")
+ if [ "$resp" = Kill ]; then
+ echo slay >> $WMII_DIR/client/$client/ctl
+ fi
+ }& ;;
+ Fullscreen) ## $1=client $2=[on|off]
+ # TODO: hide any clients with the 'panel' class
+ ;;
+
+ ## Tag events
+ CreateTag) ## $1=tag
+ echo "$WMII_NORMCOLORS" $@ >> $WMII_DIR/lbar/$1;;
+ DestroyTag) ## $1=tag
+ rm $WMII_DIR/lbar/$1;;
+ FocusTag) ## $1=tag
+ echo "$WMII_FOCUSCOLORS" $1 >> $WMII_DIR/lbar/$1;;
+ UnfocusTag) ## $1=tag
+ echo "$WMII_NORMCOLORS" $1 >> $WMII_DIR/lbar/$1;;
+ UrgentTag) ## $1=tag $2=[Manager|Client]
+ echo "$WMII_URGENTCOLORS" $1 >> $WMII_DIR/lbar/$1;;
+ NotUrgentTag) ## $1=tag $2=[Manager|Client]
+ echo "$WMII_NORMCOLORS" $1 >> $WMII_DIR/lbar/$1;;
+
+ ## LeftBar events (usually tag buttons)
+ LeftBarMouseDown) ## $1=button $2=bar_item
+ ;;
+ LeftBarClick) ## $1=button $2=bar_item
+ shift # ignore the button
+ echo view "$@" >> $WMII_DIR/ctl;;
+ LeftMouseDND) ## $1=button $2=bar_item
+ Event LeftBarClick "$@";;
+
+ ## RightBar events
+ RightBarMouseDown) ## $1=button $2=bar_item
+ ;;
+ RightBarClick) ## $1=button $2=bar_item
+ ;;
+ RightMouseDND) ## $1=button $2=bar_item
+ Event RightBarClick "$@";;
+ esac
+} ## End Event
+
+# Key Bindings
+Key() {
+ key=$1
+ case "$key" in
+ ## Moving around
+
+ $MODKEY-$LEFT) ## Select the client to the left
+ echo select left >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-$RIGHT) ## Select the client to the right
+ echo select right >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-$UP) ## Select the client above
+ echo select up >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-$DOWN) ## Select the client below
+ echo select down >> $WMII_DIR/tag/sel/ctl;;
+
+ $MODKEY-space) ## Toggle between floating and managed layers
+ echo select toggle >> $WMII_DIR/tag/sel/ctl;;
+
+ ## Moving clients around
+
+ $MODKEY-Shift-$LEFT) ## Move selected client to the left
+ echo send sel left >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-Shift-$RIGHT) ## Move selected client to the right
+ echo send sel right >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-Shift-$UP) ## Move selected client up
+ echo send sel up >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-Shift-$DOWN) ## Move selected client down
+ echo send sel down >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-Shift-space) ## Toggle selected client between floating and managed layers
+ echo send sel toggle >> $WMII_DIR/tag/sel/ctl;;
+
+ ## Moving through stacks
+ $MODKEY-Control-$UP) ## Select the stack above
+ echo select up stack >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-Control-$DOWN) ## Select the stack below
+ echo select down stack >> $WMII_DIR/tag/sel/ctl;;
+
+ ## Client actions
+ $MODKEY-shift-1) ## Toggle selected client's fullsceen state
+ echo Fullscreen toggle >> $WMII_DIR/client/sel/ctl;;
+ $MODKEY-shift-0) ## Close client
+ echo kill >> $WMII_DIR/client/sel/ctl;;
+
+ ## Changing column modes
+ $MODKEY-d) ## Set column to default mode
+ echo colmode sel default-max >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-s) ## Set column to stack mode
+ echo colmode sel stack-max >> $WMII_DIR/tag/sel/ctl;;
+ $MODKEY-m) ## Set column to max mode
+ echo colmode sel stack+max >> $WMII_DIR/tag/sel/ctl;;
+
+ ## Running programs
+ $MODKEY-a) ## Open wmii actions menu
+ Action $(path_ls $WMII_CONFPATH | wimenu -h "${HIST}.actions" -n 5000) & ;;
+ $MODKEY-x) ## Open program menu
+ setsid $(path_ls $PATH | wimenu -h "${HIST}.progs" -n 5000) & ;;
+ $MODKEY-Return) ## Launch a terminal
+ setsid x-terminal-emulator & ;;
+
+ ## Tag actions
+ $MODKEY-t) ## Change to another tag
+ {
+ tag=$(lstags | wimenu -h "${HIST}.tags" -n 50) || return
+ echo view $tag >> $WMII_DIR/ctl
+ }& ;;
+ $MODKEY-Shift-t) ## Retag the selected client
+ sel=$(sed 1q $WMII_DIR/client/sel/ctl)
+ {
+ tag=$(lstags | wimenu -h "${HIST}.tags" -n 50) || return
+ echo "$tag" >> $WMII_DIR/client/$sel/tags
+ }& ;;
+ esac
+} ## End Key
+
+Action() {
+ prog=`path_which "$WMII_CONFPATH" $1`; shift
+ if [ -n "$prog" ]; then
+ "$prog" "$@"
+ return $?
+ else
+ return 1
+ fi
+} ## End Action
diff --git a/.wmii/ctl-init b/.wmii/ctl-init
new file mode 100644
index 0000000..026c0d5
--- /dev/null
+++ b/.wmii/ctl-init
@@ -0,0 +1,5 @@
+font xft:Monospace-8
+focuscolors $WMII_FOCUSCOLORS
+normcolors $WMII_NORMCOLORS
+grabmod $MODKEY
+border 1
diff --git a/.wmii/fixes.sh b/.wmii/fixes.sh
new file mode 100644
index 0000000..aa09157
--- /dev/null
+++ b/.wmii/fixes.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+# Fix various deficiencies in either the shell or the filesystem
+
+##
+# Usage: ls DIRECTORY
+# Linux's 9p kernel module sometimes omits entries in directory listings
+##
+unalias ls &>/dev/null
+ls() {
+ real_ls="`which ls` -1F"
+ [ $# = 0 ] && set -- "`pwd`"
+ f="${1/#${WMII_DIR}/}"
+ if [ "$f" = "$1" ]; then
+ $real_ls "$f"
+ else
+ wmiir ls "$f"
+ fi
+}
+
+##
+# Usage: setsid cmd [arguments...]
+# I like wmiir's setsid better than linux-utils'
+##
+setsid() { wmiir setsid "$@"; }
diff --git a/.wmii/help-events b/.wmii/help-events
new file mode 100755
index 0000000..25b7d41
--- /dev/null
+++ b/.wmii/help-events
@@ -0,0 +1,3 @@
+#!/bin/bash
+. "$HOME/.wmii/include.sh"
+scansection Event | xmessage -file -
diff --git a/.wmii/help-keys b/.wmii/help-keys
new file mode 100755
index 0000000..c6e7038
--- /dev/null
+++ b/.wmii/help-keys
@@ -0,0 +1,3 @@
+#!/bin/bash
+. "$HOME/.wmii/include.sh"
+scansection Key | xmessage -file -
diff --git a/.wmii/include.sh b/.wmii/include.sh
index 36f8f3e..d4e58c3 100644
--- a/.wmii/include.sh
+++ b/.wmii/include.sh
@@ -1,70 +1,11 @@
#!/bin/bash
if [ -z "$WMII_NAMESPACE" ]; then
- export WMII_NAMESPACE=`wmiir namespace`
+ export WMII_NAMESPACE="`wmiir namespace`"
fi
if [ -z "$WMII_DIR" ]; then
- export WMII_DIR=$WMII_NAMESPACE/mnt
+ export WMII_DIR="$HOME/n/wmii"
fi
-# a -- a work-around for buggy IO append in 9pfuse
-# useing '|a' should be just like using '>>', but will work
-# when 9pfuse decides to bug out.
-a() {
- f="${1/#${WMII_DIR}/}"
- if [ "$f" = "$1" ]; then
- cat >> "$1"
- else
- if wmiir ls "$f" &>/dev/null; then
- wmiir write "$f"
- else
- wmiir create "$f"
- fi
- fi
-}
-
-# I like wmiir's setsid better than linux-utils'
-setsid() { wmiir setsid "$@"; }
-
-path_ls() {
- find -L `echo "$@"|sed 'y/:/ /'` -maxdepth 1 -type f -executable -printf '%f\n' 2>/dev/null| sort -u
-}
-
-path_which() {
- mypath=$1
- prog=$2
- which=`which which`
- PATH="$mypath" "$which" -- "$prog" 2>/dev/null
-}
-
-
-lstags() {
- ls $WMII_DIR/tag | sed '/^sel$/d'
-}
-
-scansection() {
- file=`path_which "$WMII_CONFPATH" wmiirc`
- sec=$1
- tmp=`mktemp`
- if [ -n "$sec" ]; then
- < "$file" sed -n "/^\s*$sec\s*()/,/##\s*End $sec/p" | sed '1d;$d'> $tmp
- else
- < "$file" sed "/\s*}\s*##\s*End\s/d" > $tmp
- fi
- < $tmp sed -n '/##/p'|sed -r 's/^\s*(.*)\)\s*## ?/\t\1\t/;s/\s*## ?//'
- rm $tmp
-}
-
-conffile() {
- echo "$HOME/.wmii/$@"
-}
-
-Action() {
- prog=`path_which "$WMII_CONFPATH" $1`; shift
- if [ -n "$prog" ]; then
- "$prog" "$@"
- return $?
- else
- return 1
- fi
-}
+. "$HOME/.wmii/util.sh"
+. "$HOME/.wmii/config.sh"
diff --git a/.wmii/quit b/.wmii/quit
index 54f64e7..876a60e 100755
--- a/.wmii/quit
+++ b/.wmii/quit
@@ -1,3 +1,3 @@
#!/bin/bash
. "$HOME/.wmii/include.sh"
-echo quit |a $WMII_DIR/ctl
+echo quit >> $WMII_DIR/ctl
diff --git a/.wmii/rbar_battery b/.wmii/rbar_battery
index 7a7f24f..ae8980a 100755
--- a/.wmii/rbar_battery
+++ b/.wmii/rbar_battery
@@ -3,8 +3,7 @@
priority=$1
-set -e
-while true; do
- acpi -b |a "$WMII_DIR/rbar/${priority}_battery"
+while connected_to_x_server; do
+ acpi -b >> "$WMII_DIR/rbar/${priority}_battery"
sleep 1
done
diff --git a/.wmii/rbar_clock b/.wmii/rbar_clock
index 8e7d2a4..18c4493 100755
--- a/.wmii/rbar_clock
+++ b/.wmii/rbar_clock
@@ -3,8 +3,7 @@
priority=$1
-set -e
-while true; do
- date |a "$WMII_DIR/rbar/${priority}_clock"
+while connected_to_x_server; do
+ date >> "$WMII_DIR/rbar/${priority}_clock"
sleep .5
done
diff --git a/.wmii/rbar_cpu b/.wmii/rbar_cpu
index 7f891da..22da985 100755
--- a/.wmii/rbar_cpu
+++ b/.wmii/rbar_cpu
@@ -3,11 +3,10 @@
priority=$1
-set -e
-while true; do
+while connected_to_x_server; do
# This doesn't work for me, it shows capacity
- #echo -n 'Core MHz:' $(cat /proc/cpuinfo | grep 'cpu MHz' | sed 's/.*: //g; s/\..*//g;') |a "$WMII_DIR/rbar/${priority}_cpu"
+ #echo -n 'Core MHz:' $(cat /proc/cpuinfo | grep 'cpu MHz' | sed 's/.*: //g; s/\..*//g;') >> "$WMII_DIR/rbar/${priority}_cpu"
# This actually displays %idle
- echo 'CPU: [ '$(tail -n3 ~/tmp/cputime|sed -ur 's/\s\s+/\t/g'|cut -f2,11|sed 's/\t\(.*\)/(\1)/')' ]' |a "$WMII_DIR/rbar/${priority}_cpu"
+ echo 'CPU: [ '$(tail -n3 ~/tmp/cputime|sed -ur 's/\s\s+/\t/g'|cut -f2,11|sed 's/\t\(.*\)/(\1)/')' ]' >> "$WMII_DIR/rbar/${priority}_cpu"
sleep 1
done
diff --git a/.wmii/rbar_wifi b/.wmii/rbar_wifi
index 608b164..2ada834 100755
--- a/.wmii/rbar_wifi
+++ b/.wmii/rbar_wifi
@@ -3,8 +3,7 @@
priority=$1
-set -e
-while true; do
- echo 'Wlan0:' $(iwconfig wlan0 | sed 's/ /\n/g' | grep Quality) |a "$WMII_DIR/rbar/${priority}_wifi"
+while connected_to_x_server; do
+ echo 'Wlan0:' $(iwconfig wlan0 | sed 's/ /\n/g' | grep Quality) >> "$WMII_DIR/rbar/${priority}_wifi"
sleep 1
done
diff --git a/.wmii/tagrules b/.wmii/tagrules
new file mode 100644
index 0000000..990151f
--- /dev/null
+++ b/.wmii/tagrules
@@ -0,0 +1,3 @@
+/Emacs|Navigator/ -> +sel
+/Eclipse/ -> +sel
+/panel/ -> /.*/
diff --git a/.wmii/util.sh b/.wmii/util.sh
new file mode 100644
index 0000000..43d7d4a
--- /dev/null
+++ b/.wmii/util.sh
@@ -0,0 +1,128 @@
+#!/bin/bash
+
+# I moved "fixes" into a separate file because it isn't so much configuration...
+. "$HOME/.wmii/fixes.sh"
+
+################################################################################
+# Added shell features #
+################################################################################
+
+##
+# Usage: dquote STRING
+# Safely double-quotes a string.
+# It escapes ways to execute code, but not variables.
+##
+dquote() {
+ str=$1
+ str="${str//\\/\\\\}" # backslash
+ str="${str//\"/\\\"}" # dquote
+ str="${str//\$(/\\\$(}" # $(...)
+ str="${str//\`/\\\`}" # backtick
+ printf '"%s"\n' "$str"
+}
+
+##
+# Usage: expand_variables
+# Expands variables read from /dev/stdin
+##
+expand_variables() {
+ while read; do
+ eval printf "'%s\n'" "$(dquote "$REPLY")"
+ done
+}
+
+is_mounted() {
+ dir="$(readlink -m $1)"
+ mntpnt="$(cut -d' ' -f2 /proc/mounts|grep -- "$dir")"
+ [[ $dir = "$mntpnt" ]]
+ return $?
+}
+
+################################################################################
+# PATH manipulation #
+################################################################################
+
+##
+# Usage: path_ls PATH
+# List executables in PATH (PATH is delimited by `:')
+##
+path_ls() {
+ dirs="`echo "$@"|sed 'y/:/ /'`"
+ find -L $dirs -maxdepth 1 -type f -executable -printf '%f\n' 2>/dev/null | sort -u
+}
+
+##
+# Usage: path_which PATH PROGRAM
+# Find the full path of PROGRAM by searching PATH
+##
+path_which() {
+ mypath=$1
+ prog=$2
+ which=`which which`
+ PATH="$mypath" "$which" -- "$prog" 2>/dev/null
+}
+
+################################################################################
+# wmii convenience functions #
+################################################################################
+
+##
+# Usage: lstags
+# Lists wmii tags
+##
+lstags() {
+ ls $WMII_DIR/tag | sed -e 's@/@@' -e '/^sel$/d'
+}
+
+################################################################################
+# X11 functions #
+################################################################################
+
+##
+# Usage: connected_to_x_server
+# Return status indicates whether there is an X server at $DISPLAY
+##
+connected_to_x_server() {
+ xdpyinfo &>/dev/null
+ return $?
+}
+
+################################################################################
+# My wmii configuration #
+################################################################################
+
+##
+# Usage: scansection [SECTION]
+# Reads the doc comments from a section of wmiirc.
+# If SECTION is not given, it reads all doc comments.
+##
+scansection() {
+ file=`conffile config.sh`
+ sec=$1
+ tmp=`mktemp`
+ # Isolate the sections we want.
+ if [ -n "$sec" ]; then
+ # Find the section
+ < "$file" sed -n "/^\s*$sec\s*()/,/##\s*End $sec/p" | sed '1d;$d'> $tmp
+ else
+ # Remove extra lines that mark the end of a section
+ < "$file" sed "/\s*}\s*##\s*End\s/d" > $tmp
+ fi
+ < $tmp sed -n '/##/p' | while read; do
+ var="$(echo "$REPLY" | sed -nr 's/^\s*(.*)\)\s*##.*/\1/p')"
+ comment="$(echo "$REPLY" | sed -r 's/.*## ?//')"
+ if [ -z "$var" ]; then
+ printf '%s\n' "$comment"
+ else
+ printf '\t%s\t%s\n' "$(echo "$var"|expand_variables)" "$comment"
+ fi
+ done
+ rm $tmp
+}
+
+##
+# Usage: conffile FILE
+##
+conffile() {
+ echo "$HOME/.wmii/$@"
+}
diff --git a/.wmii/wmiirc b/.wmii/wmiirc
index 92adb8b..1f1ea18 100755
--- a/.wmii/wmiirc
+++ b/.wmii/wmiirc
@@ -1,271 +1,12 @@
#!/bin/bash
-# Let any running instances of wmiirc know that we're starting
-wmiir xwrite /event Start
-
. "$HOME/.wmii/include.sh"
-echo ' ==> Starting wmiirc'
-mount9p=/opt/plan9/bin/9pfuse
-mkdir -p $WMII_NAMESPACE/mnt
-$mount9p $WMII_NAMESPACE/{wmii,mnt}
-
-MODKEY=Mod4 # super
-UP=p
-DOWN=n
-LEFT=b
-RIGHT=f
-
-# Colors tuples: "<text> <background> <border>"
-. `conffile theme-solarized-dark`
-
-# Menu history
-hist="`conffile history`"
-
-# Tagging Rules
-echo '/Emacs|Navigator/ -> +sel' >> $WMII_DIR/tagrules
-echo '/Eclipse/ -> +sel' >> $WMII_DIR/tagrules
-echo '/panel/ -> /.*/' >> $WMII_DIR/tagrules
-
-Event() {
- event=$1; shift;
- case "$event" in
- ## Mouse event meanings:
- ## MouseDown = mouse down
- ## Click = mouse up
- ## DND = hover, while dragging something (Drag 'n' Drop)
- ## The associated mouse button is always "1"
- ##
- ## Mouse-button IDs:
- ## 1 = left
- ## 2 = middle
- ## 3 = right
-
- ## WMII-meta events
- Quit) ## No args
- echo ' ==> Stopping wmiirc'
- echo " -> unmounting WMII_DIR=$WMII_DIR..."
- # might complain about /etc/mtab if the x server has already stopped
- fusermount -u "$WMII_DIR" 2>>/dev/null
- echo " -> rmdir'ing WMII_DIR=$WMII_DIR..."
- rmdir "$WMII_DIR"
- exit;;
- Warning) ## $@=string
- notify-send "wmii warning: $*";;
- Key) ## $1=keystroke
- Key "$@";;
-
- ## WMII Window management events
- FocusFloating) ## No args
- ;;
- AreaFocus) ## $1=area
- ;;
- DestroyArea) ## $1=area
- ;;
- ColumnFocus) ## $1=column
- ;;
- CreateColumn) ## $1=column
- ;;
-
- ## Client events
- CreateClient) ## $1=client
- ;;
- DestroyClient) ## $1=client
- ;;
- Urgent) ## $1=client $2=[Manager|Client]
- ;;
- NotUrgent) ## $1=client $2=[Manager|Client]
- ;;
- ClientMouseDown) ## $1=client $2=button
- client=$1
- button=$2
- case $button in
- 1) ;;
- 2) ;;
- 3)
- {
- case `wmii9menu Delete Fullscreen` in
- Delete)
- echo kill |a $WMII_DIR/client/$client/ctl;;
- Fullscreen)
- echo Fullscreen on |a $WMII_DIR/client/$1/ctl;;
- esac
- }& ;;
- esac;;
- ClientClick) ## $1=client $2=button
- ;;
- Unresponsive) ## $1=client
- client=$1
- client_name=`cat $WMII_DIR/client/$client/label`
- msg="The client \`${client_name}' is not responding."
- msg+=" What would you like to do?"
- {
- resp=$(wihack -transient $client \
- xmessage -nearmouse -buttons Kill,Wait -print "$msg")
- if [ "$resp" = Kill ]; then
- echo slay |a $WMII_DIR/client/$client/ctl
- fi
- }& ;;
- Fullscreen) ## $1=client $2=[on|off]
- # TODO: hide any clients with the 'panel' class
- ;;
-
- ## Tag events
- CreateTag) ## $1=tag
- echo "$WMII_NORMCOLORS" $@ |a $WMII_DIR/lbar/$1;;
- DestroyTag) ## $1=tag
- rm $WMII_DIR/lbar/$1;;
- FocusTag) ## $1=tag
- echo "$WMII_FOCUSCOLORS" $1 |a $WMII_DIR/lbar/$1;;
- UnfocusTag) ## $1=tag
- echo "$WMII_NORMCOLORS" $1 |a $WMII_DIR/lbar/$1;;
- UrgentTag) ## $1=tag $2=[Manager|Client]
- echo "$WMII_URGENTCOLORS" $1 |a $WMII_DIR/lbar/$1;;
- NotUrgentTag) ## $1=tag $2=[Manager|Client]
- echo "$WMII_NORMCOLORS" $1 |a $WMII_DIR/lbar/$1;;
-
- ## LeftBar events (usually tag buttons)
- LeftBarMouseDown) ## $1=button $2=bar_item
- ;;
- LeftBarClick) ## $1=button $2=bar_item
- shift # ignore the button
- echo view "$@" |a $WMII_DIR/ctl;;
- LeftMouseDND) ## $1=button $2=bar_item
- Event LeftBarClick "$@";;
-
- ## RightBar events
- RightBarMouseDown) ## $1=button $2=bar_item
- ;;
- RightBarClick) ## $1=button $2=bar_item
- ;;
- RightMouseDND) ## $1=button $2=bar_item
- Event RightBarClick "$@";;
-
- ## Custom (non-WMII-generated) events
- Start) ## No args
- Event Quit;; # get out of the way for a new event loop
- esac
-} ## End Event
-
-# Key Bindings
-Key() {
- key=$1
- case "$key" in
- ## Moving around
-
- $MODKEY-$LEFT) ## Select the client to the left
- echo select left |a $WMII_DIR/tag/sel/ctl;;
- $MODKEY-$RIGHT) ## Select the client to the right
- echo select right |a $WMII_DIR/tag/sel/ctl;;
- $MODKEY-$UP) ## Select the client above
- echo select up |a $WMII_DIR/tag/sel/ctl;;
- $MODKEY-$DOWN) ## Select the client below
- echo select down |a $WMII_DIR/tag/sel/ctl;;
-
- $MODKEY-space) ## Toggle between floating and managed layers
- echo select toggle |a $WMII_DIR/tag/sel/ctl;;
-
- ## Moving clients around
-
- $MODKEY-Shift-$LEFT) ## Move selected client to the left
- wmiir xwrite /tag/sel/ctl send sel left;;
- $MODKEY-Shift-$RIGHT) ## Move selected client to the right
- wmiir xwrite /tag/sel/ctl send sel right;;
- $MODKEY-Shift-$UP) ## Move selected client up
- wmiir xwrite /tag/sel/ctl send sel up;;
- $MODKEY-Shift-$DOWN) ## Move selected client down
- wmiir xwrite /tag/sel/ctl send sel down;;
-
- $MODKEY-Shift-space) ## Toggle selected client between floating and managed layers
- wmiir xwrite /tag/sel/ctl send sel toggle;;
-
- ## Moving through stacks
- $MODKEY-Control-$UP) ## Select the stack above
- wmiir xwrite /tag/sel/ctl select up stack;;
- $MODKEY-Control-$DOWN) # Select the stack below
- wmiir xwrite /tag/sel/ctl select down stack;;
-
- ## Client actions
- $MODKEY-shift-1) ## Toggle selected client's fullsceen state
- wmiir xwrite /client/sel/ctl Fullscreen toggle;;
- $MODKEY-shift-0) ## Close client
- wmiir xwrite /client/sel/ctl kill;;
-
- ## Changing column modes
- $MODKEY-d) ## Set column to default mode
- wmiir xwrite /tag/sel/ctl colmode sel default-max;;
- $MODKEY-s) ## Set column to stack mode
- wmiir xwrite /tag/sel/ctl colmode sel stack-max;;
- $MODKEY-m) ## Set column to max mode
- wmiir xwrite /tag/sel/ctl colmode sel stack+max;;
-
- ## Running programs
- $MODKEY-a) ## Open wmii actions menu
- Action $(path_ls $WMII_CONFPATH | wimenu -h "${hist}.actions" -n 5000) & ;;
- $MODKEY-x) ## Open program menu
- setsid $(wimenu -h "${hist}.progs" -n 5000 <$progsfile) & ;;
- $MODKEY-Return) ## Launch a terminal
- setsid x-terminal-emulator & ;;
-
- ## Other
- $MODKEY-Control-t) ## Toggle all other key bindings
- case $(wmiir read /keys | wc -l | tr -d ' \t\n') in
- 0|1)
- echo -n "$Keys" | wmiir write /keys
- wmiir xwrite /ctl grabmod $MODKEY;;
- *)
- wmiir xwrite /keys $MODKEY-Control-t
- wmiir xwrite /ctl grabmod Mod3;;
- esac;;
-
- ## Tag actions
- $MODKEY-t) ## Change to another tag
- {
- tag=$(lstags | wimenu -h "${hist}.tags" -n 50) || return
- wmiir xwrite /ctl view $tag
- }& ;;
- $MODKEY-Shift-t) ## Retag the selected client
- sel=$(sed 1q $WMII_DIR/client/sel/ctl)
- {
- tag=$(lstags | wimenu -h "${hist}.tags" -n 50) || return
- wmiir xwrite /client/$sel/tags "$tag"
- }& ;;
- esac
-} ## End Key
-
-# WM Configuration
-echo font xft:Monospace-8 |a $WMII_DIR/ctl
-echo focuscolors $WMII_FOCUSCOLORS |a $WMII_DIR/ctl
-echo normcolors $WMII_NORMCOLORS |a $WMII_DIR/ctl
-echo grabmod $MODKEY |a $WMII_DIR/ctl
-echo border 1 |a $WMII_DIR/ctl
-xsetroot -solid "$WMII_BACKGROUND" &
-
-progsfile=$WMII_NAMESPACE/.proglist
-path_ls $PATH > $progsfile &
-
-eval arg `scansection Key|cut -sf2` |a $WMII_DIR/keys
-
-# Clear the LBar
-find $WMII_DIR/lbar -type f -delete
-
-# Emulate [Create|Focus]Tag events
-seltag=`sed 1q $WMII_DIR/tag/sel/ctl`
-lstags | while read tag; do
- Event CreateTag "$tag"
- if [ "$tag" = "$seltag" ]; then
- Event FocusTag "$tag"
- fi
-done
-
-Action autostart 2>/dev/null &
+wmiir xwrite /event WmiircQuit # close any existing wmiirc's
-if [ -f "`conffile wmiirc_local`" ]; then
- . "`conffile wmiirc_local`"
-fi
+Event WmiircStart
trap "Event Quit" EXIT
-# use wmiir so it doesn't look like an open file
wmiir read /event 2>/dev/null | while read event; do
Event $event
done
diff --git a/.wmii/wmiirc_local b/.wmii/wmiirc_local
deleted file mode 100644
index 1bcff2c..0000000
--- a/.wmii/wmiirc_local
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash this is included, not executed
-
-#Action rbar_cpu 01 &
-#Action rbar_wifi 97 &
-Action rbar_battery 98 &
-Action rbar_clock 99 &
diff --git a/.xinitrc b/.xinitrc
index 9c5ce55..c0f7e1c 100644..120000
--- a/.xinitrc
+++ b/.xinitrc
@@ -1,26 +1 @@
-#!/bin/sh
-#
-# ~/.xinitrc
-#
-# Executed by startx (run your window manager from here)
-
-if [ -d /etc/X11/xinit/xinitrc.d ]; then
- echo ' ==> Running scripts in Entering xinitrc.d/*'
- for f in /etc/X11/xinit/xinitrc.d/*; do
- echo " -> $f"
- [ -x "$f" ] && "$f" &
- done
- unset f
- echo ' -> done'
-fi
-
-usermodmap="$HOME/.xmodmap"
-if [ -f "$usermodmap" ]; then
- xmodmap "$usermodmap"
-fi
-
-# exec gnome-session
-# exec startkde
-# exec startxfce4
-# ...or the Window Manager of your choice
-exec ck-launch-session wmii
+.config/X11/clientrc \ No newline at end of file
diff --git a/.xserverrc b/.xserverrc
new file mode 120000
index 0000000..f46e3e3
--- /dev/null
+++ b/.xserverrc
@@ -0,0 +1 @@
+.config/X11/serverrc \ No newline at end of file
diff --git a/.xsession b/.xsession
index a16dc0b..ee16887 100644..120000
--- a/.xsession
+++ b/.xsession
@@ -1,10 +1 @@
-#!/bin/sh
-
-#
-# ~/.xsession
-#
-# Executed by xdm/gdm/kdm at login
-#
-
-/bin/bash --login -i ~/.xinitrc
-
+.config/X11/login \ No newline at end of file
diff --git a/Makefile b/Makefile
index 3cecf33..160a64c 100644
--- a/Makefile
+++ b/Makefile
@@ -4,22 +4,19 @@ NANO_BIN_PREFIX = $(patsubst %/bin/nano,%,$(shell which nano))
NANO_CHECK = $(HOME)/.prefix:$(HOME):/usr/local:/usr:$(NANO_BIN_PREFIX)
NANO_SHARE = $(firstword $(wildcard $(addsuffix /share/nano,$(subst :, ,$(NANO_CHECK)))))
-ALSACTL=$(firstword $(shell . $(HOME)/.profile &>/dev/null; which alsactl) echo)
-
-targets=.nanorc .folders .crontab.cookie .current.asound
+targets=.nanorc .folders .crontab.cookie .git.info.exclude
all: $(targets)
clean:
rm -f $(targets)
-%.asound: FORCE
- $(ALSACTL) store --file '$@'
-
.nanorc: .nanorc.in $(NANO_SHARE)
cat '$<' > '$@'
for file in $(NANO_SHARE)/*.nanorc; do echo "include \"$$file\""; done >> '$@'
.folders: Maildir
( echo '..'; find ~/Maildir -maxdepth 2 -type f -name "maildirfolder" -printf '%h\n'|sed -r 's@.*/(.*\.)(.*)@.\1\2@' )|sort>'$@'
+.git.info.exclude: .git.info.exclude.in .
+ ( cat $<; find . -type f -name 'CACHEDIR.TAG' -printf '%h\n'|sed 's@^\./@/@' ) > $@
.crontab.cookie: .crontab .crontab.local
-(cat $^; echo) | crontab - 2>/dev/null