Productivity

[Better Than Obsidian?] What Is Doom Emacs? Testing Its Installation and Usability on my MacBook

Thumbnail Image: [Better Than Obsidian?] What Is Doom Emacs? Testing Its Installation and Usability on my MacBook

What is Doom Emacs?

Doom Emacs is a highly customizable text editor built on top of Emacs. Despite its minimalist appearance, it offers remarkable flexibility, making it suitable for programming, writing, task management, knowledge organization, and more.

Key features of Doom Emacs include:

  • Fast Performance: Faster startup compared to traditional Emacs, ensuring efficiency.
  • Customizability: Modular settings allow you to tailor it to your specific needs.
  • Nerd-Friendly Design: A clean UI that balances functionality and aesthetics.
  • Cross-Platform Compatibility: Works seamlessly across operating systems and stores data locally.

After experimenting with productivity tools like Notion and Obsidian, I decided to try Doom Emacs, driven by a desire for something “nerdier” and more customizable.

Why I Decided to Use Doom Emacs

1. I Love Trying New Tools

I’ve used tools like Notion, Obsidian, and Todoist to boost productivity, each with its own merits. Yet, none of them fully satisfied my needs. My curiosity for new tools led me to Doom Emacs as my next experiment.

2. It Piqued My Nerdy Curiosity

Doom Emacs exudes a “cool yet challenging” aura that immediately attracted me. Its potential for immense functionality, once mastered, appealed to my love for tinkering with tools.

3. Promising Customizability and Extensibility

The ability to deeply customize Doom Emacs excited me. It promises an experience where you can craft the perfect editor tailored to your workflow.

4. Independence from Platforms

Like Obsidian, Doom Emacs supports files stored locally. I wanted a solution that wouldn’t tie me to specific platforms and could preserve my data over time.

Installing Doom Emacs

Installation Steps

Below are the steps I followed to install Doom Emacs.

First, check the official installation guide:

Doom Emacs

1. Clone Doom Emacs

Use the following command to clone Doom Emacs:

git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs
~/.config/emacs/bin/doom install

2. Install Required Dependencies

Since I already had Homebrew installed, I skipped that step.

Install the required dependencies using the commands below, adjusting as needed for your system:

# Required dependencies
brew install git ripgrep
# Optional dependencies
brew install coreutils fd

3. Install emacs-plus

On macOS, I followed the instructions from the link below:

emacs-plus

I initially installed emacs-mac, but some keybindings didn’t work properly, so I switched to emacs-plus.

brew tap d12frosted/emacs-plus
brew install emacs-plus

ln -s /usr/local/opt/emacs-mac/Emacs.app /Applications/Emacs.app

In my environment, I found the path using which emacs as /opt/homebrew/bin/emacs. Therefore, I adjusted the command:

ln -s /opt/homebrew/opt/emacs-plus/Emacs.app /Applications/Emacs.app

This creates an alias for the application icon to appear in the Applications folder.

4. Fix Character Display Issues

After launching Emacs, I noticed some garbled characters on the dashboard. The following command resolved the issue:

M-x nerd-icons-install-fonts

*M-x can be triggered with Option + x.

If no errors occur, the installation is complete.

5. Debugging Errors

If errors occur, relaunch Emacs with the following command to debug and check the error messages:

emacs --debug-init

You can use AI tools like ChatGPT for solutions or try to fix them manually.

Additional Notes: Fixing Issues with GUI Launch

When launching Emacs from the terminal, all configurations in .doom.d/config.el, .doom.d/init.el, and .doom.d/package.el loaded properly. However, when launching via the GUI app icon, settings were not applied correctly. Here’s how I fixed it.

In my case, the issue stemmed from a line in ~/.zshrc:

export DOOMDIR=~/.doom.d

This syntax doesn’t expand variables correctly, leading to issues with GUI settings. I updated it to:

export DOOMDIR="$HOME/.doom.d"

Updated Procedure After saving the changes to .zshrc, reload the settings:

source ~/.zshrc

Verify the variable is set correctly:

echo $DOOMDIR

Expected Output: /Users/your-username/.doom.d

To ensure the environment variable is recognized by the GUI application, use launchctl:

launchctl setenv DOOMDIR "$HOME/.doom.d"

Restart the Emacs GUI app and run the following to confirm:

(getenv "DOOMDIR")

You can enter this by triggering Option + x, typing eval-expression, and entering the command above.

Expected Output: /Users/your-username/.doom.d

Summary of the Fix

  • Incorrect syntax in ~/.zshrc was causing the issue.
  • Using export DOOMDIR=“$HOME/.doom.d” ensures proper variable expansion.
  • Applying launchctl allows GUI applications to access the environment variable.

First Impressions of Doom Emacs

Vim-Like Keybindings for Ease of Use

Doom Emacs adopts Vim-like keybindings, making it intuitive for users already familiar with Vim. Although I’m not an advanced Vim user, I quickly adapted to the controls and appreciated how they reduce the learning curve compared to default Emacs keybindings.

Smooth Performance

Running Doom Emacs on my MacBook M2 Pro, I was impressed by its speed and responsiveness. Despite Emacs’ reputation for being heavy and slow at times, Doom Emacs is optimized for modern hardware, delivering a lightweight and smooth experience.

Future Plans for Doom Emacs

The main goal of integrating Doom Emacs into my workflow is to enhance productivity and unify the tools I use. Here are my plans for its implementation:

Task Management with Org Mode

I plan to use Org Mode, Doom Emacs’ native task management system, to organize to-do lists, manage schedules, and track project progress. By doing so, I aim to eliminate the need for separate apps or paper planners.

Building a Second Brain with Org Roam

Using Org Roam, I hope to build a digital “Second Brain.” This tool allows for interconnected note-taking, linking ideas, and projects for easy retrieval and management of knowledge.

Streamlining My Workflow

By consolidating programming, writing, and note-taking within Doom Emacs, I can eliminate the time spent switching between different tools. This should simplify my workflow and improve overall productivity.

Although there’s always a chance I might return to Obsidian or another tool, Doom Emacs offers exciting possibilities worth exploring.

Conclusion

Doom Emacs is more than just a text editor—it’s a powerful productivity tool. Its unparalleled customizability and extensibility make it unique, offering a fully personalized experience. While it may take time to master, this learning journey is part of the fun.

In my next article on Doom Emacs, I’ll explore task management with Org Mode, including its setup and practical applications. If you’re curious about improving your workflow with Doom Emacs, stay tuned!


Megumi’s Note

Doom Emacs is such an intriguing tool! It might seem overwhelming at first, but once you master it, you can create a workspace that feels entirely your own. Enjoy exploring its possibilities!

Megumi | Unplugged Guide
Articles