Emacs Everywhere Even In Wayland

I could have written these words:

If you are anything like me, you probably feel something is wrong whenever you have to input text outside of Emacs.

but I didn’t. They were actually written by Thanos Apollo. Like me, he loves the idea of Emacs Everywhere so that he seldom, if ever, has to input text outside of Emacs. The problem is, he’s a Wayland user and the Emacs Everywhere package doesn’t (yet?) work there. Happily, for those of you running Emacs on Wayland, he has a fix for you.

There’s a bit of Elisp to add to your init.el and a package, wtype, to install if it isn’t already on your system. His post shows you how to set things up step by step so take a look if you’re interested.

If you’re not using Wayland—in particular if you’re on macOS—this doesn’t apply to you and you should just install the Emacs Everywhere package. But if you are using Wayland, welcome to the club. I’m sure that you’ll find, like Apollo and I, that being able to input text with Emacs no matter what app you’re in is a game changer and stress reducer.

Update [2025-07-21 Mon 11:00]: Fixed title typo.

Posted in General | Tagged | Leave a comment

Customizing The Help Menu

If you follow Charles Choi’s work, you’ll know that, unlike some of us, he’s not afraid of menus and uses then frequently. His latest hack is to take a look at—and reimagine—the Emacs Help menu. You can read his post for all the details but the thing I really like is popping up help in a new frame. The result is that you can keep the help around for as long as you need it without feeling the need to reclaim the screen real estate.

You can do that with buffers in a single frame, of course, but putting it in an separate frame makes it seem more disjoint from your working environment: it’s right there if you need it but it’s not cluttering up your working buffers.

Choi implements this with three new commands:

  1. Open an Info buffer in a new frame
  2. Open a new Info instance in a new frame
  3. Open a Man page in a new frame

This seems particularly nice if you have enough screen real estate to keep the new frames visible. All the information is there to consult without disturbing your working buffers. It’s a nice way of removing a bit of friction from your workflow.

We here at Irreal prefer not to use menus—although we have been known to under duress—but I really like the idea of invoking separate frames for help. Choi gives the code for his changes so it would probably be trivial to bind the functions to a key shortcut instead of—or in addition to—a menu. Take a look at Choi’s post and see what you think.

Posted in General | Tagged | Leave a comment

🥩 Red Meat Friday: We Should Stop Whining

Want to feel ashamed? Of course you don’t but this post will make you feel that way anyway. Too many of us spend our time whining about the tech we use. One aspect of that is how hard it is to learn Emacs or any other serious editor. Read the technical forums. They’re full of whining: “I don’t have time to learn my tools.” “I’m not wasting my time learning Elisp” “Why can’t it just do what I expect it to do?” “OMG, the keybindings!” And on and on.

Then there’s this guy. He’s been blind since birth and guess what? He’s learned to use Emacs and is thankful for it. He uses Emacspeak for both his programming and writing. He says it fills him with joy.

I don’t know about you but I can’t imagine doing what he does. He can’t see. He can’t even remember seeing but he has still managed to learn Emacs and make it an important part of his life.

What’s that? You don’t like the default key bindings? You don’t like the default theme? It takes too long to load? Get over yourself. If a guy who can’t see—who’s never been able to see—can learn and master Emacs so can you.

What’s most striking to me is that he sees every day as an opportunity to learn something new about Emacs and improve his workflow. We could all learn something from him. We are, really, lucky to have so many great tools available to use, often for free. I’m happy his post pointed this out to me.

Posted in General | Tagged , | Leave a comment

Org Agenda

Chris Maiorana has a post that discusses his thoughts on Org Agenda. His discussion is mainly why you might want to use it and what you’d want to use it for. The main takeaway from his post is that Org Agenda is very flexible and customizable.

You can decide what information you want displayed in the agenda and how you want it displayed. Maiorana lists some of the ways you might want to use the Agenda or, perhaps, not use it all.

Not a bit of it resonated with me. I’ve always simply thought of the Agenda as a list of those headings in certain Org files that have an active date. The traditional way of using it is to have a TODO file or a set of files with TODO items and have those—along with their scheduled and end dates—displayed in the Agenda. I do that too but mostly I use Agenda as a report.

