diff options
-rw-r--r-- | .bashrc | 7 | ||||
-rw-r--r-- | .config/lxpanel/default/config | 3 | ||||
-rw-r--r-- | .config/lxpanel/default/panels/panel | 42 | ||||
-rw-r--r-- | .config/vlc/vlcrc | 200 | ||||
-rw-r--r-- | .crontab | 3 | ||||
-rw-r--r-- | .emacs | 188 | ||||
-rw-r--r-- | .emacs.d/.gitignore | 4 | ||||
-rw-r--r-- | .emacs.d/custom.el | 26 | ||||
-rw-r--r-- | .git.info.exclude | 14 | ||||
-rw-r--r-- | .irbrc | 1 | ||||
-rwxr-xr-x | .local/bin/notifyd | 14 | ||||
-rw-r--r-- | .maildirproc/default.rc | 101 | ||||
-rw-r--r-- | .offlineimaprc | 13 | ||||
-rw-r--r-- | .profile | 19 | ||||
-rwxr-xr-x | .wmii/autostart | 4 | ||||
-rw-r--r-- | .wmii/include.sh | 70 | ||||
-rwxr-xr-x | .wmii/quit | 3 | ||||
-rwxr-xr-x | .wmii/rbar_battery | 10 | ||||
-rwxr-xr-x | .wmii/rbar_clock | 10 | ||||
-rwxr-xr-x | .wmii/rbar_cpu | 13 | ||||
-rwxr-xr-x | .wmii/rbar_wifi | 10 | ||||
-rw-r--r-- | .wmii/theme-solarized (renamed from .wmii/wmiirc_solarized) | 0 | ||||
-rw-r--r-- | .wmii/theme-solarized-dark (renamed from .wmii/wmiirc_solarized_dark) | 8 | ||||
-rwxr-xr-x | .wmii/wmiirc | 495 | ||||
-rw-r--r-- | .xinitrc | 7 |
25 files changed, 654 insertions, 611 deletions
@@ -23,6 +23,13 @@ shopt -s histappend # 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)" diff --git a/.config/lxpanel/default/config b/.config/lxpanel/default/config new file mode 100644 index 0000000..3ac287f --- /dev/null +++ b/.config/lxpanel/default/config @@ -0,0 +1,3 @@ +[Command] +FileManager=v-editor %s +Terminal=urxvt diff --git a/.config/lxpanel/default/panels/panel b/.config/lxpanel/default/panels/panel new file mode 100644 index 0000000..9d776bb --- /dev/null +++ b/.config/lxpanel/default/panels/panel @@ -0,0 +1,42 @@ +# lxpanel <profile> config file. Manually editing is not recommended. +# Use preference dialog in lxpanel to adjust config when you can. + +Global { + edge=top + allign=right + margin=0 + widthtype=percent + width=100 + height=16 + transparent=1 + tintcolor=#002b36 + alpha=255 + autohide=0 + heightwhenhidden=2 + setdocktype=1 + setpartialstrut=1 + usefontcolor=1 + fontsize=10 + fontcolor=#839496 + usefontsize=0 + background=0 + backgroundfile=/usr/share/lxpanel/images/background.png + iconsize=16 +} + +Plugin { + type = space + expand=1 + Config { + Size=2 + } +} + +Plugin { + type = tray +} + +Plugin { + type = volumealsa +} + diff --git a/.config/vlc/vlcrc b/.config/vlc/vlcrc index 35d4eab..21a90e4 100644 --- a/.config/vlc/vlcrc +++ b/.config/vlc/vlcrc @@ -1,5 +1,5 @@ ### -### vlc 2.0.1 +### vlc 2.0.3 ### ### @@ -1923,19 +1923,19 @@ [spatializer] # Audio Spatializer # Room size (float) -#spatializer-roomsize=1.050000 +#spatializer-roomsize=0.850000 # Room width (float) -#spatializer-width=10.000000 +#spatializer-width=1.000000 # Wet (float) -#spatializer-wet=3.000000 +#spatializer-wet=0.400000 # Dry (float) -#spatializer-dry=2.000000 +#spatializer-dry=0.500000 # Damp (float) -#spatializer-damp=1.000000 +#spatializer-damp=0.500000 [a52tofloat32] # ATSC A/52 (AC-3) audio decoder @@ -1951,22 +1951,22 @@ #compressor-rms-peak=0.000000 # Attack time (float) -compressor-attack=1.400000 +#compressor-attack=25.000000 # Release time (float) -compressor-release=1.900000 +#compressor-release=100.000000 # Threshold level (float) -compressor-threshold=0.000000 +#compressor-threshold=-11.000000 # Ratio (float) -compressor-ratio=1.000000 +#compressor-ratio=8.000000 # Knee radius (float) -compressor-knee=1.000000 +#compressor-knee=2.500000 # Makeup gain (float) -compressor-makeup-gain=0.000000 +#compressor-makeup-gain=7.000000 [samplerate] # Secret Rabbit Code (libsamplerate) resampler @@ -1985,7 +1985,7 @@ compressor-makeup-gain=0.000000 #equalizer-2pass=0 # Global gain (float) -equalizer-preamp=0.000000 +#equalizer-preamp=12.000000 [theora] # Theora video decoder @@ -2647,10 +2647,10 @@ equalizer-preamp=0.000000 [skins2] # Skinnable Interface # Skin to use (string) -skins2-last=/usr/share/vlc/skins2/default.vlt +#skins2-last= # Config of last used skin (string) -skins2-config=[aboutwin aboutwinwin-main 0 0 330 171 0][eqwin eqwin-main 0 0 330 171 0][fullscreenController fsc_normal 30 30 500 500 1][main normal 0 0 500 350 1][plwin plwin-normal 0 0 500 350 0] +#skins2-config= # Enable transparency effects (boolean) #skins2-transparency=0 @@ -3425,7 +3425,7 @@ qt-privacy-ask=0 #audio=1 # Default audio volume (integer) -volume=224 +volume=263 # Audio output volume step (integer) #volume-step=32 @@ -3623,7 +3623,7 @@ volume=224 #sub-autodetect-fuzzy=3 # Subtitle autodetection paths (string) -#sub-autodetect-path=./Subtitles, ./subtitles +#sub-autodetect-path=./Subtitles, ./subtitles, ./Subs, ./subs # Force subtitle position (integer) #sub-margin=0 @@ -3929,7 +3929,7 @@ volume=224 #auto-preparse=1 # Album art policy (integer) -album-art=2 +#album-art=0 # Services discovery modules (string) #services-discovery= @@ -4618,167 +4618,3 @@ album-art=2 # Playlist bookmark 10 (string) #bookmark10= -[fluidsynth] # FluidSynth MIDI synthesizer -# Sound fonts (string) -#soundfont= -# Synthesis gain (float) -#synth-gain=0.800000 -[snapshot] # Snapshot output -# Snapshot width (integer) -#vout-snapshot-width=320 -# Snapshot height (integer) -#vout-snapshot-height=200 -# Chroma (string) -#vout-snapshot-chroma=RV32 -# Cache size (number of images) (integer) -#vout-snapshot-cache-size=50 -[oldtelnet] # VLM remote control interface -# Host (string) -#telnet-host=localhost -# Port (integer) -#telnet-port=4212 -# Password (string) -#telnet-password=admin -[oldhttp] # HTTP remote control interface -# Host address (string) -#http-host= -# Source directory (string) -#http-src= -# Handlers (string) -#http-handlers= -# Export album art as /art (boolean) -#http-album-art=0 -# Certificate file (string) -#http-intf-cert= -# Private key file (string) -#http-intf-key= -# Root CA file (string) -#http-intf-ca= -# CRL file (string) -#http-intf-crl= -[crop] # Crop video filter -# Crop geometry (pixels) (string) -#crop-geometry= -# Automatic cropping (boolean) -#autocrop=0 -# Ratio max (x 1000) (integer) -#autocrop-ratio-max=2405 -# Manual ratio (integer) -#crop-ratio=0 -# Number of images for change (integer) -#autocrop-time=25 -# Number of lines for change (integer) -#autocrop-diff=16 -# Number of non black pixels (integer) -#autocrop-non-black-pixels=3 -# Skip percentage (%) (integer) -#autocrop-skip-percent=17 -# Luminance threshold (integer) -#autocrop-luminance-threshold=40 -[fake] # Fake video decoder -# Image file (string) -#fake-file= -# Reload image file (integer) -#fake-file-reload=0 -# Video width (integer) -#fake-width=0 -# Video height (integer) -#fake-height=0 -# Keep aspect ratio (boolean) -#fake-keep-ar=0 -# Background aspect ratio (string) -#fake-aspect-ratio= -# Deinterlace video (boolean) -#fake-deinterlace=0 -# Deinterlace module (string) -#fake-deinterlace-module=deinterlace -# Chroma used (string) -#fake-chroma=I420 -[invmem] # Memory video decoder -# Width (integer) -#invmem-width=0 -# Height (integer) -#invmem-height=0 -# Lock function (string) -#invmem-lock=0 -# Unlock function (string) -#invmem-unlock=0 -# Callback data (string) -#invmem-data=0 -# Chroma (string) -#invmem-chroma=RV24 -[dvb] # DVB input with v4l2 support -# Caching value in ms (integer) -#dvb-caching=300 -# Adapter card to tune (integer) -#dvb-adapter=0 -# Device number to use on adapter (integer) -#dvb-device=0 -# Transponder/multiplex frequency (integer) -#dvb-frequency=0 -# Inversion mode (integer) -#dvb-inversion=2 -# Probe DVB card for capabilities (boolean) -#dvb-probe=1 -# Budget mode (boolean) -#dvb-budget-mode=0 -# Satellite number in the Diseqc system (integer) -#dvb-satno=0 -# LNB voltage (integer) -#dvb-voltage=13 -# High LNB voltage (boolean) -#dvb-high-voltage=0 -# 22 kHz tone (integer) -#dvb-tone=-1 -# Transponder FEC (integer) -#dvb-fec=9 -# Transponder symbol rate in kHz (integer) -#dvb-srate=27500000 -# Antenna lnb_lof1 (kHz) (integer) -#dvb-lnb-lof1=0 -# Antenna lnb_lof2 (kHz) (integer) -#dvb-lnb-lof2=0 -# Antenna lnb_slof (kHz) (integer) -#dvb-lnb-slof=0 -# Modulation type (integer) -#dvb-modulation=0 -# Terrestrial high priority stream code rate (FEC) (integer) -#dvb-code-rate-hp=9 -# Terrestrial low priority stream code rate (FEC) (integer) -#dvb-code-rate-lp=9 -# Terrestrial bandwidth (integer) -#dvb-bandwidth=0 -# Terrestrial guard interval (integer) -#dvb-guard=0 -# Terrestrial transmission mode (integer) -#dvb-transmission=0 -# Terrestrial hierarchy mode (integer) -#dvb-hierarchy=0 -# HTTP Host address (string) -#dvb-http-host= -# HTTP user name (string) -#dvb-http-user= -# HTTP password (string) -#dvb-http-password= -# HTTP ACL (string) -#dvb-http-acl= -# Certificate file (string) -#dvb-http-intf-cert= -# Private key file (string) -#dvb-http-intf-key= -# Root CA file (string) -#dvb-http-intf-ca= -# CRL file (string) -#dvb-http-intf-crl= -[access_fake] # Fake video input -# Caching value in ms (integer) -#fake-caching=300 -# Framerate (float) -#fake-fps=25.000000 -# ID (integer) -#fake-id=0 -# Duration in ms (integer) -#fake-duration=-1 -[access_mmap] # Memory-mapped file input -# Use file memory mapping (boolean) -#file-mmap=0 @@ -1,2 +1,3 @@ # m h dom mon dow command -*/5 * * * * cd $HOME && make - +*/5 * * * * cd $HOME && make +*/5 * * * * offlineimap-runner 2 -u quiet @@ -1,132 +1,81 @@ -(set-face-attribute 'default nil :height 80) +;; Preliminary settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(set-face-attribute 'default nil :height 80) +(setq notify-method 'notify-via-libnotify) +(add-to-list 'load-path "~/.emacs.d/") +(add-to-list 'load-path "~/.emacs.d/el-get/el-get") (setq custom-file "~/.emacs.d/custom.el") -(load custom-file 'noerror) -(defun load-identica-mode () - (when (require 'netrc nil t) - (autoload 'identica-mode "identica-mode" nil t) - (let ((identica (netrc-machine (netrc-parse "~/.netrc") "identi.ca" t))) - (setq identica-password (netrc-get identica "password")) - (setq identica-username (netrc-get identica "login")) - ) - ) -) +; derived from ELPA installation +; http://tromey.com/elpa/install.html +(defun eval-url (url) + (let ((buffer (url-retrieve-synchronously url))) + (save-excursion + (set-buffer buffer) + (goto-char (point-min)) + (re-search-forward "^$" nil 'move) + (eval-region (point) (point-max)) + (kill-buffer (current-buffer))))) + + ;; ELPA stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(unless (require 'package nil t) + (eval-url "http://tromey.com/elpa/package-install.el")) (setq package-archives '(("ELPA" . "http://tromey.com/elpa/") ("marmalade" . "http://marmalade-repo.org/packages/") ("gnu" . "http://elpa.gnu.org/packages/"))) +;; el-get stuff ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(add-to-list 'load-path "~/.emacs.d/") -(add-to-list 'load-path "~/.emacs.d/el-get/el-get") +(setq el-get-install-branch "master") ;; live life on the edge (unless (require 'el-get nil t) - (url-retrieve - "https://github.com/dimitri/el-get/raw/master/el-get-install.el" - (lambda (s) - (end-of-buffer) - (eval-print-last-sexp)))) - -(setq el-get-sources - '((:name scss-mode - :url "git://github.com/antonj/scss-mode.git" - :after (lambda () - (setq scss-compile-at-save nil))) - (:name color-theme - :after (lambda () - (color-theme-tty-dark))) - (:name color-theme-solarized - :after (lambda () - (add-hook 'after-make-frame-functions - (lambda (frame) - (set-variable 'color-theme-is-global nil) - (select-frame frame) - (if window-system - (color-theme-solarized-dark) - (color-theme-tty-dark)))))) - (:name org-mode - :after (lambda () - (require 'org-checklist) - (setq org-hide-leading-stars t) - (setq org-log-done 'time))) - (:name identica-mode - :type http-tar - :options ("xzf") - :url "http://git.savannah.gnu.org/cgit/identica-mode.git/snapshot/identica-mode-1.1.tar.gz" - :load "identica-mode.el" - :after (lambda () - (load-identica-mode))) - (:name nginx-mode - :description "Major mode for editing Nginx configuration files" - :type git - :url "git://github.com/ajc/nginx-mode.git") - (:name autopair - :after (lambda () - (autopair-global-mode 1) - (setq autopair-autowrap t))) - )) + (eval-url "https://github.com/dimitri/el-get/raw/master/el-get-install.el")) -(setq lts-el-get-packages +(setq el-get-sources '( + (:name nxhtml + :type http + :url "http://ourcomments.org/Emacs/DL/elisp/nxhtml/zip/nxhtml-2.08-100425.zip" + :build ("unzip nxhtml-2.08-100425.zip") + :load "nxhtml/autostart.el") + )) + +(setq my-el-get-packages '(el-get - package - rainbow-delimiters - php-mode-improved - mmm-mode - dtrt-indent - coffee-mode - folding - apel flim semi wanderlust - scss-mode - color-theme color-theme-solarized - org-mode - identica-mode +; nxhtml smarttabs - markdown-mode - autopair - nginx-mode )) -(when (require 'el-get nil t) - (el-get 'sync lts-el-get-packages)) +;; Now load all of that ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(add-hook 'text-mode-hook 'turn-on-auto-fill) -(add-hook 'after-make-frame-functions - (lambda (frame) - (set-variable 'term-default-fg-color - (face-foreground 'default)) - (set-variable 'term-default-bg-color - (face-background 'default))) - t) +;; ELPA +(package-initialize) +;; el-get +(when (require 'el-get nil t) (el-get 'sync my-el-get-packages)) +;; custom +(load custom-file 'noerror) +;; General settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;(load "mdmua") (load "emacsutils") (tool-bar-mode -1) (ido-mode t) (show-paren-mode 1) - -(defun toggle-fullscreen (&optional f) - (interactive) - (let ((current-value (frame-parameter nil 'fullscreen))) - (set-frame-parameter nil 'fullscreen - (if (equal 'fullboth current-value) - (if (boundp 'old-fullscreen) old-fullscreen nil) - (progn (setq old-fullscreen current-value) - 'fullboth))))) -(global-set-key [f11] 'toggle-fullscreen) +(setq org-hide-leading-stars t) +(setq org-log-done 'time) +;(xclip-mode 1) (load "whitespace") -(global-set-key "\C-cw" 'global-whitespace-mode) (setq whitespace-style '( -; face -; tabs tab-mark -; spaces space-mark -; newline newline-mark empty )) + ;; These are my preferred settings; we let dtrt-indent detect when we play with other's files (setq-default tab-width 8) (setq-default c-basic-offset 8) @@ -135,7 +84,7 @@ (setq backup-by-copying t ;; don't clobber symlinks - backup-directory-alist '(("." . "~/.saves")) ;; don't litter my fs tree + backup-directory-alist '(("." . "~/.emacs.d/saves")) ;; don't litter my fs tree delete-old-versions t kept-new-versions 6 kept-old-versions 2 @@ -152,6 +101,34 @@ (setq browse-url-generic-program (executable-find "v-www-browser") browse-url-browser-function 'browse-url-generic) + +(defun toggle-fullscreen (&optional f) + (interactive) + (let ((current-value (frame-parameter nil 'fullscreen))) + (set-frame-parameter nil 'fullscreen + (if (equal 'fullboth current-value) + (if (boundp 'old-fullscreen) old-fullscreen nil) + (progn (setq old-fullscreen current-value) + 'fullboth))))) + +;; Custom keybindings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(global-set-key [f11] 'toggle-fullscreen) +(global-set-key "\C-cw" 'global-whitespace-mode) + +;; mode-hooks ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(add-hook 'text-mode-hook 'turn-on-auto-fill) + +; for term-mode +;; (add-hook 'after-make-frame-functions +;; (lambda (frame) +;; (set-variable 'term-default-fg-color +;; (face-foreground 'default)) +;; (set-variable 'term-default-bg-color +;; (face-background 'default))) +;; t) + (add-hook 'lisp-mode-hook '(lambda () (set (make-local-variable 'indent-tabs-mode) nil) @@ -179,8 +156,19 @@ (setq autopair-dont-activate t) ;; Don't let autopair break ansi-term )) -(add-to-list 'auto-mode-alist '("PKGBUILD" . sh-mode)) +(add-hook 'ruby-mode-hook + '(lambda () + (set (make-local-variable 'indent-tabs-mode) t) + (set (make-local-variable 'ruby-indent-level) 4) + (set (make-local-variable 'tab-width) 4) + )) +(add-hook 'coffee-mode-hook + '(lambda () + (set (make-local-variable 'indent-tabs-mode) nil) + )) + +(add-to-list 'auto-mode-alist '("PKGBUILD" . sh-mode)) ;(require 'flymake) ;(add-hook 'php-mode-hook (lambda() (flymake-mode 1))) diff --git a/.emacs.d/.gitignore b/.emacs.d/.gitignore index 675a8be..ef4ec20 100644 --- a/.emacs.d/.gitignore +++ b/.emacs.d/.gitignore @@ -1,7 +1,9 @@ auto-save-list/* el-get/* -server/* elmo/* +elpa/* image-dired/* +server/* session.* +tramp url/* diff --git a/.emacs.d/custom.el b/.emacs.d/custom.el index 9f61215..ee82309 100644 --- a/.emacs.d/custom.el +++ b/.emacs.d/custom.el @@ -1,16 +1,20 @@ (custom-set-variables - ;; custom-set-variables was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. - '(erc-nick "lukeshu-freenode") - '(erc-port 6667) - '(erc-server "lukeshu.ath.cx") + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(custom-enabled-themes (quote (wombat))) + '(custom-safe-themes (quote ("71b172ea4aad108801421cc5251edb6c792f3adbaecfa1c52e94e3d99634dee7" "fc5fcb6f1f1c1bc01305694c59a1a861b008c534cae8d0e48e4d5e81ad718bc6" default))) + '(erc-nick "lukeshu") + '(explicit-shell-file-name "/bin/bash") + '(inhibit-startup-screen t) '(mdmua-maildir "~/Maildir") + '(ruby-deep-arglist nil) + '(ruby-deep-indent-paren nil) '(scroll-bar-mode nil)) (custom-set-faces - ;; custom-set-faces was added by Custom. - ;; If you edit it by hand, you could mess it up, so be careful. - ;; Your init file should contain only one such instance. - ;; If there is more than one, they won't work right. + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. ) diff --git a/.git.info.exclude b/.git.info.exclude index 235367c..4576b6f 100644 --- a/.git.info.exclude +++ b/.git.info.exclude @@ -54,6 +54,7 @@ history.* .current.asound .dbus/session-bus/* .ddd/history +.ddd/sessions .dvdcss .esd_auth .eshell/history @@ -87,16 +88,19 @@ history.* .config/libretools/blacklist.txt # Ignore these files for no good reason -.terminfo -.config/vlc/vlc-qt-interface.conf -.wine* -.offlineimap .bogofilter .config/Trolltech.conf +.config/vlc/vlc-qt-interface.conf .gem +.offlineimap +.prefix +.terminfo +.wine* # Ignore these files that if I tracked them, would be a separate repo +.config/chromium .config/libreoffice .config/transmission -.netbeans +.eclipse .mozilla +.netbeans @@ -0,0 +1 @@ +require 'rubygems' unless defined? Gem # only needed in 1.8 diff --git a/.local/bin/notifyd b/.local/bin/notifyd new file mode 100755 index 0000000..ddd5971 --- /dev/null +++ b/.local/bin/notifyd @@ -0,0 +1,14 @@ +#!/bin/bash + +connected_to_x_server() { + xdpyinfo &>/dev/null + return $? +} + +start_backend() { + /usr/lib/xfce4/notifyd/xfce4-notifyd +} + +while connected_to_x_server; do + start_backend +done diff --git a/.maildirproc/default.rc b/.maildirproc/default.rc index f49fb9b..24f51e8 100644 --- a/.maildirproc/default.rc +++ b/.maildirproc/default.rc @@ -71,32 +71,25 @@ def handle_incoming_unknown(mail): return def my_filters(mail): - # Sort into software mailing lists + # Sort mail from GNU mailing lists + for list in [ 'bug-gsrc', 'bug-make', 'help-make', 'social', 'help-grub' ]: + if ( + False + or mail["List-Id"].matches(list+"\.gnu\.org") + or mail["Subject"].contains(list) + ): + mail.move(".software."+list) + return + # Sort mail from other software mailing lists if ( False - or mail["List-Id"].matches("bug-gsrc\.gnu\.org") - or mail["Subject"].contains("bug-gsrc") + or mail["List-Id"].matches("social-discuss\.gnu\.org") + or mail["Subject"].contains("social-discuss") ): - mail.move(".software.bug-gsrc") - return - - if mail["List-Id"].matches("bug-make\.gnu\.org"): - mail.move(".software.bug-make") - return - - if mail["List-Id"].matches("help-make\.gnu\.org"): - mail.move(".software.help-make") - return - - if mail["List-Id"].matches("social(|-discuss)\.gnu\.org"): mail.move(".software.social") return - if mail["List-Id"].matches("help-grub.gnu.org"): - mail.move(".software.help-grub") - return - if mail["List-Id"].matches("maintenance.lists.parabolagnulinux.org"): mail.move(".software.parabola-maintenance") return @@ -108,9 +101,15 @@ def my_filters(mail): ): mail.move(".software.parabola-dev") return + + for subject_re in [ + "\[Stow-[^\]]*\].*", + ]: + if mail["Subject"].matches(subject_re): + mail.move(".software") + return - # Sort email from some social websites - + # Sort mail from some social websites if mail["From"].matches("facebook(|mail)\.com"): mail.move(".Social.Facebook") return @@ -131,8 +130,7 @@ def my_filters(mail): mail.move(".Social.xkcd") return - # Sort email related to Troop 276 - + # Sort mail related to Troop 276 if ( False or mail["List-Id"].contains("troopmailinglist.troop276.net") @@ -154,11 +152,29 @@ def my_filters(mail): mail.move(".Troop276") return + # Sort mail from misc people if mail["From"].matches("margieshu@sbcglobal\.net"): mail.move(".misc.Mom") return + + for address in [ + "nintendo.com", + "nintendo-news.com", + ]: + if mail["From"].contains(address): + mail.move(".misc.Nintendo") + return + + for address in [ + "@lpi.org", + "@pearson.com", + "CompTIA", + ]: + if mail["From"].contains(address): + mail.move(".misc.CompTIA") + return - # Sort mail from robotics people + # Sort mail from FRC people for address in [ "jeffreysmith@msdlt.k12.in.us", "jason.zielke@gmail.com", @@ -171,7 +187,6 @@ def my_filters(mail): "skiplittell@comcast.net", "dave.nelson@ecolab.com", "@ni.com", - "@precisepath.com", "@usfirst.org", "gamefreak207@gmail.com", # Brett Leedy "tswilson4801@att.net", @@ -184,6 +199,7 @@ def my_filters(mail): mail.move(".School.Robotics") return for subject_re in [ + "FIRST", "robotics", "1024", "kil-?a-?bytes", @@ -192,9 +208,10 @@ def my_filters(mail): mail.move(".School.Robotics") return - # Sort mail from scoftware people + # Sort mail from software people for address in [ "gnu.org", + "eff.org", "gitorious.org", "sourceforge.com", "ietf.org", @@ -208,30 +225,9 @@ def my_filters(mail): if is_to_or_from(mail,address): mail.move(".software") return - for subject_re in [ - "\[Stow-[^\]]*\].*", - ]: - if mail["Subject"].matches(subject_re): - mail.move(".software") - return - for address in [ - "nintendo.com", - "nintendo-news.com", - ]: - if mail["From"].contains(address): - mail.move(".Nintendo") - return - - for address in [ - "@lpi.org", - "@pearson.com", - "CompTIA", - ]: - if mail["From"].contains(address): - mail.move(".CompTIA") - return + # Sort mail from the school newspaper if ( False or is_to_or_from(mail, "@lnnorthstar.org") @@ -240,8 +236,13 @@ def my_filters(mail): mail.move(".School.Newspaper") return + # Sort mail from various employers/people who pay me + if is_to_or_from(mail, "@precisepath.com"): + mail.move(".Work.PrecisePath") + return + if is_to_or_from(mail,"susyphil@aol.com"): - mail.move(".PMCH") + mail.move(".Work.PMCH") for address in [ "d.farrar@comcast.net", @@ -253,7 +254,6 @@ def my_filters(mail): return # Sort misc newsletters - if ( False or mail["From"].contains("newsletter") @@ -261,6 +261,7 @@ def my_filters(mail): or mail["From"].contains("oreilly.com") or mail["Subject"].contains("newsletter") or mail["From"].contains("Info@mailing.jamendo.com") + or mail["From"].contains("info@demandprogress.org") ): mail.move(".misc.Newsletters") return diff --git a/.offlineimaprc b/.offlineimaprc index 0f4cc78..319593c 100644 --- a/.offlineimaprc +++ b/.offlineimaprc @@ -1,3 +1,4 @@ +# -*- Mode: Conf -*- [general] accounts = LukeShu @@ -8,13 +9,21 @@ remoterepository = Remote [Repository Local] type = Maildir localfolders = ~/Maildir -nametrans = lambda foldername: re.sub('^$', 'Inbox', re.sub('^/', '', foldername.replace('.', '/'))) +sep = . folderfilter = lambda foldername: not re.search('(Trash|Del|-old|Draft)', foldername) +# transforms local -> remote +nametrans = lambda foldername: re.sub('^$', 'Inbox', re.sub('^'+re.escape('%(sep)s'), '', foldername)) + + [Repository Remote] type = IMAP ssl = yes +cert_fingerprint = 700d84baa7e852240178dc2de18e7e528a2854df remotehost = imap.mail.yahoo.com remoteuser = lukeshu@sbcglobal.net -nametrans = lambda foldername: re.sub('^\.Inbox$', '', "."+foldername.replace('/', '.')) folderfilter = lambda foldername: not re.search('(Trash|Del)', foldername) + +# transforms remote -> local +# we must assume that sep=/ on the remote IMAP server. +nametrans = lambda foldername: '/'+re.sub('^Inbox$', '', foldername) @@ -25,13 +25,6 @@ done # Settings ########################################################### -# TMPDIR -if [ -d "$HOME/tmp" ]; then - export TMPDIR="$HOME/tmp" -elif [ -d "$HOME/.prefix/tmp" ]; then - export TMPDIR="$HOME/.prefix/tmp" -fi - # Text editor if [ -f "$HOME/.selected_editor" ]; then . "$HOME/.selected_editor" @@ -49,6 +42,7 @@ _JAVA_OPTIONS='' _JAVA_OPTIONS+=' -Dawt.useSystemAAFontSettings=on' _JAVA_OPTIONS+=' -Dswing.aatext=true' _JAVA_OPTIONS+=' -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel' +_JAVA_OPTIONS+=" -Djava.io.tmpdir=$TMPDIR" export _JAVA_OPTIONS # ALSA @@ -57,7 +51,16 @@ if [ -x "`which alsactl 2>/dev/null`" ]; then fi # X11 -export XAUTHORITY=$HOME/.Xauthority +if [ -z "$XAUTHORITY" ]; then + 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 # Start background programs ########################################## if [ -f "$HOME/.login-daemons" ]; then diff --git a/.wmii/autostart b/.wmii/autostart new file mode 100755 index 0000000..aae23f4 --- /dev/null +++ b/.wmii/autostart @@ -0,0 +1,4 @@ +#!/bin/bash +daemon lxpanel &> /dev/null +daemon wicd-client -t &> /dev/null +daemon notifyd &> /dev/null diff --git a/.wmii/include.sh b/.wmii/include.sh new file mode 100644 index 0000000..36f8f3e --- /dev/null +++ b/.wmii/include.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +if [ -z "$WMII_NAMESPACE" ]; then + export WMII_NAMESPACE=`wmiir namespace` +fi +if [ -z "$WMII_DIR" ]; then + export WMII_DIR=$WMII_NAMESPACE/mnt +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 +} diff --git a/.wmii/quit b/.wmii/quit new file mode 100755 index 0000000..54f64e7 --- /dev/null +++ b/.wmii/quit @@ -0,0 +1,3 @@ +#!/bin/bash +. "$HOME/.wmii/include.sh" +echo quit |a $WMII_DIR/ctl diff --git a/.wmii/rbar_battery b/.wmii/rbar_battery new file mode 100755 index 0000000..7a7f24f --- /dev/null +++ b/.wmii/rbar_battery @@ -0,0 +1,10 @@ +#!/bin/bash +. "$HOME/.wmii/include.sh" + +priority=$1 + +set -e +while true; do + acpi -b |a "$WMII_DIR/rbar/${priority}_battery" + sleep 1 +done diff --git a/.wmii/rbar_clock b/.wmii/rbar_clock new file mode 100755 index 0000000..8e7d2a4 --- /dev/null +++ b/.wmii/rbar_clock @@ -0,0 +1,10 @@ +#!/bin/bash +. "$HOME/.wmii/include.sh" + +priority=$1 + +set -e +while true; do + date |a "$WMII_DIR/rbar/${priority}_clock" + sleep .5 +done diff --git a/.wmii/rbar_cpu b/.wmii/rbar_cpu new file mode 100755 index 0000000..7f891da --- /dev/null +++ b/.wmii/rbar_cpu @@ -0,0 +1,13 @@ +#!/bin/bash +. "$HOME/.wmii/include.sh" + +priority=$1 + +set -e +while true; 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" + # 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" + sleep 1 +done diff --git a/.wmii/rbar_wifi b/.wmii/rbar_wifi new file mode 100755 index 0000000..608b164 --- /dev/null +++ b/.wmii/rbar_wifi @@ -0,0 +1,10 @@ +#!/bin/bash +. "$HOME/.wmii/include.sh" + +priority=$1 + +set -e +while true; do + echo 'Wlan0:' $(iwconfig wlan0 | sed 's/ /\n/g' | grep Quality) |a "$WMII_DIR/rbar/${priority}_wifi" + sleep 1 +done diff --git a/.wmii/wmiirc_solarized b/.wmii/theme-solarized index 5dc830d..5dc830d 100644 --- a/.wmii/wmiirc_solarized +++ b/.wmii/theme-solarized diff --git a/.wmii/wmiirc_solarized_dark b/.wmii/theme-solarized-dark index 4d663d2..83285ba 100644 --- a/.wmii/wmiirc_solarized_dark +++ b/.wmii/theme-solarized-dark @@ -1,8 +1,12 @@ +#!/bin/sh # Solarized-dark -. $HOME/.wmii/wmiirc_solarized +. $HOME/.wmii/theme-solarized + +WMII_BACKGROUND="$SOL_BASE02" # ="<text> <background> <border>" WMII_NORMCOLORS="$SOL_BASE0 $SOL_BASE03 $SOL_BASE02" WMII_FOCUSCOLORS="$SOL_BASE0 $SOL_BASE02 $SOL_BASE0" -WMII_BACKGROUND="$SOL_BASE02" +WMII_URGENTCOLORS="$SOL_RED $SOL_BASE03 $SOL_RED" + diff --git a/.wmii/wmiirc b/.wmii/wmiirc index d41f392..82c424b 100755 --- a/.wmii/wmiirc +++ b/.wmii/wmiirc @@ -1,269 +1,270 @@ -#!/bin/dash -f -# -*- mode: sh; -*- +#!/bin/bash +# Let any running instances of wmiirc know that we're starting +wmiir xwrite /event Start -# Configure wmii -wmiiscript=wmiirc # For wmii.sh -. wmii.sh +. "$HOME/.wmii/include.sh" -export WMII_FONT='xft:Monospace-8' -export WMII_TERM=x-terminal-emulator +echo ' ==> Starting wmiirc' +mount9p=/opt/plan9/bin/9pfuse +mkdir -p $WMII_NAMESPACE/mnt +$mount9p $WMII_NAMESPACE/{wmii,mnt} -. $HOME/.wmii/wmiirc_local - -# Configuration Variables +MODKEY=Mod4 # super UP=p DOWN=n LEFT=b RIGHT=f -# Bars -noticetimeout=5 -noticebar=/rbar/!notice - # Colors tuples: "<text> <background> <border>" -. $HOME/.wmii/wmiirc_solarized_dark +. `conffile theme-solarized-dark` # Menu history -hist="${WMII_CONFPATH%%:*}/history" -histnum=5000 - -# Column Rules -wmiir write /colrules <<! -/gimp/ -> 17+83+41 -/.*/ -> 62+38 # Golden Ratio -! +hist="`conffile history`" # Tagging Rules -wmiir write /tagrules <<! -/MPlayer|VLC/ -> ~ -/Gimp/ -> ~+gimp -/Emacs|Navigator/ -> +sel -! - -local_events() { true; } -wi_runconf -s wmiirc_local - -echo $WMII_NORMCOLORS | wmiir create $noticebar - -# Event processing -events() { - events_events - events_menus - events_actions - events_keybindings -} -events_events() { - cat <<'!' -# Events -Event CreateTag - echo "$WMII_NORMCOLORS" "$@" | wmiir create "/lbar/$@" -Event DestroyTag - wmiir remove "/lbar/$@" -Event FocusTag - wmiir xwrite "/lbar/$@" "$WMII_FOCUSCOLORS" "$@" -Event UnfocusTag - wmiir xwrite "/lbar/$@" "$WMII_NORMCOLORS" "$@" -Event UrgentTag - shift - wmiir xwrite "/lbar/$@" "*$@" -Event NotUrgentTag - shift - wmiir xwrite "/lbar/$@" "$@" -Event LeftBarClick LeftBarDND - shift - wmiir xwrite /ctl view "$@" -Event Unresponsive - { - client=$1; shift - msg="The following client is not responding. What would you like to do?$wi_newline" - resp=$(wihack -transient $client \ - xmessage -nearmouse -buttons Kill,Wait -print - -fn "${WMII_FONT%%,*}" "$msg $(wmiir read /client/sel/label)") - if [ "$resp" = Kill ]; then - wmiir xwrite /client/$client/ctl slay & - fi - }& -Event Notice - wmiir xwrite $noticebar $wi_arg - - kill $xpid 2>/dev/null # Let's hope this isn't reused... - { sleep $noticetimeout; wmiir xwrite $noticebar ' '; }& - xpid = $! -! -} - -events_menus() { - cat <<'!' -# Window menus -Menu Client-3-Delete - wmiir xwrite /client/$1/ctl kill -#Menu Client-3-Kill -# wmiir xwrite /client/$1/ctl slay -Menu Client-3-Fullscreen - wmiir xwrite /client/$1/ctl Fullscreen on -Event ClientMouseDown - wi_fnmenu Client $2 $1 & - -# LBar menus -Menu LBar-3-Delete - tag=$1; clients=$(wmiir read "/tag/$tag/index" | awk '/[^#]/{print $2}') - for c in $clients; do - if [ "$tag" = "$(wmiir read /client/$c/tags)" ]; then - wmiir xwrite /client/$c/ctl kill - else - wmiir xwrite /client/$c/tags -$tag - fi - if [ "$tag" = "$(wi_seltag)" ]; then - newtag=$(wi_tags | awk -v't='$tag ' - $1 == t { if(!l) getline l - print l - exit } - { l = $0 }') - wmiir xwrite /ctl view $newtag - fi - done -Event LeftBarMouseDown - wi_fnmenu LBar "$@" & -! -} - -events_actions() { - cat <<'!' -# Actions -Action showkeys - echo "$KeysHelp" | xmessage -file - -fn ${WMII_FONT%%,*} -Action quit - wmiir xwrite /ctl quit -Action exec - wmiir xwrite /ctl exec "$@" -Action rehash - wi_proglist $PATH >$progsfile -Action status - set +xv - if wmiir remove /rbar/status 2>/dev/null; then - sleep 2 - fi - echo "$WMII_NORMCOLORS" | wmiir create /rbar/status - while status | wmiir write /rbar/status; do - sleep 1 - done -! -} - -events_keybindings() { - cat <<'!' +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";; + 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 -KeyGroup Moving around -Key $MODKEY-$LEFT # Select the client to the left - wmiir xwrite /tag/sel/ctl select left -Key $MODKEY-$RIGHT # Select the client to the right - wmiir xwrite /tag/sel/ctl select right -Key $MODKEY-$UP # Select the client above - wmiir xwrite /tag/sel/ctl select up -Key $MODKEY-$DOWN # Select the client below - wmiir xwrite /tag/sel/ctl select down - -Key $MODKEY-space # Toggle between floating and managed layers - wmiir xwrite /tag/sel/ctl select toggle - -KeyGroup Moving clients around -Key $MODKEY-Shift-$LEFT # Move selected client to the left - wmiir xwrite /tag/sel/ctl send sel left -Key $MODKEY-Shift-$RIGHT # Move selected client to the right - wmiir xwrite /tag/sel/ctl send sel right -Key $MODKEY-Shift-$UP # Move selected client up - wmiir xwrite /tag/sel/ctl send sel up -Key $MODKEY-Shift-$DOWN # Move selected client down - wmiir xwrite /tag/sel/ctl send sel down - -Key $MODKEY-Shift-space # Toggle selected client between floating and managed layers - wmiir xwrite /tag/sel/ctl send sel toggle - -KeyGroup Moving through stacks -Key $MODKEY-Control-$UP # Select the stack above - wmiir xwrite /tag/sel/ctl select up stack -Key $MODKEY-Control-$DOWN # Select the stack below - wmiir xwrite /tag/sel/ctl select down stack - -KeyGroup Client actions -Key $MODKEY-shift-1 # Toggle selected client's fullsceen state - wmiir xwrite /client/sel/ctl Fullscreen toggle -Key $MODKEY-shift-0 # Close client - wmiir xwrite /client/sel/ctl kill - -KeyGroup Changing column modes -Key $MODKEY-d # Set column to default mode - wmiir xwrite /tag/sel/ctl colmode sel default-max -Key $MODKEY-s # Set column to stack mode - wmiir xwrite /tag/sel/ctl colmode sel stack-max -Key $MODKEY-m # Set column to max mode - wmiir xwrite /tag/sel/ctl colmode sel stack+max - -KeyGroup Running programs -Key $MODKEY-a # Open wmii actions menu - action $(wi_actions | wimenu -h "${hist}.actions" -n $histnum) & -Key $MODKEY-x # Open program menu - eval wmiir setsid "$(wimenu -h "${hist}.progs" -n $histnum <$progsfile)" & -Key $MODKEY-Return # Launch a terminal - eval wmiir setsid $WMII_TERM & - -KeyGroup Other -Key $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;; +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 -KeyGroup Tag actions -Key $MODKEY-t # Change to another tag - (tag=$(wi_tags | wimenu -h "${hist}.tags" -n 50) && wmiir xwrite /ctl view $tag) & -Key $MODKEY-Shift-t # Retag the selected client - c=$(wi_selclient) - (tag=$(wi_tags | wimenu -h "${hist}.tags" -n 50) && wmiir xwrite /client/$c/tags $tag) & -! - for i in 0 1 2 3 4 5 6 7 8 9; do - cat <<'!' -Key $MODKEY-$i # Move to the numbered view - wmiir xwrite /ctl view "$i" -#Key $MODKEY-Shift-$i # Retag selected client with the numbered tag -# wmiir xwrite /client/sel/tags "$i" -! - done -} -wi_events events local_events - -# WM Configureation -wmiir write /ctl <<! - font $WMII_FONT - focuscolors $WMII_FOCUSCOLORS - normcolors $WMII_NORMCOLORS - grabmod $MODKEY - border 1 -! +# 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" & -# Misc -progsfile="$(wmiir namespace)/.proglist" -action status & -wi_proglist $PATH >$progsfile & - -# Setup Tag Bar -IFS="$wi_newline" -wmiir rm $(wmiir ls /lbar | sed 's,^,/lbar/,') >/dev/null -seltag=$(wmiir read /tag/sel/ctl | sed 1q) -unset IFS -wi_tags | while read tag -do +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 - echo "$WMII_FOCUSCOLORS" "$tag" - else - echo "$WMII_NORMCOLORS" "$tag" - fi | wmiir create "/lbar/$tag" + Event FocusTag "$tag" + fi done -wi_eventloop +Action autostart 2>/dev/null & + +if [ -f "`conffile wmiirc_local`" ]; then + . "`conffile wmiirc_local`" +fi +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 @@ -5,10 +5,13 @@ # 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 - [ -x "$f" ] && . "$f" + echo " -> $f" + [ -x "$f" ] && "$f" & done unset f + echo ' -> done' fi usermodmap="$HOME/.xmodmap" @@ -20,4 +23,4 @@ fi # exec startkde # exec startxfce4 # ...or the Window Manager of your choice -exec wmii +exec ck-launch-session wmii |