summaryrefslogtreecommitdiffstats
path: root/.stumpwmrc
diff options
context:
space:
mode:
Diffstat (limited to '.stumpwmrc')
-rw-r--r--.stumpwmrc155
1 files changed, 155 insertions, 0 deletions
diff --git a/.stumpwmrc b/.stumpwmrc
new file mode 100644
index 0000000..c90eecb
--- /dev/null
+++ b/.stumpwmrc
@@ -0,0 +1,155 @@
+;;;;;; -*- mode: lisp -*-
+
+(in-package :stumpwm)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Variables ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defvar *my-program-bindings*
+ (let ((m (stumpwm:make-sparse-keymap)))
+ (stumpwm:define-key m (stumpwm:kbd "M") "check-mail")
+ ;; NOTE: this is important
+ m))
+
+(defvar *my-mpc-bindings*
+ (let ((m (make-sparse-keymap)))
+ (define-key m (kbd "s") "mpc-playing")
+ (define-key m (kbd "S") "mpc-stop")
+ (define-key m (kbd "P") "mpc-toggle")
+ (define-key m (kbd "n") "mpc-next")
+ (define-key m (kbd "p") "mpc-previous")
+ (define-key m (kbd "v") "mpc-volume")
+ m))
+
+(defvar *browser*
+ (getenv "BROWSER"))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Functions ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun get-mail-count (mailbox)
+ "Check how many new messages there are for mailbox."
+ (length
+ (directory
+ (format nil "/home/slash/documents/mail/~A/INBOX/new/*.*" mailbox))))
+
+(defun echo-urgent-window (target)
+ (message-no-timeout "~a has a message for you."
+ (window-title target)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Commands ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defcommand urxvt () ()
+ "run urxvt"
+ (run-shell-command "urxvt"))
+
+(defcommand browser () ()
+ "open browser"
+ (run-shell-command *browser*))
+
+(defcommand conkeror () ()
+ "run or raise conkeror"
+ (run-or-raise "conkeror" '(:class "Conkeror")))
+
+(defcommand evolus-pencil () ()
+ "run evolus-pencil"
+ (run-shell-command "/usr/lib/evolus-pencil-svn/evolus-pencil.sh"))
+
+(defcommand luakit () ()
+ "run luakit"
+ (run-shell-command "luakit"))
+
+(defcommand check-mail () ()
+ "check new messages"
+ (run-shell-command "~/bin/mailrun.sh"))
+
+(defcommand i3lock () ()
+ "run i3lock"
+ (run-shell-command "i3lock -c 000000"))
+
+(defcommand mpc-playing () ()
+ "Show which song mpc is currently playing"
+ (message (run-shell-command "mpc | head -n1" t)))
+
+(defcommand mpc-stop () ()
+ "Stop mpc from playing"
+ (run-shell-command "mpc stop"))
+
+(defcommand mpc-toggle () ()
+ "Toggle mpc between playing and pauzed"
+ (run-shell-command "mpc toggle"))
+
+(defcommand mpc-next () ()
+ "Tell mpc to go to the next song"
+ (message (run-shell-command "mpc next | head -n1" t)))
+
+(defcommand mpc-previous () ()
+ "Tell mpc to go to the previous song"
+ (message (run-shell-command "mpc prev | head -n1" t)))
+
+(defcommand mpc-volume (level) ((:string "Volume: "))
+ "Tell mpc to change the volume"
+ (run-shell-command (format nil "mpc volume ~a" level)))
+
+(defcommand screenshot () ()
+ "Take a screenshot"
+ (run-shell-command "scrot"))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; General Settings ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(set-prefix-key (kbd "s-w"))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Mode-line ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(set-font "-*-dejavu sans-bold-r-*-*-13-*-*-*-*-*-iso8859-1")
+
+(setf *mode-line-background-color* "Black")
+(setf *mode-line-foreground-color* "White")
+(setf *mode-line-timeout* 60)
+
+;(setf *window-format* "%20t")
+(setf *group-format* "[%n]")
+
+(if (not (head-mode-line (current-head)))
+ (toggle-mode-line (current-screen) (current-head)))
+(setf
+ stumpwm:*screen-mode-line-format*
+ (list
+ "%g | "
+ '(:eval (format
+ nil
+ "arch: ~D | gmail: ~D | aethon: ~D | updates: ~A | cower: ~A "
+ (get-mail-count "arch")
+ (get-mail-count "gmail")
+ (get-mail-count "aethon")
+ (run-shell-command
+ "echo -n `pacman -Qu | wc -l`" t)
+ (run-shell-command
+ "echo -n `cat ~/.cowercount`" t)))))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Keybindings ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(define-key *root-map* (kbd "c") "urxvt")
+(define-key *root-map* (kbd "s-l") "i3lock")
+(define-key *root-map* (kbd "s-p") '*my-program-bindings*)
+(define-key *root-map* (kbd "m") '*my-mpc-bindings*)
+(define-key *root-map* (kbd "w") "browser")
+(define-key *root-map* (kbd "SunPrint_Screen") "screenshot")
+
+(define-key *top-map* (kbd "M-TAB") "next")
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Hooks ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(add-hook *urgent-window-hook* 'echo-urgent-window)