(in-package :stumpwm) ;; debian=sbcl ;; Load up swank for communication with the running image. (clc:clc-require :swank) (swank:create-server :port 4013 :dont-close t) (when (string= "ori" (short-site-name)) (run-commands "hsplit" "vsplit" "fselect 2" "resize -20 -100")) (set-prefix-key (kbd "A-z")) ;; I find 'C-t s h' and 'C-t s v' more mnemonic than 'C-t s' and 'C-t S'. ;; OTOH, stumpwm's 'vsplit' works like I think 'hsplit' should, and vice versa. (defvar *split-map* (make-sparse-keymap)) (define-key *split-map* (kbd "h") "vsplit") (define-key *split-map* (kbd "v") "hsplit") (define-key *root-map* (kbd "s") '*split-map*) (undefine-key *root-map* (kbd "S")) ;; Since I move between windows a lot, I want those bindings at the top level. (define-key *top-map* (kbd "A-Right") "move-focus right") (define-key *top-map* (kbd "A-Left") "move-focus left") (define-key *top-map* (kbd "A-Up") "move-focus up") (define-key *top-map* (kbd "A-Down") "move-focus down") (define-key *top-map* (kbd "S-A-Right") "next-in-frame") (define-key *top-map* (kbd "S-A-Left") "prev-in-frame") ;; ...which leaves the nested ones available for changing screens. (define-key *root-map* (kbd "Right") "snext") (define-key *root-map* (kbd "A-Right") "snext") (define-key *root-map* (kbd "Left") "sprev") (define-key *root-map* (kbd "A-Left") "sprev") (undefine-key *root-map* (kbd "Up")) (undefine-key *root-map* (kbd "Down")) ;; Quickly toggle between groups. (define-key *root-map* (kbd "quoteleft") "gprev") (set-font "-*-terminus-medium-r-normal-*-12-*-*-*-*-*-iso10646-1") (setf *new-window-prefered-frame* '(:empty :focused)) (setf *focus-color* "darkslategray") (set-win-bg-color "black") (setf *mouse-focus-policy* :sloppy) (setf *mode-line-position* :bottom) (setf *mode-line-background-color* "black") (setf *mode-line-foreground-color* "white") (setf *mode-line-timeout* 10) (enable-mode-line (current-screen) (current-head) t (list '(:eval (run-shell-command "~/bin/mode-line" t)))) #| (clc:clc-require :local-time) (clc:clc-require :cl-ppcre) #| (defun local-time-str () (local-time:with-decoded-local-time (:minute m :hour h :day d :month mn :day-of-week dow) (local-time:now) (format nil "~A:~2,'0D ~[Sun~;Mon~;Tue~;Wed~;Thu~;Fri~;Sat~], ~[~;Jan~;Feb~;Mar~;Apr~;May~;Jun~;Jul~;Aug~;Sep~;Oct~;Nov~;Dec~] ~A" h m dow mn d))) (defun load-str () (with-open-file (loadavg "/proc/loadavg") (cl-ppcre:scan-to-strings "^\\d+\\.\\d+ \\d+\\.\\d+ \\d+\\.\\d+" (read-line loadavg)))) |# |#