1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | ;; -*-lisp-*-
;;
;; s__C config
(in-package :stumpwm)
(set-contrib-dir "/usr/share/stumpwm")
(setf *default-package* :stumpwm)
;;;; change the prefix key to something else
(set-prefix-key (kbd "C-e"))
;;;; Default terminal emulator
(setq *terminal* "urxvtc")
;;;; Default Browser
(setq *browser* "chromium")
;;;; Give conky enough space
(resize-head 0 0 14 1440 886)
;;;; Message window gravity
;; ; :top-left :top-right :bottom-left :bottom-right :center
(setq *message-window-gravity* :top-right)
;;;; Input window gravity
;; ; :top-left :top-right :bottom-left :bottom-right :center
(setq *input-window-gravity* :bottom-left)
;;;; Window format
(setq *window-format* "|%m%s%n %c %10t...")
;; in seconds, how long a message will appear for. This must be an integer.
(setf *timeout-wait* 5)
;; In what frame system try to open next window
;; (setf *new-window-preferred-frame* '(:empty :focused))
;;;; Style of window borders
(setf *mouse-focus-policy* :click
*window-border-style* :thin
*message-window-gravity* :center
*input-window-gravity* :center)
(set-normal-gravity :bottom)
(set-maxsize-gravity :center)
(set-transient-gravity :bottom)
;; borders.
(setf ;*resize-hides-windows* T
*normal-border-width* 2
*maxsize-border-width* 2
*transient-border-width* 2
*float-window-border* 1
*float-window-title-height* 1)
(set-msg-border-width 1)
(set-fg-color "grey9")
(set-bg-color "grey53")
(set-focus-color "grey53")
(set-unfocus-color "black")
(set-border-color "grey9")
(set-win-bg-color "grey9")
;;;;
;;;; Custom keybindings:
;;;;
;;;; Message window font
(set-font "-*-montecarlo-medium-r-normal-*-11-*-*-*-*-*-*-*")
;;;; Loading some external modules
(defcommand fullscreen () ()
"Fullscreen command"
(let ((group-file (format nil "/tmp/stumpwm-group-~a" (group-name (current-group)))))
(if (null (cdr (head-frames (current-group) (current-head))))
(restore-from-file group-file)
(progn
(dump-group-to-file group-file)
(only)))))
(defun shift-windows-forward (frames win)
"Exchange windows through cycling frames."
(when frames
(let ((frame (car frames)))
(shift-windows-forward (cdr frames)
(frame-window frame))
(when win
(pull-window win frame)))))
(defcommand rotate-windows () ()
(let* ((frames (group-frames (current-group)))
(win (frame-window (car (last frames)))))
(shift-windows-forward frames win)))
;;; Matlab
(defcommand matlab () ()
"Run or raise matlab"
(let ((matlab-group (find-group (current-screen) "matlab")))
(if matlab-group
(gselect matlab-group)
(progn
(gnew-float "matlab")
(run-shell-command "/usr/bin/matlab -desktop")))))
;; Definition of some useful keybindings
(define-key *root-map* (kbd "q") "quit")
(define-key *root-map* (kbd "M-r") "reload")
(define-key *root-map* (kbd "e") "exec")
(define-key *root-map* (kbd "v") "vsplit")
(define-key *root-map* (kbd "h") "hsplit")
(define-key *root-map* (kbd "f") "fullscreen")
(define-key *top-map* (kbd "s-r") "rotate-windows")
(define-key *top-map* (kbd "C-Left") "move-focus left")
(define-key *top-map* (kbd "C-Down") "move-focus down")
(define-key *top-map* (kbd "C-Up") "move-focus up")
(define-key *top-map* (kbd "C-Right") "move-focus right")
(define-key *top-map* (kbd "s-Up") "pull-hidden-previous")
(define-key *top-map* (kbd "s-Down") "pull-hidden-next")
(define-key *top-map* (kbd "C-M-Left") "move-window left")
(define-key *top-map* (kbd "C-M-Down") "move-window down")
(define-key *top-map* (kbd "C-M-Right") "move-window right")
(define-key *top-map* (kbd "C-M-Up") "move-window up")
(define-key *top-map* (kbd "M-r") "remove")
(define-key *top-map* (kbd "s-m") "exec mpd")
(define-key *top-map* (kbd "s-n") "exec urxvtc -e ncmpcpp")
(define-key *top-map* (kbd "s-c") "exec chromium")
(define-key *top-map* (kbd "s-p") "exec thunar")
(define-key *top-map* (kbd "s-v") "exec urxvtc -e gvim")
(define-key *top-map* (kbd "s-RET") "exec urxvtc")
(define-key *top-map* (kbd "s-t") "exec urxvtc -e tmux")
(define-key *top-map* (kbd "s-a") "exec urxvtc -e tmux a")
(define-key *top-map* (kbd "s-C-Down") "exec mpc toggle")
(define-key *top-map* (kbd "s-C-Up") "exec mpc stop")
(define-key *top-map* (kbd "s-C-Right") "exec mpc next; stumpish echo `mpc --format '%artist% - %album% - %title%' | head -1`")
(define-key *top-map* (kbd "s-C-Left") "exec mpc prev; stumpish echo `mpc --format '%artist% - %album% - %title%' | head -1`")
(define-key *top-map* (kbd "s-x") "exec dmenu_run -p '>>>' -nb grey10 -nf white -sb grey30 -sf orange")
(define-key *top-map* (kbd "s-Right") "gnext")
(define-key *top-map* (kbd "s-Left") "gprev")
;;;; Debug level: 0-5
(setf *debug-level* 0)
;;; Desktops
(setf (group-name (first (screen-groups (current-screen)))) "Term")
(run-commands "gnewbg Web" "gnewbg Dev" "gnewbg Shit" "gnewbg Media" "gnewbg Matlab")
;; Clear rules
(clear-window-placement-rules)
(define-frame-preference "Term"
;; frame raise lock (lock AND raise == jumpto)
(0 t t :instance "tmux"))
(define-frame-preference "Web"
;; frame raise lock (lock AND raise == jumpto)
(0 t t :class "Chromium"))
(define-frame-preference "Shit"
;; frame raise lock (lock AND raise == jumpto)
(0 t t :class "Thunar")
(0 t t :class "Deluge"))
(define-frame-preference "Dev"
;; frame raise lock (lock AND raise == jumpto)
(0 t t :class "Gvim"))
(define-frame-preference "Media"
;; frame raise lock (lock AND raise == jumpto)
(0 t t :instance "ncmpcpp")
(0 t t :class "mplayer"))
(define-frame-preference "Matlab"
(0 t t :class "Matlab"))
(defun msg-notify (fmt args)
(let ((*executing-stumpwm-command* nil)
(*message-window-gravity* :center))
(message-no-timeout fmt args)))
(defcommand notify (msg) ((:rest "Notify: "))
(msg-notify "~a" msg))
|
x
1 | conky -c conky_config_file | dzen2 -ta 'l' -bg '#151515' -h '14' -w '500' -fn '-*-montecarlo-medium-r-normal-*-11-*-*-*-*-*-*-*'
|
x
1 2 3 4 5 6 7 8 9 10 | out_to_console yes
out_to_x no
background no
update_interval 2
total_run_times 0
use_spacer none
TEXT
${if_running mpd}^fg(\#ff6f6f)^i(/home/alex/.local/share/subtle/icons/note2.xbm)^fg(\#d7d0c7) $mpd_artist - $mpd_title - $mpd_album${endif}
|
x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | out_to_console yes
out_to_x no
background no
update_interval 2
total_run_times 0
use_spacer none
TEXT
^fg(\#b50077)^i(/home/alex/.local/share/subtle/icons/battery_vert3.xbm)^fg(\#d7d0c7) ${battery_short} \
^fg(\#6be603)^i(/home/alex/.local/share/subtle/icons/cpu.xbm)^fg() ^fg(\#d7d0c7)${cpu cpu0}% ${cpu cpu1}%^fg() \
^fg(\#ff3500)^i(/home/alex/.local/share/subtle/icons/memory.xbm)^fg(\#d7d0c7) ^fg(\#E0E0E0)${mem}^fg() \
#^fg(\#008787)^i(/home/alex/.local/share/subtle/icons/diskette.xbm)^fg() / ^fg(\#E0E0E0)${fs_used_perc /}%^fg() /home ^fg(\#d7d0c7)${fs_used_perc /home}%
^fg(\#bdf13d)^i(/home/alex/.local/share/subtle/icons/volume_on.xbm)^fg(\#d7d0c7) ${mixer}% \
^fg(\#ff8f00)^i(/home/alex/.local/share/subtle/icons/wifi.xbm)^fg(\#d7d0c7) ${wireless_essid wlan0} \
${time %A %d %B} ^fg(\#5496ff)${time %H:%M}
|
x
Notes
One of the most intriguing wm of the universe.
Well, what couldn’t you do with lisp and stumpw ?
Note : the icons come frorm the subtle icon archive available on subforge.org
d3x0r said about 13 years ago
can you upload your weechat config? Im keen to know how to get colored nicks in the nicklist! :)