emacs

How to send an interrupt without C-c C-c?

Using exwm with emacs-in-emacs I sometimes make a mistake and start a shell-process going that I need to stop. However, C-c is grabbed by my parent exwm session and so doesn’t send anything to my shell. How can I do this manually? Answer C-c C-c is short for comint-interrupt-subjob Resources https://www.reddit.com/r/emacs/comments/ja97xs/weekly_tipstricketc_thread/g8xu647?utm_source=share&utm_medium=web2x&context=3

Love lost: when exwm falls short

I find myself going back to regular WMs (my favorite from the past being KDE) because certain tasks are just deeply punishing in EXWM. When I’m doing my regular daily work I can usually make EXWM work for me. But here are the facts I experience with/without emacs as my window manager. Life is worse without EXWM Winum. Looking at a screen and hitting the num to focus there; I miss it dearly and cringe when I need to reach for the mouse.

Rebinding Keys, or, The Horror of Alt+TAB in Emacs

I use exwm so M-TAB is available to me without being hijacked by the OS, but rebinding this failed in surprising places. I want it globally to be set to iflipb-next-buffer (giving familiar alt+tab functionality to exwm), but if any of the buffers I’m travelling past happen to inherit magit or gnus, my tab-sequence gets broken because they have it bound to their own thing and I can’t seem to rebind it.

Customizing or disabling Ivy/Swiper pre-selects

By default ivy/swiper/counsel (not sure which) will visit all results as I scan through a list, e.g. when going through my buffers. I thought I liked this until working on my exwm with multiple monitors and non-emacs buffers are only allowed to appear once, meaning that simply moving down my selection list caused screen to be stolen from my other monitor. Answer Buffer-changes are apparently an effect of using counsel-switch-buffer, which I had bound to C-x b.

Fix invalid submodule error when using straight.el

My ordinary workflow was to start emacs with a load into my orgmode agenda, which locates me in my .emacs git-project. Upon inspecting my agenda I’ll go to some project from my todo list using helm-projectile. However, after switching to Staight.el (which does its heavy lifting with git) this workflow was broken. The result is that, when I try to use projectile from somewhere that Git includes Straight stuff, I get this failure about submodules:

Tip: shortcut for kill-this-buffer

I have added the following shortcut, possible since exwm frees up my s- key: (exwm-input-set-key (kbd "s-<backspace>") 'kill-this-buffer) And, for when I am already in an emacs buffer, this added to my personal key map: (define-key map (kbd "s-<backspace>") 'kill-this-buffer) In any case, making a single-chord shortcut for kill-this-buffer has highlighted how often I use the command, and made work that much faster. Highly recommended!

Emacs Inspiration

Watching a great performance on the Tabernacle Choir Organ, I couldn’t help but feel some emacs inspiration. It’s even better with sound. https://youtu.be/i5Ei6CaZZnY?t=2495

Helm Duplicates history

M-x helm shows duplicates after upgrading to Emacs 27. Turns out the changed behavior is easily fixed by configuring history-delete-duplicates. Answer courtesy official issue .

Mysteriously growing into Emacs 27.1

I made the big upgrade to Emacs 27.1, giving myself a full day to work out the kinks. First off, it’s great; I like the early-init, I’m thrilled by the new in-box orgmode, and as things settle I love the new fonts and customizations. There is some strangeness on this journey, though (made worse by the fact that I am an exwm user, so emacs failures are system failures). Everything died.

Danger of diversions in Emacs

Emacs is so delightfully extensible it can easily be a Will-o’-the-wisp in a situations like this morning: Editing my “journal.2020.org” file as I do every day, I decided to finally remove the inconvenience of moving my fingers to the arrow keys to promote/demote structures. First I thought, “I’m just going to add this to my org-mode hydra so that I invoke it with C-c o and then hit [ or ] to change the heading level.