diff options
Diffstat (limited to 'guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el')
| -rw-r--r-- | guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el b/guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el new file mode 100644 index 0000000..1738ebe --- /dev/null +++ b/guix/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el @@ -0,0 +1,115 @@ +;;; -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + + +(use-package exwm + :demand t + :config + + (require 'exwm-randr) + (setopt exwm-randr-workspace-monitor-plist '(0 "HDMI-1" 1 "eDP-1") + exwm-workspace-number 10) + (add-hook 'exwm-randr-screen-change-hook + (lambda () + (start-process-shell-command + "xrandr" nil + "xrandr --output HDMI-1 --mode 2560x1440 --primary --auto --left-of eDP-1 --output eDP-1 --mode 1920x1080") + (bd/set-bg))) + (exwm-randr-mode) + + (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-manage-force-tiling nil + exwm-input-prefix-keys + `([?\C-x] + [?\C-u] + [?\C-g] + [?\C-h] + [?\C-z] + [?\C-`] + [?\M-x] + [?\M-`] + [?\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-t] . bd/toggle-tab-bar) + ([?\s-q] . kill-current-buffer) + ([?\s-x] . (lambda (command) + (interactive (list (read-shell-command "s-x "))) + (start-process-shell-command command nil command))) + ,@(mapcar (lambda (i) + `(,(kbd (format "s-%s" (car i))) . + (lambda () + (interactive + (exwm-workspace-switch-create ,(car (cdr i))))))) + '((! 0) (@ 1) (\# 2) ($ 3) (% 4) (^ 5) (& 6) (* 7) (\( 8) (\) 9)))) + + exwm-input-simulation-keys + '(([?\C-b] . [left]) + ([?\C-f] . [right]) + ([?\C-p] . [up]) + ([?\C-n] . [down]) + ([?\C-a] . [home]) + ([?\C-e] . [end]) + ([?\C-j] . [S-return]) + ([?\C-m] . [return]) + ([?\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])))) + +(use-package exwm-outer-gaps + :defer 1 + :config + (setopt exwm-outer-gaps-mode 1 + exwm-outer-gaps-width 10) + (exwm-outer-gaps-apply)) + +(use-package server + :defer 1 + :config + (setopt server-client-instructions nil) + (unless (server-running-p) + (server-start))) + +(setopt tab-bar-select-tab-modifiers '(super)) + +(provide 'bd--exwm) +;;; bd--exwm.el ends here |
