#+TITLE: Nové featury Doom Emacs — testovací průvodce #+DATE: 2026-02-23 #+AUTHOR: Daneel Tento dokument popisuje všechny nové featury přidané do konfigurace. Po každé změně je nutný =doom sync= + restart Emacsu. * Prerekvizity Než testuješ cokoli: #+begin_src sh cd ~/.doom.d # nebo kde máš doom config doom sync #+end_src Pak restartuj Emacs. Bez toho nové balíčky nejsou dostupné. * 1. link-hint — otevírání odkazů bez myši Co dělá: zvýrazní všechny viditelné odkazy v bufferu a přiřadí jim jednopísmenné zkratky. Stisknutím písmene odkaz otevřeš nebo zkopíruješ URL. Prerekvizita: =doom sync= dokončen. Jak testovat: 1. Otevři buffer s URL (Markdown, org, nebo jakýkoli text s http://) 2. Stiskni =SPC j k= → link-hint zvýrazní všechny odkazy 3. Stiskni písmeno vedle odkazu → odkaz se otevře v prohlížeči 4. Pro kopírování URL: =SPC j K= → stiskni písmeno → URL je v clipboardu Ověření: pokud =SPC j k= zobrazí barevné písmeno u každého odkazu, funguje. * 2. Avy — skok na libovolné místo v bufferu Co dělá: zvýrazní každý výskyt dvou zadaných znaků a skoční na vybrané místo bez pohybu myší. Prerekvizita: Doom má avy v =:editor snippets= — je dostupný automaticky. Jak testovat: 1. Otevři soubor s textem 2. Stiskni =SPC j j= → zadej dva znaky (např. =th=) → Avy zvýrazní shody 3. Stiskni písmeno u cílového výskytu → kurzor skočí tam 4. Pro skok na řádek: =SPC j l= → zadej písmeno u řádku → skok Ověření: kurzor přeskočí na vybranou pozici bez scrollování. * 3. olivetti-mode — klidný distraction-free mód Co dělá: horizontálně centruje text na šířku 90 znaků a ukryje postranní rušivé prvky. Zapíná se *ručně* — automatické zapínání by rozbilo corfu. Prerekvizita: =doom sync=, balíček =olivetti= nainstalován. Jak testovat: 1. Otevři org nebo Markdown soubor 2. Stiskni =SPC t o= → text se vycentruje na střed okna 3. Stiskni =SPC t o= znovu → vrátí se do normálního layoutu Ověření: text se viditelně přesune od levého okraje do středu. *Důležité:* olivetti nesmí být auto-zapnuto v org bufferech — pokud ho zapneš a pak otevřeš corfu popup, může se zobrazit mimo obrazovku. Zapínej/vypínej ručně dle potřeby. * 4. org-modern — vylepšený vizuál org-mode Co dělá: nahrazuje ASCII hvězdičky u nadpisů Unicode symboly (◉ ○ ✸ ✿), zvýrazňuje checkboxy. Aktivuje se *pouze* v souborech (ne v export bufferech). Prerekvizita: =doom sync=, balíček =org-modern= nainstalován. Jak testovat: 1. Otevři libovolný =.org= soubor 2. Nadpisy by měly mít místo =*= → =◉=, =**= → =○= atd. 3. Checkboxy =[ ]= a =[X]= vypadají jinak Ověření org exportu (klíčové): 1. Otevři org soubor s tabulkou a nadpisy 2. =SPC m e l o= (nebo =C-c C-e l o=) → PDF export 3. Export musí proběhnout bez chyby 4. Pokud export funguje, org-modern neinterferuje *Poznámka:* =org-modern-table= je záměrně vypnuto — tabulkové overlaye mohou interferovat s LaTeX exportem. * 5. org-fragtog — automatický náhled LaTeX fragmentů Co dělá: když kurzor vstoupí do LaTeX fragmentu (=$E=mc^2$=), zobrazí ho jako obrázek; když kurzor odejde, fragment zůstane jako obrázek. Aktivuje se pouze v souborech, ne v export bufferech. Prerekvizita: =doom sync=, =org-fragtog= nainstalován, funkční =dvipng= nebo =imagemagick= na macOS (=brew install imagemagick=). Jak testovat: 1. Otevři org soubor 2. Napiš inline LaTeX: =$E = mc^2$= 3. Pohni kurzorem ven z fragmentu → měl by se zobrazit jako obrázek 4. Pohni kurzorem dovnitř → obrázek zmizí, zobrazí se zdrojový kód Ověření: pokud =dvipng= není dostupný, org-fragtog selže tiše (žádné chybové hlášení, jen nefunguje preview). Ověření org exportu: =SPC m e l o= musí stále fungovat. * 6. org-super-agenda — skupiny v agenda view Co dělá: rozděluje org agenda view do pojmenovaných skupin: Dnes, Brzy (do 3 dnů), Čekám, Projekt Kyndryl, ZTJ, Ostatní. Prerekvizita: =doom sync=, =org-super-agenda= nainstalován. Jak testovat: 1. Otevři org agenda: =SPC o A= nebo =C-c a a= 2. Agenda by měla zobrazovat skupiny s názvy místo plochého seznamu 3. Položky s TODO =WAIT= by měly být ve skupině "Čekám" 4. Položky s tagem =:kyndryl:= nebo =:work:= ve skupině "Projekt Kyndryl" Ověření: viditelné nadpisy skupin v agenda bufferu. * 7. org-noter — anotace PDF v org-mode Co dělá: propojuje PDF soubor s org souborem poznámek. Stránkování PDF a org poznámek je synchronizováno. Prerekvizita: =doom sync=, =org-noter= nainstalován, fungující pdf-tools (=SPC m P= pro otevření PDF přes pdf-view). Jak testovat: 1. Otevři PDF soubor (měl by se otevřít v pdf-view, ne v Preview) 2. Stiskni =SPC o n= → spustí org-noter session 3. Vytvoří nový org soubor poznámek, nebo vybere existující 4. Posouvej PDF → org soubor se synchronizuje s aktuální stránkou 5. Přidej poznámku: =SPC o N= → vloží org heading s pozicí v PDF Ověření: org heading obsahuje =:NOTER_PAGE:= property s číslem stránky. * 8. GPTel — rewrite regionu a org heading jako kontext Co dělá: dvě nové funkce v GPTel: - =SPC o g r= → pošle označený region s instrukcí "vylepši text" a nahradí ho odpovědí - =SPC o g p= → pošle obsah aktuálního org headingu jako kontext do GPTel chatu Prerekvizita: gptel funkční (=SPC o g g= otevírá chat). Jak testovat (rewrite): 1. Otevři soubor s textem 2. Označ region (visual mode: =v= pak pohyb) 3. Stiskni =SPC o g r= 4. Počkej — region se nahradí vylepšenou verzí textu Jak testovat (org heading): 1. Otevři org soubor 2. Postav kurzor do headingu se zápisem 3. Stiskni =SPC o g p= → obsah headingu se pošle jako kontext do GPTel chatu Ověření: zpráva =GPTel: text vylepšen= nebo =GPTel: heading '...' odeslán= v minibufferu. * 9. git-link — kopírování URL na Gitea Co dělá: zkopíruje URL aktuální souboru/řádku na Gitea instanci (=git.apps.sukany.cz=) do clipboardu. Prerekvizita: =doom sync=, =git-link= nainstalován, soubor musí být v git repozitáři s remote na Gitea. Jak testovat: 1. Otevři soubor v emacs-doom nebo jiném Gitea repo 2. Postav kurzor na konkrétní řádek 3. Stiskni =SPC g y= → URL zkopírována do clipboardu 4. Ověř pbpaste: otevři terminál, spusť =pbpaste= → mělo by být URL jako: =https://git.apps.sukany.cz/martin/emacs-doom/src/branch/master/config.el#L42= 5. Pro URL commitu: =SPC g Y= Ověření: URL v clipboardu odpovídá aktuálnímu souboru a řádku. * 10. Forge — Gitea integrace v Magit Co dělá: přidává pull request a issue management přímo do Magit. Forge musí vědět o Gitea instanci. Prerekvizita: =doom sync=, API token v =~/.authinfo=. Nastavení tokenu: 1. Přihlas se na =https://git.apps.sukany.cz= 2. Settings → Applications → Generate new token (scope: =repo=) 3. Přidej do =~/.authinfo= (v domovském adresáři): #+begin_src machine git.apps.sukany.cz login daneel^forge password #+end_src 4. Nastav oprávnění: =chmod 600 ~/.authinfo= Jak testovat po nastavení tokenu: 1. Otevři Magit: =SPC g g= 2. Stiskni =@= → Forge menu 3. =@ f= → fetch forge data (PRy, issues) 4. =SPC g i= → seznam issues pro aktuální repo Ověření: bez tokenu Forge selže s chybou autentizace (očekávané chování). S tokenem zobrazí PRy a issues z Gitea. * Shrnutí klíčových keybindingů | Klávesa | Funkce | |-----------+-------------------------------| | SPC j k | link-hint — otevři odkaz | | SPC j K | link-hint — kopíruj 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 jako kontext| | SPC g y | git-link (kopíruj URL) | | SPC g Y | git-link-commit | * Řešení problémů ** corfu nefunguje po olivetti Pokud zapneš olivetti (=SPC t o=) a pak corfu popup zmizí nebo se zobrazí mimo obrazovku: vypni olivetti (=SPC t o= znovu) a corfu se vrátí. Olivetti mění vizuální marginy, corfu to nezvládne v kombinaci. ** org export selže Ověř že =org-modern-mode= není aktivní v export bufferu: =M-x org-modern-mode= v normálním org bufferu je OK. Pokud export stále selhává, zkus =M-x org-modern-mode= (toggle off) a exportuj znovu — pokud pak funguje, nahlás to. ** org-fragtog nefunguje (LaTeX preview) Vyžaduje imagemagick: =brew install imagemagick= Ověř: =M-x org-toggle-latex-fragment= — pokud to funguje, org-fragtog by měl fungovat taky. ** Forge: "Invalid token" Zkontroluj format =~/.authinfo= — musí být přesně: =machine git.apps.sukany.cz login daneel^forge password TOKEN= (bez uvozovek, bez mezer navíc)