1
submitted 1 week ago* (last edited 1 week ago) by to c/emacs@programming.dev
 
 

So I have a problem I would bet at least some people know: Styling tables inside Orgmode. The problem is, that you have to copy paste the same configuration that makes sure your table looks good for each single table. Since this is quite tedious and quite a pain if you have lots and lots of tables. After some searching I figured out, that I can use the tabularray LaTeX Package for this. The problem is, that I quite suck with LaTeX, and there is not that much information about global tabular enviroments for this. The only Information I could find was this stackexchange post regarding global table enviroments and some general information about tabularray, which can be found here.

The table style I want is in fact quite simple. I want the top row to be colored grey (which I already implemented myself) and I need the table style to allow for multiline columns and I need automatic line breaks in case theres more text in a single cell than theres space in the line. Additionally the table should always be aligned in the center of the page.

I have the following example orgmode-document (the \renewenviroment command is to switch the default enviroment from tables to my global table style)

#+Options: toc:nil

#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [a4paper]
#+LATEX_HEADER: \usepackage{booktabs}
#+LATEX_HEADER: \usepackage{tabularray}
#+LATEX_HEADER: \usepackage{xcolor}
#+LATEX_HEADER: \NewTblrEnviron{globaltbl}
#+LATEX_HEADER: \SetTblrInner[globaltbl]{hlines, vlines, row{1} = {bg=gray5, fg=white, font=\bfseries}, rowsep = 4pt, colsep = 8pt, width = \linewidth}
#+LATEX_HEADER: \SetTblrOuter[globaltbl]{baseline = m}
#+LATEX_HEADER: \renewenvironment{tabular}{\begin{globaltbl}}{\end{globaltbl}}

|-----------+-------------------+-----------------------------------------------------------------------------------|
| Exit code | Type              | Meaning                                                                           |
|-----------+-------------------+-----------------------------------------------------------------------------------|
|         0 | Internal/External | Succesfull operation; logical true                                                |
|           | some other        |                                                                                   |
|-----------+-------------------+-----------------------------------------------------------------------------------|
|         1 | Internal          | Non successfull operation; logical false and some other text that is not important |

which generates the following LaTeX file:

% Intended LaTeX compiler: pdflatex
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage{tabularray}
\usepackage{booktabs}
\usepackage{tabularray}
\usepackage{xcolor}
\NewTblrEnviron{globaltbl}
\SetTblrInner[globaltbl]{hlines, vlines, row{1} = {bg=gray5, fg=white, font=\bfseries}, rowsep = 4pt, colsep = 8pt, width = \linewidth}
\SetTblrOuter[globaltbl]{baseline = m}
\renewenvironment{tabular}{\begin{globaltbl}}{\end{globaltbl}}
\author{cow}
\date{\today}
\title{}
\hypersetup{
 pdfauthor={cow},
 pdftitle={},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 30.2 (Org mode 9.7.11)}, 
 pdflang={English}}
\begin{document}

\begin{center}
\begin{tabular}{rll}
\hline
Exit code & Type & Meaning\\
\hline
0 & Internal/External & Succesfull operation; logical true\\
 & some other & \\
\hline
1 & Internal & Non successfull operation; logical false and some other text that is not important\\
\end{tabular}
\end{center}
\end{document}

which renders to the following table:

As you can see in the first column, that tabularray does not insert an hline to create a new coluumn, but still renders this thinner line. Is there a way to turn this off? You can also see, that the rest of the last cell gets cut off.

I would really appreciate if someone could help me with this, since I have zero Idea what else to try.

2
3
4
submitted 3 weeks ago by to c/emacs@programming.dev
 
 

The Canvas patch is almost done. Except that we need more testing, specifically for its MS Windows port. (Though testers on other operating systems like GNU/Linux and MacOS are also welcome.)

Since we don't have any computers running MS Windows, we are not sure if the code is actually correct.

5
6
7
 
 

Hello everyone,

The first pretest for what will be the 31.1 release of Emacs (the extensible text editor) is now available at:

