feat(emacs): more ement config, remove wallabag & jabber

This commit is contained in:
Pavel Korytov 2023-05-22 23:33:50 +03:00
parent 9b0e73a470
commit a09156f801
2 changed files with 45 additions and 93 deletions

View file

@ -5539,29 +5539,6 @@ ENTRY is an instance of `elfeed-entry'."
"https://www.youtube.com/watch?v="
(ytel-video-id (ytel-get-current-video)))))
(use-package wallabag
:straight (:host github :repo "chenyanming/wallabag.el" :files (:defaults "default.css" "emojis.alist"))
:disabled
:commands (wallabag wallabag-add-entry)
:config
(setq wallabag-host "https://wallabag.sqrtminusone.xyz")
(setq wallabag-username "sqrtminusone")
(setq wallabag-password (my/password-store-get "Selfhosted/wallabag"))
(setq wallabag-clientid (password-store-get-field "Selfhosted/wallabag" "client_id"))
(setq wallabag-secret (password-store-get-field "Selfhosted/wallabag" "client_secret")))
(defun my/elfeed-wallabag (entry)
(interactive (list elfeed-show-entry))
(wallabag-add-entry (elfeed-entry-link entry)
(mapconcat #'symbol-name (elfeed-entry-tags entry) ","))
(elfeed-recommender--rate-current 2))
(with-eval-after-load 'elfeed
(general-define-key
:states '(normal)
:keymaps '(elfeed-show-mode-map)
"gw" #'my/elfeed-wallabag))
(defun my/toggle-shr-use-fonts ()
"Toggle the shr-use-fonts variable in buffer"
(interactive)
@ -5980,22 +5957,28 @@ base toot."
:user-id "@sqrtminusone:matrix.org"
:password (my/password-store-get "My_Online/Accounts/matrix")))
(defun my/ement-room-setup ()
(display-line-numbers-mode 1))
(use-package ement
:straight (:host github :repo "alphapapa/ement.el")
:commands (ement-connect)
:init
(my-leader-def "ai" #'my/ement)
:config
(setq ement-room-list-auto-update t)
(setq ement-room-mark-rooms-read 'send)
(my/persp-add-rule
ement-room-mode 3 "ement"
ement-describe-room-mode 3 "ement"
ement-room-occur-mode 3 "ement"
ement-room-list-mode 3 "ement")
;; Room UI
(setq ement-room-message-format-spec "%S> %W%B%r%R[%t]")
(setq ement-room-left-margin-width 0)
(setq ement-room-right-margin-width 10)
(setq ement-room-sender-in-left-margin nil)
(setq ement-room-sender-headers nil)
(setq ement-room-sender-in-headers nil)
(setq ement-room-wrap-prefix "-> ")
;; Changing some default faces
(set-face-attribute 'ement-room-reactions nil :height 'unspecified)
(set-face-attribute 'ement-room-reactions-key nil :height 'unspecified)
(set-face-attribute 'ement-room-timestamp nil :inherit 'font-lock-function-name-face)
@ -6004,18 +5987,14 @@ base toot."
(set-face-attribute 'ement-room-wrap-prefix nil :inherit 'unspecified)
(set-face-attribute 'ement-room-timestamp-header nil :height 'unspecified)
(set-face-attribute 'ement-room-wrap-prefix nil :inherit 'unspecified)
(setq ement-room-wrap-prefix "-> ")
;; Notify only on mentions
(setq ement-notify-notification-predicates
'(ement-notify--event-mentions-session-user-p
ement-notify--event-mentions-room-p
ement-notify--room-unread-p))
(advice-add #'ement-room-list-revert :around #'my/perspective-assign-ignore-advice)
(add-hook 'ement-room-mode-hook #'my/ement-room-setup)
(my/persp-add-rule
ement-room-mode 3 "ement"
ement-describe-room-mode 3 "ement"
ement-room-occur-mode 3 "ement"
ement-room-list-mode 3 "ement"))
;; Fix the anti-synergy with major mode re-activation in `ement-room-list-revert'
(advice-add #'ement-room-list-revert
:around #'my/perspective-assign-ignore-advice))
(with-eval-after-load 'ement-room-list
(general-define-key
@ -6028,7 +6007,13 @@ base toot."
"gr" #'revert-buffer
"RET" #'ement-room-list-RET))
(with-eval-after-load 'ement-room-mode
(with-eval-after-load 'ement-tabulated-room-list
(general-define-key
:states '(normal visual)
:keymaps '(ement-tabulated-room-list-mode-map)
"q" #'quit-window))
(with-eval-after-load 'ement
(general-define-key
:states '(normal visual)
:keymaps '(ement-room-mode-map)

View file

@ -55,6 +55,8 @@ I decided not to keep configs for features that I do not use anymore because thi
| pomidor | 8594d6f53e42c70bbf903e168607841854818a38 |
| elfeed-score | 8e591e0d2afd909ae5be00caf17f9b17c6cd8b61 |
| org-trello | 3f5967a5f63928ea9c8567d8d9f31e84cdbbc21f |
| jabber | 9b0e73a4703ff35a2d30fd704200052888191217 |
| wallabag | 9b0e73a4703ff35a2d30fd704200052888191217 |
* Initial setup
Setting up the environment, performance tuning and a few basic settings.
@ -7843,37 +7845,6 @@ Also, a function to copy a URL to the video under cursor.
(ytel-video-id (ytel-get-current-video)))))
#+end_src
*** OFF wallabag
[[https://github.com/wallabag/wallabag][Wallabag]] is a self-hosted read-it-later project. I'm not yet sold on integrating it in my workflow, but let's keep it here for now.
Edit <2023-01-24 Tue>: well, that didn't work out. Running Tiny Tiny RSS & syncing it with elfeed seems to cover most of my read-it-later use cases.
#+begin_src emacs-lisp
(use-package wallabag
:straight (:host github :repo "chenyanming/wallabag.el" :files (:defaults "default.css" "emojis.alist"))
:disabled
:commands (wallabag wallabag-add-entry)
:config
(setq wallabag-host "https://wallabag.sqrtminusone.xyz")
(setq wallabag-username "sqrtminusone")
(setq wallabag-password (my/password-store-get "Selfhosted/wallabag"))
(setq wallabag-clientid (password-store-get-field "Selfhosted/wallabag" "client_id"))
(setq wallabag-secret (password-store-get-field "Selfhosted/wallabag" "client_secret")))
#+end_src
#+begin_src emacs-lisp
(defun my/elfeed-wallabag (entry)
(interactive (list elfeed-show-entry))
(wallabag-add-entry (elfeed-entry-link entry)
(mapconcat #'symbol-name (elfeed-entry-tags entry) ","))
(elfeed-recommender--rate-current 2))
(with-eval-after-load 'elfeed
(general-define-key
:states '(normal)
:keymaps '(elfeed-show-mode-map)
"gw" #'my/elfeed-wallabag))
#+end_src
*** EWW
Emacs built-in web browser. +I wonder if anyone actually uses it.+
@ -8360,6 +8331,8 @@ And the prefix itself:
#+end_src
*** ement.el
[[https://github.com/alphapapa/ement.el][ement.el]] is a Matrix client for Emacs. This package turned out to be somewhat complicated to setup.
#+begin_src emacs-lisp
(use-package plz
:straight (:host github :repo "alphapapa/plz.el")
@ -8371,22 +8344,28 @@ And the prefix itself:
:user-id "@sqrtminusone:matrix.org"
:password (my/password-store-get "My_Online/Accounts/matrix")))
(defun my/ement-room-setup ()
(display-line-numbers-mode 1))
(use-package ement
:straight (:host github :repo "alphapapa/ement.el")
:commands (ement-connect)
:init
(my-leader-def "ai" #'my/ement)
:config
(setq ement-room-list-auto-update t)
(setq ement-room-mark-rooms-read 'send)
(my/persp-add-rule
ement-room-mode 3 "ement"
ement-describe-room-mode 3 "ement"
ement-room-occur-mode 3 "ement"
ement-room-list-mode 3 "ement")
;; Room UI
(setq ement-room-message-format-spec "%S> %W%B%r%R[%t]")
(setq ement-room-left-margin-width 0)
(setq ement-room-right-margin-width 10)
(setq ement-room-sender-in-left-margin nil)
(setq ement-room-sender-headers nil)
(setq ement-room-sender-in-headers nil)
(setq ement-room-wrap-prefix "-> ")
;; Changing some default faces
(set-face-attribute 'ement-room-reactions nil :height 'unspecified)
(set-face-attribute 'ement-room-reactions-key nil :height 'unspecified)
(set-face-attribute 'ement-room-timestamp nil :inherit 'font-lock-function-name-face)
@ -8395,21 +8374,17 @@ And the prefix itself:
(set-face-attribute 'ement-room-wrap-prefix nil :inherit 'unspecified)
(set-face-attribute 'ement-room-timestamp-header nil :height 'unspecified)
(set-face-attribute 'ement-room-wrap-prefix nil :inherit 'unspecified)
(setq ement-room-wrap-prefix "-> ")
;; Notify only on mentions
(setq ement-notify-notification-predicates
'(ement-notify--event-mentions-session-user-p
ement-notify--event-mentions-room-p
ement-notify--room-unread-p))
(advice-add #'ement-room-list-revert :around #'my/perspective-assign-ignore-advice)
(add-hook 'ement-room-mode-hook #'my/ement-room-setup)
(my/persp-add-rule
ement-room-mode 3 "ement"
ement-describe-room-mode 3 "ement"
ement-room-occur-mode 3 "ement"
ement-room-list-mode 3 "ement"))
;; Fix the anti-synergy with major mode re-activation in `ement-room-list-revert'
(advice-add #'ement-room-list-revert
:around #'my/perspective-assign-ignore-advice))
#+end_src
Some custom keymaps:
Some custom keymaps for room lists:
#+begin_src emacs-lisp
(with-eval-after-load 'ement-room-list
(general-define-key
@ -8421,11 +8396,17 @@ Some custom keymaps:
"q" #'quit-window
"gr" #'revert-buffer
"RET" #'ement-room-list-RET))
(with-eval-after-load 'ement-tabulated-room-list
(general-define-key
:states '(normal visual)
:keymaps '(ement-tabulated-room-list-mode-map)
"q" #'quit-window))
#+end_src
Also a keymap for room mode:
#+begin_src emacs-lisp
(with-eval-after-load 'ement-room-mode
(with-eval-after-load 'ement
(general-define-key
:states '(normal visual)
:keymaps '(ement-room-mode-map)
@ -8593,20 +8574,6 @@ References:
"Q" 'google-translate-query-translate-reverse
"t" 'google-translate-smooth-translate)
#+end_src
*** OFF (OFF) jabber
#+begin_src emacs-lisp :tangle no
(use-package srv
:straight t
:defer t)
(use-package fsm
:straight t
:defer t)
(use-package emacs-jabber
:straight (jabber :host nil :repo
"https://tildegit.org/wgreenhouse/emacs-jabber"))
#+end_src
** Reading documentation
*** tldr
[[https://tldr.sh/][tldr]] is a collaborative project providing cheatsheets for various console commands. For some reason, the built-in download in the package is broken, so I use my own function.