From c32cffc75990a8c2a5adeb9fc24bbd3873b0b88c Mon Sep 17 00:00:00 2001 From: Martin Sukany Date: Fri, 13 Feb 2026 13:45:08 +0100 Subject: [PATCH] Added - support for roam - support for elfeed - minor changes - cleared configural --- config.el | 169 +++++++++++++++++++++++++++++++++--------------------- init.el | 11 +++- 2 files changed, 115 insertions(+), 65 deletions(-) diff --git a/config.el b/config.el index d54711f..8a03fd0 100644 --- a/config.el +++ b/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)) diff --git a/init.el b/init.el index 23358af..3fbc895 100644 --- a/init.el +++ b/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))