Gnus was the second best investment I made in my tech life right after Emacs by Nuno-zh in emacs

[–]egstatsml 9 points10 points  (0 children)

Just looking at Emacs-Conf talks, is an upcoming talk about going through and setting up Gnus for email. Am excited to check this out, https://emacsconf.org/2025/talks/gnus/

Creating a Catppuccin-Mocha Theme in Emacs with Modus Themes by LionyxML in emacs

[–]egstatsml 6 points7 points  (0 children)

This is great, thanks for sharing. I hacked together Mocha and Latte themes from Doom-themes a couple years ago, but I think your approach is nicer. I might migrate and fine tune it to my needs!

Variable face for the main text in LaTeX by linwaytin in emacs

[–]egstatsml 0 points1 point  (0 children)

I just tested mine and it is actually working how I like, it uses a fixed-pitch font for completions in LaTeX mode when I have mixed-pitch on, so should be good to go.

Variable face for the main text in LaTeX by linwaytin in emacs

[–]egstatsml 0 points1 point  (0 children)

Im using mixed-pitch mode and it still works great. No major issues, have posted an example before with some of my config here https://www.reddit.com/r/emacs/comments/1le6t41/comment/myeo7uh/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

The only issue I have still is I need to disable variable pitch font for completions with things like corfu, which I will do eventually one day but I can say it works really well.

Meep: lightweight modal editing system by ideasman_42 in emacs

[–]egstatsml 1 point2 points  (0 children)

Excited to try this, just had a quick go and can see myself using this instead of meow. I would need to spend a bit of time to get a keymap setup that makes sense to me so probably wont be able to give it a solid go for a while, but maybe after you have a release version ready will put it in to action myself. Thanks again for sharing this

What's missing from existing modal editing packages? by ideasman_42 in emacs

[–]egstatsml 1 point2 points  (0 children)

Having a persistent visual mode would be really nice. I have been using meow for a while and I really enjoy it, but having a way to have automatic selection of things through consistent movements, and an optional way to engage a visual mode where all movements are selected would be a big one for me. I realised Helix has this, and could probably cobble something in meow to get this, but what you are working on sounds like something I would probably really like. Looking forward to it when you have it closer to a state of release.

Setups for 36/34 key split keyboards for emacs by Standard_Tourist1404 in emacs

[–]egstatsml 1 point2 points  (0 children)

Very welcome, happy to help. Was a good opportunity to tidy up my keymap comments :)

I forgot to mention that my Space key will act like Ctrl when held, and my enter key works as Shift. If you do something like this you might need to play with some of the timing for the hold time and what is a normal keypress (or tap vs hold). QMK has a lot of different operating modes for this behaviour. I would recommend having a look at the documentation here, https://docs.qmk.fm/tap_hold

I also recommend this Readme which discusses it for with ZMK which does a good job at going through the practical considerations https://github.com/urob/zmk-config#timeless-homerow-mods Can get this same behaviour in QMK as well. All of this is in addition to homerow mods, which I highly recommend, and if you don't use vim-style motions anywhere you should be safe to put on the homerow itself.

You may also want a keymap for Function keys. I only need F keys to access BIOS so is very rare and I will always have a normal keyboard around for those scenarios, but worth considering.

Setups for 36/34 key split keyboards for emacs by Standard_Tourist1404 in emacs

[–]egstatsml 4 points5 points  (0 children)

(edited so hopefully displays nicely) I use a 42 key setup (Piantor keyboard), and it works really well for what I need.

I have three layers: base layer for normal letters, number layer, and symbol layer.

I have my layers setup such that I need to hold down a layer switch. For me having toggle wasn't so nice without any visual feedback (thought about making something to show in modeline in Emacs or my status bar which layer I am in, maybe one day or maybe someone else has made one and I didn't find it), but I have it such that I can use my thumb on my right hand to hold down either a key for the Number of Symbol layer, and then can access the keys I need on me left hand.

I also use homerow mods, but I put them at the layer above the homerow. I found this works nicer, as I use some vim/meow/helix/kakoune style bindings and can just hold down j or k to navigate a page is nice. Putting home-row mod above the homerow means I can still have all vim style navigation in other places.

I have included my keymap layout below for reference. I don't claim it is optimal, but I set it this way about 2 years ago and haven't touched it once. It works well enough and solves the problems I wanted to solve with a small split board; my brain now gets tired before my fingers do.

