Spotting Emacs In The Wild

Emacs is one of the big classic text editors, right up there next to vi. It’s famous for its interface and its ubiquity across the *nix world. It’s such a core piece of software in the coding world that it has showed up a fair few times in popular culture—and [Ian Y.E. Pan] has collated some of those appearances. 

Emacs played a role in The Social Network, the retelling of the origin story of Facebook (the social network everybody used to use). Notably, Mark Zuckerberg used the tool to slap together a script for scraping a website. It also appears in Tron: Legacy, Arctic Blast, and the tech TV comedy Silicon Valley—more than once, in fact.

Other appearances include comics, Japanese anime series Key The Metal Idol, and a few miniseries and documentaries to boot.

[Ian]’s list is unlikely to be exhaustive. Both because he hasn’t seen every movie or TV show ever made, and because you can make new content featuring Emacs references tomorrow if you so desire. Still, it’s fun to see some of the famous properties that have featured good ol’ Emacs.

Don’t hesitate to let us know if you happen to put together a similar list about vi. The tipsline is waiting.

Video Clips With Emacs

Sometimes it seems like there’s nothing Emacs can’t do. Which, of course, is why some people love it, and some people hate it. Apparently, [mbork] loves it and devised a scheme to show a video (with a little help), accept cut-in and out marks, and then use ffmpeg to output the video clip, ready for posting, emailing, or whatever.

This was made easier by work already done to allow Emacs to create subtitles (subed). Of course, Emacs by itself can’t play videos, but it can take control of mpv, which can. Interestingly, subed doesn’t insist on mpv since it won’t work on Windows, but without it, your editing experience won’t be as pleasant.

Continue reading “Video Clips With Emacs”

On Vim, Modal Interfaces And The Way We Interact With Computers

The ways in which we interact with computers has changed dramatically over the decades. From flipping switches on the control panels of room-sized computers, to punching holes into cards, to ultimately the most common ways that we interact with computers today, in the form of keyboards, mice and touch screens. The latter two especially were developed as a way to interact with graphical user interfaces (GUI) in an intuitive way, but keyboards remain the only reasonable way to quickly enter large amounts of text, which raises many ergonomic questions about how to interact with the rest of the user interface, whether this is a command line or a GUI.

For text editors, perhaps the most divisive feature is that of modal versus non-modal interaction. This one point alone underlies most of the Great Editor War that has raged since time immemorial. Practically, this is mostly about highly opiniated people arguing about whether they like Emacs or vi (or Vim) better. Since in August of 2023 we said our final farewell to the creator of Vim – Bram Moolenaar – this might be a good point to put down the torches and pitchforks and take a sober look at why Vim really is the logical choice for fast, ergonomic coding and editing.

Continue reading “On Vim, Modal Interfaces And The Way We Interact With Computers”

Build Your Own Bootable Emacs Environment

An old joke is that Emacs is a text editor with an operating system included, given that its extensibility and customization often goes far beyond traditional text editors. Part of its well-earned reputation comes from being built in Lisp which allows it to be expanded to do almost anything. Despite this in-joke in the community, though, you will still need an actual operating system to run it, but not much more than that.

This project uses User-Mode Linux (UML) as a foundation to load almost nothing other than an Emacs editor. UML is a virtualization technology that allows running multiple Linux kernel instances as separate virtual machines, so once the Linux environment is started and Emacs is compiled, the virtual machine can essentially boot straight into an Emacs environment. Some tools are needed outside of the Linux kernel like mount which allows the virtual file system to access the files needed to build Emacs, but as far as lightweight or minimalist Linux distributions go this one definitely gets at least an honorable mention.

While UML is virtualization software rather than a full-fledged Linux distribution, we would expect a similarly minimalist build could easily be done with something more hardware-based like Linux From Scratch. Emacs has been around for so long and had such a wide reach that it’s difficult to imagine a world without it. Even in more modern technology like browsers, knowing a little bit about Emacs can be an extremely powerful tool.

Fossil Files: My .Emacs

Last week, I wrote about cargo culting in a much more general context, so this week I’m going to come clean. The file that had me thinking about the topic was the worst case you’ve probably ever seen: I have a .emacs file kicking around that I haven’t really understood since I copied it from someone else – probably Ben Scarlet whose name is enshrined therein – in the computer lab in 1994! Yes, my .emacs file is nearly 30, and I still don’t really understand it, not exactly.

