[HN Gopher] Presenterm: Markdown Slideshows in the Terminal
       ___________________________________________________________________
        
       Presenterm: Markdown Slideshows in the Terminal
        
       Author : pea-tear
       Score  : 274 points
       Date   : 2025-03-08 21:36 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | enriquto wrote:
       | I wonder how are the large fonts rendered. Are they sixel images
       | or what?
        
         | pea-tear wrote:
         | See the sibling comment. This is a new protocol that the kitty
         | maintainer created and is supported as of kitty 0.40.0, which
         | was just released yesterday. This makes presentations look much
         | more presentation-like now!
        
       | mmastrac wrote:
       | I was curious how the larger fonts worked in Kitty -- here's the
       | reference for the protocol:
       | 
       | https://sw.kovidgoyal.net/kitty/text-sizing-protocol/
        
         | kelvie wrote:
         | Thanks, I was also wondering! I wonder what it would take
         | (politically) to get Konsole to support this (kind of afraid to
         | just file the bug and find out!)
        
           | porridgeraisin wrote:
           | VTE based terminals can't support this AFAIK. Kitty draws
           | itself with OpenGL and so supports these things. Iterm2 is
           | also a similar story afaik (and Wezterm and ....)
        
         | naikrovek wrote:
         | Xterm does this via DEC protocol commands. Well, it does this
         | by specifying double-height, double width, or both. Why does
         | Kitty have to do things its own way yet again?
        
           | edoceo wrote:
           | Maybe cause TTY things are crazy! That mechanism of the
           | computer world is so full of arcane/legacy/defacto
           | "standards"
           | 
           | But how to overhaul? WaylandTYU?
        
         | wkat4242 wrote:
         | Even the old VT220 had large fonts. They were just not used by
         | most applications
        
       | campbel wrote:
       | Alternative https://maaslalani.com/slides/
        
       | bryanhogan wrote:
       | What is the benfit of doing this in the terminal over tools such
       | as Slidev or Marp which also allow you to make slides based on
       | Markdown?
       | 
       | - Slidev: https://sli.dev/
       | 
       | - Marp: https://marp.app/
        
         | riffic wrote:
         | marp is rad! kill powerpoint forever by writing markdown
         | slides.
        
         | fgarit wrote:
         | Lots of people want to demo things on the terminal, having your
         | slides in the terminal as well makes things seamless. Also some
         | people just like using terminals for all things.
        
         | jrm4 wrote:
         | Are either of these related to s5? What's wild is that I've
         | been using zim-wiki -> html -> s5 slides for years, and still
         | do, and I've completely forgotten "how s5 works?" It's just so
         | easy to do things that way over markdown.
        
         | okonomiyaki3000 wrote:
         | I've used both of these a lot, Marp being really easy to get
         | started with and Slidev being a little more complex but well
         | worth the (minor) effort. To me, presenterm doesn't appear to
         | offer any compelling features compared with these.
        
           | andatki wrote:
           | I've used Marp a lot and it's great. Column layouts and code
           | highlighting are two features Presenterm offers that I don't
           | think are available in Marp.
        
         | WD-42 wrote:
         | I used Presenterm for a work presentation recently. Being able
         | to seamlessly transition from slides to example code in Vim is
         | really, really nice. No need to jungle multiple windows, just
         | terminal tabs or even ctrl+z/fg. Plus it looks really cool.
        
           | closewith wrote:
           | I wonder what the audience thought - apart from the cool
           | factor.
        
           | lloeki wrote:
           | The other day I had to conjure a presentation in short order.
           | 
           | I had a few code examples to massage out of a codebase, so I
           | fired up vim to make them simpler/clearer before I'd put them
           | in Keynote.
           | 
           | Then I started taking a few notes in a scratch buffer. After
           | a few moments I began to dread having to move that content
           | over and format in the UI and all.
           | 
           | ... And then it dawned on me that I could just use _vim
           | itself_ as the presentation tool!
           | 
           | - one tab per slide, one file per tab
           | 
           | - gt/gT (:tabnext :tabprev) to move through
           | 
           | - ,z (junegunn/goyo :Goyo) for a "hudless" display
           | 
           | - splits and :terminal on live demo time
           | 
           | - ,b (junegunn/fzf.vim :Buffers) to jump to any "slide" on
           | question time (just name files appropriately)
           | 
           | - prepare the whole thing and save session with :mksession
        
         | bazzargh wrote:
         | I made a terminal based presentation tool some years back and
         | like sibling comments said, it was neat for switching back and
         | forth to code samples and output.
         | 
         | Mine wasn't markdown tho: I used ttyrec to record a terminal
         | session to a file per slide and the tool just played it back. I
         | set it up so pressing most keys would advance the playback
         | hackertyper style, advancing 200ms per keypress IIRC. When you
         | reach the end of a slide, press return for the next one. The
         | back and forward arrows were used to jump between slides
         | quickly, and title text was done with figlet.
         | 
         | I only used it for a couple of in house presentations and
         | meetups where the hacker styling was appropriate; there wasn't
         | much to it so the code wasn't released, it'd be easy to
         | recreate.
         | 
         | edited to add: I forgot, I did put it in a gist.
         | https://gist.github.com/bazzargh/a267b97a52f7a1f70c46 ymmv. I
         | recall the playback struggled with things like vim, I always
         | meant to try integrating as cinema since it seems to work
         | better
        
       | banku_brougham wrote:
       | this looks amazing, goodbye google docs
        
       | fitsumbelay wrote:
       | very cool +1 for terminal slides
        
       | James_K wrote:
       | Turning the terminal into a worse web browser is such a silly
       | decision. I really wish we had better environments for this
       | stuff. Something like MatLab. I suppose achieving such a thing on
       | the ubiquity of the UNIX text streams model would be immensely
       | difficult.
        
       | xyst wrote:
       | brb re-creating pitch deck with presenterm to take presenterm
       | from OSS to closed/limited/business source licensed software (ie,
       | hashicorp strategy) then IPO.
       | 
       | Then rug pull the stonk. Leave retail holding the bag, go on
       | permanent leave, get a golden parachute, then some cookie cutter
       | MBA scumbag takes over and ruins it further. Subsequently gets
       | sold to big tech for pennies, and IP gets shelved.
       | 
       | In the meanwhile, FOSS community forks presenterm and a
       | divergence occurs.
       | 
       | The rinse and repeat :). The circle of scamming.
        
       | ChilledTonic wrote:
       | Phenomenal - I've been using patat for this:
       | 
       | https://github.com/jaspervdj/patat
       | 
       | This has in line snippet execution, critical for how I present -
       | so lets switch to this.
        
       | rellik wrote:
       | Very cool! I see the comments about Kitty. Any other terminals
       | well supported?
        
         | pea-tear wrote:
         | iterm2 and wezterm are well supported as well!
        
       | yoshuaw wrote:
       | I wonder what the first incarnation of single-page markdown files
       | for slides has been. The earliest I know of is `tslide` by
       | Dominic Tarr, first published in 2012:
       | https://github.com/tslide/tslide
        
         | rickbyke wrote:
         | Vroom goes back to 2008. It generates slides within vim, and it
         | has a wiki syntax, not markdown.
         | https://github.com/ingydotnet/vroom-pm
        
       | porridgeraisin wrote:
       | This looks just so so good. Perfect for my usecase (making
       | presentations for our lab meetings)
       | 
       | Gonna try and convert a few of my old ones to presenterm. I'll
       | let you know how it goes.
        
       | hknws2023saio wrote:
       | I love this, what a wonderful idea
        
       | mycall wrote:
       | Any chance of adding mermaid syntax for ANSI or ASCII charts?
        
         | pea-tear wrote:
         | Mermaid is already supported natively, meaning the mermaid
         | diagram output is rendered as actual images; no need for ascii
         | diagrams
         | https://mfontanini.github.io/presenterm/features/code/mermai...
        
       | tombert wrote:
       | I'm giving a talk in June, and it might be fun to do it entirely
       | in the terminal.
       | 
       | Historically, I've done the slides with Markdown and rendered
       | them to Beamer with Pandoc, and that works well enough, though
       | slightly awkward with transitions. I might get more nerd-cred if
       | I live in the terminal.
       | 
       | I'll need to check this one out.
        
       | anta40 wrote:
       | Ahh very cool. Guess I can say goodbye to Power
       | Point/Keynote/etc.
        
       | vednig wrote:
       | https://termui.sh
        
       | bravetraveler wrote:
       | With this, I'm going to get the executives living in the shell as
       | much as I do
        
       | phrotoma wrote:
       | I've been creating slides with markdown and revealjs for my day
       | job as an instructor for several years. I've also used obsidian
       | and quarto for markdown->slide creation for a handful of meetups
       | / conferences. This month I tried writing a kubecon talk using
       | presenterm and had to throw in the towl after a couple hours of
       | struggling.
       | 
       | It's super cool and I want to love it, but I find it too fiddly
       | to get the layout the way I want it. For me it might be easier to
       | just page through a plain text file of ascii art style diagrams
       | or something.
       | 
       | I've always been just absolutely dog shit at design stuff. I
       | can't center a div to save my life and I don't understand
       | columns. I need it to be absolutely idiot proof because I'm an
       | absolute idiot when it comes to these things.
       | 
       | I guess this is my attempt at encouragement for folks to keep
       | working on these tools because I love the aesthetic but I just
       | can't grok the interface. I will continue to watch this project
       | with interest!
        
         | pea-tear wrote:
         | I would love to hear specifics on how you couldn't get the
         | layout looking how you wanted it to. e.g. do you have a link to
         | the presentation you did? Feel free to shot me an email at
         | gmail, it's easily findeable online.
        
       | bartvk wrote:
       | Speaker notes seem to need an extra step; start an additional
       | terminal on the laptop screen (not the presented screen), then
       | start the speaker notes instance via a terminal command.
       | PowerPoint understands the difference between your own laptop
       | screen and the external output.
       | 
       | Still, good that they thought of including speaker notes, plus
       | this is more flexible in combination with ssh.
        
       ___________________________________________________________________
       (page generated 2025-03-09 22:00 UTC)