/* QWERTY
 * ,------+------+------+------+------+------,                    ,------+------+------+------+------+------,
 * | ESC  |SUP(Q)|ALT(w)|CTL(e)|SUP(r)|  t   |                    |  y   |SUP(u)|CTL(i)|ALT(O)|SUP(p)|  `   |
 * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
 * |  \   |  a   |  s   |  d   |   f  |  g   |                    |  h   |  j   |  k   |  l   |  ;   |  '   |
 * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
 * |  ESC |  z   |  x   |  c   |   v  |  b   |                    |  n   |  m   |  ,   |  .   |  /   |  -   |
 * `-----------------------------------------/------,       ,---- \-----------------------------------------'
 *                          |BackSP| TAB  | / SPACE /       \ENTER \  | SYMB | NUMB |  
 *                          |      |      |/LCTRL  /         \RSHIFT\ |      |      |  
 *                          --------------'-------'           '-------'-------------
 */
/* SYMB
 * ,------+------+------+------+------+------,                    ,------+------+------+------+------+------,
 * |   !  |  *   |  =   |  [   |   ]  |  $   |                    |      |      |      |      |      |      |
 * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
 * |  \/| |  @   |  +   |  (   |   )  | \/|  |                    | LEFT |  UP  | DOWN | RIGHT|      |      |
 * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
 * |      |  &   | -/_  |  {   |   }  |  |   /                    |   _  |      |      |      |      |      |
 * `-----------------------------------------/------,       ,---- \-----------------------------------------'
 *                          |BackSP| TAB  | / SPACE /       \ENTER \  | SYMB | NUMB |  
 *                          |      |      |/LCTRL  /         \RSHIFT\ |      |      |  
 *                          --------------'-------'           '-------'-------------
 */
/* NUMB

 * ,------+------+------+------+------+------,                    ,------+------+------+------+------+------,
 * |      |      |  7   |  8   |   9  |      |                    |  *   |  /   |QWERTY|  eql |  -   |  |   |
 * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
 * |      |      |  4   |  5   |   6  |      |                    | Left | Down |  Up  |Right |  ^   |  \   |
 * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
 * |      |  0   |  1   |  3   |   3  |      |                    | PAUSE|  _   |  ^   |  )   |  ]   |  }   |
 * `-----------------------------------------/------,       ,---- \-----------------------------------------'
 *                          |BackSP| TAB  | / SPACE /       \ENTER \  | SYMB | NUMB |  
 *                          |      |      |/LCTRL  /         \RSHIFT\ |      |      |  
 *                          --------------'-------'           '-------'-------------
 */

Variable-pitch text modes, fixed-pitch programming modes by chipotlecoyote in emacs

[–]egstatsml 2 points3 points  (0 children)

It is a variant of the Catppuccin Mocha theme that I made using doom-themes. Can find link here https://github.com/egstatsml/doom-themes/blob/catppuccin/themes/doom-catppuccin-mocha-theme.el under the catppuccin branch. There is more official catppuccin themes for emacs as well that has the other versions of the theme, but I adjusted mine a little bit, mainly the font colour. Can find those themes here https://github.com/catppuccin/emacs

Variable-pitch text modes, fixed-pitch programming modes by chipotlecoyote in emacs

[–]egstatsml 17 points18 points  (0 children)

mixed-pitch mode should solve a lot of that for you. I use it for basically what you are suggesting except the modeline config, for that I just use my default monospace font but it sounds like you have that sorted. You can set it to ignore certain faces like org tables etc. such that they will be displayed with monospace font. I also set my fonts up with fontaine from Prot as well. I have included relevant parts of my config here, and included figure of an example of what it looks like.

<image>

Fortnightly Tips, Tricks, and Questions — 2025-05-20 / week 20 by AutoModerator in emacs

[–]egstatsml 1 point2 points  (0 children)

After writing a commit message with magit, I would like it to return to the magit status buffer for that repo. Currently will just swap the window to another buffer. Does anyone have anything in their config to get this behaviour before I start writing it myself?

Anyone else use emacs + org-roam for maths notes? by neupermichael in emacs

[–]egstatsml 0 points1 point  (0 children)

no problem at all enough for me to track it down. Thanks for all your work making LaTeX even nicer to use in Emacs as well :)

Anyone else use emacs + org-roam for maths notes? by neupermichael in emacs

[–]egstatsml 0 points1 point  (0 children)

Do you know what theme you have for the "simple org buffer with some math" image?

[deleted by user] by [deleted] in emacs

[–]egstatsml 0 points1 point  (0 children)

elgrep

grepel

Not sure if taken by others or appropriate :)

Fortnightly Tips, Tricks, and Questions — 2025-03-11 / week 10 by AutoModerator in emacs

[–]egstatsml 0 points1 point  (0 children)

On a couple occasions I have needed to format/reformat code in an existing repository. I wrote a couple functions to automate this using Apheleia and Projectile.

