emacs: add C-c w s l and C-c w s j convenience bindings
[~bandali/configs] / .emacs.d / init.el
index 7b8cf94..4cbf091 100644 (file)
 \f
 ;;; Initial setup
 
+(defvar b/exwm-p (string= (system-name) "jirud")
+  "Whether or not we will be using `exwm'.")
+
 ;; keep ~/.emacs.d clean
 (use-package no-littering
   :demand
@@ -394,7 +397,7 @@ For disabling the behaviour for certain buffers and/or modes."
 
 ;; time and battery in mode-line
 (use-feature time
-  :disabled
+  :if b/exwm-p
   :demand
   :config
   (display-time-mode)
@@ -403,7 +406,7 @@ For disabling the behaviour for certain buffers and/or modes."
   (display-time-format "%a %b %-e, %-l:%M%P"))
 
 (use-feature battery
-  :disabled
+  :if b/exwm-p
   :demand
   :config
   (display-battery-mode)
@@ -568,7 +571,7 @@ For disabling the behaviour for certain buffers and/or modes."
 ;;; Essential packages
 
 (use-package exwm
-  :disabled
+  :if b/exwm-p
   :demand
   :config
   ;; make class name the buffer name, truncating beyond 60 characters
@@ -764,18 +767,7 @@ around if needed."
   :config
   (exwm-randr-enable)
   :custom
-  (exwm-randr-workspace-monitor-plist '(1 "VGA-1"))
-  :hook
-  (exwm-randr-screen-change . (lambda ()
-                                (let ((xrandr
-                                       (string-join
-                                        '("xrandr"
-                                          "--output VGA-1"
-                                          "--same-as LVDS-1"
-                                          "--auto")
-                                        " ")))
-                                  (start-process-shell-command
-                                   "xrandr" nil xrandr)))))
+  (exwm-randr-workspace-monitor-plist '(1 "VGA-1")))
 
 (use-feature exwm-systemtray
   :demand
@@ -1572,7 +1564,9 @@ This function is intended for use with `ivy-ignore-buffers'."
   (load-theme 'tangomod t)
   (sml/apply-theme 'tangomod)
   (font-lock-remove-keywords
-   'org-mode b/org-mode-font-lock-keywords))
+   'org-mode b/org-mode-font-lock-keywords)
+  (when (featurep 'exwm-systemtray)
+    (exwm-systemtray--refresh)))
 
 (defun b/lights-off ()
   "Go dark."
@@ -1581,7 +1575,9 @@ This function is intended for use with `ivy-ignore-buffers'."
   (load-theme 'doom-one t)
   (sml/apply-theme 'automatic)
   (font-lock-add-keywords
-   'org-mode b/org-mode-font-lock-keywords t))
+   'org-mode b/org-mode-font-lock-keywords t)
+  (when (featurep 'exwm-systemtray)
+    (exwm-systemtray--refresh)))
 
 (bind-keys
  ("C-c t d" . b/lights-off)
@@ -1904,11 +1900,18 @@ This function is intended for use with `ivy-ignore-buffers'."
 
 (use-feature window
   :bind
-  (("C-c w <right>" . split-window-right)
-   ("C-c w <down>"  . split-window-below)
-   ("C-c w s l"     . split-window-right)
-   ("C-c w s j"     . split-window-below)
-   ("C-c w q"       . quit-window))
+  (("C-c w s l" . b/split-window-right)
+   ("C-c w s j" . b/split-window-below)
+   ("C-c w q"   . quit-window))
+  :init
+  (defun b/split-window-right ()
+    (interactive)
+    (split-window-right)
+    (other-window 1))
+  (defun b/split-window-below ()
+    (interactive)
+    (split-window-below)
+    (other-window 1))
   :custom
   (split-width-threshold 150))
 
@@ -1938,7 +1941,9 @@ This function is intended for use with `ivy-ignore-buffers'."
               ("<C-XF86Forward>" . pdf-history-forward)
               ("<mouse-9>"       . pdf-history-forward)
               ("<drag-mouse-9>"  . pdf-history-forward)
-              ("M-RET"           . image-previous-line))
+              ("M-RET"           . image-previous-line)
+              ("C-s"             . isearch-forward)
+              ("s s"             . isearch-forward))
   :config (pdf-tools-install nil t)
   :custom (pdf-view-resize-factor 1.05))
 
@@ -2454,7 +2459,6 @@ https://csclub.uwaterloo.ca/~abandali")
   (defun company-ebdb--post-complete (_) nil))
 
 (use-feature ebdb-gnus
-  :demand
   :after ebdb
   :custom
   (ebdb-gnus-window-size 0.3))