diff options
Diffstat (limited to '.config/emacs/modules/bd--exwm.el')
-rw-r--r-- | .config/emacs/modules/bd--exwm.el | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/.config/emacs/modules/bd--exwm.el b/.config/emacs/modules/bd--exwm.el new file mode 100644 index 0000000..1b48412 --- /dev/null +++ b/.config/emacs/modules/bd--exwm.el @@ -0,0 +1,107 @@ +;;; -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + + +(bd/set-bg) + +(use-package exwm + :demand t + :config + (defun bd/exwm-update-title () + "Changes the buffer name to reflect the class name for +that buffer." + (exwm-workspace-rename-buffer exwm-title)) + (add-hook 'exwm-update-title-hook #'bd/exwm-update-title) + + (define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key) + (exwm-enable) + (setopt exwm-replace nil + exwm-input-prefix-keys + `([?\C-x] + [?\C-u] + [?\C-g] + [?\C-h] + [?\C-z] + [?\C-`] + [?\M-x] + [?\M-`] + [?\M-&] + [?\M-:] + ,@(mapcar (lambda (i) + (kbd (concat "s-" (number-to-string i)))) + (number-sequence 0 9))) + + exwm-input-global-keys + '(([?\s-n] . other-window) + ([?\s-p] . (lambda () + (interactive) + (other-window -1))) + ([?\s-L] . bd/lock) + ([f2] . bd/toggle-mute) + ([f5] . bd/decrement-volume) + ([f6] . bd/increment-volume) + ([f7] . bd/decrement-brightness) + ([f8] . bd/increment-brightness) + ([f9] . emms-previous) + ([f10] . emms-next) + ([print] . bd/shoot-part) + ([S-print] . bd/shoot-full) + ([?\s-O] . bd/browse-dispatcher) + ([?\s-P] . bd/password) + ([?\s-r] . exwm-reset) + ([?\s-d] . toggle-window-dedicated) + ([?\s-q] . kill-current-buffer) + ([?\s-x] . (lambda (command) + (interactive (list (read-shell-command "s-x "))) + (start-process-shell-command command nil command)))) + + exwm-input-simulation-keys + '(([?\C-b] . [left]) + ([?\C-f] . [right]) + ([?\C-p] . [up]) + ([?\C-n] . [down]) + ([?\C-a] . [home]) + ([?\C-e] . [end]) + ([?\M-v] . [prior]) + ([?\C-v] . [next]) + ([?\C-d] . [delete]) + ([?\C-k] . [S-end delete]) + ([?\M-w] . [C-c]) + ([?\C-y] . [C-v]) + ([?\C-s] . [C-g]) + ([?\C-r] . [C-S-g]) + ([?\M-d] . [C-delete]) + ([?\M-b] . [C-left]) + ([?\M-f] . [C-right]) + ([?\H-b] . [M-left]) + ([?\H-f] . [M-right])))) + +(use-package server + :defer 1 + :config + (setopt server-client-instructions nil) + (unless (server-running-p) + (server-start))) + +(setopt tab-bar-select-tab-modifiers '(super)) + +(defvar new-mode-line nil) +(defun set-new-mode-line () + "Return the current value of my-custom-variable for the mode line." + (setq new-mode-line + (replace-regexp-in-string + "%" "%%" + (format "[%s] [%s]" + (shell-command-to-string "/home/bdunahu/.local/bin/mail-string 2>/dev/null") + (shell-command-to-string "/home/bdunahu/.local/bin/t1-string 2>/dev/null"))))) + +(defvar-local bd/external-mode-line + '(:eval (when new-mode-line + new-mode-line))) + +(run-with-timer t 30 #'set-new-mode-line) +(add-to-list 'global-mode-string bd/external-mode-line) + +(provide 'bd--exwm) +;;; bd--exwm.el ends here |