Werden wir Helden für einen Tag

Home | About | Archive

Advent of emacs #20: How I do context separation in emacs

Posted on Dec 20, 2022 by Chung-hong Chan

Today is a little break, like I did on day 10.

emacs is incredibly malleable. It is pretty easy to create an emacs setup that collapses multiple contexts, e.g. I am programming in one context, talking notes in another, and using social media in another. Quasi, like the ultimate attention drag of our time: our smartphone.

I use emacs for its power to boast my productivity. Sometimes, I need to reduce a bit of malleability so that emacs remains my productivity powerhouse. I don’t want to “live in emacs” and there are many things I don’t want to do in emacs. A recent example is setting up my RSS reader in emacs.

I cut 80% of my social media usage and have elfeed by Christopher Wellons et al. in my emacs. I maintain that one should read news directly from news websites, not from social media. I need to read news. But I made a mistake of adding the RSS of Tagesshau to my list. Don’t get me wrong: I think Tagesshau is super important, probably the best public broadcaster on earth. But when the context of news reading was added to my emacs experience, I felt quite bad. Also, the update frequency of a news website is too high and I was quickly overwhelmed. I finally decided to cut Tagesshau from my RSS (and instead checking its website with my browser) and my elfeed is only used for reading rarely updated RSS feeds of scientific journals and some blogs 1.

(use-package elfeed
  (setq elfeed-feeds
		  ;;("https://www.tagesschau.de/xml/rss2/" news)
		  ("http://fullcirclemagazine.org/feed/" linux)
		  ("http://feeds.feedburner.com/JackysBlog" blog)
		  ("http://www.jstatsoft.org/rss" journal)
		  ("https://www.tandfonline.com/feed/rss/hcms20" journal)
		  ("https://computationalcommunication.org/ccr/gateway/plugin/WebFeedGatewayPlugin/atom" journal)
		  ("https://ijoc.org/index.php/ijoc/gateway/plugin/WebFeedGatewayPlugin/atom" journal)
		  ("https://journals.sagepub.com/action/showFeed?ui=0&mi=ehikzz&ai=2b4&jc=hijb&type=axatoc&feed=rss" journal)
		  ("https://www.tandfonline.com/feed/rss/upcp20" journal)
		  ("https://journals.sagepub.com/action/showFeed?ui=0&mi=ehikzz&ai=2b4&jc=crxa&type=axatoc&feed=rss" journal)
		  ("https://rweekly.org/atom.xml" tech)
		  ("https://sachachua.com/blog/category/emacs-news/feed" emacs)
		  ("https://cprss.s3.amazonaws.com/rubyweekly.com.xml" tech)

For a time, I have also controlled Spotify from emacs using a hack-together hybrid of ncspot and vterm. But I quickly remove it. That’s too much. I rather use the Spotify client. And an even more recent example is Mastodon.el. I installed it, but quickly removed it.

Instead of customizing emacs, I find it even more important to customize my wetware also. I install this in my wetware: I want to limit my emacs to programming, writing, system management, and some reading. Context collapse creates cognitive overload. By separating the contexts, I have a better emacs experience. But…


I miss my mu4e setup. In my previous job, I could check my university e-mail through mbsync and manage e-mails by mu4e. I considered checking and reading work e-mails within the context in which I use emacs. My new job requires e-mail checking through VPN and it makes setting up mbsync quite difficult. I have to use webmail (Outlook Web Access), which I kind-of don’t like 2.

Moving on

In the next 3 posts I will talk about emacs lisp.

  1. I actually don’t like newsletters. If you maintain a newsletter, please provide an RSS feed also. 

  2. Another thing I don’t like is the reliance on Microsoft Teams for internal communication. But as I said previously, I can’t change the HCF. 

Powered by Jekyll and profdr theme