As I’ve mentioned before, I keep a detailed list of my daily activities and these are displayed in the Agenda. This turns out to be useful for more than just taking trips down memory lane. For example, when I have an external appointment, I record when I leave, when I arrive, when I leave the appointment, and when I get back. That way, the next time I have an appointment at the same place, I have an idea of the travel time—and therefore when to leave—and how long it will take to get back. It’s useful information to have and well worth the effort to collect it.

Of course, that’s just one way to use the Agenda and almost certainly not the most common way. But that’s the point: you can mold the agenda to be anything you want.

Posted in General | Tagged , | Leave a comment

The Story Of Mel

I know that I’ve written about this before but The Story of Mel is a classic piece of programming lore that all programmers in my cohort knew. I’m not sure if younger programmers know it so if you’re unfamiliar with the story, take a couple of minutes to read it; it’s not long.

No realistic person would take the story as anything but a parable but the odd thing is that it turns out to be true. Not just sort of true but true. Not only did Mel exist but he did all the things in that story.

The thing I love about the story is that every time I start feeling sorry for myself about how hard my programming work is, I remember Mel and what it was like for him. Imagine having to calculate where to put the next instruction so that it will be under the drum read head when it’s time to execute it. That was literally what Mel was doing.

This a great story and one that I didn’t think was true for a long time. It was only a couple of years ago that I found out that, in fact, Mel really did exist and that the Story of Mel was true. The Jargon File calls the story of Mel one of hackerdom’s great heroic epics. If you haven’t read it or haven’t read it lately, take a look.

Posted in General | Tagged | Leave a comment

You Can’t Make This Stuff Up

Every year or so, Irreal publishes a list of the most popular passwords as determined by those found by exploits. It’s always exciting to see if the perennial favorite password or the hometown favorite (and frequent winner) 123456 will win first place. Every time I see the list my first thought is of Aunt Millie. I’m sure it’s the same for most of you. No one, we think, but the most naive of lusers would use passwords like that.

Sadly, that’s not true. Imagine being a professional developer working for an established company with high profile clients and thinking that it would be a good idea to use 123456 as the default login ID and password for the administrator panel of an applications used by most McDonald franchises to “interview” perspective employees. According to Bleepingcomputer that’s exactly what happened. But wait. It gets better. The security researchers also discovered that the user IDs of prospective employees were simply a counter implemented for each interviewee and that they could access other interviewee’s records by simply incrementing or decrementing the ID.

The result of these two exploits is that the personal information—including, apparently, personality tests—of 64 million people was exposed. After the exploit was reported, McDonalds and the vendor fixed things but who knows how much damage was done.

It’s just inconceivable that a serious company could be making these n00b mistakes. Even “n00b mistake” isn’t quite right. Just about everyone with the least security consciousness knows that those are two things you should never do.

Posted in General | Tagged | Leave a comment

Do We Really Need Lisp Machines?

As you all know by now, I’m a fan of the Lisp Machine concept. Like the majority of people, I never had the opportunity to work on an actual Lisp Machine—they were horrendously expensive and they haven’t been produced in years. They were never commercially successful but nevertheless enjoy an almost mythical reputation.

Today, the best most people can do is Emacs. That’s pretty good, actually, but Emacs can’t begin to match the power of the Lisp Machine operating environment. Still, most of us have come to peace with the idea of Emacs as the modern Lisp Machine.

Most of us but not all. For example, Fulton, over at Fulton’s Ramblings, believes that not only were Lisp Machines were the right thing but that their time is coming again. He notes that while Unix ran on relatively modest hardware, Lisp Machines required significant hardware including lots of memory and a frame buffer. All that was expensive back then and by the time the prices came down, Unix was well established and had captured the market and mind share.

Fulton believes that Unix has a myriad of problems and that those problems will lead to a resurgence of the Lisp Machine era. As much as I love the idea Lisp Machines, I don’t think this is going to happen. Sure, Unix has grown increasingly complex but that’s because it’s addressing increasingly complex problems. Lisp Machines didn’t have to worry about (hideously complex) things like Web Browsers, or even the ubiquitous Web.

