summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--exwm.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/bd--exwm.el')
-rw-r--r--.config/emacs/modules/bd--exwm.el107
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