% Created 2026-02-23 Mon 20:36 % Intended LaTeX compiler: pdflatex \documentclass[a4paper,11pt]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{graphicx} \usepackage{longtable} \usepackage{wrapfig} \usepackage{rotating} \usepackage[normalem]{ulem} \usepackage{amsmath} \usepackage{amssymb} \usepackage{capt-of} \usepackage{hyperref} \usepackage{tabularx} \usepackage[czech]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{microtype} \sloppy \usepackage{helvet} \renewcommand{\familydefault}{\sfdefault} \usepackage[a4paper,margin=2.2cm]{geometry} \usepackage[table,x11names]{xcolor} \definecolor{kyndrylRed}{RGB}{196,0,0} \definecolor{linkcolor}{RGB}{196,0,0} \definecolor{tableOdd}{RGB}{252,252,252} \definecolor{tableEven}{RGB}{237,237,237} \usepackage{hyperref} \hypersetup{colorlinks=true,linkcolor=linkcolor,urlcolor=linkcolor,citecolor=linkcolor,pdfencoding=auto,unicode=true} \usepackage{xurl} \usepackage{graphicx} \usepackage{array} \usepackage{tabularx} \usepackage{longtable} \usepackage{ltablex} \keepXColumns \usepackage{booktabs} \usepackage{colortbl} \usepackage{etoolbox} \usepackage{ragged2e} \AtBeginEnvironment{longtable}{\rowcolors{1}{tableOdd}{tableEven}} \AtBeginEnvironment{tabularx}{\rowcolors{1}{tableOdd}{tableEven}} \AtBeginEnvironment{tabular}{\rowcolors{1}{tableOdd}{tableEven}} \newcolumntype{Y}{>{\RaggedRight\arraybackslash}X} \newcolumntype{Z}{>{\Centering\arraybackslash}X} \newcolumntype{R}{>{\RaggedLeft\arraybackslash}X} \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \lhead{\small\nouppercase{\leftmark}} \rhead{\small\thepage} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\headrule}{\hbox to\headwidth{\color{kyndrylRed}\leaders\hrule height \headrulewidth\hfill}} \usepackage{listings} \lstset{backgroundcolor=\color{yellow!20},basicstyle=\ttfamily\small,breaklines=true,frame=single} \author{Martin SukanĂ˝} \date{\today} \title{Nove featury Doom Emacs -- testovaci pruvodce} \hypersetup{ pdfauthor={Martin SukanĂ˝}, pdftitle={Nove featury Doom Emacs -- testovaci pruvodce}, pdfkeywords={}, pdfsubject={}, pdfcreator={Emacs 31.0.50 (Org mode 9.7.11)}, pdflang={Czech}} \usepackage{biblatex} \begin{document} \maketitle \setcounter{tocdepth}{2} \tableofcontents Tento dokument popisuje vsechny nove featury pridane do konfigurace. Po kazde zmene je nutny \texttt{doom sync} + restart Emacsu. \section{Prerekvizity} \label{sec:org41542c8} Nez testuje cokoli: \begin{verbatim} cd ~/.doom.d doom sync \end{verbatim} Pak restartuj Emacs. Bez toho nove balicky nejsou dostupne. \section{1. link-hint -- otevirani odkazu bez mysi} \label{sec:org2649830} Co dela: zvyrazni vsechny viditelne org-format odkazy v bufferu a prirad jim jednopismenne zkratky. Stisknutim pismene odkaz otevres nebo zkopirujes URL. Prerekvizita: \texttt{doom sync} dokoncen, soubor musi obsahovat \texttt{[[...]]} odkazy. Jak testovat: \begin{enumerate} \item Otevri org soubor ktery ma \texttt{[[https://example.com]]} nebo \texttt{[[file:inbox.org]]} odkazy \item Stiskni \texttt{SPC j k} -- link-hint zvyrazni viditelne odkazy \item Stiskni pismeno vedle odkazu -- odkaz se otevri \item Pro kopiovani URL: \texttt{SPC j K} \end{enumerate} \textbf{Dulezite:} 'No links' je spravna hlaska kdyz buffer nema zadny \texttt{[[...]]} odkaz viditelny na obrazovce. Index.org bez explicitu odkazu = zadne linky. Funguje spravne -- neni to chyba. Priklady odkazu ktere link-hint najde: \begin{itemize} \item \texttt{[[https://example.com][Odkaz]]} -- HTTP odkaz \item \texttt{[[file:inbox.org]]} -- soubor \item \texttt{[[*Nadpis]]} -- interni odkaz v dokumentu \end{itemize} \section{2. Avy -- skok na libovolne misto v bufferu} \label{sec:orgaaaa8c5} Co dela: zvyrazni kazdy vyskyt dvou zadanych znaku a skoci na vybrane misto bez pohybu mysi. Prerekvizita: Doom ma avy automaticky -- dostupny bez doom sync. Jak testovat: \begin{enumerate} \item Otevri soubor s textem \item Stiskni \texttt{SPC j j} -- zadej dva znaky (napr. \texttt{th}) -- Avy zvyrazni shody \item Stiskni pismeno u ciloveho vyskytu -- kurzor skoci tam \item Pro skok na radek: \texttt{SPC j l} -- zadej pismeno u radku \end{enumerate} Overeni: kurzor preskoci na vybranou pozici bez scrollovani. \section{3. olivetti-mode -- klidny distraction-free mod} \label{sec:orgf4fb172} Co dela: horizontalne centruje text na sirku 90 znaku. Zapina se \textbf{rucne} -- automaticke zapinani by rozbilo corfu completion popup. Prerekvizita: \texttt{doom sync}, balik \texttt{olivetti} nainstalovan. Jak testovat: \begin{enumerate} \item Otevri org nebo Markdown soubor \item Stiskni \texttt{SPC t o} -- text se vycentruje na stred okna \item Stiskni \texttt{SPC t o} znovu -- vrati se do normalniho layoutu \end{enumerate} \textbf{Upozorneni:} Pokud zapnes olivetti a corfu popup zmizi nebo se zobrazi mimo obrazovku, vypni olivetti. Olivetti meni vizualni marginy a corfu pak pocita spatne souradnice popupu. \section{4. org-modern -- vylepseny vizual org-mode} \label{sec:orgd88f5be} Co dela: nahradi hvezdicky u nadpisu Unicode symboly (okrouhlymi tvary), zvyrazni checkboxy. Aktivuje se automaticky po loadu org-modern balicku. Prerekvizita: \texttt{doom sync}, balik \texttt{org-modern} nainstalovan. Jak testovat: \begin{enumerate} \item Otevri libovolny \texttt{.org} soubor (napr. inbox.org) \item Nadpisy by mely mit jinak vyzerajici hvezdicky \item Checkboxy \texttt{[ ]} a \texttt{[X]} vypadaji jinak \end{enumerate} Pokud org-modern nefunguje na uz otevreny soubor: spust \texttt{M-x org-modern-mode} rucne nebo zavre a znovu otevri soubor. Konfigu zajistuje aktivaci i pro uz otevrene buffery pri loadu balicku. Overeni org exportu (klicove): \begin{enumerate} \item Otevri org soubor s tabulkou a nadpisy \item \texttt{SPC m e l o} nebo \texttt{C-c C-e l o} -- PDF export \item Export musi probehnou bez chyby \item \texttt{org-modern-table} je vypnuto -- tabulkove overlaye by mohly interferovat \end{enumerate} \section{5. org-fragtog -- automaticky nahled \LaTeX{} fragmentu} \label{sec:org5bae01c} Co dela: kdyz kurzor vstoupi do \LaTeX{} fragmentu (\texttt{\$E=mc\textasciicircum{}2\$}), zobrazi ho jako obrazek; kdyz kurzor odejde, fragment zustane jako obrazek. Prerekvizita: \texttt{doom sync}, \texttt{org-fragtog} nainstalovan, funkci \texttt{dvipng} nebo \texttt{imagemagick}: \texttt{brew install imagemagick}. Jak testovat: \begin{enumerate} \item Otevri org soubor \item Napis \texttt{\$E = mc\textasciicircum{}2\$} \item Pohni kurzorem ven z fragmentu -- mel by se zobrazit jako obrazek \item Pohni kurzorem dovnitr -- obrazek zmizi, zobrazi se zdrojovy kod \end{enumerate} Pokud dvipng neni dostupny, org-fragtog selze tise. Zkontroluj: \texttt{M-x org-toggle-latex-fragment} \section{6. org-super-agenda -- skupiny v agenda view} \label{sec:org138b653} Co dela: rozdeli org agenda view do skupin: Dnes, Cekam, Kyndryl, ZTJ, Ostatni. Prerekvizita: \texttt{doom sync}, \texttt{org-super-agenda} nainstalovan. Skupiny: \begin{itemize} \item \textbf{Dnes}: polozky se SCHEDULED nebo DEADLINE dnes \item \textbf{Cekam}: polozky s TODO stavem WAIT \item \textbf{Kyndryl}: tag \texttt{:kyndryl:} nebo \texttt{:work:} \item \textbf{ZTJ}: tag \texttt{:ztj:} \item \textbf{Ostatni}: vsechno co nezapadne do predchozich skupin \end{itemize} Jak testovat: \begin{enumerate} \item Otevri org agenda: \texttt{SPC o A} nebo \texttt{C-c a a} \item Agenda by mela zobrazovat skupiny s nazvy \item Polozky s TODO \texttt{WAIT} ve skupine "Cekam" \end{enumerate} \textbf{Pokud agenda zobrazuje prazdnou stranku:} Spust \texttt{M-x org-super-agenda-mode} pro aktivaci, nebo zkontroluj ze \texttt{doom sync} byl dokoncen. \section{7. org-noter -- anotace PDF v org-mode} \label{sec:orgc5d7d77} Co dela: propojuje PDF soubor s org souborem poznamek. Strankovani je synchronizovano. Prerekvizita: \texttt{doom sync}, \texttt{org-noter} nainstalovan, PDF otvira se v pdf-view. Jak testovat: \begin{enumerate} \item Otevri PDF soubor -- mel by se otevrit v pdf-view, ne v Preview \item Stiskni \texttt{SPC o n} -- spusti org-noter session \item Posouvej PDF -- org soubor se synchronizuje s aktualni strankou \item Pridej poznamku: \texttt{SPC o N} -- vlozi org heading s pozici v PDF \end{enumerate} Overeni: org heading obsahuje \texttt{:NOTER\_PAGE:} property. \section{8. GPTel -- rewrite regionu a org heading} \label{sec:orgf0ea4ea} Co dela: \begin{itemize} \item \texttt{SPC o g r} -- posle oznaceny region do GPTel s instrukci "vyleps text" a nahradi ho odpovedi \item \texttt{SPC o g p} -- posle obsah aktualu org headingu jako kontext do GPTel chatu \end{itemize} Prerekvizita: gptel funkci (\texttt{SPC o g g} otevira chat). Jak testovat (rewrite): \begin{enumerate} \item Otevri soubor s textem \item Oznac region (visual mode: \texttt{v}) \item \texttt{SPC o g r} -- pockat -- region se nahradi vylepsenim \item Zprava: \texttt{GPTel: text vylepsen} v minibufferu \end{enumerate} Jak testovat (org heading): \begin{enumerate} \item Otevri org soubor \item Postav kurzor do headingu \item \texttt{SPC o g p} -- obsah headingu odeslan do GPTel chatu \end{enumerate} \section{9. git-link -- kopiovani URL na Gitea} \label{sec:org8936aac} Co dela: zkopiruje URL aktualniho souboru/radku na Gitea do clipboardu. Prerekvizita: \texttt{doom sync}, soubor musi byt v git repo s remote na Gitea. Jak testovat: \begin{enumerate} \item Otevri soubor v emacs-doom nebo jinem Gitea repo \item Postav kurzor na konkretni radek \item \texttt{SPC g y} -- URL zkopirovna do clipboardu \item Zkontroluj: \texttt{pbpaste} v terminalu \end{enumerate} Overeni: URL odpovida aktualnimu souboru a radku na git.apps.sukany.cz. \section{10. Forge -- Gitea integrace v Magit} \label{sec:org2546e94} Co dela: pridava pull request a issue management do Magit. Prerekvizita: \texttt{doom sync}, API token v \texttt{\textasciitilde{}/.authinfo}. Nastaveni tokenu: \begin{enumerate} \item Prihlasit se na \texttt{https://git.apps.sukany.cz} \item Settings -> Applications -> Generate new token (scope: \texttt{repo}) \item Pridat do \texttt{\textasciitilde{}/.authinfo}: \begin{verbatim} machine git.apps.sukany.cz login daneel^forge password \end{verbatim} \item \texttt{chmod 600 \textasciitilde{}/.authinfo} \end{enumerate} Jak testovat: \begin{enumerate} \item Otevri Magit: \texttt{SPC g g} \item Stiskni \texttt{@} -- Forge menu \item \texttt{@ f} -- fetch forge data (PRy, issues) \end{enumerate} \textbf{Poznamka:} Bez tokenu Forge selze s chybou autentizace (ocekavane chovani). \section{Prehled klaves} \label{sec:org2597f1d} \begin{center} \begin{tabularx}{\linewidth}{lY} Klavesa & Funkce\\ \hline SPC j k & link-hint -- otevri odkaz\\ SPC j K & link-hint -- kopiruj URL\\ SPC j j & avy-goto-char-2\\ SPC j l & avy-goto-line\\ SPC t o & olivetti-mode toggle\\ SPC o n & org-noter\\ SPC o N & org-noter-insert-note\\ SPC o g r & GPTel rewrite region\\ SPC o g p & GPTel org heading -> kontext\\ SPC g y & git-link (kopiruj URL)\\ SPC g Y & git-link-commit\\ \end{tabularx} \end{center} \section{Reseni problemu} \label{sec:orgac7a8e9} \subsection{link-hint rika 'No links'} \label{sec:org92019e7} Normalni chovani kdyz buffer nema zadny \texttt{[[...]]} odkaz viditelny na obrazovce. Testuj na org souboru ktery obsahuje \texttt{[[https://...]]} nebo \texttt{[[file:...]]} linky. \subsection{corfu nefunguje po olivetti} \label{sec:orgdd696ee} Vypni olivetti (\texttt{SPC t o}). Olivetti meni vizualni marginy, corfu popup pak ma spatne souradnice. \subsection{org-modern nefunguje} \label{sec:org53299b3} Spust \texttt{doom sync} + restartuj Emacs. Pokud stale ne: \texttt{M-x org-modern-mode} nebo zavre a otevri soubor znovu. \subsection{org export selze s Unicode varovanim} \label{sec:orgdec002a} Zkontroluj svuj .org soubor na Unicode znaky mimo Latin-1: \begin{verbatim} python3 -c " with open('tvuj-soubor.org') as f: for i, line in enumerate(f, 1): for ch in line: if ord(ch) > 255: print(f'radek {i}: U+{ord(ch):04X} {repr(ch)}') break " \end{verbatim} Smazani nebo nahrazeni techto znaku vyresi problem. \subsection{org-super-agenda zobrazuje prazdnou agendu} \label{sec:org5c2473b} Spust \texttt{M-x org-super-agenda-mode} pro rucni aktivaci. Zkontroluj ze org soubory maji polozky se SCHEDULED nebo DEADLINE. \subsection{Forge: 'Invalid token'} \label{sec:org6acb14e} Zkontroluj format \texttt{\textasciitilde{}/.authinfo} -- zadne uvozovky, zadne mezery navic: \begin{verbatim} machine git.apps.sukany.cz login daneel^forge password TOKEN \end{verbatim} \section{emacs-new-features} \label{sec:org2d1ff3e} \subsection{first note} \label{sec:orgef2818c} \subsection{Testovaci poznamka - prvni stranka} \label{sec:orgcbd1095} Tady zacina ta prvni stranka \begin{itemize} \item tak tady par poznamek \item nova odrazka \end{itemize} \subsection{Olivetti mode je na strance 3, melo by to byt ok} \label{sec:org72cfac7} \subsection{Prehled klaves je tady} \label{sec:orge56be61} \end{document}