Were Lisp Machines to reemerge, they would undoubtedly undergo the same complexification that Unix has suffered. Don’t get me wrong, I’d love to see a modern Lisp Machine but, really, it’s a nerd dream that would almost certainly be unable to gain popular acceptance. After all, we can’t even convince most nerds to learn Lisp.

Even if the nerd market were large enough, what would we use them for? Presumably software development would be the main use but writing software for different Unix platforms is already difficult enough. Imagine how hard it would be if we were developing it on a completely different system.

I’m doubtful that I’ll see the second coming of Lisp Machines but I do have Emacs which is a pretty good approximation and an excellent compromise given the market and technical realities.

Posted in General | Tagged | Leave a comment

Dealing With The Thing At Point

A few weeks ago I mentioned that Sacha Chua is tremendously organized and gave an example of that organization. That example was about how she automated organizing tasks based on her calendar. Now she provides us with another example.

This time, she provides a shortcut for dealing with the thing at point. Someone asked her for a way of either opening the URL at point or searching for the word or region if the point wasn’t on a URL. Chua, of course, not only ran with that but expanded it to be even more useful. She presents code that deals with whatever the point is on in the following way:

  • Unless there is an active region, assume that the thing at point is a URL, word, an email address, or a filename. If it is a region, just add the text for processing as below
  • If there are links, open them
  • If there are email addresses open an email compose buffer with those addresses populating the “TO:” header
  • If it’s a filename, open it
  • Otherwise do a Web search on the word or text from the region

Chua also describes some nice customizations. You can specify what function to call for searching. This is more than just picking your browser of choice. See Chua’s post for the details. This can even be fine grained. You might want to use different “browsing functions” depending on what kind of link it is. Again, see the post for details.

There’s not really enough code involved to make it into a package but if you’re interested, it would be easy to just add Chua’s code to your init.el.

Posted in General | Tagged | Leave a comment

A Back Button For Emacs

I do a lot of my writing on my couch with my MacBook on my lap. That provides a less than optimal typing environment so I frequently mistype a command and end up magically transported to another place and time. Sometimes it’s just to another place in my current file but often it’s to another file altogether.

Apparently, I not the only one who suffers from this. Chris Maiorana, who writes for a living and uses Emacs to do so, has the same problem. He asks, wouldn’t be nice to be able to have a “back key” that would take you back to where you were before you fat fingered some command and were transported into the nether regions.

Maiorana notes that Emacs pretty much has this out of this box with push-mark that stores your location before many location moving commands. It stores your current location in the “mark ring” from which you can pop the location to return to the place where the mark was pushed.

But, asks Maiorana, what if you want to go forward too? It’s not to hard to imagine situations where you want to go back and forward between locations during your editing. It turns out that you can do that too with the help of the backard-forward package. Maiorana has a few more details in his post so take a look if you’re interested.

If you don’t want to add another package, you can simply use Ctrl+u Ctrl+Space to pop the last saved location and go to it.

I use Ctrl+u Ctrl+Space all the time but do forget to use it when I inadvertently find myself in an unexpected place. Whether you choose to install the backward-forward package or simply rely of popping the mark, it’s good to be aware of how simple it is to recover.

Posted in General | Tagged | Leave a comment

The NTSB Speaks

As you probably know, we here at Irreal take a dim view of Management meddling in the inner workings of Engineering. That is not at all the same as taking a dim view of Management: they are an important and necessary part of any business but their expertise does not, usually, extend to the best way of running an engineering department. A good rule, it seems to me, is that if you don’t have an engineering background, leave the running of Engineering to those who do.

That brings us to the poster child for this problem: Boeing Aircraft. Boeing once exemplified the perfect company involved in engineering. For a long time they defined the aircraft manufacturing industry. I’ve written a lot about Boeing and its problems but all those posts can’t begin to capture how profoundly sick the company is.

Now the National Transportation Safety Board has weighed in on the in flight separation of a door plug on a Boeing 737. Read their recommendations. It seems like a list of things that any responsible company would do before shipping a product that people depended on not to kill them. As the NTSB makes clear, this incident was a Management failure both on the part of Boeing and the FAA.

I’m sure there are a lot of lessons that can be drawn from all this but mine is simply this: When managers without engineering expertise start meddling in Engineering, you can be sure that it’s going to end in tears.

Posted in General | Tagged | Leave a comment