mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-11 19:45:25 +03:00
feat(emacs): more ement config, remove wallabag & jabber
This commit is contained in:
parent
9b0e73a470
commit
a09156f801
2 changed files with 45 additions and 93 deletions
|
|
@ -5539,29 +5539,6 @@ ENTRY is an instance of `elfeed-entry'."
|
||||||
"https://www.youtube.com/watch?v="
|
"https://www.youtube.com/watch?v="
|
||||||
(ytel-video-id (ytel-get-current-video)))))
|
(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 ()
|
(defun my/toggle-shr-use-fonts ()
|
||||||
"Toggle the shr-use-fonts variable in buffer"
|
"Toggle the shr-use-fonts variable in buffer"
|
||||||
(interactive)
|
(interactive)
|
||||||
|
|
@ -5980,22 +5957,28 @@ base toot."
|
||||||
:user-id "@sqrtminusone:matrix.org"
|
:user-id "@sqrtminusone:matrix.org"
|
||||||
:password (my/password-store-get "My_Online/Accounts/matrix")))
|
:password (my/password-store-get "My_Online/Accounts/matrix")))
|
||||||
|
|
||||||
(defun my/ement-room-setup ()
|
|
||||||
(display-line-numbers-mode 1))
|
|
||||||
|
|
||||||
(use-package ement
|
(use-package ement
|
||||||
:straight (:host github :repo "alphapapa/ement.el")
|
:straight (:host github :repo "alphapapa/ement.el")
|
||||||
|
:commands (ement-connect)
|
||||||
:init
|
:init
|
||||||
(my-leader-def "ai" #'my/ement)
|
(my-leader-def "ai" #'my/ement)
|
||||||
:config
|
:config
|
||||||
(setq ement-room-list-auto-update t)
|
(setq ement-room-list-auto-update t)
|
||||||
(setq ement-room-mark-rooms-read 'send)
|
(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-message-format-spec "%S> %W%B%r%R[%t]")
|
||||||
(setq ement-room-left-margin-width 0)
|
(setq ement-room-left-margin-width 0)
|
||||||
(setq ement-room-right-margin-width 10)
|
(setq ement-room-right-margin-width 10)
|
||||||
(setq ement-room-sender-in-left-margin nil)
|
(setq ement-room-sender-in-left-margin nil)
|
||||||
(setq ement-room-sender-headers nil)
|
(setq ement-room-sender-headers nil)
|
||||||
(setq ement-room-sender-in-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 nil :height 'unspecified)
|
||||||
(set-face-attribute 'ement-room-reactions-key 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)
|
(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-wrap-prefix nil :inherit 'unspecified)
|
||||||
(set-face-attribute 'ement-room-timestamp-header nil :height 'unspecified)
|
(set-face-attribute 'ement-room-timestamp-header nil :height 'unspecified)
|
||||||
(set-face-attribute 'ement-room-wrap-prefix nil :inherit '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
|
(setq ement-notify-notification-predicates
|
||||||
'(ement-notify--event-mentions-session-user-p
|
'(ement-notify--event-mentions-session-user-p
|
||||||
ement-notify--event-mentions-room-p
|
ement-notify--event-mentions-room-p
|
||||||
ement-notify--room-unread-p))
|
ement-notify--room-unread-p))
|
||||||
(advice-add #'ement-room-list-revert :around #'my/perspective-assign-ignore-advice)
|
;; Fix the anti-synergy with major mode re-activation in `ement-room-list-revert'
|
||||||
(add-hook 'ement-room-mode-hook #'my/ement-room-setup)
|
(advice-add #'ement-room-list-revert
|
||||||
(my/persp-add-rule
|
:around #'my/perspective-assign-ignore-advice))
|
||||||
ement-room-mode 3 "ement"
|
|
||||||
ement-describe-room-mode 3 "ement"
|
|
||||||
ement-room-occur-mode 3 "ement"
|
|
||||||
ement-room-list-mode 3 "ement"))
|
|
||||||
|
|
||||||
(with-eval-after-load 'ement-room-list
|
(with-eval-after-load 'ement-room-list
|
||||||
(general-define-key
|
(general-define-key
|
||||||
|
|
@ -6028,7 +6007,13 @@ base toot."
|
||||||
"gr" #'revert-buffer
|
"gr" #'revert-buffer
|
||||||
"RET" #'ement-room-list-RET))
|
"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
|
(general-define-key
|
||||||
:states '(normal visual)
|
:states '(normal visual)
|
||||||
:keymaps '(ement-room-mode-map)
|
:keymaps '(ement-room-mode-map)
|
||||||
|
|
|
||||||
83
Emacs.org
83
Emacs.org
|
|
@ -55,6 +55,8 @@ I decided not to keep configs for features that I do not use anymore because thi
|
||||||
| pomidor | 8594d6f53e42c70bbf903e168607841854818a38 |
|
| pomidor | 8594d6f53e42c70bbf903e168607841854818a38 |
|
||||||
| elfeed-score | 8e591e0d2afd909ae5be00caf17f9b17c6cd8b61 |
|
| elfeed-score | 8e591e0d2afd909ae5be00caf17f9b17c6cd8b61 |
|
||||||
| org-trello | 3f5967a5f63928ea9c8567d8d9f31e84cdbbc21f |
|
| org-trello | 3f5967a5f63928ea9c8567d8d9f31e84cdbbc21f |
|
||||||
|
| jabber | 9b0e73a4703ff35a2d30fd704200052888191217 |
|
||||||
|
| wallabag | 9b0e73a4703ff35a2d30fd704200052888191217 |
|
||||||
* Initial setup
|
* Initial setup
|
||||||
Setting up the environment, performance tuning and a few basic settings.
|
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)))))
|
(ytel-video-id (ytel-get-current-video)))))
|
||||||
#+end_src
|
#+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
|
*** EWW
|
||||||
Emacs built-in web browser. +I wonder if anyone actually uses it.+
|
Emacs built-in web browser. +I wonder if anyone actually uses it.+
|
||||||
|
|
||||||
|
|
@ -8360,6 +8331,8 @@ And the prefix itself:
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** ement.el
|
*** 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
|
#+begin_src emacs-lisp
|
||||||
(use-package plz
|
(use-package plz
|
||||||
:straight (:host github :repo "alphapapa/plz.el")
|
:straight (:host github :repo "alphapapa/plz.el")
|
||||||
|
|
@ -8371,22 +8344,28 @@ And the prefix itself:
|
||||||
:user-id "@sqrtminusone:matrix.org"
|
:user-id "@sqrtminusone:matrix.org"
|
||||||
:password (my/password-store-get "My_Online/Accounts/matrix")))
|
:password (my/password-store-get "My_Online/Accounts/matrix")))
|
||||||
|
|
||||||
(defun my/ement-room-setup ()
|
|
||||||
(display-line-numbers-mode 1))
|
|
||||||
|
|
||||||
(use-package ement
|
(use-package ement
|
||||||
:straight (:host github :repo "alphapapa/ement.el")
|
:straight (:host github :repo "alphapapa/ement.el")
|
||||||
|
:commands (ement-connect)
|
||||||
:init
|
:init
|
||||||
(my-leader-def "ai" #'my/ement)
|
(my-leader-def "ai" #'my/ement)
|
||||||
:config
|
:config
|
||||||
(setq ement-room-list-auto-update t)
|
(setq ement-room-list-auto-update t)
|
||||||
(setq ement-room-mark-rooms-read 'send)
|
(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-message-format-spec "%S> %W%B%r%R[%t]")
|
||||||
(setq ement-room-left-margin-width 0)
|
(setq ement-room-left-margin-width 0)
|
||||||
(setq ement-room-right-margin-width 10)
|
(setq ement-room-right-margin-width 10)
|
||||||
(setq ement-room-sender-in-left-margin nil)
|
(setq ement-room-sender-in-left-margin nil)
|
||||||
(setq ement-room-sender-headers nil)
|
(setq ement-room-sender-headers nil)
|
||||||
(setq ement-room-sender-in-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 nil :height 'unspecified)
|
||||||
(set-face-attribute 'ement-room-reactions-key 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)
|
(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-wrap-prefix nil :inherit 'unspecified)
|
||||||
(set-face-attribute 'ement-room-timestamp-header nil :height 'unspecified)
|
(set-face-attribute 'ement-room-timestamp-header nil :height 'unspecified)
|
||||||
(set-face-attribute 'ement-room-wrap-prefix nil :inherit '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
|
(setq ement-notify-notification-predicates
|
||||||
'(ement-notify--event-mentions-session-user-p
|
'(ement-notify--event-mentions-session-user-p
|
||||||
ement-notify--event-mentions-room-p
|
ement-notify--event-mentions-room-p
|
||||||
ement-notify--room-unread-p))
|
ement-notify--room-unread-p))
|
||||||
(advice-add #'ement-room-list-revert :around #'my/perspective-assign-ignore-advice)
|
;; Fix the anti-synergy with major mode re-activation in `ement-room-list-revert'
|
||||||
(add-hook 'ement-room-mode-hook #'my/ement-room-setup)
|
(advice-add #'ement-room-list-revert
|
||||||
(my/persp-add-rule
|
:around #'my/perspective-assign-ignore-advice))
|
||||||
ement-room-mode 3 "ement"
|
|
||||||
ement-describe-room-mode 3 "ement"
|
|
||||||
ement-room-occur-mode 3 "ement"
|
|
||||||
ement-room-list-mode 3 "ement"))
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Some custom keymaps:
|
Some custom keymaps for room lists:
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(with-eval-after-load 'ement-room-list
|
(with-eval-after-load 'ement-room-list
|
||||||
(general-define-key
|
(general-define-key
|
||||||
|
|
@ -8421,11 +8396,17 @@ Some custom keymaps:
|
||||||
"q" #'quit-window
|
"q" #'quit-window
|
||||||
"gr" #'revert-buffer
|
"gr" #'revert-buffer
|
||||||
"RET" #'ement-room-list-RET))
|
"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
|
#+end_src
|
||||||
|
|
||||||
Also a keymap for room mode:
|
Also a keymap for room mode:
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(with-eval-after-load 'ement-room-mode
|
(with-eval-after-load 'ement
|
||||||
(general-define-key
|
(general-define-key
|
||||||
:states '(normal visual)
|
:states '(normal visual)
|
||||||
:keymaps '(ement-room-mode-map)
|
:keymaps '(ement-room-mode-map)
|
||||||
|
|
@ -8593,20 +8574,6 @@ References:
|
||||||
"Q" 'google-translate-query-translate-reverse
|
"Q" 'google-translate-query-translate-reverse
|
||||||
"t" 'google-translate-smooth-translate)
|
"t" 'google-translate-smooth-translate)
|
||||||
#+end_src
|
#+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
|
** Reading documentation
|
||||||
*** tldr
|
*** 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.
|
[[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.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue