Emacs : elfeed

This commit is contained in:
2023-01-14 19:15:03 +09:00
parent 0706d4947c
commit 245c51dbd1

View File

@ -65,6 +65,8 @@ Emacs Configuration for emacs 29.50
`(unless (package-installed-p ,package) (package-install ,package))) `(unless (package-installed-p ,package) (package-install ,package)))
(package-initialize) (package-initialize)
(if (version< emacs-version "29")
(usr-package-install 'use-package)) ;; <emacs29
;;; init.el ends here ;;; init.el ends here
#+end_src #+end_src
*** Add other modules *** Add other modules
@ -137,6 +139,8 @@ Emacs Configuration for emacs 29.50
(set-frame-parameter (selected-frame) 'fullscreen 'maximized) (set-frame-parameter (selected-frame) 'fullscreen 'maximized)
(add-to-list 'default-frame-alist '(fullscreen . maximized)) (add-to-list 'default-frame-alist '(fullscreen . maximized))
(unless (display-graphic-p)
(xterm-mouse-mode))
#+end_src #+end_src
* Modules Selection module * Modules Selection module
#+begin_src emacs-lisp :tangle ~/.config/emacs/config.el #+begin_src emacs-lisp :tangle ~/.config/emacs/config.el
@ -163,7 +167,7 @@ Emacs Configuration for emacs 29.50
;;(require 'custom-workspaces) ;;(require 'custom-workspaces)
(require 'custom-latex) (require 'custom-latex)
(require 'custom-languages) (require 'custom-languages)
;;(require 'custom-extra) (require 'custom-extra)
;;; config.el ends here ;;; config.el ends here
#+end_src #+end_src
@ -243,12 +247,13 @@ emacs built-in package config
(usr-package-install 'dired-rsync) (usr-package-install 'dired-rsync)
(usr-package-install 'all-the-icons-dired) (usr-package-install 'all-the-icons-dired)
(usr-package-install 'dired-hide-dotfiles) (usr-package-install 'dired-hide-dotfiles)
(usr-package-install 'peep-dired)
;; dired default ;; dired default
(setq dired-listing-switches "-agho --group-directories-first") (setq dired-listing-switches "-agho --group-directories-first")
(evil-collection-define-key 'normal 'dired-mode-map (evil-collection-define-key 'normal 'dired-mode-map
"h" 'dired-single-up-directory "h" 'dired-up-directory ;dired-single-up-directory
"l" 'dired-single-buffer) "l" 'dired-find-file) ;dired-single-buffer)
(require 'dired-single) ;;(require 'dired-single)
;;(use-package dired-single ;;(use-package dired-single
;; :commands (dired dired-jump)) ;; :commands (dired dired-jump))
;; colorful ;; colorful
@ -278,6 +283,12 @@ emacs built-in package config
;; TODO: check emacs29 updates ;; TODO: check emacs29 updates
;;(csetq dired-mouse-drag-files t ;;(csetq dired-mouse-drag-files t
;; mouse-drag-and-drop-region-cross-program t) ;; mouse-drag-and-drop-region-cross-program t)
; peep dired
(evil-define-key 'normal peep-dired-mode-map
(kbd "j") 'peep-dired-next-file
(kbd "k") 'peep-dired-prev-file)
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
#+end_src #+end_src
**** Provide Modules **** Provide Modules
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-default.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-default.el
@ -391,6 +402,8 @@ emacs built-in package config
;;(setq dashboard-startup-banner 'logo) ;;(setq dashboard-startup-banner 'logo)
(setq dashboard-center-content t) (setq dashboard-center-content t)
(setq dashboard-week-agenda t) (setq dashboard-week-agenda t)
(setq dashboard-set-footer t)
(setq dashboard-page-separator "\n\f\n")
(setq dashboard-agenda-time-string-format "%d/%m/%Y %A %H:%M") (setq dashboard-agenda-time-string-format "%d/%m/%Y %A %H:%M")
(setq dashboard-items '((recents . 10) (setq dashboard-items '((recents . 10)
(agenda . 5) (agenda . 5)
@ -408,7 +421,11 @@ emacs built-in package config
(,(all-the-icons-octicon "home" :height 1.1 :v-adjust 0.0) (,(all-the-icons-octicon "home" :height 1.1 :v-adjust 0.0)
"Homepage" "Homepage"
"Browse my Homepage" "Browse my Homepage"
(lambda (&rest _) (browse-url "https://jaeus.net")))))) (lambda (&rest _) (browse-url "https://jaeus.net")))
(,(all-the-icons-octicon "zap" :height 1.1 :v-adjust 0.0)
"Referesh"
"Referesh Packages"
(lambda (&rest _) (package-refresh-contents)) warning))))
(dashboard-setup-startup-hook) (dashboard-setup-startup-hook)
(dashboard-modify-heading-icons '((recents . "file-text") (dashboard-modify-heading-icons '((recents . "file-text")
@ -420,7 +437,7 @@ emacs built-in package config
**** Others **** Others
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-ui.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-ui.el
(setq visible-bell t) (setq visible-bell t)
(defun self-screenshot (&optional type) (defun my/self-screenshot (&optional type)
"Save a screenshot of type TYPE of the current Emacs frame. "Save a screenshot of type TYPE of the current Emacs frame.
As shown by the function `', type can weild the value `svg', As shown by the function `', type can weild the value `svg',
`png', `pdf'. `png', `pdf'.
@ -504,17 +521,25 @@ for managing keybindings.
;; Eshell ;; Eshell
"e" '(:ignore t :which-key "eshell") "e" '(:ignore t :which-key "eshell")
"e h" '(counsel-esh-history :which "Kill history") "e h" '(counsel-esh-history :which "Kill history")
"e s" '(eshell :which "run eshell") "e s" '(eshell :which-key "run eshell")
"e e" '(elfeed :which-key "elfeed")
;; Counsel ;; Counsel
"f" '(:ignore t :which-key "file op.") "f" '(:ignore t :which-key "file op.")
"f r" '(consult-recent-file :which-key "Recent files") "f r" '(consult-recent-file :which-key "Recent files")
;; Shortcut ;; Shortcut
"f o d" '((lambda () (interactive) (find-file (expand-file-name "~/.config/emacs/desktop.org"))) :which-key "open exwm config") "f o" '(:ignore t :which-key "dOt files")
"f o p" '((lambda () (interactive) (find-file (expand-file-name "~/org/example/emacs_my_previous.org"))) :which-key "open exwm config") "f o d" '((lambda () (interactive) (find-file "~/.config/emacs/desktop.org")) :which-key "open exwm config")
"f o e" '((lambda () (interactive) (find-file (expand-file-name "~/org/example/emacs_another.org"))) :which-key "open exwm config") "f o p" '((lambda () (interactive) (find-file "~/org/example/emacs_my_previous.org")) :which-key "open exwm config")
"f o c" '((lambda () (interactive) (find-file (expand-file-name "~/.config/emacs/emacs.org"))) :which-key "open emacs config") "f o e" '((lambda () (interactive) (find-file "~/org/example/emacs_another.org")) :which-key "open exwm config")
"f o c" '((lambda () (interactive) (find-file "~/.config/emacs/emacs.org")) :which-key "open emacs config")
;; Insert something ;; Insert something
"i" '(:ignore t :which-key "insert something.") "i" '(:ignore t :which-key "insert something.")
;; Org mode
"o" '(:ignore t :which-key "org mode")
"o a" '(:ignore t :which-key "org agenda")
"o a c" '((lambda () (interactive) (find-file (expand-file-name "agenda/agenda.org" org-directory))) :which-key "org agenda file")
"o c" '(cfw:open-org-calendar :which-key "org calendar")
;; Project-el ;; Project-el
"p" '(:ignore t :which-key "project") "p" '(:ignore t :which-key "project")
"p ." '(project-switch-project :which-key "switch project") "p ." '(project-switch-project :which-key "switch project")
@ -747,6 +772,7 @@ simple but effective sorting and filtering for emacs.
#+end_src #+end_src
**** configure org **** configure org
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el
(setq org-directory "~/org") ; use for relative file location
;; hooks ;; hooks
(add-hook 'org-mode-hook #'org-indent-mode) (add-hook 'org-mode-hook #'org-indent-mode)
(setq org-todo-keywords (setq org-todo-keywords
@ -758,13 +784,61 @@ simple but effective sorting and filtering for emacs.
(setq org-agenda-start-with-log-mode t) (setq org-agenda-start-with-log-mode t)
(setq org-log-done 'time) (setq org-log-done 'time)
(setq org-log-into-drawer t) (setq org-log-into-drawer t)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 1.8)) ;;(setq org-format-latex-options (plist-put org-format-latex-options :scale 1.8))
;; ODT export to docx ;; ODT export to docx
(setq org-odt-preferred-output-format "docx") (setq org-odt-preferred-output-format "docx")
;; Do not ask when run code block ;; Do not ask when run code block
(setq org-confirm-babel-evaluate nil) (setq org-confirm-babel-evaluate nil)
#+end_src #+end_src
**** my org mode functions
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el
(defun my/org-remove-link-and-trash-linked-file ()
"Remove `org-mode' link at point and trash linked file."
(interactive)
(let* ((link (org-element-context))
(path (org-element-property :path link)))
(move-file-to-trash path)
(delete-region (org-element-property :begin link)
(org-element-property :end link))))
(defun my/powershell (script)
"executes the given script within a powershell and returns its return value"
(call-process "powershell.exe" nil nil nil
"-Command" (concat "& {" script "}")))
(defun my/as-windows-path (unix-path)
"Takes a unix path and returns a matching WSL path"
;; substring removes the trailing \n
(substring
(shell-command-to-string
(concat "wslpath -w " unix-path)) 0 -1))
(defun my/org-paste-image-win2wsl ()
"Paste an image into a time stamped unique-named file in the
same directory as the org-buffer and insert a link to this file."
(interactive)
(let* ((target-file
(concat
(make-temp-name
(concat org-directory
"/images/"
(f-filename buffer-file-name)
"_"
(format-time-string "%Y%m%d_%H%M%S_"))) ".png"))
(wsl-path
(concat (my/as-windows-path(file-name-directory target-file))
"/"
(file-name-nondirectory target-file)))
(ps-script
(concat "(Get-Clipboard -Format image).Save('" wsl-path "')")))
(my/powershell ps-script)
(if (file-exists-p target-file)
(progn (insert (concat "[[" target-file "]]"))
(org-display-inline-images))
(user-error
"Error pasting the image, make sure you have an image in the clipboard!"))
))
#+end_src
**** Org superstar **** Org superstar
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el
(add-hook 'org-mode-hook #'org-superstar-mode) (add-hook 'org-mode-hook #'org-superstar-mode)
@ -782,39 +856,45 @@ download image link
**** Org Roam **** Org Roam
+ TODO: Project todos + TODO: Project todos
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el
(use-package org-roam ;;(use-package org-roam
:ensure t ;; :ensure t
:custom ;; :custom
(org-roam-directory (file-truename "~/org/roam2")) ;; (org-roam-directory (file-truename "~/org/roam2"))
:bind (("C-c n l" . org-roam-buffer-toggle) ;; :bind (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find) ;; ("C-c n f" . org-roam-node-find)
("C-c n g" . org-roam-graph) ;; ("C-c n g" . org-roam-graph)
("C-c n i" . org-roam-node-insert) ;; ("C-c n i" . org-roam-node-insert)
("C-c n c" . org-roam-capture) ;; ("C-c n c" . org-roam-capture)
;; Dailies ;; ;; Dailies
("C-c n j" . org-roam-dailies-capture-today)) ;; ("C-c n j" . org-roam-dailies-capture-today))
:config ;; :config
;; If you're using a vertical completion framework, you might want a more informative completion interface ;; ;; If you're using a vertical completion framework, you might want a more informative completion interface
(setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag))) ;; (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))
(org-roam-db-autosync-mode)) ;; (org-roam-db-autosync-mode))
;; (setq org-roam-v2-ack t) (setq org-roam-v2-ack t)
;; (customize-set-variable 'org-roam-directory "~/org/roam2") (customize-set-variable 'org-roam-directory "~/org/roam2")
;; (customize-set-variable 'org-roam-completion-everywhere t) (customize-set-variable 'org-roam-completion-everywhere t)
;; (org-roam-db-autosync-mode) (org-roam-db-autosync-mode)
;; ;; Org roam ui ;; Org roam ui
;; (setq org-roam-ui-sync-theme t (setq org-roam-ui-sync-theme t
;; org-roam-ui-follow t org-roam-ui-follow t
;; org-roam-ui-update-on-save t org-roam-ui-update-on-save t
;; org-roam-ui-open-on-start nil) org-roam-ui-open-on-start nil)
;; (ju/leader-key-def (ju/leader-key-def
;; "r" '(:ignore t :which-key "Org Roam") "n r" '(:ignore t :which-key "Org Roam")
;; "ru" 'org-roam-ui-open "n r u" 'org-roam-ui-open
;; "rl" 'org-roam-buffer-toggle "n r l" 'org-roam-buffer-toggle
;; "rf" 'org-roam-node-find "n r f" 'org-roam-node-find
;; "ri" 'org-roam-node-insert "n r i" 'org-roam-node-insert
;; "rI" 'org-roam-node-insert-immediate "n r I" 'org-roam-node-insert-immediate
;; "rp" 'my/org-roam-find-project) "n r p" 'my/org-roam-find-project)
;;:desc "org roam refresh agenda list"
;;"oar" 'my/org-roam-refresh-agenda-list
;;:desc "org roam find tag:project"
;;"nrp" 'my/org-roam-find-project
;;:desc "org roam find with ripgrep (preview)"
;;"nrg" 'my/org-roam-rg-search)
#+end_src #+end_src
**** Valign **** Valign
@ -1018,7 +1098,6 @@ speed-up insertion of environments and math templates.
**** Preview pane **** Preview pane
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-latex.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-latex.el
(require 'latex-preview-pane) (require 'latex-preview-pane)
;;(use-package latex-preview-pane)
#+end_src #+end_src
**** Provide Modules **** Provide Modules
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-latex.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-latex.el
@ -1028,18 +1107,10 @@ speed-up insertion of environments and math templates.
*** Extra *** Extra
**** Install Packages **** Install Packages
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'helpful)
(usr-package-install 'pdf-tools)
(usr-package-install 'pdf-view-restore)
(usr-package-install 'nov)
(usr-package-install 'emojify)
(usr-package-install 'avy)
(usr-package-install 'yasnippet)
(usr-package-install 'yasnippet-snippets)
(usr-package-install 'openwith)
#+end_src #+end_src
**** Helpful **** Helpful
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'helpful)
(customize-set-variable 'counsel-describe-function-function #'helpful-callable) (customize-set-variable 'counsel-describe-function-function #'helpful-callable)
(customize-set-variable 'counsel-describe-variable-function #'helpful-variable) (customize-set-variable 'counsel-describe-variable-function #'helpful-variable)
(require 'helpful) (require 'helpful)
@ -1051,6 +1122,8 @@ speed-up insertion of environments and math templates.
#+end_src #+end_src
**** Avy **** Avy
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'avy)
(setq avy-all-windows t)
(ju/leader-key-def (ju/leader-key-def
"v" '(:ignore t :which-key "Avy") "v" '(:ignore t :which-key "Avy")
"vc" '(avy-goto-char :which-key "Avy Goto Char") "vc" '(avy-goto-char :which-key "Avy Goto Char")
@ -1059,6 +1132,8 @@ speed-up insertion of environments and math templates.
#+end_src #+end_src
**** Snippet **** Snippet
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'yasnippet)
(usr-package-install 'yasnippet-snippets)
(defvar yas-snippet-dirs nil) (defvar yas-snippet-dirs nil)
(add-hook 'prog-mode-hook #'yas-minor-mode) (add-hook 'prog-mode-hook #'yas-minor-mode)
(add-to-list 'yas-snippet-dirs "~/.config/emacs/snippets") (add-to-list 'yas-snippet-dirs "~/.config/emacs/snippets")
@ -1068,6 +1143,7 @@ speed-up insertion of environments and math templates.
#+end_src #+end_src
**** Emojify **** Emojify
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'emojify)
(global-emojify-mode 1) (global-emojify-mode 1)
(ju/leader-key-def (ju/leader-key-def
"i e" '(emojify-insert-emoji :which-key "emoji")) "i e" '(emojify-insert-emoji :which-key "emoji"))
@ -1075,22 +1151,26 @@ speed-up insertion of environments and math templates.
**** PDF Tool **** PDF Tool
enhanced PDF viewer on emacs enhanced PDF viewer on emacs
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'pdf-tools)
(require 'pdf-tools) (require 'pdf-tools)
(pdf-tools-install) (pdf-tools-install)
(setq-default pdf-view-display-size 'fit-width) (setq-default pdf-view-display-size 'fit-width)
#+end_src #+end_src
**** PDF view restore **** PDF view restore
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'pdf-view-restore)
(add-hook 'pdf-view-mode-hook #'pdf-view-restore-mode) (add-hook 'pdf-view-mode-hook #'pdf-view-restore-mode)
(setq pdf-view-restore-filename (expand-file-name ".tmp/pdf-view-restore" (setq pdf-view-restore-filename (expand-file-name ".tmp/pdf-view-restore"
user-emacs-directory)) user-emacs-directory))
#+end_src #+end_src
**** Nov **** Nov
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'nov)
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))
#+end_src #+end_src
**** Openwith **** Openwith
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'openwith)
(setq larget-file-warning-threshold nil) (setq larget-file-warning-threshold nil)
(openwith-mode t) (openwith-mode t)
(setq openwith-associations (setq openwith-associations
@ -1105,8 +1185,22 @@ enhanced PDF viewer on emacs
;; "qutebrowser" ;; "qutebrowser"
;; '(file)))) ;; '(file))))
#+end_src #+end_src
**** TODO: ELFEED **** Calfw
org calendar
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'calfw)
(usr-package-install 'calfw-org)
#+end_src
**** ELFEED
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(usr-package-install 'elfeed)
(usr-package-install 'elfeed-goodies)
(usr-package-install 'elfeed-org)
(require 'elfeed-org)
(elfeed-org)
(setq rmh-elfeed-org-files (list "~/org/elfeed.org"))
#+end_src
**** Provide Modules **** Provide Modules
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-extra.el
(provide 'custom-extra) (provide 'custom-extra)
@ -1142,6 +1236,11 @@ enhanced PDF viewer on emacs
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-languages.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-languages.el
(usr-package-install 'rust-mode) (usr-package-install 'rust-mode)
#+end_src #+end_src
**** Python
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-languages.el
(usr-package-install 'jupyter)
(setq org-babel-jupyter-override-src-block "python")
#+end_src
**** CMAKE **** CMAKE
#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-languages.el #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-languages.el
(usr-package-install 'cmake-mode) (usr-package-install 'cmake-mode)