From 999f51952e31e1101b54873b5550e6116f13dfaa Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Sun, 26 Aug 2012 21:58:53 +0200 Subject: [PATCH] Add stumpwm --- Makefile | 2 +- stumpwm/Makefile | 4 ++ stumpwm/stumpwmrc | 153 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 stumpwm/Makefile create mode 100644 stumpwm/stumpwmrc diff --git a/Makefile b/Makefile index a58a911..8df6334 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -modules = emacs +modules = emacs stumpwm install-modules = $(addprefix install-,$(modules)) .PHONY: all install $(modules) $(install-modules) 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)