summaryrefslogtreecommitdiff
path: root/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el
diff options
context:
space:
mode:
Diffstat (limited to 'kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el')
-rw-r--r--kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el115
1 files changed, 115 insertions, 0 deletions
diff --git a/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el b/kolwynia/home/bdunahu/files/.config/emacs/modules/bd--exwm.el
new file mode 100644
index 0000000..1738ebe
--- /dev/null
+++ b/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