emacs: add binding for guix-patches debbugs
[~bandali/configs] / .emacs.d / init.el
index e709f70..f2c5bff 100644 (file)
   (exec-path-from-shell-initialize)
   ;; while we're at it, let's fix access to our running ssh-agent
   (exec-path-from-shell-copy-env "SSH_AGENT_PID")
-  (exec-path-from-shell-copy-env "SSH_AUTH_SOCK"))
+  (exec-path-from-shell-copy-env "SSH_AUTH_SOCK")
+  (exec-path-from-shell-copy-env "XDG_DOWNLOAD_DIR"))
 
 ;; start up emacs server.  see
 ;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html#Emacs-Server
@@ -363,7 +364,7 @@ For disabling the behaviour for certain buffers and/or modes."
   (display-time-mode)
   :custom
   (display-time-default-load-average nil)
-  (display-time-format "%a %b %-e, %-l:%M%P")
+  (display-time-format "%a %b %-e %-l:%M%P")
   (display-time-mail-icon '(image :type xpm :file "gnus/gnus-pointer.xpm" :ascent center))
   (display-time-use-mail-icon t))
 
@@ -707,7 +708,7 @@ around if needed."
   (exwm-manage-finish . (lambda ()
                           (when exwm-class-name
                             (cond
-                             ((string= exwm-class-name "Abrowser")
+                             ((string= exwm-class-name "IceCat")
                               (exwm-input-set-local-simulation-keys
                                `(,@exwm-input-simulation-keys
                                  ([?\C-\S-d] . [?\C-d]))))
@@ -1079,7 +1080,8 @@ This function is intended for use with `ivy-ignore-buffers'."
         (mode . message-mode)))
       ("web"
        (or
-        (mode . web-mode)
+        ;; (mode . web-mode)
+        (mode . mhtml-mode)
         (mode . css-mode)
         (mode . scss-mode)
         (mode . js2-mode)))
@@ -1186,8 +1188,8 @@ This function is intended for use with `ivy-ignore-buffers'."
           ("\\.flac\\'" "mpv")))
   :bind (:map dired-mode-map
               ("b"  . dired-up-directory)
-              ("e"  . dired-ediff-files)
-              ("E"  . dired-toggle-read-only)
+              ("E"  . dired-ediff-files)
+              ("e"  . dired-toggle-read-only)
               ("\\" . dired-hide-details-mode)
               ("z"  . (lambda ()
                         (interactive)
@@ -1416,6 +1418,8 @@ This function is intended for use with `ivy-ignore-buffers'."
   ;; alternative: hs-lint https://github.com/ndmitchell/hlint/blob/20e116a043f2073c57b17b24ae6364b5e433ba7e/data/hs-lint.el
   )
 
+(use-package mhtml-mode)
+
 (use-package sgml-mode
   :config
   (setq sgml-basic-offset 2))
@@ -1425,6 +1429,7 @@ This function is intended for use with `ivy-ignore-buffers'."
   (setq css-indent-offset 2))
 
 (use-package web-mode
+  :disabled
   :mode "\\.html\\'"
   :config
   (b/setq-every 2
@@ -1435,13 +1440,13 @@ This function is intended for use with `ivy-ignore-buffers'."
   (web-mode-enable-auto-indentation nil))
 
 (use-package emmet-mode
-  :after (:any web-mode css-mode sgml-mode)
+  :after (:any mhtml-mode css-mode sgml-mode)
   :bind* (("C-)" . emmet-next-edit-point)
           ("C-(" . emmet-prev-edit-point))
   :config
   (unbind-key "C-j" emmet-mode-keymap)
   (setq emmet-move-cursor-between-quotes t)
-  :hook (web-mode css-mode html-mode sgml-mode))
+  :hook (css-mode html-mode mhtml-mode sgml-mode))
 
 (comment
   (use-package meghanada
@@ -1559,6 +1564,8 @@ This function is intended for use with `ivy-ignore-buffers'."
   :commands (sml/apply-theme)
   :demand
   :config
+  ;; thanks, but no thnaks; don't make fixed-width fills.
+  (defun sml/fill-for-buffer-identification () "")
   (setq sml/theme 'tangomod)
   (sml/setup)
   (smart-mode-line-enable))
@@ -1609,7 +1616,8 @@ This function is intended for use with `ivy-ignore-buffers'."
   (interactive)
   (mapc #'disable-theme custom-enabled-themes)
   (load-theme 'tangomod t)
-  (sml/apply-theme 'tangomod)
+  (when (featurep 'smart-mode-line)
+    (sml/apply-theme 'tangomod))
   (font-lock-remove-keywords
    'org-mode b/org-mode-font-lock-keywords)
   (when (featurep 'erc-hl-nicks)
@@ -1622,7 +1630,8 @@ This function is intended for use with `ivy-ignore-buffers'."
   (interactive)
   (mapc #'disable-theme custom-enabled-themes)
   (load-theme 'doom-one t)
-  (sml/apply-theme 'automatic)
+  (when (featurep 'smart-mode-line)
+    (sml/apply-theme 'automatic))
   (font-lock-add-keywords
    'org-mode b/org-mode-font-lock-keywords t)
   (when (featurep 'erc-hl-nicks)
@@ -1685,12 +1694,6 @@ This function is intended for use with `ivy-ignore-buffers'."
     "C-c f n" "footnote")
   (which-key-add-major-mode-key-based-replacements 'org-mode
     "C-c C-v" "org-babel")
-  (which-key-add-major-mode-key-based-replacements 'web-mode
-    "C-c C-a" "web/attributes"
-    "C-c C-b" "web/blocks"
-    "C-c C-d" "web/dom"
-    "C-c C-e" "web/element"
-    "C-c C-t" "web/tags")
 
   (which-key-mode)
   :custom
@@ -1798,10 +1801,10 @@ This function is intended for use with `ivy-ignore-buffers'."
 
 ;; easily type pretty quotes & other typography, like ‘’“”-–—«»‹›
 (use-package typo
+  :disabled
   :defer 0.5
   :config
-  :hook (((text-mode erc-mode web-mode) . typo-mode)
-         ((tex-mode git-commit-mode)    . (lambda ()(typo-mode -1)))))
+  :hook ((html-mode mhtml-mode) . typo-mode))
 
 (use-package electric
   :disabled
@@ -1940,19 +1943,24 @@ This function is intended for use with `ivy-ignore-buffers'."
    ("C-c D b" . debbugs-gnu-bugs)
    ("C-c D e" .
     (lambda ()
-      (interactive)
+      (interactive)                     ; bug-gnu-emacs
       (setq debbugs-gnu-current-suppress t)
       (debbugs-gnu debbugs-gnu-default-severities '("emacs"))))
-   ("C-c D g" .
+   ("C-c D g" .                         ; bug-gnuzilla
     (lambda ()
       (interactive)
       (setq debbugs-gnu-current-suppress t)
       (debbugs-gnu debbugs-gnu-default-severities '("gnuzilla"))))
-   ("C-c D G" .
+   ("C-c D G b" .                       ; bug-guix
     (lambda ()
       (interactive)
       (setq debbugs-gnu-current-suppress t)
-      (debbugs-gnu debbugs-gnu-default-severities '("guix"))))))
+      (debbugs-gnu debbugs-gnu-default-severities '("guix"))))
+   ("C-c D G p" .                       ; guix-patches
+    (lambda ()
+      (interactive)
+      (setq debbugs-gnu-current-suppress t)
+      (debbugs-gnu debbugs-gnu-default-severities '("guix-patches"))))))
 
 (use-package org-ref
   :init
@@ -2107,6 +2115,12 @@ This function is intended for use with `ivy-ignore-buffers'."
   (setq scpaste-http-destination "https://p.bndl.org"
         scpaste-scp-destination "nix:/var/www/p.bndl.org"))
 
+(use-package eww
+  :bind ("C-c a e w" . eww)
+  :custom
+  (eww-download-directory (file-name-as-directory
+                           (getenv "XDG_DOWNLOAD_DIR"))))
+
 \f
 ;;; Email (with Gnus)
 
@@ -2120,9 +2134,9 @@ This function is intended for use with `ivy-ignore-buffers'."
  read-mail-command 'gnus)
 
 (use-package gnus
-  :bind (("s-m"     . gnus)
+  :bind (("s-m"     . gnus-plugged)
          ("s-M"     . gnus-unplugged)
-         ("C-c a m" . gnus)
+         ("C-c a m" . gnus-plugged)
          ("C-c a M" . gnus-unplugged))
   :init
   (setq