https://alpha.gnu.org/gnu/emacs/pretest/emacs-31.0.90.tar.xz
https://alpha.gnu.org/gnu/emacs/pretest/emacs-31.0.90.tar.gz

The tarball is signed; you can get the PGP signature file at:

https://alpha.gnu.org/gnu/emacs/pretest/emacs-31.0.90.tar.xz.sig
https://alpha.gnu.org/gnu/emacs/pretest/emacs-31.0.90.tar.gz.sig

Please give it as much testing as you can.

As always, if you encounter problems building or using Emacs, send a report to bug-gnu-emacs@gnu.org with full details (if possible, use M-x report-emacs-bug).

Thanks for helping to test Emacs.

Source: Emacs 31.0.90 pretest is available

8
9
10
11
 
 

Guidelines used to populate this list:

  • No packages, stock Emacs only.

  • No steep learning curves. Learn each feature in under two minutes or bust.

  • No gimmicks. No doctor, tetris, snake, dunnet, zone or butterfly.

  • Just the deltas. No commonly mentioned packages like flymake, doc-view, outline-minor-mode or eww/w3m. Nothing that Emacs brings up automatically or a nonspecific Google search gets you.

  • Assume a modern Emacs, 26.3+.

12
submitted 2 months ago by to c/emacs@programming.dev
13
14
 
 

So, I started to use orgmode for writing the documentation for my latest software project. This means, that I have code blocks and lots of special characters in my document. I will have to export this whole file to LaTex/pdf, so my colleague can bind it into his project documentation and this is exactly where my problems are. First of all: how can I turn of the need to manually stop the code execution for code blocks when exporting? I have the single line src_bash{} blocks but also the multiline versions:

#+begin_src bash :
#code
#+ends_src

The next thing is, that my function names include underscores, which in orgmode translates to making the following text lowercase. I tried using \ to escape it, but that only breaks it in a new way and I seriously cant comprehend how this so called zero width space is supposed to be used.

15
 
 

So I have the following problem. I use emacs (specifically orgmode, but my problem applies to emacs in general) quite a lot for writing longer texts (In the long term I even plan on writing scientific papers with emacs). However, one of the problems I have is line formatting. As you probably all know, emacs does not really have default "automatic line breaks" as you know them from rich text editors like LibreOffice. Instead emacs then just moves the entire window you see to the right, if a single line gets too long. Since this is awful for editing I started to add line breaks manually, however the problem is, that you then have to manually re-do the entire formatting if you decide to change the structure of one ore more sentences/lines, which is kind of annoying. The next problem is, that it may look good on your screen with the manual linebreaks, but the formatting then often looks bad when viewed on smaller screens.

One solution I saw is, that if a line gets to long, that emacs then just puts the rest of the line into a new line on the screen, without inserting a line break. How can I enable this behaviour in my emacs config?

I also found out about Auto Fill mode, however I kind of dont like, that it inserts a new linebreak relatively fast (my screen is wide, so I want to use it) and the problem with exporting still stands.

Anyone got any good workarounds that might be helpful?

16
 
 

I'd like to announce ghostel, a terminal emulator for Emacs that uses libghostty-vt - the same VT parsing engine behind the Ghostty terminal - as a native Zig module.

It's inspired by vterm and follows the same general approach (native module does terminal emulation, Elisp handles the Emacs integration), but uses a more modern engine that supports newer terminal protocols. Ghostel is a superset of vterm's feature set - everything vterm can do, ghostel can too, plus a lot more on top.

Feature comparison with vterm

Feature ghostel vterm
True color (24-bit) Yes Yes
OSC 4/10/11 color queries Yes No
Bold / italic / faint Yes Yes
Underline styles (5 types) Yes No
Underline color Yes No
Strikethrough Yes Yes
Cursor styles 4 types 3 types
OSC 8 hyperlinks Yes No
Plain-text URL/file detection Yes No
Kitty keyboard protocol Yes No
Mouse passthrough (SGR) Yes No
Bracketed paste Yes Yes
Alternate screen Yes Yes
Shell integration auto-inject Yes No
Prompt navigation (OSC 133) Yes Yes
Elisp eval from shell Yes Yes
TRAMP remote terminals Yes Yes
OSC 52 clipboard Yes Yes
Copy mode Yes Yes
Drag-and-drop Yes No
Auto module download Yes No
Scrollback default ~5,000 1,000
PTY throughput (plain ASCII) 65 MB/s 29 MB/s
Default redraw rate ~30 fps ~10 fps

