emacs org-mode

Welcome to the Emacs org-mode category.

You can subscribe to this category only via RSS!

I am working on restoring some of my related posts from my old blog, so keep checking here for new content.

Auto-generated description: A mythical creature resembling a satyr with glasses is sitting cross-legged in a forest setting, holding a glowing orb in front of a laptop.

    First week with Journelly

    I’ve been testing out Journelly for the last week, and I have a lot of good things to say about it. Before we get there though, I want to start by explaining what it is - which is also the single piece of criticism I have about it at the moment.

    Ramírez explains his app as “kinda like tweeting but for my eyes only,” which is true, but in my opinion, not the main point. After all, tweeting (X-ing?) or tooting or whatever is not new. At the same time, there are many excellent journaling apps for iOS, including Apple’s own Journal and the celebrated Day One. Putting Journelly against these apps is also misleading. This is partly why I didn’t understand the excitement around Journelly when I first heard about it, especially from an enthusiastic Emacs user1.

    I would take a step further and say that the average iPhone user, who trusts Apple for all syncing and backup needs and doesn’t know what Emacs is, should skip Journelly and go with the other apps, at least for now.

    But, if you’re reading this post in your org-mode category on your RSS reader, you are not a regular citizen of the internet. We are Emacs org-mode users. So let me tell you why this application is amazing.

    Journelly is a front-end iOS app for org-mode. The notes you take with Journelly are written entirely in org-mode, in a single org-mode file, which you can sync to your Mac with iCloud or another method that works with both iOS and macOS.

    Every note you take, which you create by tapping a large “+” sign in the app, starts with an org-mode header made of a time and location (which you can disable), like so:

    * [2025-04-08 Tue 14:28] @ 123 Sesame St

    On the app, these entries look very polished:

    A Journelly app screenshot shows entries for Wednesday, April 9, 2025, with a link to a buy it for life article and a YouTube video about sleep deprivation.

    Behind the scenes, Journelly also adds the following in the header’s properties drawer (I removed the values below, but Journelly populates them automatically):

        :PROPERTIES:
        :LATITUDE: 
        :LONGITUDE: 
        :WEATHER_TEMPERATURE: 
        :WEATHER_CONDITION: 
        :WEATHER_SYMBOL: 
        :END:
    

    You won’t see these properties (including the weather, which is included in the app when you take a note) on the app in the default view, but you can switch views to the “Markup” to see raw org-mode syntax. Speaking of org-mode syntax, let’s talk about some Journelly magic.

    I use iCloud to sync a Desktop folder for org files to my Mac. This is also where I told Journelly to store its org file (which is called Journelly.org - at this point, it doesn’t seem like you can change this file name). This means that after making an update in Journelly, I can visit the org file with Eamcs on my Mac within seconds.

    Then, through Emacs, I can make whatever changes I want to this org file: fixing typos, adding emphases (say, make certain words show in italics or bold), adding links, whatever. The next time I launch Journelly on my iPhone, it will notify me of the file change and prompt me to reload it. One tap and everything is rendered with the same polished look you see above as if I wrote it from within Journelly itself. The whole thing is so freaking seamless and visually appealing it’s addicting, as I found out quickly.

    Since Journelly’s org file is included in my org-mode agenda (the folder it’s in is defined in my agenda files in Emacs on the Mac), I can easily refile entries from Journelly.org into my big journal.org file which I’ve been updating since 2018. This means that notes I take on the fly, with timestamps and location (and weather!) data, are added to my journal within seconds. After doing this for a couple of days, a thought occurred to me: why stop there?

    A stylish bar with a vintage facade and neon BAR sign sits along a city street.

    As you can see, Journelly knows how to deal with photos well. They are stored in an images folder inside Journelly.org.assets, which is easily accessible if you sync the app’s org file. So, if it’s so easy to use for notes and pictures, why not use Journelly for my project notes and meetings?

    My favorite way to work with Journelly so far is by dictation: I talk to write. This last part is what caused me to change how I think of project notes in general. Instead of writing notes for each project in Emacs, why not just write or dictate them in Journelly? I can easily refile headings into related projects later if I wish, whether it’s a work task, a personal journal entry, or a link from the internet.

    I don’t have to think of what goes where as I take notes. it all goes to one place where it’s easy to see and a pleasure to work with. This concept is not new to me (and it’s well documented in productivity systems like GTD as “inbox” or what have you) - I used to have an OhSnap.org to capture everything. But on my phone, through Orgzly on Android or Beorg on the iPhone, it’s not easy to see nor a pleasure to work with. These apps are geared toward tasks and to-do lists, and that’s part of the problem: when I capture information, I don’t usually know if it’s a task yet, just a note, a workflow, and where it goes. If I do know, then I’d put this task directly into the org file it belongs, so what’s the point? And it all looks so bland and boring and uninviting. On other org-mode apps, writing notes is a chore.

    Journelly blows this mental challenge away. It invites me to take notes and just notes. It’s the opposite of a chore. “Go ahead,” it winks at me, “spill the beans. Snap some pictures. We’ll work on the details later.” Suddenly, I’m free to let my mind go.

    Later on Emacs, I refile personal headers with their notes into my journal, minutes from meetings into my project files, and use org-attach to move the images from Journelly2 to their correct place where they are also stored for backup.

    This makes me wish Journelly would have the ability to attach voice memos, which would work great in a journalling app. I hear from Ramírez this is on his list and will come soon (judging from how responsive he is, we won’t wait long). Who knows, perhaps other files could be added, like video clips and even PDFs for flight or train ticket scans. For now though, the app is still in beta, and Ramírez is working overtime to get version 1.0 out. I will be one of his first customers, that’s for sure.

    In the few days I’ve used Journelly, it has transformed from a nice way to keep a journal to an essential mind dump tool for saving anything I need. I now reach for my phone whenever I want to capture thoughts because it’s just so pretty and easy. If you’re an org-mode user on an iPhone, I highly recommend you give it a try as soon as it’s out.

    Footnotes

    1 - I do tend to miss details, and while the Mac Observer review I read does mention Journelly is based on org-mode, it’s somewhere toward the bottom where my quick scan of the article missed.

    2 - at this point, Journelly stores full-resolution images, which can quickly add up in space on the iPhone. This is easy to resolve with a Shortcut on iOS or a script with ImageMagick. I prefer to do some slight editing to my images anyway (a bit of cropping, some levels adjustments, etc), but these are also things you can do on the phone and automate the compression.

    I want to write more about Journelly, but the problem is that it’s too effective at what it does. Creating notes with it is so easy and streamlined that it’s starting to change my entire workflow for project notes, and that’s a pretty big change.

    Another quick note about Journelly -

    Álvaro Ramírez was kind enough to grant me access to test the app after I found out it’s based on org-mode.

    I just started playing around with it but so far I’m impressed, particularly with its ability to “talk to” Emacs back on my Mac. I can easily edit notes that I created on the phone, and these edits, including links, strikethroughs, and lists, show up on the app in turn.

    There’s more to explore and the app is still in beta, so I will give it a couple of days before I write something more thorough.

    Correction about Journelly

    When I wrote about Journelly the other day, I didn’t expect the guy who makes the app to find me and my post, and answer my post on his own blog. It surprises me every time I get an email or a response because I don’t really think anyone really reads this blog.

    It makes sense that some Emacs folks on Fosstodon would find me, sure, we’re all crazy for the same thing after all, but then I also get email from people who take the time to write in length and open up more, and I just feel this semi-guilt of, “hey, why are you reading my stuff, I’m just talking nonsense.”

    My most popular posts (I use TinyLytics to track traffic, it’s by an independent developer, and it just tracks the essentials, like general geographical location and browser used to read what pages) are Emacs and org-mode related, without a doubt, but there are other posts here as well. As time passes, I open up about more things in my life, or I care less about what people think, or probably a mix of both - and I’m also getting comments about those here and there. That’s especially exciting to me.

    First, there’s some sense of vindication in that (if you grew up being somewhat on any social spectrum, you’ve probably experience enough of “you are wrong and you need to do X because X is what the rest of the world is doing” kind of thing). Second, these communications are always more personal and human. Emacs communications is great too, but it’s more of the thrill of learning a new thing.

    Back to Journelly. I owe both Irreal and Álvaro an apology. Not that what I said was negative criticism in any way (and if it was, I didn’t mean it that way) - it’s just that I didn’t do enough research to learn about the app. I just read the review linked from Irreal, which didn’t really highlight the fact that the app is based on org-mode. That’s a big DUH, folks! Álvaro also created Plain Org, which I’ve used, among other useful Emacs surprises!

    Journelly and org-mode

    Irreal likes Ramírez’s Journelly. To each their own, sure, but after I read the review he mentioned, I’ve been scratching my head a bit. I don’t get it.

    Irreal is a dedicated Emacs user, and I estimate he uses more Emacs in his day-to-day functions than I do - so why does he feel the need to use something that is not Emacs for quick notes?

    One of my theories is iPhone usage. That’s probably a big one. Using org-mode on an iPhone is not easy. There’s Beorg, but it’s geared more toward task lists and calendars than taking notes (even though you can do that, especially if you have templates). Even better, you could include a timestamp every time you record a new note, which is one of Irreal’s needs of his requirements. I’m not sure if he wants to include voice recordings or dictate notes on his iPhone, but both of these things are pretty easy to do - exporting an audio note and attaching it to a header in org-mode is pretty straightforward and can probably be automated.

    My issue with any such apps, especially if they’re meant to capture “everything” (like pictures, short videos, oral notes, etc.), is that pretty soon they start competing with org-mode. What follows is confusion about what I put where which is usually followed by a short burnout of using either one. Then I have a period when I don’t save anything, and I regret it later.

    org-mode is not perfect, but as long as I use it, I have one place where I know I can find whatever I need. At work, I usually keep detailed notes of what I did under each header with timestamps, even if they are just a few lines long. It’s more than just recording information: the act of writing clears up my head and helps me figure out what goes next, and the “emotional memory” (for lack of a better term) reflected in the mood of my notes helps me remember things later that I didn’t think of actually writing down. I can find old records this way, even if they happened years ago.

    As I already said, to each their own. We all get to choose what tools we want to use. This is not about preaching; it’s just that his use case makes me put my Emacs thinking hat on and think about what I would do. These scenarios are interesting to solve.

    I’d love to write him an email or comment, but I can’t find an email address, and the blog’s commenting system uses Disqus, which doesn’t let me log in with any accounts I want to use. Oh well. Maybe he will find this post.

    Emacs 30.1 so far

    Upgrading Emacs is always a project, especially on macOS.

    I’ve been using Emacs Plus on my Mac since I installed version 28, but when I went to update to version 30.1 through homebrew, I got a cryptic git error. From the little research I did, it has to do with commits being in the wrong place. The explanation was something that went over my head, so I shrugged it off and tried Emacs for macOS again. I forget what was the reason this Emacs flavor wasn’t for me in the past, but it seems to work fine now. Well, after I deleted and reinstalled marginalia, exactly as Irreal mentioned. Seems to be working fine now.

    I was excited about completion-preview-mode (if Mickey is raving about something, you got to check it out), but so far, in my experience, it’s just “meh,” at least out of the box. After I got it to work in org-mode (the manual is a bit of a mess and seems to be thrown into the package itself, but I found out what to do in this YouTube video) it’s not much better than what company-mode gives me at the moment, so I’m going to wait until someone probably comes around with “actually, it’s much better because X, and you can find out how to do it over at Y,” or Mickey writes something more complete. The video I mentioned goes into some helpful examples, but I get lost in terms of how to set it up in my case.

    Then, again per Mickey, There’s “The Org URI protocol should now register automatically, meaning you can send data from a browser bookmarklet straight into org capture in your running Emacs instance.” I remember I once got it (or something similar) to work with org protocol, but a native option turned on like this seems very good, and I’d love to be able to send text and links from my browser directly to Emacs. I’m not sure how to get this to work either. I recall I need to run Emacs as a server in the background and then launch Emacs as a client, but this is beyond my current macOS kung fu. The issue with finding how is usually knowing what to look for. I need to be more specific about my research, but i’m not sure what it is I’m looking for.

    Upgrading Emacs is always rewarding because I also get to upgrade my brain with it. I learn how to do new things, and do them more effectively. I’m sure I’ll be back at tweaking pretty soon.

    back in the groove

    As I’m getting back into the “groove” of things, I started this pattern:

    1. Wake up. Switch to home clothes from PJs.
    2. Go to the kitchen, get some water, listen to the birds and think for a bit (about 10 mins)
    3. Exercise: stretches (mostly focusing on back and posture), with some push-ups and crunches.
    4. Meditation (5 mins) follows exercise
    5. Back to the kitchen to make coffee and breakfast
    6. Eat, take vitamins, talk to Nat as his morning starts as well
    7. Start working:
      1. View the agenda for the day (meetings, major projects, TODOs)
      2. Looking for Pinned emails from previous days and Reminders, combine them into TODOs for the day
      3. Start tackling tasks in my agenda (emacs org-mode), recording what I’m doing in notes
    8. Around 13:00 to 15:00 (depending on meetings and things), time to exercise, or if I’m in the office, go back home for this. No targeted goal specifically yet; it’s mostly about the routine, but I’m trying to include a jog here if I can, or weight lifting
    9. Back to work: this is a good “quiet time” to work on projects without interruption, depending on meetings.
    10. Around 18:00 or 19:00 finishing work. Nat’s back at that time, or I spend time with another partner, depending on the day.
    11. Around 20:00, I enjoy a show (these days it’s Silo) or video games (Helldirvers2 mostly at this point, but there’s also the excellent Mind over Magic I need to review soon)
    12. I usually sleep around 22:00 or 23:00. Hopefully I can keep up the 7 hours of sleep I get a night or so, which means I wake up around 6:00 the next day to start again.

    There are many points that change in this workflow (for example, if I blog, it’s usually in the morning at some point after food, if work allows), but in general, this is the outline I try to get back to.

    Once again I see the benefits of channeling all my tasks that come from emails, reminders, my calendar, phone calls, meeting etc - into my org-mode agenda, where I have one simple list without distractions of what I need to do. If it’s not there, I’m not doing it that day. And there’s always more than I can finish each day anyway, that’s just the nature of things.

    The big benefit (I’ve said so many times in the past) here is that because I log what I do, I know exactly what was done and I have a good idea of what needs to be done next. This is also very useful when there’s a new project, and you can just use the template from last time. Good stuff.

    More Emacs would be nice, but...

    Earlier this morning, when I was up between my sleep phases, I was looking for some Emacs content through irreal, one of the most prolific Emacs blogs out there. Irreal publishes a post every day, and these posts usually summarize and link other Emacs-related posts to other blogs. It’s easy to find blogs with good Emacs stuff and check their archives for even more Emacs. That’s the life of an Emacs user - learn it, tweak it, find another cool thing you haven’t thought about, learn it, tweak it…

    I would like to have more Emacs in my life, but unfortunately, it’s not easy.

    My blog archives are full of complaints about Microsoft products and web tools that I have to use because of work. I can’t use email in Emacs because logging into Office 365 for work is restricted, and no other apps but Outlook can access it (not even Apple Mail). ServiceNow, the platform we use for IT tickets, has an API, but it’s also heavily restricted, forcing us to use the browser. Communications and phone calls happen on Teams, another closed Office 365 application. It’s not even just Microsoft specifically, even though I like to blame them: it’s the cloud.

    I work with different IT departments, engineers, and managers. Usually, when app X doesn’t answer certain needs, the solution is to find a new app, which in turn is also integrated in the cloud with its own restrictions. This happens so many times that we don’t get the chance to explore the depth of one app before there’s another one. Each person brings his own new favorite app to add to the party.

    I’m guilty of this too, on a personal level. I love writing in Emacs, but my favorite writing companion, Grammarly, doesn’t work with Emacs (yes, I know there were some packages for it in the past; they were abandoned, and as far as I know, Grammarly doesn’t have a working API anymore). Micro.blog uses its own macOS app for writing content, which brings convenient integration to my other content (like my photos and saved bookmarks) that I don’t currently have in Emacs, so I just copy-paste my posts into it these days. Even good tools like being on my iPhone are not as fluid as Apple Reminders or Notes, and it’s just easier to start something there and have the discipline (this is the weak link) to bring it all back into Emacs later.

    Still, despite all of that, I love working in Emacs. It brings me peace that no other app does at this point because it’s entirely mine. I know where everything is, I know how to tweak it (or I can learn how to), and I can access its org files everywhere, even if I don’t have Emacs installed. No other application organizes my life and projects so well and for so long, and I don’t see anything replacing it in the near future.

    After yesterday’s issues, today I split my now.org into four different files: personal projects, work projects, work meetings, and blog projects.

    Thinking about how to organize the projects in those, I rediscovered org-sort. I think I’m on to something.

    More problems with my projects and meetings in org-mode

    In my capture templates, I now use prepend, which works well and puts my captured header at the top of now.org, which is what I want. The problem is that I barely use the meeting capture template I’ve made. I refile from my calendar file 95% of the time, and Refile places headers at the bottom of now.org bottom. The results: new projects are at the top, and new meetings are at the bottom. Chaos.

    I know I can reverse how Refile works, but I’m not sure I want this to work globally. I can start hacking things and write functions to refile meetings the way I want, but I’m starting to think my problem is bigger than that.

    See, the above is just the latest issue in the last week. When I was sorting through tasks on now.org I saw a bunch of TODOs that were tied to a project at one point on the project level; that is, TODOs are filed among the ACTIVE project level, floating out of their parent projects, and as some of those get old I have no idea what projects they were used to be a part of. Why did that happen and why, I don’t know.

    On top of that, I just had the issue yesterday where some of the headers lost their “**” at the start of the header, non-headers.

    I can’t trust my now.org like this. I’m frustrated, and I just want to throw every single project into its own file at this point, just because of this mess.

    I need to calm down get back to the basics and define my main workflows (meetings vs projects vs quick tasks etc.)

    How I handled projects in Emacs org-mode in 2024

    I mentioned my projects file, now.org, is getting a little bit out of control. I’ve been playing around with a few ways to organize it since.

    This is firstly a conceptional problem, one that has to do with how I organize things mentally before I can go into the technical level of how to tell Emacs to do it: a “what do I want to see?” question before a “how do I do it?” one.

    Let me start by showing you what my project file looks like now:

    A text-based task organizer (Emacs org-mode) displays various projects labeled as active, done, canceled, and deferred, complete with completion percentages.

    As you can see, a lot is going on.

    One of the issues that are already fixed in this image is having the “DONE” or “CANCELLED” projects at the end of the file. This looks more organized than having them mixed with the “ACTIVE” projects all over, and it also allows me to focus on the things I’m currently working on as soon as I open the file.

    By default, org-mode adds newly created headers at the bottom of the file. This means that every time I add another project or a meeting (an “ACTIVE” or “MEETING” in the image), it goes to the bottom of the list, right under the last header. I have to fix this manually by standing on the header I just created and moving it up with (M+↑) all the way to the top. However, I recently looked for a solution and found it: adding prepend: t to my capture templates. This reverses the order, so this problem will automatically sort itself out.

    In my image, you can also see that some headers start as “Project:” and then the project’s name. This is redundant, and I hope to get rid of this soon because anything that is marked as “ACTIVE” is a project - which is defined by having sub-tasks (marked as “TODO”) under it; the idea is that a project is a large undertaking that has to be broken first to manageable parts:

    Auto-generated description: An Emacs org-mode screen capture shows a project management interface with tasks, status updates, and some completed and pending items.

    I write notes under each one of those sub-task headers (as you can see under the first one). I also find it helpful to attach relevant files (in this example, the Reserved IPs header has an Excel sheet containing details). I find that it’s easier to find files through Dired on Emacs than it is looking for them in my work’s OneDrive because they are tied to the project in the right place and arranged by date at the same time by my header’s ID (I changed that from random slugs to date-formatted IDs in the past). I can also jump directly to the directory with those files with C-c C-a F, and then use the open command on macOS (M-x !open) to open it with the default application.

    Most of the projects in both images have a percent to completion next to them. Since I usually don’t know what a certain project requires to complete when I start it (what subtasks are required or how many), this is more of a general guide, if anything. Still, I like knowing how much of a project is already done. The percent cookie is an feature built into org-mode1.

    Not in the images yet are emojis. I’m playing with the idea of including a small person emoji (🙋‍♂️) in “MEETING” headers to make them stand out a bit more. Meetings, as it turns out, are a special kind of project. It’s a place where a lot is going on at once, and I mark a “MEETING” as “DONE” only after all the actionable notes are distributed to tasks. Meetings can include tasks that start a whole new project or fit into existing ones. It’s also possible to meet about a certain project, so the “MEETING” header needs to be refiled under an existing project later as one of the subtasks. Meetings can take a long time to break down and follow up on, making them a project in themselves: this is why I found that giving them a dedicated keyword is a good way to handle them2.

    Another thing I added to the projects' capture template is clocking in as soon they’re created with :clock-in t. I often forget to clock out later, but I want to keep trying and build this as a habit. If I create a clock with a project, Emacs creates a :LOGBOOK: line for me with the time I started working, and I can correct the hours later. This is another area where it’s more of a guide than critical information: it’s often inaccurate (because I forget to clock out and then in again), and also, it doesn’t matter to me if I work half an hour more or half an hour less on something. It’s more of an indication of how much time a certain project took and how often I worked on it during the week.

    Projects are also tagged with people I regularly work with. I know some folks (and I get to know many more) personally. When this happens, it’s helpful to see recognizable projects and tasks tagged with names I know. Since tags are hereditary in Emacs, an entire project can be tagged with a person if it’s required, but usually, I need different people for different subtasks of a certain project, depending on what I do. This is helpful to see how much I am working with a certain person, what on, and what that person does. I also have another file for people I work with, along with their names, their ID, their department, and what they do; it’s my useful “I know a guy” file I can tap into when I need someone to do something or when someone else asks me if I know how to handle a certain thing. I then can say, “I don’t, but I can find someone who can for you.” Helpful.

    I can add a couple more things here, but this is probably a good place to stop. If you have any questions or suggestions, feel free to comment! I’d love to hear from you.

    Footnotes

    1: It’s also worth noting that half of the time, I need to “re-ACTIVE” a project marked as “DONE” because of a new development or because it would happen again and might become more of a routine. This means new “TODO” tasks are added below, and the percentage goes back down from 100%, so, yes, this is more a visual guide than anything concrete.

    2: I use at least two (but sometimes more) datestamps in a “MEETING” project. The first time stamp is usually before the meeting takes place: this is where I write down a list of bullet points I want to bring up and discuss. The second timestamp takes place during the meeting (I type while people talk, and I ask them to slow down or wait if I need to (by the way, this is something that worked horribly for me with a notebook: my attempts and my attempts at something that looks like handwriting in meetings while rushing were laughable at best. I missed critical points that way). The second timestamp then becomes an indication to look for actionable items later. Since I write these notes in bullet points, it’s also easy to copy them back into Outlook with minor editing to leave a summary or meeting minutes later.

    my Emacs projects file (which I call now.org) is becoming too big. The agenda is still snappy, and I can work with it, but it just looks like a pile of “stuff” that I need to do or did. I want to organize it better somehow…

    #emacs #orgmode

    I just typed away in my journal for an hour:

    Region has 32 lines, 16 sentences, 1574 words, and 8124 characters

    Man, I have to use more periods. Too many run-on sentences.

    Not something I could do in my handwritten journal. It would take me a week, especially if I want to be able to actually read what I wrote, and not have crazy cramps in my right hand.

    I still want this to be physical somehow… maybe I should just print it? I don’t know.

    Filtering org-agenda to *exclude* a category

    Back in July, I explained how I use Beorg to sync my calendars. To recap, Beorg continuously exports the iOS calendar into a read-only org file, which I then sync to my Mac’s desktop through iCloud.

    The calendar.org file shows on my Emacs agenda, where I can see both my Outlook (work-related) meetings and my Gmail (personal) events. This is very nice, but because the calendar.org file is read-only (as it should be—it keeps being overwritten by the Beorg every time the iOS calendar syncs), I can’t use it for anything besides this visual information.

    If I want to create a project from a meeting and add notes and sub-tasks, I have to copy the event from my calendar.org file to Now.org, where I keep my current projects and tasks. There, I can add notes and headers.

    But then there’s another problem: when I copy my headers over to Now.org, my agenda shows duplicates - one event header comes from calendar.org, and the other comes from Now.org after I copied it there. Here’s what it looks like:

    Auto-generated description: A digital calendar displays scheduled events including reviews, onboarding huddles, and meetings, with some marked as DONE or MEETING.

    When I start my day, it’s important that I see calendar.org so I can copy over details to now.org. Once I’m done, however (clearing the Calendar tag, adding a keyword like MEETING, and cleaning the text under the header from details I don’t need), I no longer need to see calendar.org, and I want it to disappear.

    I was looking around for a solution to this problem, and of course, it was right under my nose. Org-agenda comes with the option of narrowing down (filtering) the agenda to a category at the point with <. What I didn’t know is that C-u < does exactly what I want: the opposite of the above. It hides the category selected. Problem solved.

    Irreal on my writing habits

    Irreal commented on my recent posts about writing (analog vs digital). Irreal doesn’t understand why I’m hesitant:

    To be honest, I don’t understand his ambivalence about the matter. He lays out the case for both and shows that, except for a vague feeling of attraction to writing with pen and paper, the digital method is more efficient and satisfying. The digital product is so much more useful and flexible that it seems there should be no question as to which to use.

    Spoken like a true sysadmin. But he’s mostly right.

    Pen and paper convey an intimate feeling and a connection to what I write that I can’t get out of typing on the keyboard. It’s not about how fast or clear it is. But that’s the thing, it’s a feeling. At the end of the day, if I need to capture information and have it available to me whenever I need it, digital wins by a large margin.

    Over the last two weeks, I’ve started to reap the benefits of returning to digital and fully utilizing org-mode.

    Meetings notes full of details, organized by date and time; Projects I’m working on are broken down to smaller manageable tasks; floating emails and quick reminders quickly tie into a workflow that I can find later and connect to a system and don’t get forgotten or lost. I can slowly breath again, and I’m starting to find the fun in work again.

    Meanwhile, I’m also able to write more on personal events. I don’t have to fully reflect on every event, as I would do in the hand-written journal. Instead, I now have an option of including a list of places I visited with a friend last night or perhaps a picture showing a fun activity. Sure, I could do that in my written journal, but it feels too special: I don’t want to “waste” the page on a simple list of locations. Digital just makes more sense for that, since my agenda with its events listed with details is not the same as my journal.

    I don’t know, I guess we’ll see. I do miss the idea of the written journal just enough to pick it up again sooner rather than later.

    New emacs org-mode category in place…! Actually, it was there for a while, but now it’s in the navigation bar, complete with my own AI illustration of what the Emacs GNU looks like. Check it out: taonaw.com/categorie…

    Digital Notes vs. Analog notebook

    The other day, I needed to copy some notes from my pocket notebook to my project file in org-mode, which is synced to my iPhone with iCloud. I was on the subway on my way downtown with a friend.

    I played around with Beorg, which allows me to work with org-mode files on the go. Not only did I manage to get all the items in, but I also figured out how to display my active projects on the app so they show neatly on my weekly agenda.

    It was relatively painless to transfer my handwritten notes into the file. I was also able to add a few more to-do items with the app, something that would be nearly impossible to do with my notebook on a moving and shaking train. My handwriting is terrible enough as is.

    When I got home, the updated file with the tasks was already waiting on my Mac, synced.

    I spent my reading time in bed reading into Beorg’s documentation. I was excited but also conflicted. Should I even bother with my pocket notebook when capturing notes with my phone (and watch, with Reminders) is so easy? Is there any sense in transcribing and deciphering my handwritten notes into dates and checklist items when those can be created semi-automatically for me?

    The speed alone, not to mention the clarity and search capability, would increase my productivity to a new level—one that I definitely need at work right now.

    Back to digital journaling once more...

    For the last week or so I’ve been journaling on my computer again instead of in my notebook. This is a cycle for me I keep going through.

    The urge to write in a handwritten journal is there, and I love the feeling of sitting down at a desk with a good pen and paper pages. The problem I’m having is the amount of details I need to put in—and with it, the time I need to spend on writing—and the references I need to make while writing.

    Unsurprisingly, the culprit is my work. There are so many to-do items each day that, combined with my personal tasks, Start to cause me to lose track of the big picture. While I still have my projects organized in big bullet points with all the references I need in org-mode, I am missing the “so, what does this make me feel?” aspect of it all—the reflection of looking back on what I did last week or last month.

    This is where my written journal would have fit in, but a written journal cannot link to my projects directly. Meanwhile, when I want to write about a fun hangout I’ve had, I want to include a list of places and map snippets, and while I can do that in my notebook, I just don’t have the time to find the locations, write down the addresses, and print out maps snippets - all are things I do within minutes in my digital journal.

    Another issue is that my hand cramps if I keep writing for a long time, especially as I start writing faster or get excited. My handwriting becomes sloppier and I can’t fix my spelling mistakes without crossing out a word. Sure, I can use write out (or Tipp-Ex, depending on where you’re from), but that introduces even more time and more friction.

    I started to realize that instead of just writing, the first thought I have is if I should write, where, and when. The option of taking out a personal notebook filled with intimate details is not realistic in most cases most of the time, so I can only reflect on my day at specific times that I don’t always have or want to spend on something else. I miss the availability of “just writing” what I need.

    Ironically, I use a notebook, my pocket one, to write quick ideas or summaries. Again, it comes down to speed: taking my pocket notebook out of my pocket with my pen to write something down is faster than doing it on the phone.

    So I guess I came a full circle. Journaling is digital, and quick ideas I want to capture are handwritten in a notebook. 📓 🤷🏼

    Emacs-plus PATH in macOS Sequoia

    Important: this is for emacs-plus for macOS via Homebrew.


    After the upgrade to macOS Sequoia, Emacs' Dired didn’t find gls, which made it impossible to navigate to folders and open files this way. When a program can’t find another program, it’s usually a sign something is wrong with the path environment.

    On Mastodon, Jumile directed me toward a discussion about a similar error on Github. Seems to be a path issue indeed, from what I can tell. Something with PATH injection in Emacs (I don’t know what this is yet, but from the name, I get a vague idea. This seems to be an interesting read)

    Two solutions and a workaround.

    The workaround is to launch Emacs from the terminal, which loads the environment correctly.

    Something more permanent is manually doing what emacs-plus does automatically: copy and apply the PATH in the init file, as explained in the GitHub above. To do that, you want to go into Info.plist inside the Emacs package: /opt/homebrew/Cellar/emacs-plus@[your version number here]/[version number]/Emacs.app/Contents and locate the PATH string (search for “PATH”). On my system, it looks like this:

    <string>/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin</string>

    And copy it into the init file, telling it to set the environment like so:

    (setenv "PATH" "/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin")
    (setq exec-path (split-string (getenv "PATH") path-separator))
    

    Something even better came from David Hagerty: exec-path-from-shell. This package is “copying important environment variables from the user’s shell: it works by asking your shell to print out the variables of interest, then copying them into the Emacs environment.”

    I tested it out, and it works as advertised. This is a more reliable solution than copying the path manually each time, though it’s important to understand what’s going on and what it does.


    On Reddit, slashkehrin added the actual path issue on Github.

    What is or why Emacs?

    My “Emacs day” is July 11, 2018. Or in org-mode, it looks like this: [2018-06-11 Mon]. As I noted last year at that time, it is the day I wrote my first official journal post in Emacs org-mode, and the rest is history. I’ve been a daily Emacs user since that day.

    Both my partners joke about Emacs. NK calls it “Immaculate.” When I asked them this morning to guess what I was going to write about, they rolled their eyes and nailed it on the first try. At the same time, Nat and I have “venting sessions” where we sit down and talk about work and life. If there’s something that’s too complex and I need their patience as I unfold a story, I lead with “Well, this is kind of an Emacs vent, but…” and Nat knows to brace himself.

    But what the hell is Emacs, anyway?

    I’m not sure I explained it in a way that makes sense. The problem is not explaining what tool Emacs is or what kind of software; that’s pretty easy: It’s a text editor, like NotePad, TextEdit, or that horrible, well-known Microsoft Office one I dare not associate with Emacs in one sentence. Asking what is Emacs sells it short and doesn’t explain why so many people swear by Emacs every day. Perhaps a better question is why. So, as the blog’s title suggests, don’t ask why; I’ll explain anyway.

    Some people compare Emacs to an operating system of its own, which makes sense: it comes with so many built-in tools you could fire it up and probably do all of your computing work without ever exiting it. Well, in a command-line computer-geek kind of way.

    Some of the things I use Emacs for all the time, besides writing, of course (it’s a text editor, remember?), are to navigate and operate my Mac’s files, read other blogs I subscribe to, check my calendar for events, and manage my projects and todos. I do all of those inside Emacs. But even so, why not just use my Mac’s tools or Windows if I were to use a Windows computer for my productivity?

    The answer, which may not make sense to you if you’re not an Emacs user, is that Emacs is quicker and simpler and thus better for me to use. The key thing is that if it’s not better to use for something, I can manipulate and customize it until it is. My Emacs is made for me, and if there’s something I need to change so it fits better, I can do just that. Emacs is completely customizable, which means you get to tinker and manipulate whatever you need until you get those tools to work exactly the way you want them to.

    Imagine you get up and make drip coffee. You grind your beans, fill in water, carefully place the filter with the grinds, and turn it on. Now, imagine that turning on the coffee maker doesn’t only start brewing your coffee but also turns on the toaster with two slices of fresh bread and also displays a crossword puzzle automatically on your phone. Not only do these things happen automatically, but also the bread is always toasted the way you like it, the coffee is automatically dispatched from your favorite roaster, and the crossword puzzle is tailored specifically to a level of your liking. On top of that, to continue with the metaphor, you can always make changes (change the coffee type, for example, so you make yourself a cappuccino instead of drip) quickly and easily, and the knowledge and ability to do so is completely yours to do whatever you want with it, for free, forever.

    If you could do all of that, would you still go to Starbucks to get your coffee?

    Sounds almost like magic, but for a computer, that’s what Emacs is. You could use it to read and write emails, look at maps, browse the web, listen to music, and over other 5000 additional things that exist just in its main library (it’s not even the biggest one). All of those are available for free, code and all. When you’re an Emacs user, all of these functions are available to you with the same ease - and keybinding - that your fingers are already used to.

    Perhaps now it’s a bit easier to understand why Emacs is difficult to explain. It’s not just another application. it’s a lifestyle. To me, it has been the ultimate productivity hack - and it keeps getting better.

Older Posts →