exwm

Change Firefox default zoom level

Intro I use several three-monitor setups and one of the setups has a large TV-size screen as the monitor. I typically put my browser instances over there and need to shrink them to a more zoomed-out level to make websites usable at that size. The answer was to change the layout.css.devPixelsPerPx in the about:config1. I changed mine to 0.8, which was equal to about the 80% zoom level which works for me.

Cloister bell alert notification from Dunst in Guix

Intro In Guix with EXWM I use Dunst for a system alert system. I got my Dunst to have a default audio alert so that when alerts fire, regardless of which of my three monitors I am looking at, I can hear a modest alert noise. I chose the Tardis cloister bell1, a favorite audio of mine. 1. Acquire the sound I located the sound I want on Soundcloud1 and then used one of the several online SoundCloud downloaders2 to grab the file, which came down as an mp3.

volume control from guix cli with pactl instead of amixer

Intro I used to have an exwm emacs shortcut to change my volume: (exwm-input-set-key (kbd "<XF86AudioLowerVolume>") (lambda () (interactive) (shell-command "amixer set Master 2%-"))) and a similar function for the volume-up key. When I press the audio buttons, it uses amixer to change the volume. The trouble is, guix doesn’t seem to offer amixer anywhere. I don’t see it in nongnu packages, so I was able to find pactl instead. Here’s how I got it (improvement suggestions welcome):

A tip to recover blank screens with EXWM

Intro Sometimes in EXWM when I switch machines to and plug in my dock to an already running system, one or two of my external monitors stay black1. Sometimes this also occurs when my smart-dock2 changes power levels to the dock. It has enough throughput to utilize my whole 100w power inlet, but its “smarts” mean that when I connect my USBC phone, for instance, the amount of power going out changes dramatically and the shift can “lose” my two HDMI monitors until I do the trick below.

Fail-fast Transients like Hydra

Problem: exwm choking on Transients with Unbound suffix I have been gradually experimenting with replacing my hydras with Transients1, partly as a proof of concept. I have a show-stopping issue2 when I sometimes end up invoking the Transients from an EXWM window, however. The Transient pops up, but no key I press is then sent to the Transient and I end up trapped in a loop: Transient is expecting a key, which needs to be passed by EXWM, but EXWM can’t pass the right keys because Transient is intercepting them3.

How I Switched to DVP Dvorak Keyboard Layout as a Linux EXWM Emacs User

My heavy emacs use was both the motivation and the obstacle to switching to a new keyboard layout. Motivation because my life is keyboard driven, so there are healh and efficiency reasons to want to make the best of my keyboard experience. Obstruction because so much of my emacs and typing proficiency is in my muscle memory, and this might be lost if I make a drastic change. Well, rather than Colemaks or QwertZ, which aim to maintain most of your muscle memory, I decided to go whole hog and do Dvorak.

exwm as a recognized desktop manager (my KDE SDDM)

For the past years I have had a little script that shuffles my ~/.profile file back and forth so that rebooting starts in exwm or not, since starting in my GUI is occasionally exactly what I need. Reviewing the exwm page1, though, I found a way of adding exwm (actually, “emacs”) to the list of “Start Session In…” options that are shown on the login screen, which bypasses the ~/.

why does exwm sometimes fail to connect to extra monitors?

I have a 3-monitor setup, using a USB3 dock. Plugging in to my windows machine just works; all monitors connect. However, plug in into my exwm machine sometimes fails, where the extra monitors will remain blank. Usually this is easily fixed when I see it; I press C-M- to open up a terminal outside exwm, and all monitors come alive; then C-M- back to exwm and it finds them, and all workspaces are where they should be.

a cautionary tale on modelines and on updating your emacs config

I recently began having major problems with emacs, including my emacs freezing for significant amounts of time and my exwm windows requiring a repeated command to share focus: one for emacs to think it was focusing there, and another for exwm to move its focus. It never occurred to me that they were related, and efforts to sort them out went to a recent juncture in which I’d both performed a rolling-system upgrade (3000+ packages and Linux kernel upgraded) and also some major upgrades to my emacs config.

Firefox address in titles for exwm

Using bufler1 and selectrum2 to navigate browser buffers concisely. Firefox plugin Because one of exwm greatest benefits is using emacs’ in-built buffer methods for navigation, it is handy to include the address of any website in its title so the buffer can be found by just searching, e.g., “slack”. For this reason the misleadingly named “KeePass Helper"3 is tremendously useful. Now I can easily select my buffers with a random-access method off a portion of the URL.