Now in my defence, I switched up to vim as my main editor a few years ago, but this one file has seen duty on Pentiums running pre-1.0 versions of Linux, on IBM RS/6000 machines in the aforementioned computer lab, and on a series of laptops and desktops that I’ve owned over the years. It got me through undergrad, grad school, and a decade of work. It has served me well. And if I fired up emacs right now, it would still be here.

For those of you out there who don’t use emacs, the .emacs file is a configuration file. It says how to interpret different files based on their extensions, defines some special key combos, and perhaps most importantly, defines how code syntax highlighting works. It’s basically all of the idiosyncratic look-and-feel stuff in emacs, and it’s what makes my emacs mine. But I don’t understand it.

Why? Because it’s written in LISP, for GNU’s sake, and because it references all manner of cryptic internal variables that emacs uses under the hood. I’m absolutely not saying that I haven’t tweaked some of the colors around, or monkey-patched something in here or there, but the extent is always limited to whatever I can get away with, without having to really learn LISP.

This ancient fossil of a file is testament to two things. The emacs codebase has been stable enough that it still works after all this time, but also that emacs is so damn complicated and written in an obscure enough language that I have never put the time in to really grok it – the barriers are too high and the payoff for the effort too low. I have no doubt that I could figure it out for real, but I just haven’t.

So I just schlep this file around, from computer to computer, without understanding it and without particularly wanting to. Except now that I write this. Damnit.

Featured image: “A Dusty Old Book” by Marco Verch Professional.

Linux Fu: The Browser Emacs Fusion

It is no secret that I have a few things permanently burned into my neurons: the 1802 instruction set, the commands for WordStar, and the commands for emacs. There was a time when emacs was almost my operating system. With no X11, emacs gave you a way to have a shell in one window, check your mail, and keep your work open.

I still use emacs a lot (although I’ve been getting more and more pleased with vscode with an emacs keybinding extension). But I also spend a lot of time — like right now — writing in a Web browser. Especially if I’m writing about code, it gets hard to remember which set of keys you have to use and I’ve wanted to do something about it for a long time. The answer is a very cool program called Autokey. (You can download my files for it, but you probably want to read more first.) It probably doesn’t work if you have switched to Wayland, but it can do a lot for you ranging from saving you some typing to reprogramming your favorite program to have different keystrokes. However, it isn’t without its problems, and I’ll tell you what I know about it.

The Value Proposition

Autokey sits in your system tray and it watches what you type. In its most simple usage, you can set up different phrases to substitute what you type.

For example, I might reprogram HaD to show up as Hackaday to save myself some typing. I usually use some odd character at the start or end so I don’t accidentally trigger things. So maybe I’m tired of typing or mistyping http://www.hackaday.com. I could set up ~had to automatically type the correct URL for me.

Continue reading “Linux Fu: The Browser Emacs Fusion”

Paper Pi Is An Ergonomic Cyberdeck Meant For Thumbs

What’s the fastest way to master console stuff like screen or emacs? Force yourself to use it exclusively, of course. But maybe you’d be tempted to cheat with a desktop. We know we would be. In that case, you ought to build a console-only cyberdeck like this sweet little thing by [a8skh4].

This cyberdeck serves another purpose as well — the keyboard layout is Miryoku, so [a8ksh4] can get more practice with that at the same time. Fortunately, the layout is built for emacs.

Inside is a Raspberry Pi 4 and what looks to be an Arduino handling the keyboard input. The Paper Pi spotlights a 4.2″ e-ink screen between a split thumb keyboard that’s made of soft, silent, tactile switches.

Since they’re SMD, [a8ksh4] made clever use of header pins to get them to work with protoboard. As much as we love the keyboard, it would be awesome to see a few switches on the shoulders or even the back that make use of the rest of the fingers. Check out more build pictures in the gallery.

We love to see cyberdecks with split keyboards, because you shouldn’t have to sacrifice ergonomics in a portable computer. Here’s one that comes in three pieces, making it easy to get the spacing between the halves just right.

Via r/cyberdeck