summaryrefslogtreecommitdiff
path: root/20250609-suckless-presentations.md
diff options
context:
space:
mode:
Diffstat (limited to '20250609-suckless-presentations.md')
-rw-r--r--20250609-suckless-presentations.md55
1 files changed, 55 insertions, 0 deletions
diff --git a/20250609-suckless-presentations.md b/20250609-suckless-presentations.md
new file mode 100644
index 0000000..b0ed8f7
--- /dev/null
+++ b/20250609-suckless-presentations.md
@@ -0,0 +1,55 @@
+# Suckless presentations
+
+June 9, 2025
+
+I'm a big fan of [suckless](http://suckless.org) tools. My laptop has been running [dwm](http://dwm.suckless.org) for years now. One of their tool has fascinated me ever since I discovered it: [sent](http://tools.suckless.org/sent).
+
+Its purpose is to create presentations. Being a suckless tool, it only needs a plain text file with each paragraph corresponding to a slide. Pictures can be displayed on a slide, but not with text on the same slide. You then launch sent on the file and the presentation starts in a plain X11 window.
+
+It is diabolically efficient, and I like that. No need for a bloated WYSIWYG tool or elaborate markup language. Just write what you want to present, and it's done. With the file being plain text, you can even open it with any viewer or editor and just read it that way.
+
+Some may find that the resulting presentation is a little too bland for their taste. In my opinion, that's a feature. I think many slides are way too bloated in the presentations I see. Having a few simple sentences or just one picture per slide is enough. It lets the viewer quickly read it and then listen to what is being said about it. The slide should support the talk, and not the opposite.
+
+To test drive sent, I've created a simple "Maven primer" presentation. Don't take it too seriously, I've not checked everything I've written. You can find the presentation source file [here](/static/20250609-maven-primer.txt). The sent home page is quite clear that exporting the presentation to other formats is not supported, but suggests automating a PNG export of each slide. That's exactly what I've done with a quick and dirty bash script:
+
+ #!/bin/bash
+
+ echo "Please focus sent window"
+
+ for i in {3..1}
+ do
+ echo "$i..."
+ sleep 1
+ done
+
+ xdotool getactivewindow windowsize $1 $2
+
+ for i in {01..19}
+ do
+ import -screen -window 'sent' $i.png
+ xdotool getactivewindow key n
+ done
+
+Just launch it with your desired output resolution and then you have 3 seconds to focus the sent presentation to export:
+
+ $ ./sent-export.sh 800 600
+
+[![01](/static/20250609-maven-primer-01.png)](/static/20250609-maven-primer-01.png)
+[![02](/static/20250609-maven-primer-02.png)](/static/20250609-maven-primer-02.png)
+[![03](/static/20250609-maven-primer-03.png)](/static/20250609-maven-primer-03.png)
+[![04](/static/20250609-maven-primer-04.png)](/static/20250609-maven-primer-04.png)
+[![05](/static/20250609-maven-primer-05.png)](/static/20250609-maven-primer-05.png)
+[![06](/static/20250609-maven-primer-06.png)](/static/20250609-maven-primer-06.png)
+[![07](/static/20250609-maven-primer-07.png)](/static/20250609-maven-primer-07.png)
+[![08](/static/20250609-maven-primer-08.png)](/static/20250609-maven-primer-08.png)
+[![09](/static/20250609-maven-primer-09.png)](/static/20250609-maven-primer-09.png)
+[![10](/static/20250609-maven-primer-10.png)](/static/20250609-maven-primer-10.png)
+[![11](/static/20250609-maven-primer-11.png)](/static/20250609-maven-primer-11.png)
+[![12](/static/20250609-maven-primer-12.png)](/static/20250609-maven-primer-12.png)
+[![13](/static/20250609-maven-primer-13.png)](/static/20250609-maven-primer-13.png)
+[![14](/static/20250609-maven-primer-14.png)](/static/20250609-maven-primer-14.png)
+[![15](/static/20250609-maven-primer-15.png)](/static/20250609-maven-primer-15.png)
+[![16](/static/20250609-maven-primer-16.png)](/static/20250609-maven-primer-16.png)
+[![17](/static/20250609-maven-primer-17.png)](/static/20250609-maven-primer-17.png)
+[![18](/static/20250609-maven-primer-18.png)](/static/20250609-maven-primer-18.png)
+[![19](/static/20250609-maven-primer-19.png)](/static/20250609-maven-primer-19.png)