(in-package :stumpwm) (defcommand colon1 (&optional (initial "")) (:rest) (let ((cmd (read-one-line (current-screen) ": " :initial-input initial))) (when cmd (eval-command cmd t)))) ;; Flaoting window control (setf *mouse-focus-policy* :click *float-window-modifier* :SUPER) ;; Float (define-key *top-map* (kbd "s-f") "float-this") (define-key *top-map* (kbd "s-F") "unfloat-this") (define-key *root-map* (kbd "C-r") "exec rofi -show drun -modi drun -show-icons") (define-key *root-map* (kbd ",") "exec flameshot gui") (define-key *root-map* (kbd "M-r") "restart-hard") (define-key *root-map* (kbd "p") "exec emacsclient -e '(thanos/pass-launcher)'") (define-key *root-map* (kbd "b") "windowlist") (define-key *root-map* (kbd "d") "delete-window") (define-key *root-map* (kbd "C-d") "remove") ;; Focus (define-key *root-map* (kbd "C-f") "move-focus right") (define-key *root-map* (kbd "C-b") "move-focus left") (defvar *thanos-buffers-map* (let ((m (make-sparse-keymap))) (define-key m (kbd "0") "delete-window-and-frame") (define-key m (kbd "3") "hsplit-and-focus") (define-key m (kbd "b") "windowlist") m)) (define-key *root-map* (kbd "C-x") *thanos-buffers-map*) (define-key *root-map* (kbd "s") "hsplit-and-focus") (define-key *root-map* (kbd "k") "delete-window-and-frame") (define-key *root-map* (kbd "S") "vsplit") (define-key *root-map* (kbd "b") "global-windowlist") (define-key *root-map* (kbd "e") "exec emacsclient -c") (define-key *root-map* (kbd "C-e") "exec emacs") ;; Lock screen (define-key *root-map* (kbd "C-l") "exec slock") (define-key *top-map* (kbd "F11") "fullscreen") ;; Audio (define-key *top-map* (kbd "XF86AudioLowerVolume") "exec pamixer -d 5") (define-key *top-map* (kbd "XF86AudioRaiseVolume") "exec pamixer -i 5") ;; x220 specific (define-key *top-map* (kbd "F1") "exec brightnessctl --device='intel_backlight' set 5%-") (define-key *top-map* (kbd "F2") "exec brightnessctl --device='intel_backlight' set +5%") (define-key *top-map* (kbd "F3") "exec ~/.scripts/keyboard-light-x220.sh") ;; Next (define-key *top-map* (kbd "s-n") "fnext") ;Groups ;; Switch to group (define-key *top-map* (kbd "s-1") "gselect 1") (define-key *top-map* (kbd "s-2") "gselect 2") (define-key *top-map* (kbd "s-3") "gselect 3") (define-key *top-map* (kbd "s-4") "gselect 4") (define-key *top-map* (kbd "s-5") "gselect 5") (define-key *top-map* (kbd "s-6") "gselect 6") (define-key *top-map* (kbd "s-7") "gselect 7") (define-key *top-map* (kbd "s-0") "gselect 5") (define-key *top-map* (kbd "s-9") "gselect") ;; Move window to group (define-key *top-map* (kbd "s-!") "gmove 1") (define-key *top-map* (kbd "s-@") "gmove 2") (define-key *top-map* (kbd "s-#") "gmove 3") (define-key *top-map* (kbd "s-$") "gmove 4") (define-key *top-map* (kbd "s-%") "gmove 5") (define-key *top-map* (kbd "s-^") "gmove 6") (define-key *top-map* (kbd "s-)") "gmove 5") (define-key *top-map* (kbd "s-(") "gmove") ;; Focus (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") ;; Split & Focus (define-key *root-map* (kbd "s") "hsplit-and-focus") ;; Groups (define-key *groups-map* (kbd "g") "gselect") ;; Nyxt ;; (defvar *nyxt-map* (make-sparse-keymap)) ;; (define-key *root-map* (kbd "s") *nyxt-map*) ;; (define-key *nyxt-map* (kbd "M-d") "nyxt-duck-newb") ;; (define-key *nyxt-map* (kbd "h") "nyxt-http") ;; (define-key *nyxt-map* (kbd "d") "nyxt-duck") ;; (define-key *nyxt-map* (kbd "g") "nyxt-gh") ;; Productivity (load-module "productivity") (define-key *top-map* (kbd "F7") "productivity-mode-toggle")