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
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
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
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 · 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 · 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 · 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
Reposted by Sacha Chua
Álvaro Ramírez @xenodium.bsky.social · 23/12/2024
@sachachua.com and I were keen to get an #emacs video index going, so we put together emacs.tv More at lmno.lol/alvaro/hello...
lmno.lol
Hello emacs.tv
21810
Reposted by Sacha Chua
Bozhidar Batsov (a.k.a. Bug) @batsov.net · 17/12/2024
Great news, everyone! This year's "State of CIDER" survey is out! (see docs.google.com/forms/d/e/1F...) Please, take the time to share how you're using CIDER, so we can make it even better! I'd appreciate it if you shared the survey around, so we can get as much input as possible! #Clojure #Emacs
docs.google.com
075
Sacha Chua @sachachua.com · 17/12/2024
2024-12-16 Emacs news sachachua.com/blog/2024/12... #emacs #EmacsNews
sachachua.com
2024-12-16 Emacs news :: Sacha Chua
0194
Sacha Chua @sachachua.com · 26/11/2024
Ugh. I would like to restream #EmacsConf from Icecast video to a Youtube live stream for extra discoverability, but I'm having a hard time figuring out an ffmpeg command that I can run on my P52 without having the audio stutter. Any chance someone already has a favorite incantation?
361
Sacha Chua @sachachua.com · 26/11/2024
2024-11-25 Emacs news sachachua.com/blog/2024/11... #emacs
sachachua.com
2024-11-25 Emacs news :: Sacha Chua
0191
Reposted by Sacha Chua
The Emacs Cat @olddeuteronomy.bsky.social · 20/11/2024
Some Excerpts From My #Emacs Config olddeuteronomy.github.io/post/some-ex...
olddeuteronomy.github.io
Some Excerpts From My Emacs Config
I’m happy to be back after one year away and it feels great. Below are some chaotic mini/micro – or even nano – excerpts from my ~/.emacs file I have been tuning in for 12 years. These days, I’m runni...
062
Sacha Chua @sachachua.com · 17/11/2024
@silcrow.bsky.social saw your email! I love love love libraries. Not sure how much you can get out of my brain aside from effusive appreciation for the Toronto Public Library, whose surface I barely scratch. We borrow lots of books and ebooks, but I haven't yet used their fabrication studio.Someday!
040
Sacha Chua @sachachua.com · 16/11/2024
All right, I've set up my domain as my handle here, so I'm @sachachua.com . Picked that instead of sach.ac because that might get misremembered as @sachac, who isn't me; I'm late to the party. =) Can't bridge from my self-hosted GoToSocial (github.com/snarfed/brid...) yet, I think.
sach.ac
Home :: Sacha Chua
090
Reposted by Sacha Chua
Eph Zero @ephzero.bsky.social · 13/11/2024
Might as well post this here too: I was laid off last week. SQL monkey for hire. Business process analysis and systems support as well. Remote anywhere or hybrid in Madison, WI. Any leads appreciated! Link to resume: drive.google.com/file/d/1RkZ_... #layoffs #laidoff #sql #bigquery #lookerstudio
drive.google.com
brandt_resume_2024_11.pdf
112
Reposted by Sacha Chua
jd @jd.codes · 13/11/2024
New post up about building Transient Menus in Emacs. jd.codes/posts/transi... I really need to figure out my image situation 😅 #emacs
jd.codes
JD Codes
A place to talk about stuff.
222
Reposted by Sacha Chua
Boško Ivanišević @pragdevnotes.com · 14/11/2024
I didn't know that giving prefix argument to M-x occur will display surrounding lines kristofferbalintona.me/posts/202411... Very nice feature. #Emacs
183
Reposted by Sacha Chua
Chris Lowis @chrislowis.ruby.social.ap.brid.gy · 16/11/2024
Had a tidy up and simplification of my #emacs config and put it on github: github.com/chrislo/emacs
162