compton: prevent occasional annoying black/white flashes
[~bandali/configs] / .emacs.d / init.el
index 9b0c0c7..47ff590 100644 (file)
@@ -582,7 +582,7 @@ For disabling the behaviour for certain buffers and/or modes."
 
 (use-feature exwm-input
   :demand
 
 (use-feature exwm-input
   :demand
-  :after exwm-workspace
+  :after exwm
   :config
   (defun b/exwm-ws-prev-index ()
     "Return the index for the previous EXWM workspace, wrapping
   :config
   (defun b/exwm-ws-prev-index ()
     "Return the index for the previous EXWM workspace, wrapping
@@ -602,7 +602,8 @@ around if needed."
   ;; shorten 'C-c C-q' to 'C-q'
   (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
 
   ;; shorten 'C-c C-q' to 'C-q'
   (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
 
-  (setq exwm-input-global-keys
+  (setq exwm-workspace-number 4
+        exwm-input-global-keys
         `(([?\s-R] . exwm-reset)
           ([?\s-\\] . exwm-workspace-switch)
           ([?\s-\s] . dmenu)
         `(([?\s-R] . exwm-reset)
           ([?\s-\\] . exwm-workspace-switch)
           ([?\s-\s] . dmenu)
@@ -655,10 +656,10 @@ around if needed."
                     (number-sequence 0 (1- exwm-workspace-number)))
           ([?\s-t] . exwm-floating-toggle-floating)
           ([?\s-f] . exwm-layout-toggle-fullscreen)
                     (number-sequence 0 (1- exwm-workspace-number)))
           ([?\s-t] . exwm-floating-toggle-floating)
           ([?\s-f] . exwm-layout-toggle-fullscreen)
-          ([?\s-w] . (lambda ()
+          ([?\s-W] . (lambda ()
                        (interactive)
                        (kill-buffer (current-buffer))))
                        (interactive)
                        (kill-buffer (current-buffer))))
-          ([?\s-q] . (lambda ()
+          ([?\s-Q] . (lambda ()
                        (interactive)
                        (exwm-manage--kill-client)))
           ([?\s-\'] . (lambda ()
                        (interactive)
                        (exwm-manage--kill-client)))
           ([?\s-\'] . (lambda ()
@@ -721,9 +722,12 @@ around if needed."
       ([?\C-y] . [?\C-v])
       ([?\M-d] . [C-S-right ?\C-x])
       ([?\M-\d] . [C-S-left ?\C-x])
       ([?\C-y] . [?\C-v])
       ([?\M-d] . [C-S-right ?\C-x])
       ([?\M-\d] . [C-S-left ?\C-x])
-      ;; search
+      ;; window
+      ([?\s-w] . [?\C-w])
+      ([?\s-q] . [?\C-q])
+      ;; misc
       ([?\C-s] . [?\C-f])
       ([?\C-s] . [?\C-f])
-      ;; escape
+      ([?\s-s] . [?\C-s])
       ([?\C-g] . [escape]))))
 
 (use-feature exwm-manage
       ([?\C-g] . [escape]))))
 
 (use-feature exwm-manage
@@ -736,9 +740,7 @@ around if needed."
                              ((string= exwm-class-name "Abrowser")
                               (exwm-input-set-local-simulation-keys
                                `(,@exwm-input-simulation-keys
                              ((string= exwm-class-name "Abrowser")
                               (exwm-input-set-local-simulation-keys
                                `(,@exwm-input-simulation-keys
-                                 ([?\C-\S-d] . [?\C-d])
-                                 ([?\C-q] . [?\C-w])
-                                 ([?\s-q] . [?\C-q]))))
+                                 ([?\C-\S-d] . [?\C-d]))))
                              ((string= exwm-class-name "URxvt")
                               (exwm-input-set-local-simulation-keys
                                '(([?\C-c ?\C-c] . [?\C-c])
                              ((string= exwm-class-name "URxvt")
                               (exwm-input-set-local-simulation-keys
                                '(([?\C-c ?\C-c] . [?\C-c])
@@ -752,7 +754,20 @@ around if needed."
   :demand
   :after exwm
   :config
   :demand
   :after exwm
   :config
-  (exwm-randr-enable))
+  (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)))))
 
 (use-feature exwm-systemtray
   :demand
 
 (use-feature exwm-systemtray
   :demand
@@ -760,11 +775,7 @@ around if needed."
   :config
   (exwm-systemtray-enable))
 
   :config
   (exwm-systemtray-enable))
 
-(use-feature exwm-workspace
-  :demand
-  :after exwm
-  :custom
-  (exwm-workspace-number 4))
+(use-feature exwm-workspace)
 
 (use-package exwm-edit
   :demand
 
 (use-package exwm-edit
   :demand
@@ -1485,6 +1496,10 @@ This function is intended for use with `ivy-ignore-buffers'."
   :hook ((tex-mode . auto-fill-mode)
          (tex-mode . flyspell-mode)))
 
   :hook ((tex-mode . auto-fill-mode)
          (tex-mode . flyspell-mode)))
 
+(use-package george-mode
+  :straight (:host nil :repo "https://git.shemshak.org/amin/george-mode")
+  :mode "\\.grg\\'")
+
 \f
 ;;; Theme
 
 \f
 ;;; Theme
 
@@ -1913,6 +1928,14 @@ This function is intended for use with `ivy-ignore-buffers'."
   :config (pdf-tools-install nil t)
   :custom (pdf-view-resize-factor 1.05))
 
   :config (pdf-tools-install nil t)
   :custom (pdf-view-resize-factor 1.05))
 
+(use-package org-pdftools
+  :straight (:host github :repo "fuxialexander/org-pdftools")
+  :demand
+  :after org
+  :config
+  (with-eval-after-load 'org
+    (require 'org-pdftools)))
+
 (use-package biblio)
 
 (use-feature reftex
 (use-package biblio)
 
 (use-feature reftex
@@ -1991,9 +2014,9 @@ This function is intended for use with `ivy-ignore-buffers'."
                                  ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
                                  ;; gnu
                                  (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1")
                                  ;; (: gnus-group-split-fancy "INBOX" t "INBOX")
                                  ;; gnu
                                  (list ".*<\\(.*\\)\\.\\(non\\)?gnu\\.org>.*" "l.\\1")
-                                 ;; *@lists.sr.ht, omitting one dot if present
-                                 ;;    add more \\.?\\([^.@]*\\) if needed
-                                 (list ".*<~\\(.*\\)/\\([^.@]*\\)\\.?\\([^.@]*\\)@lists.sr.ht>.*" "l.~\\1.\\2\\3")
+                                 ;; *.lists.sr.ht, omitting one dot if present
+                                 ;;    add more \\.?\\([^.]*\\) if needed
+                                 (list ".*<~\\(.*\\)/\\([^.]*\\)\\.?\\([^.]*\\)\\.lists.sr.ht>.*" "l.~\\1.\\2\\3")
                                  ;; webmasters
                                  (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters")
                                  ;; other
                                  ;; webmasters
                                  (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters")
                                  ;; other
@@ -2263,7 +2286,7 @@ https://csclub.uwaterloo.ca/~abandali")
            (body "")
            (eval (setq b/message-cite-say-hi nil)))
           ("nnimap\\+uw:.*"
            (body "")
            (eval (setq b/message-cite-say-hi nil)))
           ("nnimap\\+uw:.*"
-           (address "abandali@uwaterloo.ca")
+           (address "bandali@uwaterloo.ca")
            (signature b/uw-signature))
           ("nnimap\\+uw:INBOX"
            (gcc "\"nnimap+uw:Sent Items\""))
            (signature b/uw-signature))
           ("nnimap\\+uw:INBOX"
            (gcc "\"nnimap+uw:Sent Items\""))
@@ -2346,7 +2369,7 @@ https://csclub.uwaterloo.ca/~abandali")
         message-subscribed-address-functions
         '(gnus-find-subscribed-addresses)
         message-dont-reply-to-names
         message-subscribed-address-functions
         '(gnus-find-subscribed-addresses)
         message-dont-reply-to-names
-        "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(amin@bndl\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(a\\(min\\.\\)?bandali@uwaterloo\\.ca\\)\\|\\(abandali@csclub\\.uwaterloo\\.ca\\)\\)")
+        "\\(\\(\\(amin\\|mab\\)@shemshak\\.org\\)\\|\\(amin@bndl\\.org\\)\\|\\(.*@aminb\\.org\\)\\|\\(\\(bandali\\|mab\\|aminb?\\)@gnu\\.org\\)\\|\\(\\(a\\(min\\.\\)?\\)?bandali@uwaterloo\\.ca\\)\\|\\(abandali@csclub\\.uwaterloo\\.ca\\)\\)")
   (require 'company-ebdb)
   :hook (;; (message-setup . mml-secure-message-sign-pgpmime)
          (message-mode . flyspell-mode)
   (require 'company-ebdb)
   :hook (;; (message-setup . mml-secure-message-sign-pgpmime)
          (message-mode . flyspell-mode)