emacs: smart-mode-line: don't make fixed-width fills
[~bandali/configs] / .emacs.d / init.el
index 4219bdf..1d71471 100644 (file)
 \f
 ;;; Initial setup
 
-(defvar b/exwm-p (string= (system-name) "jirud")
+(defvar b/exwm-p (string= (system-name) "chaman")
   "Whether or not we will be using `exwm'.")
 
 ;; keep ~/.emacs.d clean
   (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
@@ -639,17 +640,17 @@ around if needed."
           ([XF86AudioMute] .
            (lambda ()
              (interactive)
-             (start-process "" nil "pamixer" "--toggle-mute")))
+             (start-process "" nil "amixer" "set" "'Master',0" "toggle")))
           ([XF86AudioLowerVolume] .
            (lambda ()
              (interactive)
              (start-process
-              "" nil "pamixer" "--allow-boost" "--decrease" "5")))
+              "" nil "amixer" "set" "'Master',0" "5%-")))
           ([XF86AudioRaiseVolume] .
            (lambda ()
              (interactive)
              (start-process
-              "" nil "pamixer" "--allow-boost" "--increase" "5")))
+              "" nil "amixer" "set" "'Master',0" "5%+")))
           ([XF86AudioPlay] .
            (lambda ()
              (interactive)
@@ -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]))))
@@ -1036,8 +1037,12 @@ This function is intended for use with `ivy-ignore-buffers'."
                ("C-S-l" . b/eshell-clear)
                ("M-r"   . counsel-esh-history)
                ;; ([tab]   . company-complete)
-               :map eshell-hist-mode-map
-               ("M-r" . counsel-esh-history)))
+               )
+    (if (version< "27" emacs-version)
+        (bind-keys :map eshell-hist-mode-map
+                   ("M-r" . counsel-esh-history))
+      (bind-keys :map eshell-mode-map
+                 ("M-r" . counsel-esh-history))))
 
   :hook (eshell-mode . b/eshell-setup)
   :custom
@@ -1182,8 +1187,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)
@@ -1555,6 +1560,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))
@@ -1605,7 +1612,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)
@@ -1618,7 +1626,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)
@@ -2103,6 +2112,11 @@ 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
+  :custom
+  (eww-download-directory (file-name-as-directory
+                           (getenv "XDG_DOWNLOAD_DIR"))))
+
 \f
 ;;; Email (with Gnus)
 
@@ -2116,9 +2130,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
@@ -2492,7 +2506,8 @@ https://csclub.uwaterloo.ca/~abandali")
 
 (use-package mm-uu
   :config
-  (set-face-attribute 'mm-uu-extract nil :extend t)
+  (when (version< "27" emacs-version)
+    (set-face-attribute 'mm-uu-extract nil :extend t))
   :custom
   (mm-uu-diff-groups-regexp
    "\\(gmane\\|gnu\\|l\\)\\..*\\(diff\\|commit\\|cvs\\|bug\\|dev\\)"))
@@ -2726,22 +2741,21 @@ https://csclub.uwaterloo.ca/~abandali")
 (use-package erc-scrolltoplace
   :after erc)
 
-;; (use-package znc
-;;   :straight (:host nil :repo "https://git.shemshak.org/amin/znc.el")
-;;   :bind (("C-c a e e" . znc-erc)
-;;          ("C-c a e a" . znc-all))
-;;   :config
-;;   (let ((pwd (let ((auth (auth-source-search :host "znca")))
-;;                (cond
-;;                 ((null auth) (error "Couldn't find znca's authinfo"))
-;;                 (t (funcall (plist-get (car auth) :secret)))))))
-;;     (setq znc-servers
-;;           `(("znc.shemshak.org" 1337 t
-;;              ((freenode "amin/freenode" ,pwd)))
-;;             ("znc.shemshak.org" 1337 t
-;;              ((moznet "amin/moznet" ,pwd)))
-;;             ("znc.shemshak.org" 1337 t
-;;              ((oftc "amin/oftc" ,pwd)))))))
+(use-package znc
+  :bind (("C-c a e e" . znc-erc)
+         ("C-c a e a" . znc-all))
+  :config
+  (let ((pwd (let ((auth (auth-source-search :host "znca")))
+               (cond
+                ((null auth) (error "Couldn't find znca's authinfo"))
+                (t (funcall (plist-get (car auth) :secret)))))))
+    (setq znc-servers
+          `(("znc.shemshak.org" 1337 t
+             ((freenode "amin/freenode" ,pwd)))
+            ("znc.shemshak.org" 1337 t
+             ((moznet "amin/moznet" ,pwd)))
+            ("znc.shemshak.org" 1337 t
+             ((oftc "amin/oftc" ,pwd)))))))
 
 \f
 ;;; Post initialization