(in-package :stumpwm) ;; Start up a swank server for happy SLIME hacking (require :swank) (swank-loader:init) (swank:create-server :port 4004 :style swank:*communication-style* :dont-close t) ;; StumpWM configs (setq *mouse-focus-policy* :click) ;; Sudo (defcommand stumpwm-password (prompt) ((:string "prompt: ")) "Prompts the user for a password" (read-one-line (current-screen) prompt :password t)) (defmacro run-sudo-command (cmd) `(run-shell-command (format nil "SUDO_ASKPASS=~~/bin/stumpwm-sudo.sh sudo -A ~S" ,cmd) t)) ;; Commands (defcommand shutdown () () (run-sudo-command "shutdown now")) (defcommand firefox () () (run-or-raise "firefox" '(:class "firefox"))) (defcommand lock () () (run-shell-command (concatenate 'string "i3lockmore " "--image-fill ~/Pictures/space-background.png " "-n " "--lock-icon ~/Pictures/lock.png"))) (defcommand battery () () (let ((capacity (string-trim '(#\newline) (run-shell-command "cat /sys/class/power_supply/BAT0/capacity" t)))) (echo-string (current-screen) (format nil "Battery: ~A%" capacity)))) (defcommand caps->escape () () (run-shell-command "setxkbmap -option caps:escape")) (defcommand org-capture () () (run-shell-command "emacsclient -a '' -e '(make-orgcapture-frame)'")) ;; Keybindings (define-key stumpwm:*root-map* (kbd "C-f") "firefox") (define-key stumpwm:*root-map* (kbd "d") "exec rofi -show run") (define-key stumpwm:*root-map* (kbd "w") "exec rofi -show window") (define-key stumpwm:*root-map* (kbd "P") "exec passmenu") (define-key stumpwm:*root-map* (kbd "N") "exec networkmanager_dmenu") (define-key stumpwm:*root-map* (kbd "M") "exec ~/bin/monitor_layout.sh") (define-key stumpwm:*root-map* (kbd "L") "lock") (define-key stumpwm:*root-map* (kbd "b") "battery") (define-key stumpwm:*root-map* (kbd "C-o") "org-capture") (define-key stumpwm:*root-map* (kbd "C-q") "quit-confirm") (define-key *top-map* (kbd "M-TAB") "pull-hidden-next") (define-key *top-map* (kbd "XF86MonBrightnessDown") "exec light -U 5") (define-key *top-map* (kbd "XF86MonBrightnessUp") "exec light -A 5") (define-key *top-map* (kbd "XF86AudioRaiseVolume") "exec pavolume volup") (define-key *top-map* (kbd "XF86AudioLowerVolume") "exec pavolume voldown") (define-key *top-map* (kbd "XF86AudioMute") "exec pavolume mutetoggle") ;; X Windows config (run-shell-command "xsetroot -cursor_name left_ptr") (run-shell-command "setxkbmap -option caps:escape") ;; UI (ql:quickload "clx-truetype") (load-module "ttf-fonts") (set-font (make-instance 'xft:font :family "Triplicate T4c" :subfamily "Regular" :size 12)) (set '*message-window-padding* 4) ;; Notifications via Dunst (run-shell-command "/usr/bin/dunst")