summaryrefslogtreecommitdiffstats
path: root/stumpwm
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-08-26 21:58:53 +0200
committerGravatar Tom Willemsen2012-08-26 21:58:53 +0200
commit999f51952e31e1101b54873b5550e6116f13dfaa (patch)
tree3b5fc585b1bf79ca736f95992ea9fd9975c4eb42 /stumpwm
parent8cf4fc59e7e25ca00b9691267e05b63997eaabee (diff)
downloaddotfiles-999f51952e31e1101b54873b5550e6116f13dfaa.tar.gz
dotfiles-999f51952e31e1101b54873b5550e6116f13dfaa.zip
Add stumpwm
Diffstat (limited to 'stumpwm')
-rw-r--r--stumpwm/Makefile4
-rw-r--r--stumpwm/stumpwmrc153
2 files changed, 157 insertions, 0 deletions
diff --git a/stumpwm/Makefile b/stumpwm/Makefile
new file mode 100644
index 0000000..98362a6
--- /dev/null
+++ b/stumpwm/Makefile
@@ -0,0 +1,4 @@
+.PHONY: all install
+all:
+install: stumpwmrc
+ install -Dm 444 $^ ${HOME}/.$^
diff --git a/stumpwm/stumpwmrc b/stumpwm/stumpwmrc
new file mode 100644
index 0000000..1bed825
--- /dev/null
+++ b/stumpwm/stumpwmrc
@@ -0,0 +1,153 @@
+;; -*- mode: lisp; -*-
+(require 'swank)
+
+(in-package :stumpwm)
+
+;; Naquadah
+(defun colour (key)
+ (let ((colours (list :aluminium-1 #xeeeeec
+ :aluminium-2 #xd3d7cf
+ :aluminium-3 #xbabdb6
+ :aluminium-4 #x888a85
+ :aluminium-5 #x555753
+ :aluminium-6 #x2e3436
+ :butter-1 #xfce94f
+ :butter-2 #xedd400
+ :butter-3 #xc4a000
+ :orange-1 #xfcaf3e
+ :orange-2 #xf57900
+ :orange-3 #xce5c00
+ :chocolate-1 #xe9b96e
+ :chocolate-2 #xc17d11
+ :chocolate-3 #x9f5902
+ :chameleon-1 #x8ae234
+ :chameleon-2 #x73d216
+ :chameleon-3 #x4e9a06
+ :sky-blue-1 #x729fcf
+ :sky-blue-2 #x3465a4
+ :sky-blue-3 #x204a87
+ :plum-1 #xad7fa8
+ :plum-2 #x75507b
+ :plum-3 #x5c3566
+ :scarlet-red-1 #xef2929
+ :scarlet-red-2 #xcc0000
+ :scarlet-red-3 #xa40000
+ :background #x252a2b
+ :black #x0c191c
+ :cyan "cyan3")))
+ (getf colours key)))
+
+(defvar *emacs-program* "emacsclient -c -a emacs"
+ "The executable to run to start Emacs.")
+(defvar *firefox-program* "firefox"
+ "The executable to run to start Firefox.")
+(defvar *urxvt-program* "urxvt"
+ "The executable to run to start URxvt.")
+(defvar *i3lock-program* "i3lock -c 000000"
+ "The executable to run to start i3lock.")
+
+(defun get-mail-count (mailbox &optional (inbox "inbox"))
+ "Check how many new messages there are in MAILBOX."
+ (length
+ (directory
+ (format nil "/home/slash/documents/mail/~A/~A/new/*.*"
+ mailbox inbox))))
+
+(defcommand run-emacs () ()
+ "Open Emacs"
+ (run-shell-command *emacs-program*))
+
+(defcommand raise-emacs () ()
+ "Open or show Emacs"
+ (run-or-raise *emacs-program* '(:class "Emacs")))
+
+(defcommand run-firefox () ()
+ "Open Firefox"
+ (run-shell-command *firefox-program*))
+
+(defcommand raise-firefox () ()
+ "Open or show Firefox"
+ (run-or-raise *firefox-program* '(:class "Firefox")))
+
+(defcommand run-urxvt () ()
+ "Open URxvt"
+ (run-shell-command *urxvt-program*))
+
+(defcommand raise-urxvt () ()
+ "Open URxvt"
+ (run-or-raise *urxvt-program* '(:class "URxvt")))
+
+(defcommand run-i3lock () ()
+ "Lock screen"
+ (run-shell-command *i3lock-program*))
+
+(set-bg-color (colour :background))
+(set-border-color (colour :aluminium-6))
+(set-fg-color (colour :aluminium-1))
+(set-float-focus-color (colour :black))
+(set-float-unfocus-color (colour :aluminium-6))
+(set-focus-color (colour :black))
+(set-font "-*-dejavu sans mono-medium-r-*-*-15-*-*-*-*-*-iso10646-*")
+(set-unfocus-color (colour :aluminium-6))
+(set-win-bg-color (colour :background))
+
+(setf *colors* (mapcar #'colour '(:black :scarlet-red-1 :chameleon-1
+ :butter-1 :sky-blue-1 :plum-1 :cyan
+ :aluminium-1)))
+(setf *input-window-gravity* :bottom-left)
+(setf *maxsize-border-width* 1)
+(setf *message-window-gravity* :top-right)
+(setf *mode-line-background-color* (colour :background))
+(setf *mode-line-border-color* (colour :aluminium-6))
+(setf *mode-line-foreground-color* (colour :aluminium-1))
+(setf *normal-border-width* 1)
+(setf *shell-program* (getenv "SHELL"))
+(setf *transient-border-width* 1)
+(setf *window-border-style* :tight)
+(setf *window-format* "%m%50t")
+(setf *screen-mode-line-format*
+ (list "[%n]"
+ '(:eval
+ (format nil " | ryu: ~D | gmail: ~D | aethon: ~D | "
+ (get-mail-count "ryuslash.org")
+ (get-mail-count "gmail")
+ (get-mail-count "aethon")))
+ '(:eval
+ (format-expand *window-formatters* *window-format*
+ (current-window)))))
+
+(set-prefix-key (kbd "C-z"))
+
+(define-key *top-map* (kbd "C-M-l") "run-i3lock")
+
+(define-key *root-map* (kbd "c") "raise-urxvt")
+(define-key *root-map* (kbd "C") "run-urxvt")
+(define-key *root-map* (kbd "e") "raise-emacs")
+(define-key *root-map* (kbd "E") "run-emacs")
+(define-key *root-map* (kbd "w") "raise-firefox")
+(define-key *root-map* (kbd "W") "run-firefox")
+
+(define-key *root-map* (kbd "C-b") "windowlist")
+(define-key *root-map* (kbd "M-b") "move-window left")
+(define-key *root-map* (kbd "M-f") "move-window right")
+(define-key *root-map* (kbd "M-n") "move-window down")
+(define-key *root-map* (kbd "M-p") "move-window up")
+(define-key *root-map* (kbd "b") "move-focus left")
+(define-key *root-map* (kbd "f") "move-focus right")
+(define-key *root-map* (kbd "n") "move-focus down")
+(define-key *root-map* (kbd "p") "move-focus up")
+
+(undefine-key *root-map* (kbd "C-a"))
+(undefine-key *root-map* (kbd "C-c"))
+(undefine-key *root-map* (kbd "C-e"))
+(undefine-key *root-map* (kbd "C-m"))
+
+(define-frame-preference "Default"
+ (0 t nil :class "Emacs")
+ (1 t nil :class "Firefox")
+ (1 t nil :class "URxvt"))
+
+(if (not (head-mode-line (current-head)))
+ (toggle-mode-line (current-screen) (current-head)))
+
+(swank:create-server)