aboutsummaryrefslogtreecommitdiff
path: root/config.el
diff options
context:
space:
mode:
Diffstat (limited to 'config.el')
-rw-r--r--config.el68
1 files changed, 65 insertions, 3 deletions
diff --git a/config.el b/config.el
index ba72ebf..0e6c0c7 100644
--- a/config.el
+++ b/config.el
@@ -91,6 +91,13 @@
(add-to-list 'flycheck-checkers 'htmlhint)
+(flycheck-add-next-checker
+ 'javascript-eslint
+ 'javascript-oxlint)
+(flycheck-add-next-checker
+ 'html-tidy
+ 'htmlhint)
+
(setq flycheck-check-syntax-automatically
'(save mode-enabled)))
@@ -159,7 +166,9 @@
:config
(setq jabber-account-list
- '(("roughlynamed@yax.im")))
+ '(
+ ;; ("roughlynamed@yax.im")
+ ("wildebeest@yax.im")))
(jabber-modeline-mode 1)
@@ -175,13 +184,37 @@
:desc "New chat" "n" #'jabber-chat-with
:desc "Set status" "s" #'jabber-send-presence)
+(defun emms--wait-for-mpd-update (callback)
+ "Poll MPD status until updating_db clears, then call CALLBACK."
+ (emms-player-mpd-get-status
+ callback
+ (lambda (callback info)
+ (if (assoc "updating_db" info)
+ (run-with-timer 0.5 nil #'emms--wait-for-mpd-update callback)
+ (funcall callback)))))
+
+(defun emms-full-resync ()
+ "Update MPD's db, then pull it into EMMS's cache, then rebuild the browser."
+ (interactive)
+ (message "emms: starting mpd db update...")
+ (emms-player-mpd-update-all)
+ (emms--wait-for-mpd-update
+ (lambda ()
+ (emms-cache-set-from-mpd-all)
+ (dolist (buf (buffer-list))
+ (with-current-buffer buf
+ (when (derived-mode-p 'emms-browser-mode)
+ (revert-buffer))))
+ (emms-browser)
+ (message "emms: resync done"))))
+
(use-package! emms
- :commands (emms emms-browser)
+ :commands (emms emms-browser emms-player-mpd-update-all emms-cache-set-from-mpd-all)
:init
(map! :leader
(:prefix ("e" . "emms")
- :desc "Browser" "b" #'emms-browser
+ :desc "Browser" "b" #'emms-full-resync
:desc "Playlist" "m" #'emms-playlist-mode-go
:desc "Play/pause" "SPC" #'emms-pause
:desc "Next" "n" #'emms-next
@@ -406,6 +439,8 @@ org-html-postamble nil))
(setq shr-max-image-size '(800 . 600))
(setq shr-image-animate t)
+(add-hook 'eww-after-render-hook #'eww-readable)
+
(with-eval-after-load 'eww
(define-key eww-mode-map (kbd "=") #'text-scale-increase)
(define-key eww-mode-map (kbd "-") #'text-scale-decrease)
@@ -459,6 +494,33 @@ org-html-postamble nil))
:prefix "o"
:desc "Open Eat" "e" #'eat-other-window) ; dont steal the current window
+(use-package! nov
+ :mode ("\\.epub\\'" . nov-mode)
+ :config
+ (setq nov-text-width 80
+ nov-variable-pitch t)
+ (add-hook 'nov-mode-hook
+ (lambda ()
+ (face-remap-add-relative 'variable-pitch
+ :family "Georgia" :height 1.3))) ; different font for reading
+ (add-hook 'nov-mode-hook #'writeroom-mode) ; center text & stuff
+
+(map! :map nov-mode-map
+ :n "i" #'nov-scroll-up ; scroll roughly a page up
+ :n "e" #'nov-scroll-down ; scroll roughly a page down
+ :n "]" #'nov-next-document
+ :n "[" #'nov-previous-document
+ :n "t" #'nov-goto-toc))
+
+(with-eval-after-load 'tramp
+ (add-to-list 'tramp-methods
+ '("doas"
+ (tramp-login-program "doas")
+ (tramp-login-args (("-u" "%u") ("-s")))
+ (tramp-remote-shell "/bin/sh")
+ (tramp-remote-shell-args ("-c"))
+ (tramp-connection-timeout 10))))
+
(remove-hook 'doom-first-input-hook #'evil-snipe-mode)
(use-package lispyville