Key differences

Terminal engine. libghostty-vt comes from Ghostty, a modern GPU-accelerated terminal, and supports Kitty keyboard/mouse protocols, rich underline styles, and OSC 8 hyperlinks. libvterm targets VT220/xterm emulation and is more conservative in protocol support.

Mouse handling. Ghostel encodes mouse events (press, release, drag) and passes them through to the terminal via SGR mouse protocol. TUI apps like htop or lazygit receive full mouse input. vterm intercepts mouse clicks for Emacs point movement and does not forward them to the terminal.

Rendering. Both use text properties (not overlays) and batch consecutive cells with identical styles. Ghostel's engine provides three-level dirty tracking (none / partial / full) with per-row granularity. vterm uses damage-rectangle callbacks and redraws entire invalidated rows. Ghostel defaults to ~30 fps redraw; vterm defaults to ~10 fps.

Shell integration. Ghostel auto-injects shell integration scripts for bash, zsh, and fish - no shell RC changes needed. vterm requires manually sourcing scripts in your shell configuration. Both support Elisp eval from the shell and TRAMP-aware remote directory tracking.

Performance. In PTY throughput benchmarks (5 MB streamed through cat, both backends configured with ~1,000 lines of scrollback), ghostel is roughly 2x faster than vterm on plain ASCII data (65 vs 29 MB/s). On URL-heavy output ghostel still comes out ahead (42 vs 24 MB/s); with link detection disabled ghostel reaches 65 MB/s regardless of input.

Color auto-detection. Thanks to OSC 4/10/11 support, TUI programs like duf, btop, and delta can query Emacs for its foreground/background colors and automatically adapt to your light or dark theme - no COLORFGBG hacks needed.

Installation. Ghostel can automatically download a pre-built native module or compile from source with Zig. vterm uses CMake with a single C dependency (libvterm) and can auto-compile on first load from Elisp.

Installation

ghostel is available on MELPA:

(use-package ghostel :ensure t)

Or with Emacs 30+ built-in vc-use-package:

(use-package ghostel :vc (:url "https://github.com/dakra/ghostel" :rev :newest))

The native module is downloaded automatically on first use. If you prefer to build from source, you'll need Zig 0.15.2+.

Requires Emacs 27.1+ with dynamic module support on macOS or Linux.

Feedback, bug reports, and contributions very welcome.

17
An offline-friendly Elfeed web UI (punchagan.muse-amuse.in)
submitted 3 months ago by to c/emacs@programming.dev
18
19
20
 
 

reka lets emacs' logic just flow into river. It is a window manager inside of Emacs for the Wayland world.

21
 
 

We are awaiting the decision by the GNU Project on these matters, which will define the policy for all the GNU packages, and in the meantime we don't accept LLM-generated code, as a precaution.

https://www.fsf.org/blogs/licensing/2026-anthropic-settlement

22
23
npm-run (github.com)
submitted 5 months ago by to c/emacs@programming.dev
 
 

simple package for running npm scripts (specially in mono-repos)

24
lem.el (codeberg.org)
submitted 5 months ago by to c/emacs@programming.dev
25
 
 

My next novel, a science fiction story set 500 years in the future, features a sentient artificial being---imagine a HAL 9000 with a functioning moral compass, or Skynet without the genocidal nihilism.

Users interact with this sentient AI being in a variety of ways: non-tech users interact via voice commands and touch, but more tech-savvy users interact through a Brain-computer Interface (BCI) that enables tactile and vision control. A smaller portion of users still use keyboards, but they are viewed in the same way our current age views typewriters: a quaint artifact of a bygone era.

view more: next ›