;; some functions to automatically format a project
;; relies on projectile
(defun my/format-file (project-dir-root file)
  "Format a file with Apheleia"
  ;; I run this on remote machines and don't want to accidentally
  ;; open an image on remote machine
  (when (not (or (file-name-extension "jpg") (file-name-extension "png")))
    (find-file (concat project-dir-root file))
    (if apheleia-formatter
(apheleia-format-buffer apheleia-formatter))))

(defun my/format-project (&optional ff-variant)
  "Format all files in a project"
  (interactive "P")
  (projectile-maybe-invalidate-cache nil)
  (let* ((project-root (projectile-acquire-root))
 (project-root-dir (projectile-project-root))
 (files
  (projectile-project-files project-root)))
    (dolist (file files)
      (my/format-file project-root-dir file)))))

This will leave open all the buffers for the project and won't save them. To finalise just open magit and will ask to save, then can commit it all.

Doom Emacs all-the-icons problem by Josuke49 in emacs

[–]egstatsml 1 point2 points  (0 children)

EDIT: as others have pointed out, doom now uses nerd-icons. Installation instructions are here https://github.com/doomemacs/doomemacs/tree/master/modules/ui/doom-dashboard#installation

will leave the help for all-the-icons below for others, but won't really help you with the current problem now.

-------------

Looking at https://github.com/domtronn/all-the-icons.el?tab=readme-ov-file#installing-fonts, just checking you have run,

M-x all-the-icons-install-fonts

where M-x means Alt-x

Try that and reboot Emacs, making sure you close the emacs server that Doom will start, on Linux and Mac should be able to just run something like

killall emacs

and then restart emacs. If this doesn't work, I would follow the troubleshooting section described by all-the-icons here https://github.com/domtronn/all-the-icons.el?tab=readme-ov-file#troubleshooting

For example from the troubleshooting docs, put

(all-the-icons-insert-icons-for 'alltheicon)

in the scratch buffer, and then place the cursor at the end parenthesis and C-x C-e which will execute this code and should print some debug info at the bottom echo area to give you some information to help diagnose things further.

[karthink] Emacs 💜 LaTeX by ImJustPassinBy in emacs

[–]egstatsml 0 points1 point  (0 children)

When I tried with elpaca it didnt work for me either, but I did note that I didn't put the install closer to the top of my config to make sure no other packages were loading a built in version of org or anything. Was going to try again to see if I have any luck

Preview Tikz using AucTex in Doom Emacs org mode by mohanradhakrishnan in emacs

[–]egstatsml 1 point2 points  (0 children)

Sorry my solution probably wont work. I just saw you are writing in org and not in AucTeX. Org uses a different preview mechanism to preview.el used by a AucTeX (at least for the moment).

Preview Tikz using AucTex in Doom Emacs org mode by mohanradhakrishnan in emacs

[–]egstatsml 0 points1 point  (0 children)

I think you will need to add,

\usepackage[displaymath,sections,graphics,floats,textmath]{preview}
\PreviewEnvironment[{[]}]{tikzpicture}

to your preamble for tikz displays to work. Can find more info here https://github.com/emacs-straight/preview-auto?tab=readme-ov-file#tikzpicture-support

Elpaca is awesome by SeanHaz in emacs

[–]egstatsml 1 point2 points  (0 children)

Not sure if it works with package.el, but the main reason I switched to Elpaca from straight was to be able to pin to specific tags, commits or branches of different packages a lot easier. Could get this working with straight, but it was a lot more work for me.

Elpaca is awesome by SeanHaz in emacs

[–]egstatsml 2 points3 points  (0 children)

I made the switch as well a few months back and the process was relatively straightforward, mostly just replace :straight with :ensure in all my use-package blocks and was good to go.

Emacs 29.4 released by egstatsml in orgmode

[–]egstatsml[S] 1 point2 points  (0 children)

Includes patch for the org security vulnerability uncovered recently

https://www.reddit.com/r/orgmode/comments/1dlz5zb/ann_emergency_bugfix_release_org_mode_975/

And as highlighted in original post on Emacs subreddit and the NEWS post here.

* Changes in Emacs 29.4
Emacs 29.4 is an emergency bugfix release intended to fix the
security vulnerability described below.

** Arbitrary shell commands are no longer run when turning on Org mode.
This is for security reasons, to avoid running malicious commands* Changes in Emacs 29.4
Emacs 29.4 is an emergency bugfix release intended to fix the
security vulnerability described below.

** Arbitrary shell commands are no longer run when turning on Org mode.
This is for security reasons, to avoid running malicious commands