Added
- support for roam - support for elfeed - minor changes - cleared configural
This commit is contained in:
169
config.el
169
config.el
@@ -4,9 +4,10 @@
|
||||
;; Theme / UI
|
||||
;; --------------------------------------------------
|
||||
(setq doom-theme 'modus-vivendi-deuteranopia
|
||||
display-line-numbers-type t
|
||||
doom-font (font-spec :family "JetBrains Mono" :size 14)
|
||||
doom-variable-pitch-font nil)
|
||||
(setq display-line-numbers-type t)
|
||||
|
||||
|
||||
;; --------------------------------------------------
|
||||
;; macOS / UX
|
||||
@@ -66,60 +67,82 @@ Funguje v libovolném textu, včetně Markdown linků (např. [x](./...))."
|
||||
(add-hook 'markdown-mode-hook (lambda () (setq-local company-minimum-prefix-length 1)))
|
||||
(add-hook 'gfm-mode-hook (lambda () (setq-local company-minimum-prefix-length 1))))
|
||||
|
||||
;; --------------------------------------------------
|
||||
;; Org
|
||||
;; --------------------------------------------------
|
||||
;;; ~/.doom.d/config.el --- Org config -*- lexical-binding: t; -*-
|
||||
|
||||
(setq org-directory "~/org/")
|
||||
;; ------------------------------------------------------------
|
||||
;; ORG (Doom-friendly, minimal, bez zbytečných menu)
|
||||
;; ------------------------------------------------------------
|
||||
|
||||
(after! org
|
||||
(setq org-default-notes-file (expand-file-name "inbox.org" org-directory))
|
||||
;; 1) Kde máš org soubory
|
||||
;; Uprav si cestu podle sebe. Tohle je typický Doom default.
|
||||
(setq org-directory "~/org/")
|
||||
|
||||
(setq org-agenda-files (list org-directory
|
||||
(expand-file-name "projects" org-directory)
|
||||
(expand-file-name "notes" org-directory)))
|
||||
|
||||
(setq org-todo-keywords
|
||||
'((sequence "TODO(t)" "NEXT(n)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELLED(c@)")))
|
||||
|
||||
(setq org-log-done 'time)
|
||||
|
||||
(setq org-refile-targets '((org-agenda-files :maxlevel . 5))
|
||||
org-outline-path-complete-in-steps nil
|
||||
org-refile-use-outline-path 'file)
|
||||
|
||||
(defun my/project-org-file ()
|
||||
"Return path to ./project.org in current Projectile project, if it exists."
|
||||
(when-let ((root (projectile-project-root)))
|
||||
(let ((f (expand-file-name "project.org" root)))
|
||||
(when (file-exists-p f) f))))
|
||||
|
||||
(defun my/org-agenda-project ()
|
||||
"Open Org agenda restricted to current project's project.org."
|
||||
(interactive)
|
||||
(let ((org-agenda-files (delq nil (list (my/project-org-file)))))
|
||||
(if org-agenda-files
|
||||
(org-agenda nil "a")
|
||||
(user-error "No project.org found in this project"))))
|
||||
;; Pomocná funkce: vrátí plnou cestu k souboru v org-directory
|
||||
(defun ms/org-file (name)
|
||||
"Return absolute path to NAME inside `org-directory`."
|
||||
(expand-file-name name org-directory))
|
||||
|
||||
;; 2) Org-capture templates
|
||||
;; Zachovává tvoje i/n/p a jen doplňuje chybějící věci.
|
||||
(setq org-capture-templates
|
||||
'(("i" "Inbox task" entry
|
||||
(file "inbox.org")
|
||||
`(
|
||||
;; --- Tvoje původní šablony (beze změn) ---
|
||||
("i" "Inbox task" entry
|
||||
(file ,(ms/org-file "inbox.org"))
|
||||
"* TODO %?\n%U\n%a\n")
|
||||
|
||||
("n" "Note" entry
|
||||
(file+headline "inbox.org" "Notes")
|
||||
(file+headline ,(ms/org-file "inbox.org") "Notes")
|
||||
"* %?\n%U\n%a\n")
|
||||
|
||||
("p" "Project task" entry
|
||||
(file "inbox.org")
|
||||
"* TODO %? :project:\n%U\n%a\n"))))
|
||||
(setq org-agenda-sorting-strategy
|
||||
'((agenda priority-down time-up)
|
||||
(todo priority-down)
|
||||
(tags priority-down)
|
||||
(search priority-down)))
|
||||
(setq org-priority-highest ?A
|
||||
org-priority-lowest ?C
|
||||
org-priority-default ?C)
|
||||
(file ,(ms/org-file "inbox.org"))
|
||||
"* TODO %? :project:\n%U\n%a\n")
|
||||
|
||||
;; --- Doplňky (minimalisticky) ---
|
||||
|
||||
;; Subtask do právě clockované položky
|
||||
("s" "Clocked subtask" entry (clock)
|
||||
"* TODO %?\n%U\n%a\n%i"
|
||||
:empty-lines 1)
|
||||
|
||||
;; Journal do journal.org (datetree) + automatické měření času
|
||||
("j" "Journal" entry
|
||||
(file+olp+datetree ,(ms/org-file "journal.org"))
|
||||
"\n* %<%I:%M %p> - Journal :journal:\n\n%?\n\n"
|
||||
:clock-in :clock-resume
|
||||
:empty-lines 1)
|
||||
|
||||
;; Meeting do journal.org (datetree) + měření času
|
||||
("m" "Meeting" entry
|
||||
(file+olp+datetree ,(ms/org-file "journal.org"))
|
||||
"* %<%I:%M %p> - %^{Meeting title} :meetings:\nContext: %a\n\n%?\n\n"
|
||||
:clock-in :clock-resume
|
||||
:empty-lines 1)
|
||||
|
||||
;; Checking Email – do journal datetree
|
||||
("e" "Checking Email" entry
|
||||
(file+olp+datetree ,(ms/org-file "journal.org"))
|
||||
"* Checking Email :email:\n\n%?"
|
||||
:clock-in :clock-resume
|
||||
:empty-lines 1)
|
||||
|
||||
;; Weight metrika do tabulky v metrics.org pod headline "Weight"
|
||||
("w" "Weight" table-line
|
||||
(file+headline ,(ms/org-file "metrics.org") "Weight")
|
||||
"| %U | %^{Weight} | %^{Notes} |"
|
||||
:kill-buffer t)
|
||||
)))
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; (Volitelné) Kvalita života – nic navíc, jen užitečné defaulty
|
||||
;; ------------------------------------------------------------
|
||||
|
||||
(after! org
|
||||
;; ať se po capture vrací do stejného okna (někomu pomáhá)
|
||||
(setq org-capture-restore-window-after-quit t))
|
||||
|
||||
|
||||
;; --------------------------------------------------
|
||||
;; Dired
|
||||
@@ -433,17 +456,6 @@ Funguje v libovolném textu, včetně Markdown linků (např. [x](./...))."
|
||||
(setq user-mail-address "martin@sukany.cz"
|
||||
user-full-name "Martin Sukany")
|
||||
|
||||
(map! :map mu4e-view-mode-map
|
||||
:localleader
|
||||
"l l" #'org-store-link
|
||||
"l i" #'org-insert-link)
|
||||
|
||||
(map! :map mu4e-headers-mode-map
|
||||
:localleader
|
||||
"l l" #'org-store-link
|
||||
"l i" #'org-insert-link)
|
||||
|
||||
|
||||
|
||||
;;; ================================
|
||||
;;; Emacspeak robust ON/OFF for Doom
|
||||
@@ -458,7 +470,7 @@ Funguje v libovolném textu, včetně Markdown linků (např. [x](./...))."
|
||||
|
||||
;; Emacspeak uses this to start the speech server.
|
||||
(setq dtk-program my/emacspeak-wrapper)
|
||||
|
||||
;;(setq dtk-program "espeak")
|
||||
|
||||
;; State flags
|
||||
(defvar my/emacspeak-loaded nil)
|
||||
@@ -526,24 +538,20 @@ Funguje v libovolném textu, včetně Markdown linků (např. [x](./...))."
|
||||
(:prefix ("t" . "toggle")
|
||||
:desc "Speech ON" "s" #'my/emacspeak-on
|
||||
:desc "Speech OFF" "S" #'my/emacspeak-off))
|
||||
(setq dtk-speech-rate 300)
|
||||
|
||||
|
||||
;; ----------------------------
|
||||
;; Emacspeak defaults (global)
|
||||
;; ----------------------------
|
||||
(with-eval-after-load 'dtk-speak
|
||||
;; Speech rate
|
||||
(setq-default dtk-speech-rate 300)
|
||||
|
||||
;; Default punctuation mode: none / some / all
|
||||
;; (Emacspeak manual: dtk-set-punctuations supports 'none 'some 'all) :contentReference[oaicite:1]{index=1}
|
||||
;; (Emacspeak manual: dtk-set-punctuations supports 'none 'some 'all)
|
||||
(setq dtk-speech-rate-base 300)
|
||||
(setq-default dtk-punctuation-mode 'none))
|
||||
|
||||
(with-eval-after-load 'emacspeak
|
||||
;; Typing feedback:
|
||||
;; nechceš znaky, chceš slova + řádky
|
||||
;; (Emacspeak manual: character/word/line echo) :contentReference[oaicite:2]{index=2}
|
||||
;; (Emacspeak manual: character/word/line echo)
|
||||
(setq-default emacspeak-character-echo nil)
|
||||
(setq-default emacspeak-word-echo t)
|
||||
(setq-default emacspeak-line-echo t))
|
||||
@@ -552,3 +560,36 @@ Funguje v libovolném textu, včetně Markdown linků (např. [x](./...))."
|
||||
(:prefix ("h" . "help")
|
||||
:desc "Describe bindings (buffer-local)" "B" #'describe-bindings))
|
||||
|
||||
|
||||
|
||||
;; 1) ulož si globální default hodnotu
|
||||
(setq dtk-default-speech-rate 400)
|
||||
|
||||
;; 2) aplikuj ji ve chvíli, kdy je TTS už inicializované
|
||||
(with-eval-after-load 'dtk-speak
|
||||
(defun my/dtk-apply-global-default-rate (&rest _)
|
||||
"Apply global default speech rate after TTS init/restart."
|
||||
(when (fboundp 'dtk-set-rate)
|
||||
;; PREFIX arg => set GLOBAL default (per Emacspeak manual)
|
||||
(ignore-errors (dtk-set-rate dtk-default-speech-rate t))))
|
||||
;; po každé inicializaci/restartu TTS
|
||||
(advice-add 'dtk-initialize :after #'my/dtk-apply-global-default-rate))
|
||||
|
||||
|
||||
;; ElFeed (RSS)
|
||||
(map! :leader
|
||||
:desc "Elfeed" "o r" #'elfeed)
|
||||
|
||||
|
||||
(after! org
|
||||
;; pokud máš org soubory jinde než ~/org, nastav org-directory sem:
|
||||
;; (setq org-directory "~/org")
|
||||
|
||||
;; elfeed-org: řekni mu explicitně, kde je elfeed.org
|
||||
(setq rmh-elfeed-org-files
|
||||
(list (expand-file-name "elfeed.org" org-directory))))
|
||||
|
||||
(after! elfeed
|
||||
;; elfeed-org musí být inicializovaný, jinak se elfeed.org nemusí načítat
|
||||
(require 'elfeed-org)
|
||||
(elfeed-org))
|
||||
|
||||
11
init.el
11
init.el
@@ -5,8 +5,13 @@
|
||||
company
|
||||
vertico
|
||||
|
||||
:app
|
||||
(rss +org)
|
||||
everywhere
|
||||
|
||||
:ui
|
||||
doom
|
||||
popup
|
||||
doom-dashboard
|
||||
hl-todo
|
||||
modeline
|
||||
@@ -16,6 +21,7 @@
|
||||
vi-tilde-fringe
|
||||
workspaces
|
||||
|
||||
|
||||
:editor
|
||||
(evil +everywhere)
|
||||
file-templates
|
||||
@@ -67,7 +73,7 @@
|
||||
latex
|
||||
lua
|
||||
markdown
|
||||
org
|
||||
(org +roam2)
|
||||
(perl +lsp) ;; <- perl completion přes LSP (pokud máš server)
|
||||
plantuml
|
||||
(python +lsp) ;; <- python completion přes LSP (pyright apod.)
|
||||
@@ -75,8 +81,11 @@
|
||||
sh
|
||||
terra
|
||||
web
|
||||
terra
|
||||
yaml
|
||||
|
||||
|
||||
|
||||
:config
|
||||
(default +bindings +smartparens))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user