feat: add link-hint, olivetti, org-modern, org-fragtog, org-super-agenda, org-noter, gptel-rewrite, git-link, forge
This commit is contained in:
165
config.el
165
config.el
@@ -1092,3 +1092,168 @@ Otherwise: runs interactive ement-connect, then opens rooms after sync."
|
||||
("\\.mm\\'" . default)
|
||||
("\\.x?html?\\'" . default)
|
||||
("\\.pdf\\'" . emacs)))) ; find-file → pdf-view-mode via auto-mode-alist
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; NAVIGATION — link-hint, avy
|
||||
;;; ============================================================
|
||||
|
||||
(use-package! link-hint
|
||||
:defer t
|
||||
:commands (link-hint-open-link link-hint-copy-link))
|
||||
|
||||
(map! :leader
|
||||
(:prefix ("j" . "jump")
|
||||
:desc "Open link (link-hint)" "k" #'link-hint-open-link
|
||||
:desc "Copy link URL" "K" #'link-hint-copy-link
|
||||
:desc "Avy goto char-2" "j" #'avy-goto-char-2
|
||||
:desc "Avy goto line" "l" #'avy-goto-line))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; WRITING — olivetti-mode
|
||||
;;; ============================================================
|
||||
|
||||
(use-package! olivetti
|
||||
:defer t
|
||||
:config
|
||||
(setq olivetti-body-width 90))
|
||||
|
||||
(add-hook 'org-mode-hook #'olivetti-mode)
|
||||
(add-hook 'markdown-mode-hook #'olivetti-mode)
|
||||
|
||||
(map! :leader
|
||||
(:prefix ("t" . "toggle")
|
||||
:desc "Olivetti mode" "o" #'olivetti-mode))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; ORG-MODERN — lepší vizuální styl org-mode
|
||||
;;; ============================================================
|
||||
|
||||
(use-package! org-modern
|
||||
:after org
|
||||
:config
|
||||
(setq org-modern-star '("◉" "○" "✸" "✿")
|
||||
org-modern-table t
|
||||
org-modern-checkbox t)
|
||||
(global-org-modern-mode))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; ORG-FRAGTOG — auto-render LaTeX fragmentů
|
||||
;;; ============================================================
|
||||
|
||||
(use-package! org-fragtog
|
||||
:after org
|
||||
:hook (org-mode . org-fragtog-mode))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; ORG-SUPER-AGENDA — skupiny v agenda view
|
||||
;;; ============================================================
|
||||
|
||||
(use-package! org-super-agenda
|
||||
:after org-agenda
|
||||
:config
|
||||
(setq org-super-agenda-groups
|
||||
'((:name "Dnes"
|
||||
:scheduled today
|
||||
:deadline today)
|
||||
(:name "Brzy"
|
||||
:deadline (before ,(org-read-date nil nil "+3d")))
|
||||
(:name "Čekám"
|
||||
:todo "WAIT")
|
||||
(:name "Projekt Kyndryl"
|
||||
:tag ("kyndryl" "work"))
|
||||
(:name "ZTJ"
|
||||
:tag "ztj")
|
||||
(:name "Ostatní"
|
||||
:anything t)))
|
||||
(org-super-agenda-mode))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; ORG-NOTER — PDF anotace
|
||||
;;; ============================================================
|
||||
|
||||
(use-package! org-noter
|
||||
:after (:any org pdf-view)
|
||||
:config
|
||||
(setq org-noter-notes-window-location 'horizontal-split))
|
||||
|
||||
(map! :leader
|
||||
(:prefix ("o" . "open")
|
||||
:desc "org-noter" "n" #'org-noter
|
||||
:desc "org-noter insert note" "N" #'org-noter-insert-note))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; GPTEL — region rewrite & org heading prompt
|
||||
;;; ============================================================
|
||||
|
||||
(after! gptel
|
||||
(defun my/gptel-rewrite-region (beg end)
|
||||
"Pošli označený region do GPTel s instrukcí 'vylepši text' a nahraď odpovědí."
|
||||
(interactive "r")
|
||||
(let ((text (buffer-substring-no-properties beg end)))
|
||||
(gptel-request
|
||||
(concat "Vylepši následující text. Vrať POUZE vylepšený text, nic jiného:\n\n" text)
|
||||
:callback (lambda (response info)
|
||||
(if response
|
||||
(save-excursion
|
||||
(delete-region beg end)
|
||||
(goto-char beg)
|
||||
(insert response)
|
||||
(message "GPTel: text vylepšen"))
|
||||
(message "GPTel rewrite failed: %s" (plist-get info :status)))))))
|
||||
|
||||
(defun my/gptel-org-heading-prompt ()
|
||||
"Pošle aktuální org heading + obsah jako kontext do GPTel chatu."
|
||||
(interactive)
|
||||
(unless (derived-mode-p 'org-mode)
|
||||
(user-error "Pouze v org-mode"))
|
||||
(let* ((heading (org-get-heading t t t t))
|
||||
(content (save-excursion
|
||||
(org-back-to-heading t)
|
||||
(let ((beg (point)))
|
||||
(org-end-of-subtree t t)
|
||||
(buffer-substring-no-properties beg (point))))))
|
||||
(gptel content)
|
||||
(message "GPTel: heading '%s' odeslán jako kontext" heading)))
|
||||
|
||||
(map! :leader
|
||||
(:prefix ("o g" . "GPTel")
|
||||
:desc "Rewrite region" "r" #'my/gptel-rewrite-region
|
||||
:desc "Org heading → GPTel" "p" #'my/gptel-org-heading-prompt)))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; GIT — git-link
|
||||
;;; ============================================================
|
||||
|
||||
(use-package! git-link
|
||||
:defer t
|
||||
:config
|
||||
(setq git-link-default-branch "master")
|
||||
;; Přidat podporu pro Gitea na git.apps.sukany.cz
|
||||
(add-to-list 'git-link-remote-alist
|
||||
'("git\\.apps\\.sukany\\.cz" git-link-gitea))
|
||||
(add-to-list 'git-link-commit-remote-alist
|
||||
'("git\\.apps\\.sukany\\.cz" git-link-commit-gitea)))
|
||||
|
||||
(map! :leader
|
||||
(:prefix ("g" . "git")
|
||||
:desc "Copy git link" "y" #'git-link
|
||||
:desc "Copy git link commit" "Y" #'git-link-commit))
|
||||
|
||||
|
||||
;;; ============================================================
|
||||
;;; FORGE — Gitea integrace
|
||||
;;; ============================================================
|
||||
;; Vyžaduje Gitea API token v ~/.authinfo:
|
||||
;; machine git.apps.sukany.cz login daneel^forge password <TOKEN>
|
||||
|
||||
(after! forge
|
||||
(add-to-list 'forge-alist
|
||||
'("git.apps.sukany.cz" "git.apps.sukany.cz/api/v1" "git.apps.sukany.cz" forge-gitea-repository)))
|
||||
|
||||
2
init.el
2
init.el
@@ -53,7 +53,7 @@
|
||||
(eval +overlay)
|
||||
lookup
|
||||
(lsp +eglot) ;; <- pro “chytrý” completion přes CAPF
|
||||
magit
|
||||
(magit +forge)
|
||||
make
|
||||
pdf
|
||||
tmux
|
||||
|
||||
15
packages.el
15
packages.el
@@ -74,3 +74,18 @@
|
||||
(package! org-pandoc-import
|
||||
:recipe (:host github :repo "tecosaur/org-pandoc-import"))
|
||||
|
||||
;; Navigation
|
||||
(package! link-hint)
|
||||
|
||||
;; Writing
|
||||
(package! olivetti)
|
||||
|
||||
;; Org enhancements
|
||||
(package! org-modern)
|
||||
(package! org-fragtog)
|
||||
(package! org-super-agenda)
|
||||
(package! org-noter)
|
||||
|
||||
;; Git
|
||||
(package! git-link)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user