mirror of
https://github.com/SqrtMinusOne/dotfiles.git
synced 2025-12-10 19:23:03 +03:00
feat(emacs): ement.el config
This commit is contained in:
parent
b25b43bd2b
commit
f588e1a9fa
2 changed files with 95 additions and 29 deletions
|
|
@ -4156,6 +4156,10 @@ With ARG, repeats or can move backward if negative."
|
|||
(when (member (buffer-file-name) my/org-config-files)
|
||||
(setq-local org-confirm-babel-evaluate nil))))
|
||||
|
||||
(let ((folders-file (expand-file-name "folders.el" user-emacs-directory)))
|
||||
(when (file-exists-p folders-file)
|
||||
(load-file folders-file)))
|
||||
|
||||
(use-package dired
|
||||
:ensure nil
|
||||
:custom ((dired-listing-switches "-alh --group-directories-first"))
|
||||
|
|
@ -5090,7 +5094,7 @@ by the `my/elfeed-youtube-subtitles' function."
|
|||
(subed-mpv--play subed-mpv-video-file))
|
||||
|
||||
(defvar my/whisper-env-path
|
||||
"/home/pavel/Code/system-crafting/whisper-test/"
|
||||
"/home/pavel/10-19 Code/13 Other Projects/13.01 whisper-test/"
|
||||
"Path to the folder with `whisper' environment.")
|
||||
|
||||
(defun my/invoke-whisper (input output-dir)
|
||||
|
|
@ -5473,7 +5477,7 @@ ENTRY is an instance of `elfeed-entry'."
|
|||
(url-request-extra-headers
|
||||
'(("Accept" . "application/json"))))
|
||||
(with-current-buffer
|
||||
(url-retrieve-synchronously invidious-instances-url)
|
||||
(url-retrieve-synchronously my/invidious-instances-url)
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "^$")
|
||||
(let* ((json-object-type 'alist)
|
||||
|
|
@ -6013,6 +6017,30 @@ base toot."
|
|||
:keymaps '(ement-tabulated-room-list-mode-map)
|
||||
"q" #'quit-window))
|
||||
|
||||
(defun my/ement-room-send-reaction (key position)
|
||||
(interactive (list
|
||||
(completing-read "Add reaction: " telega-emoji-reaction-list)
|
||||
(point)))
|
||||
(ement-room-send-reaction key position))
|
||||
|
||||
(defun my/ement-room-compose-quit ()
|
||||
(interactive)
|
||||
(when (or (string-empty-p (buffer-string))
|
||||
(y-or-n-p "Quit compose? "))
|
||||
(quit-window t)))
|
||||
|
||||
(defun my/ement-room-compose-setup ()
|
||||
(ement-room-compose-org)
|
||||
(setq company-backends '(telega-company-emoji company-capf))
|
||||
(general-define-key
|
||||
:states '(normal visual)
|
||||
:keymaps 'local
|
||||
"Q" #'my/ement-room-compose-quit
|
||||
"C-c C-k" (lambda () (interactive) (quit-window t))
|
||||
"C-c C-c" #'ement-room-compose-send))
|
||||
|
||||
(add-hook 'ement-room-compose-hook #'my/ement-room-compose-setup)
|
||||
|
||||
(with-eval-after-load 'ement
|
||||
(general-define-key
|
||||
:states '(normal visual)
|
||||
|
|
@ -6021,24 +6049,27 @@ base toot."
|
|||
"?" #'ement-room-transient
|
||||
"C-u" #'ement-room-scroll-down-command
|
||||
"C-d" #'ement-room-scroll-up-mark-read
|
||||
"r" #'ement-room-write-reply
|
||||
"a" #'ement-room-send-message
|
||||
"i" #'ement-room-send-message
|
||||
"M-<RET>" #'ement-room-compose-message
|
||||
"<RET>" #'ement-room-send-message
|
||||
"S-<RET>" #'ement-room-write-reply
|
||||
"K" #'ement-room-goto-prev
|
||||
"J" #'ement-room-goto-next
|
||||
"gr" #'ement-room-sync
|
||||
"rT" #'ement-tag-room
|
||||
"rd" #'ement-describe-room
|
||||
"rm" #'ement-list-members
|
||||
"rn" #'ement-room-set-notification-state
|
||||
"rt" #'ement-room-set-topic
|
||||
"se" #'ement-room-send-emote
|
||||
"sf" #'ement-room-send-file
|
||||
"sr" #'ement-room-send-reaction
|
||||
"sd" #'ement-room-view-event
|
||||
"uI" #'ement-ignore-user
|
||||
"U <RET>" #'ement-send-direct-message
|
||||
"g?" #'ement-describe-room
|
||||
"R?" #'ement-describe-room
|
||||
"Rm" #'ement-list-members
|
||||
"Rn" #'ement-room-set-notification-state
|
||||
"Rt" #'ement-room-set-topic
|
||||
"!" #'my/ement-room-send-reaction
|
||||
"m?" #'ement-room-view-event
|
||||
"Zf" #'ement-room-send-file
|
||||
"ui" #'ement-invite-user)
|
||||
(general-define-key
|
||||
:states '(normal visual)
|
||||
:keymaps '(ement-describe-room-mode-map)
|
||||
"q" #'quit-window)
|
||||
(general-define-key
|
||||
:states '(motion)
|
||||
:keymaps '(ement-room-mode-map)
|
||||
|
|
|
|||
65
Emacs.org
65
Emacs.org
|
|
@ -5913,6 +5913,12 @@ emacs -Q --batch -l run-tangle.el
|
|||
|
||||
|
||||
I have added this line to yadm's =post_alt= hook, so to run tangle after =yadm alt=
|
||||
*** Folders
|
||||
#+begin_src emacs-lisp
|
||||
(let ((folders-file (expand-file-name "folders.el" user-emacs-directory)))
|
||||
(when (file-exists-p folders-file)
|
||||
(load-file folders-file)))
|
||||
#+end_src
|
||||
* Applications
|
||||
** Dired
|
||||
Dired is the built-in Emacs file manager. It's so good that it's strange that, to my knowledge, no one tried to replicate it outside of Emacs.
|
||||
|
|
@ -7183,7 +7189,7 @@ All we need to do is install Whisper in a virtual environment:
|
|||
#+begin_src bash
|
||||
python -m virtualenv venv
|
||||
source venv/bin/activate
|
||||
pip install whisper
|
||||
pip install openai-whisper
|
||||
#+end_src
|
||||
|
||||
After which the program can be used as follows:
|
||||
|
|
@ -7198,7 +7204,7 @@ I'm using an English-language-only model because that's the only language I need
|
|||
|
||||
#+begin_src emacs-lisp
|
||||
(defvar my/whisper-env-path
|
||||
"/home/pavel/Code/system-crafting/whisper-test/"
|
||||
"/home/pavel/10-19 Code/13 Other Projects/13.01 whisper-test/"
|
||||
"Path to the folder with `whisper' environment.")
|
||||
|
||||
(defun my/invoke-whisper (input output-dir)
|
||||
|
|
@ -7764,7 +7770,7 @@ Inspired by [[https://github.com/grastello/ytel/issues/17#issuecomment-801745429
|
|||
(url-request-extra-headers
|
||||
'(("Accept" . "application/json"))))
|
||||
(with-current-buffer
|
||||
(url-retrieve-synchronously invidious-instances-url)
|
||||
(url-retrieve-synchronously my/invidious-instances-url)
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "^$")
|
||||
(let* ((json-object-type 'alist)
|
||||
|
|
@ -8404,6 +8410,32 @@ Some custom keymaps for room lists:
|
|||
"q" #'quit-window))
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defun my/ement-room-send-reaction (key position)
|
||||
(interactive (list
|
||||
(completing-read "Add reaction: " (append telega-emoji-reaction-list '("👋")))
|
||||
(point)))
|
||||
(ement-room-send-reaction key position))
|
||||
|
||||
(defun my/ement-room-compose-quit ()
|
||||
(interactive)
|
||||
(when (or (string-empty-p (buffer-string))
|
||||
(y-or-n-p "Quit compose? "))
|
||||
(quit-window t)))
|
||||
|
||||
(defun my/ement-room-compose-setup ()
|
||||
(ement-room-compose-org)
|
||||
(setq company-backends '(telega-company-emoji company-capf))
|
||||
(general-define-key
|
||||
:states '(normal visual)
|
||||
:keymaps 'local
|
||||
"Q" #'my/ement-room-compose-quit
|
||||
"C-c C-k" (lambda () (interactive) (quit-window t))
|
||||
"C-c C-c" #'ement-room-compose-send))
|
||||
|
||||
(add-hook 'ement-room-compose-hook #'my/ement-room-compose-setup)
|
||||
#+end_src
|
||||
|
||||
Also a keymap for room mode:
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'ement
|
||||
|
|
@ -8414,24 +8446,27 @@ Also a keymap for room mode:
|
|||
"?" #'ement-room-transient
|
||||
"C-u" #'ement-room-scroll-down-command
|
||||
"C-d" #'ement-room-scroll-up-mark-read
|
||||
"r" #'ement-room-write-reply
|
||||
"a" #'ement-room-send-message
|
||||
"i" #'ement-room-send-message
|
||||
"M-<RET>" #'ement-room-compose-message
|
||||
"<RET>" #'ement-room-send-message
|
||||
"S-<RET>" #'ement-room-write-reply
|
||||
"K" #'ement-room-goto-prev
|
||||
"J" #'ement-room-goto-next
|
||||
"gr" #'ement-room-sync
|
||||
"rT" #'ement-tag-room
|
||||
"rd" #'ement-describe-room
|
||||
"rm" #'ement-list-members
|
||||
"rn" #'ement-room-set-notification-state
|
||||
"rt" #'ement-room-set-topic
|
||||
"se" #'ement-room-send-emote
|
||||
"sf" #'ement-room-send-file
|
||||
"sr" #'ement-room-send-reaction
|
||||
"sd" #'ement-room-view-event
|
||||
"uI" #'ement-ignore-user
|
||||
"U <RET>" #'ement-send-direct-message
|
||||
"g?" #'ement-describe-room
|
||||
"R?" #'ement-describe-room
|
||||
"Rm" #'ement-list-members
|
||||
"Rn" #'ement-room-set-notification-state
|
||||
"Rt" #'ement-room-set-topic
|
||||
"!" #'my/ement-room-send-reaction
|
||||
"m?" #'ement-room-view-event
|
||||
"Zf" #'ement-room-send-file
|
||||
"ui" #'ement-invite-user)
|
||||
(general-define-key
|
||||
:states '(normal visual)
|
||||
:keymaps '(ement-describe-room-mode-map)
|
||||
"q" #'quit-window)
|
||||
(general-define-key
|
||||
:states '(motion)
|
||||
:keymaps '(ement-room-mode-map)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue