Sign in

Sacha Chua

@sachachua.com
477 followers 338 following 56 posts

Interests include: #Emacs, #OrgMode, #elisp, #nodejs, #python, #sketchnotes, #parenting, #cooking, #gardening, #knitting, #sewing, #captioning. Originally from Manila, now in Toronto. Married to a Vim guy, raising an 8-year old (editor?) sachachua.com

PostsRepliesMedia
Sacha Chua @sachachua.com · 08/09/2026
ah, I see the discussion over on your @citizen428@chaos.social account already has it!
chaos.social
chaos.social
chaos.social – a Fediverse instance for & by the Chaos community
010
Sacha Chua @sachachua.com · 08/09/2026
You may also like auto-revert-tail-mode. =)
101
Sacha Chua @sachachua.com · 01/09/2026
Is M-x global-auto-revert-mode something that sounds like it might be useful for you? You can describe it with C-h f global-auto-revert-mode and add it to your config with (global-auto-revert-mode).
100
Reposted by Sacha Chua
mister-chiply.bsky.social @mister-chiply.bsky.social · 09/06/2026
New blog post! This one demonstrates an Emacs package I created called svg-line, inspired by @nicolasrougier.bsky.social dual-header gist. Supports multi-line bars, icons, wrapping, buttons, and alignment. www.chiply.dev/post-svg-line #emacs #programming #software #coding #lisp #texteditor
chiply.dev
svg-line: Better Status Bars for Emacs
Emacs provides four useful status bars (mode-line, header-line, tab-bar, and tab-line), but each imposes different, inconsistent limits on multi-line layout, al...
091
Reposted by Sacha Chua
Ross A. Baker @rossabaker.com · 01/06/2026
The June, 2026 Emacs Carnival is "Underapprecated Emacs Built-ins." There are about two million lines of code in the core Emacs repo. Send me your favorite hidden treasure. If you're unsure where to look, see some ideas in the post. rossabaker.com/blog/underappreciate… […]
social.rossabaker.com
Original post on social.rossabaker.com
522
Sacha Chua @sachachua.com · 08/06/2026
Oh, I'm sorry to hear that. Does ffprobe work on it at the command line?
000
Sacha Chua @sachachua.com · 17/03/2026
(ah, looks like you were able to get to it anyway, whew =) )
120
Sacha Chua @sachachua.com · 17/03/2026
Hmm, I'll try that in Safari on my iPad next chance I get. Sorry about that! Maybe this will be a workaround? github.com/sachac/.emac...
github.com
111
Sacha Chua @sachachua.com · 09/03/2026
Maybe datamash?
000
Sacha Chua @sachachua.com · 09/03/2026
Oh yeah, I have something similar in my config. sachachua.com/dotemacs/ind... my-org-insert-link-dwim gives me something like your flt--insert-markdown-link, and my-page-title is like your flt-fetch-link-title. =)
sachachua.com
Adding Org Mode link awesomeness elsewhere: my-org-insert-link-dwim :: Sacha Chua
300
Sacha Chua @sachachua.com · 26/08/2025
I wonder if org-aggregate might be useful to you. Also, you can :var the table references into Emacs Lisp and tinker with things that way. :colnames might be a handy header argument to look into also.
020
Sacha Chua @sachachua.com · 19/08/2025
I've given up on remembering how to switch between Org Mode, Markdown, and Oddmuse link syntax. =) I have a my-org-insert-link that tries to do the right thing in whatever mode I'm in. sachachua.com/dotemacs/ind...
sachachua.com
Sacha Chua's Emacs configuration
110
Reposted by Sacha Chua
Bozhidar Batsov (a.k.a. Bug) @batsov.net · 04/06/2025
In other news - clojure-ts-mode 0.5 is out and it's epic! Some highlights include: - the ability to font-lock custom def-like forms - font-locking JS code embedded in #ClojureScript - #Tree-sitter powered completion source that provides reasonable completions for the current file #Clojure #Emacs
031
Reposted by Sacha Chua
dotemacs.bsky.social @dotemacs.bsky.social · 04/06/2025
I worked on some modes for code completion via LLMs. I still want to tweak the modes a bit more, before publishing them. Here's some thoughts before I do that: fn.ht/on-code-comp... #emacs #llm
fn.ht
On code completions via LLMs | fn.ht
001
Reposted by Sacha Chua
petes_bread_eqn_xls @petes-bread-eqn-xls.mastodo.neoliber.al.ap.brid.gy · 05/06/2025
This blog post about how to do a simple thing in emacs is excellent. It has all the relevant information but isn’t overly long, and it has helpful GIF screencasts. www.philnewton.net/blog/sorting-lin… #emacs
philnewton.net
How to sort lines of text with Emacs
Alphabetically sorting a bunch of text is something I need to do fairly regularly. Thankfully Emacs has a built-in function to help with that: `sort-lines`. It looks like this: Calling `M-x sort-lines` will sort all lines in the current region. Lines are sorted numerically, then alphabetically, and capital letters are sorted before lower-case ones (e.g. `A` will come before `a`). Emacs will only sort text in the highlighted region, so it's important to mark everything that needs sorting. Otherwise it can end up like this: `sort-lines` is one of those handy little functions that I never knew I wanted, until I was sat with a pile of unsorted text and wondering "I wonder if Emacs can help".
012
Reposted by Sacha Chua
ArneBab @arnebab.rollenspiel.social.ap.brid.gy · 20/05/2025
@sacha Maybe interesting: Single-click time tracking with links www.draketo.de/software/org-mode-ti… #emacs #orgmode
A screenshot of the text table:

 But first: “screenshots”! My time tracking interface now looks like this:

| Orga | Mein Orga | Personal      | Kanban (other) |
| Proj | Apps      | Scrum A       | Scrum B        |
|      | Reviews   | clock in LAST | clock OUT      |

I can click each of the links to activate booking on the respective task, or switch to it. clock OUT obviously clocks out.
033
Sacha Chua @sachachua.com · 20/05/2025
2025-05-19 Emacs news sachachua.com/blog/2025/05... #emacs #EmacsNews
sachachua.com
2025-05-19 Emacs news :: Sacha Chua
050
Sacha Chua @sachachua.com · 05/05/2025
2025-05-05 Emacs news sachachua.com/blog/2025/05... #emacs #EmacsNews
sachachua.com
2025-05-05 Emacs news :: Sacha Chua
040
Sacha Chua @sachachua.com · 29/04/2025
2025-04-28 Emacs news sachachua.com/blog/2025/04... #emacs #EmacsNews
sachachua.com
2025-04-28 Emacs news :: Sacha Chua
090
Sacha Chua @sachachua.com · 21/04/2025
2025-04-21 Emacs news sachachua.com/blog/2025/04... #emacs #EmacsNews
sachachua.com
2025-04-21 Emacs news :: Sacha Chua
093
Sacha Chua @sachachua.com · 14/04/2025
2025-04-14 Emacs news sachachua.com/blog/2025/04... #emacs #EmacsNews
sachachua.com
2025-04-14 Emacs news :: Sacha Chua
050
Sacha Chua @sachachua.com · 31/03/2025
2025-03-31 Emacs news sachachua.com/blog/2025/03... #emacs #EmacsNews
sachachua.com
2025-03-31 Emacs news :: Sacha Chua
050
Sacha Chua @sachachua.com · 25/03/2025
2025-03-24 Emacs news sachachua.com/blog/2025/03... #emacs #EmacsNews
sachachua.com
2025-03-24 Emacs news :: Sacha Chua
050
Sacha Chua @sachachua.com · 24/03/2025
I've been using beorg, and I hear Plain Org is also pretty nifty.
130
Reposted by Sacha Chua
Trev @trevdev.bsky.social · 24/03/2025
The obligatory "how I wrote this website" blog post: trevdev.ca/blog/how-i-w... #emacs #orgmode
trevdev.ca
How I Wrote This Website
001
Sacha Chua @sachachua.com · 24/03/2025
For the use case of linking to a heading somewhere in one of my org-refile-targets, I use C-u C-c C-w (org-refile) and then an Embark action to insert the link to the heading: sachachua.com/blog/2024/10...
sachachua.com
Insert a link to an Org Mode heading from an org-refile prompt :: Sacha Chua
000
Sacha Chua @sachachua.com · 11/03/2025
2025-03-10 Emacs news sachachua.com/blog/2025/03... #emacs #EmacsNews
sachachua.com
2025-03-10 Emacs news :: Sacha Chua
040
Sacha Chua @sachachua.com · 10/03/2025
@peregrinator.site Thanks for sharing your #emacs config! Would you consider getting emacs.peregrinator.site/index.xml working, and would it be okay for me to add it to planet.emacslife.com so that other people can come across your Emacs posts easily? =)
emacs.peregrinator.site
230
Sacha Chua @sachachua.com · 03/03/2025
2025-03-03 Emacs news sachachua.com/blog/2025/03... #emacs #EmacsNews
sachachua.com
2025-03-03 Emacs news :: Sacha Chua
051
Sacha Chua @sachachua.com · 24/02/2025
2025-02-24 Emacs news sachachua.com/blog/2025/02... #emacs #EmacsNews
sachachua.com
2025-02-24 Emacs news :: Sacha Chua
040
Sacha Chua @sachachua.com · 18/02/2025
2025-02-17 Emacs news sachachua.com/blog/2025/02... #emacs #EmacsNews
sachachua.com
2025-02-17 Emacs news :: Sacha Chua
072
Sacha Chua @sachachua.com · 18/02/2025
That is one of the downsides of using a starter kit like Spacemacs, sorry... You'll probably need to look for Spacemacs-specific tutorials. Doom Emacs might also be a similar starter kit (if you're looking for Vim-like keybindings) with possibly a more active community.
110
Sacha Chua @sachachua.com · 17/02/2025
The magic of iCal =)
010
Sacha Chua @sachachua.com · 10/02/2025
2025-02-10 Emacs news sachachua.com/blog/2025/02... #emacs #EmacsNews
sachachua.com
2025-02-10 Emacs news :: Sacha Chua
183
Sacha Chua @sachachua.com · 03/02/2025
2025-02-03 Emacs news sachachua.com/blog/2025/02... #emacs #EmacsNews
sachachua.com
2025-02-03 Emacs news :: Sacha Chua
Copyright © 2001-2024 Sacha Chua (sacha@sachachua.com). Emacs code snippets are generally under GPLv3+; other snippets are dual-licensed under the MIT License or GPLv3+ unless otherwise indicated. Please feel free to reuse or share stuff under a Creative Commons Attribution license unless otherwise noted. Thanks for reading!
0113
Sacha Chua @sachachua.com · 28/01/2025
2025-01-27 Emacs news sachachua.com/blog/2025/01... #emacs #EmacsNews
sachachua.com
2025-01-27 Emacs news :: Sacha Chua
093
Sacha Chua @sachachua.com · 20/01/2025
2025-01-20 Emacs news sachachua.com/blog/2025/01... #emacs #EmacsNews
sachachua.com
2025-01-20 Emacs news :: Sacha Chua
060
Sacha Chua @sachachua.com · 13/01/2025
2025-01-13 Emacs news sachachua.com/blog/2025/01... #emacs #EmacsNews
sachachua.com
2025-01-13 Emacs news :: Sacha Chua
0123
Sacha Chua @sachachua.com · 06/01/2025
2025-01-06 Emacs news sachachua.com/blog/2025/01... #emacs #EmacsNews
sachachua.com
2025-01-06 Emacs news :: Sacha Chua
080
Reposted by Sacha Chua
Steve Chan @oliverchan2024.bsky.social · 01/01/2025
#emacs org-supertag v1.0.0 released! The highlight of this release is the introduction of the "Behavior System," which enables you to create custom commands and automate workflows seamlessly. www.reddit.com/r/orgmode/s/...
reddit.com
From the orgmode community on Reddit: (Released) org-supertag 1.0.0 Released: Unlock Workflows and Custom Commands with the New Behavior System
Explore this post and more from the orgmode community
142
Sacha Chua @sachachua.com · 31/12/2024
2024-12-30 Emacs news sachachua.com/blog/2024/12... #emacs #EmacsNews
sachachua.com
2024-12-30 Emacs news :: Sacha Chua
0173
Reposted by Sacha Chua
Srijan Choudhary @srijan4.bsky.social · 27/12/2024
Capturing slack messages directly into Emacs orgmode inbox (srijan.ch/capturing-slack-messages-…)
srijan.ch
Capturing slack messages directly into Emacs orgmode inbox
Org capture button in Slack message popup Ever since switching to orgmode as my GTD system, I've been trying to (slowly) optimize my capture system for things coming to me from different places. One of the things that I was not satisfied with was capturing and processing inputs from Slack. Slack messages can easily get lost in the fast-paced stream of conversations. Manually copying and pasting messages introduces too much friction, and also removes some context (backlinks), unless a link to the original message is also manually copied. There are ways to save messages in Slack itself, but it just makes it another Inbox to check, and I'm trying to reduce that. I started by using the saved messages feature to save messages in a single place, and later either shifting them to my org inbox manually, or directly working on them and completing them. Then, I shifted to using the Slack Todoist integration to save slack messages to Todoist, and pulling them from Todoist into my org Inbox. I've now found a better mechanism that allows me to seamlessly capture Slack message with it's context into orgmode. Here's a demo: Demo video showing a custom slack button to trigger org capture with the selected message's contents and a link back to the message ## Demo breakdown This method uses userscripts to add a custom button to the hover menu that comes up for any message in slack, and triggers org protocol capture with the message details when the button is clicked. The message details include the sender, message text, and a direct link back to the message. I've set up this protocol handler to ask me to enter the heading of the capured item, but it can be as easily set up to directly capture the message without user input. ## Setup and Implementation ### Prerequisites 1. Slack running in a browser (instead of a desktop app) 2. Browser extention for userscripts (Tampermonkey, Violentmonkey, Greasemonkey, etc) 3. Emacs with orgmode installed 4. Org protocol setup I didn't find a good way to inject userscripts into the Slack destop app, so for now, this method requires using Slack in a browser. It also works when Slack is installed using the "Install Page as App" feature of the browser. ### Setting up Org Protocol Capture Setting up org protocol capture involves two steps: configuring your OS to use Emacs to open `org-protocol://` links, and configuring Emacs to save the captured data as you want. For OS setup, please check the guides for your OS here: https://orgmode.org/worg/org-contrib/org-protocol.html#orge00964c On Emacs side, this is the minimal config required: (server-start) (setq-default org-agenda-files '("~/org")) (setq-default my-org-inbox (expand-file-name "inbox.org" "~/org")) (setq-default org-capture-templates '( ("i" "Inbox" entry (file my-org-inbox) "* %?\n%i\n%U" :kill-buffer t) ("l" "Inbox with link" entry (file my-org-inbox) "* %?\n%i\n%a\n%U" :kill-buffer t))) (setq-default org-protocol-default-template-key "l") (require 'org-protocol) An optional enhancement that can be seen in the demo is: open a new emacs frame to capture this message, then close it automatically after the capture has been done. For this, I use the config snippet from prot's excellent post: https://protesilaos.com/codelog/2024-09-19-emacs-command-popup-frame-emacsclient/ To run emacsclient with the popup frame parameter, I use: emacsclient --create-frame -F \ '((prot-window-popup-frame . t) (name . "org-protocol-capture") (width . 80))' \ -- %u Emacsclient's args can be set in the desktop entry file (linux) or org-protocol.app file (OSX) when setting up org-protocol. ### The userscript For the userscript, I searched for an existing published userscript for Slack that adds a button, then tweaked it a bit to configure the button according to my needs. I've published the userscript here: https://greasyfork.org/en/scripts/521908-slack-org-protocol-capture From this, I learned about an interesting API called MutationObserver that seems very useful for userscripts. ## Notes ### Using emacs-slack Another simple approach for this can be to use the emacs-slack package to directly use Slack from Emacs. I tried this, and it does not work very well for me because: 1. My org limits Slack session authentication to 1 week, and authenticating in emacs-slack is a little cumbersome. 2. We also use Slack huddles, and it does not work well with emacs-slack. ### Possible Improvements 1. Make org capture template configurable 2. Add tooltip to the button 3. Pass even more metadata like message timestamp, channel name, emojis, etc. 4. Maybe some keyboard shortcuts to trigger the capture? ### Limitations / Drawbacks Since this is dependent on the HTML structure of the slack web app, it can be fragile and can break easily if there are changes in the app. This userscript uses the MutationObserver API to observe DOM changes in the whole slack workspace. So, it has some impact on performance. However, I've been using this daily for the last several months and I have not noticed any issues.
031
Reposted by Sacha Chua
José A. Alonso @jalonso.eurosky.social · 27/12/2024
Dibujando figuras con Emacs. ~ Notxor. notxor.nueva-actitud.org/2024/12/26/d... #Emacs
011
Reposted by Sacha Chua
macosxguru @macosxguru.bsky.social · 27/12/2024
Much Ado about Emacs 005 bicycleforyourmind.com/much_ado_abo... #emacs
bicycleforyourmind.com
Much Ado About Emacs 005 - Bicycle For Your Mind
In the last edition I had posted about a problem that I was facing. In short, when I deleted a package from my init file, the package was not
011
Reposted by Sacha Chua
ohyecloudy.bsky.social @ohyecloudy.bsky.social · 28/12/2024
New Post! Emacs를 위한 트리 레이아웃 파일 탐색기 Treemacs 기본 사용법 ohyecloudy.com/emacsian/202...
ohyecloudy.com
Emacs를 위한 트리 레이아웃 파일 탐색기 Treemacs 기본 사용법
Emacs에서 프로그래밍하니깐 트리 레이아웃 파일 탐색기가 그리워진다. Visual Studio 같은 IDE(integrated development environment)에서는 기본으로 제공하는 솔루션 탐색기(solution explorer) 같은 탐색기 말이다. Doom Emacs에 Treemacs 파일 탐색기 패키지가 세팅되어 있어서 사용하기 시작했다...
011
Sacha Chua @sachachua.com · 31/12/2024
It was a lot of fun! There are some more technical details on how to run a conference in Emacs at emacsconf.org/2023/talks/e...
emacsconf.org
EmacsConf - 2023 - talks - EmacsConf.org: How we use Org Mode and TRAMP to organize and run a multi-track conference
010
Sacha Chua @sachachua.com · 31/12/2024
I hear you on life with a newborn! =) Welcome to the community and thanks for sharing your notes!
010
Sacha Chua @sachachua.com · 26/12/2024
I got emacstv-play-random working from Emacs and it is actually pretty awesome. :)
041
Sacha Chua @sachachua.com · 23/12/2024
2024-12-23 Emacs news sachachua.com/blog/2024/12... #emacs #EmacsNews
sachachua.com
2024-12-23 Emacs news :: Sacha Chua
0133