Releases
All releases and notable changes will be documented here, using a format similar to the one described by Keep a Changelog.
v1.11.1 (latest release)
Released on 2023-03-01.
Additions:
- Added a
show setenvsub-command. - Added an
-mflag to theundocommand, to allow moving to the last change without undoing it. - Added support for Super (
s-) and Hyper (H-) modifiers in key bindings. - Added a syntax highlighter for Coccinelle
"semantic patch" (
*.cocci) files. - Added rules for handling CDATA sections to the XML syntax highlighter.
- Added auto-completion for command flags.
Fixes:
- Fixed a bug that was causing key bindings to not work properly when the Num Lock and/or Caps Lock modifiers were in effect in terminals supporting the kitty keyboard protocol.
- Fixed the
savecommand, to avoid breaking hard links when writing to existing files. - Fixed an issue in the build system causing
make distcheckto fail.
Other changes:
- Changed built-in filetype detection so that a
dot_filename prefix is equivalent to a.prefix, or more specificallydot_bashrcis now treated the same way as.bashrc. - Changed the
defaultcommand indte-syntaxfiles to show an error if there are duplicate arguments. - Removed
the built-in
xselalias.
Downloads:
v1.11
Released on 2023-01-21.
Additions:
- Added 15 new command flags:
- Added a new
execcommand, (this replacesrun,filter,pipe-from,pipe-to,eval,exec-openandexec-tag, which are now just built-in aliases ofexec). - Added
overwriteandoptimize-true-coloroptions. - Added built-in
$RFILE,$FILEDIRand$COLNOvariables. - Added
hi,msgandsetarguments to theshowcommand. - Added a number argument to the
msgcommand. - Added support for 3-digit
#rgbcolors to thehicommand (in addition to the existing#rrggbbsupport). - Added support for binding
F13-F20keys. - Added support for parsing alternate encodings of
F1-F4keys (e.g.CSI P) sent by some terminals. - Added support for the Kitty keyboard protocol (which significantly increases the number of bindable key combos).
- Added syntax highlighters for JSON, Go Module (
go.mod), G-code and.gitignorefiles. - Added support for binary literals and hex float literals to the C syntax highlighter.
- Added support for escaped newlines in string literals to the C syntax highlighter.
- Added support for
<<-EOFheredocs to the shell syntax highlighter. - Added support for template literals to the JavaScript syntax highlighter.
- Added support for terminal "synchronized updates" (both the
DCS-based variant and the private mode
2026variant). - Added documentation for the
bookmarkcommand. - Added
$PATH,$PWD,$OLDPWDand$DTE_VERSIONto the environment section of thedteman page. - Added extended support for Contour and WezTerm terminals.
- Added an AppStream
metadata file, which is installed by default when running
make install(except on macOS).
Improvements:
- Updated Unicode support to version 15.
- Allowed
aliasanderrorfmtentries to be removed, by running the commands with only 1 argument. - Improved command auto-completion for
alias,bind,cd,redo,move-tabandquitcommands. - Improved documentation for
alias.tag,hi,msgandwsplitcommands. - Changed
quit -pto display the number of modified/unsaved buffers in the dialog prompt. - Excluded
.and..from filename auto-completions. - Allowed
-c <command>options to be used multiple (up to 8) times. - Allowed
+lineno,colnocommand-line arguments (in addition to+lineno). - Extended
linecommand to accept alineno,colnoargument (in addition tolineno). - Limited the size of
.editorconfigfiles to 32MiB. - Enabled "enhanced" regex features on macOS, by using the
REG_ENHANCEDflag when callingregcomp(3). - Improved support for the
modifyOtherKeyskeyboard mode (which increases the number of bindable key combos somewhat), by emitting the escape sequence to enable it at startup. - Various improvements to built-in filetype detection.
- Various performance/efficiency improvements.
Fixes:
- Fixed a bug that caused searches started by
search -rto be incorrectly recorded bymacro record. - Fixed a bug that caused "broken pipe" errors to occur if the
terminal was resized during certain long-running commands (e.g.
compile). - Fixed several regular expressions in built-in configs that were
using non-portable regex features (
\s,\band\w) and causing errors on some systems. - Fixed a portability issue that was causing execution of external commands to fail with "function not implemented" errors on some systems (notably Debian GNU/kFreeBSD).
Breaking changes:
- Changed the default Ctrl+v key binding to
paste -a(previouslypaste -c). - Removed the
display-invisibleglobal option. - Removed the
-bflag from theselectcommand. - Renamed the built-in
coffeescriptfiletype tocoffee. - Made the
strcommand indte-syntaxfiles produce an error if used with single-byte arguments (charshould be used instead). - The
pipe-from-sflag was effectively renamed to-n, as part of the changes made for the newexeccommand.
Other changes:
- Increased the minimum GNU Make version requirement to 4.0.
- Increased the minimum GCC version requirement to 4.8.
Downloads:
v1.10
Released on 2021-04-03.
Additions:
- Added 7 new commands:
blkdownblkupdelete-lineexec-open(note: replaced byexecin v1.11)exec-tag(note: replaced byexecin v1.11)macromatch-bracket
- Added 12 new command flags:
- Added 2 new global options:
- Added an optional exitcode argument to the
quitcommand. - Added
color,command,env,errorfmt,ft,macro,option,searchandwsplitarguments to theshowcommand. - Added support for the
\eescape sequence in double-quoted command arguments. - Added syntax highlighting for Lisp and Scheme files.
- Added an Alt+Enter key binding to search mode, for performing plain-text searches.
- Added a Shift+Tab key binding to command mode, for iteratating auto-completions in reverse order.
- Added
%b,%Nand%Sstatusline format specifiers. - Added a large confirmation dialog, shown when
quit -pis run with unsaved changes. - Added the ability to exclude individual commands from command history (by prepending a space character when in command mode).
Improvements:
- Updated Unicode support to version 13.
- Bound Ctrl+c to
copy -kby default. - Re-introduced built-in support for rxvt Ctrl/Alt/Shift key combinations.
- Fixed the handling of optional capture groups in
errorfmtpatterns. - Improved the legibility of the default color scheme on a wider range of terminals.
- Changed the
filterandpipe-fromcommands to set$LINES/$COLUMNSto the current window height/width, before running the specified program. - Clarified which command flags in the
dtercman page are mutually exclusive (by separating them with|). - Fixed signal handling, to allow interrupting unresponsive/deadlocked child processes with Ctrl+c.
- Fixed command-line auto-completion to work properly when option flags are present.
- Improved the documentation for
tag,replace, anderrorfmt. - Various syntax highlighting improvements.
- Various terminal compatibility improvements.
- Various performance improvements.
Breaking changes:
- Removed support for linking to the system terminfo library. The terminfo database has only been used as a last resort source of information for several releases now. Most terminals that people are likely to be using already have built-in support in the editor, including several capabilities not available from terminfo. This is listed as a breaking change because it may break support for a few archaic hardware terminals (primarily those that aren't ECMA-48 compatible or whose terminfo strings contain mandatory padding).
- Removed support for vertical tab bars (the
tab-baroption was changed from an enum to a Boolean).
Downloads:
v1.9.1
Released on 2019-09-29.
Changes:
- Fixed
make checkwhen running from a release tarball.
Downloads:
v1.9
Released on 2019-09-21.
Additions:
- Added a new
pipe-tocommand, to complement the existingpipe-fromandfiltercommands. - Added a new
showcommand, which can be used to introspect the current values of aliases and bindings. - Added a
-kflag to thecopycommand, to allow keeping the current selection after copying. - Added a man page entry for the (previously undocumented)
evalcommand. - Added new
$FILETYPEand$LINENOspecial variables. - Added a
display-invisibleglobal option, to allow visible rendering of otherwise invisible Unicode characters. - Added an
-scommand-line flag, for validating custom syntax files. - Added a compile-time
ICONV_DISABLE=1option, which disables linking to the system iconv library (but makes the editor UTF-8 only). - Added a Desktop Entry file, which can be installed using
make install-desktop-file.
Improvements:
- Updated Unicode support to version 12.1.
- Modified the
errorfmtcommand, to allow sub-match groups in the regexp pattern to be ignored. - Various improvements to syntax highlighting and filetype detection.
- Various performance optimizations.
Fixes:
- Fixed a bug that would sometimes cause files to be saved as UTF-8, even if another encoding was specified.
Downloads:
v1.8.2
Released on 2019-04-23.
Changes:
- Fixed makefile to work with GNU Make 3.81 (which is still used by OS X and Ubuntu 14.04).
Downloads:
v1.8.1
Released on 2019-04-22.
Fixes:
- Fixed parsing of escaped special characters in command arguments (which was causing Lua syntax highlighting to fail).
- Removed use of
rep(repeat character) control sequence, due to problems caused by certain terminal emulators that claim to be "xterm" but don't support the full set of features in the xtermterminfo(5)entry (notably, the FreeBSD 12 console).
Additions:
- Show a confirmation prompt if Ctrl+q (quit) is pressed with unsaved changes, instead of a cryptic error message.
Downloads:
v1.8
Released on 2019-04-18.
Additions:
- Added support for 24-bit RGB terminal colors.
- Added support for
strikethroughterminal attribute. - Added support for
aliasnames containing multi-byte Unicode characters. - Added
refreshcommand (to force a full screen redraw). - Added
dte -Kcommand-line option (for keycode debugging). - Added support for reading a buffer from
stdinat startup. - Added support for binding Ctrl/Alt/Shift + F1-F12 on xterm-like terminals.
- Added
-sflag tobolcommand, to allow moving to beginning of indented text, before moving to beginning of line (a.k.a "smart home"). - Added
-cflag to all cursor movement commands, to allow selecting characters while moving. - Added
-lflag toup,down,pgupandpgdowncommands, to allow selecting whole lines while moving. - Added default bindings for various Shift+key combinations, for doing GUI-style text selections.
- Added key bindings to command mode for deleting/erasing whole words (Alt+Delete and Alt+Backspace).
Improvements:
- Optimized built-in filetype detection.
- Fixed cursor interaction with Unicode combining characters.
- Improved handling of Unicode whitespace and unprintable characters.
- Updated character class lookup tables to Unicode 11.
- Expanded documentation for
hiandcompilecommands. - Optimized code to reduce editor startup and input latency.
Breaking changes:
- Changed the
bindcommand to be much more strict when parsing key strings and show an error message when invalid. The caret (^) modifier can now only be used alone (not in combination with other modifiers) and theC-,M-andS-modifiers must be uppercase. - Removed support for chained key bindings (e.g.
bind '^X c' ...). Commands that aren't bound to simple key combinations can just be accessed via command mode. - Removed support for recognizing some Ctrl/Alt/Shift key combinations
produced by the
rxvtterminal emulator. The key codes produced byrxvtviolate the ECMA-48 specification. Users of such terminals are encouraged to configure the key codes to mimicxterminstead.
Downloads:
v1.7
Released on 2018-05-08.
Changes:
- Added support for opening multiple files using glob patterns (e.g.
open -g *.[ch]). - Added support for binding more xterm extended key combinations (Ctrl/Meta/Shift + PageUp/PageDown/Home/End).
- Improved compiler error parsing for newer versions of GCC.
- Improved handling of underline/dim/italic terminal attributes
(including support for the
ncvterminfo capability). - Many other small bug fixes and code improvements.
Downloads:
v1.6
Released on 2017-12-20.
Changes:
- Added new, default
darkcolor scheme. - Added Ctrl+G key binding to exit command mode.
- Added Ctrl+H key binding for
erasecommand. - Added syntax highlighting for TeX and roff (man page) files.
- Improved syntax highlighting of Python numeric literals.
- Improved syntax highlighting for CSS files.
- Added
ft -bcommand for detecting file types from file basenames. - Converted user documentation to Markdown format.
- Created new website for online documentation.
- Added support for terminfo extended (or "user-defined") capabilities.
- Added built-in support for
standrxvtterminals. - Fixed some built-in regex patterns to avoid non-portable features.
- Fixed compiler warnings on NetBSD.
- Removed tilde expansion of
~username/fromdterccommands, in order to avoid usinggetpwnam(3)and thereby allow static linking with glibc on Linux.
Downloads:
v1.5
Released on 2017-11-03.
Changes:
- Added syntax highlighting for Nginx config files.
- Added some POSIX and C11 features to the C syntax highlighter.
- Added new command-line flags for listing (
-B) and dumping (-b) built-in rc files. - Moved some of the documentation from the
dte(1)man page to a separatedterc(5)page. - Fixed a terminal input bug triggered by redirecting
stdin. - Fixed some memory and file descriptor leaks.
- Fixed a few portability issues.
Downloads:
v1.4
Released on 2017-10-16.
Changes:
- Changed the build system to compile all default configs and syntax
highlighting files into the
dtebinary instead of installing and loading them from disk. The$PKGDATADIRvariable is now removed. - Added syntax highlighting for the Vala and D languages.
- Added the ability to bind additional, xterm-style key combinations
(e.g.
bind C-M-S-left ...) when$TERMistmux(previously only available forxtermandscreen). - Added an option to compile without linking to the curses/terminfo
library (
make TERMINFO_DISABLE=1), to make it easier to create portable, statically-linked builds.
Downloads:
v1.3
Released on 2017-08-27.
Changes:
- Added support for binding Ctrl+Alt+Shift+arrows in xterm/screen/tmux.
- Added support for binding Ctrl+delete/Shift+delete in xterm/screen/tmux.
- Added the ability to override the default user config directory via
the
DTE_HOMEenvironment variable. - Added syntax highlighting for the Markdown, Meson and Ruby languages.
- Improved syntax highlighting for the C, awk and HTML languages.
- Fixed a bug with the
close -wqcommand when using split frames (wsplit). - Fixed a segfault bug in
git-openmode when not inside a git repo. - Fixed a few cases of undefined behaviour and potential buffer overflow inherited from dex.
- Fixed all compiler warnings when building on OpenBSD 6.
- Fixed and clarified various details in the man pages.
- Renamed
inc-homeandinc-endcommands tobolsfandeolsf, for consistency with other similar commands. - Renamed
dte-syntax.7man page todte-syntax.5(users with an existing installation may want to manually deletedte-syntax.7).
Downloads:
v1.2
Released on 2017-07-30.
Changes:
- Unicode 10 rendering support.
- Various build system fixes.
- Coding style fixes.
Downloads:
v1.1
Released on 2017-07-29.
Changes:
- Renamed project from "dex" to "dte".
- Changed default key bindings to be more like most GUI applications.
- Added
-nflag todelete-eolcommand, to enable deleting newlines if the cursor is at the of the line. - Added
-pflag tosavecommand, to open a prompt if the current buffer has no existing filename. - Added
inc-endandinc-homecommands that move the cursor incrementally to the end/beginning of the line/screen/file. - Added a command-line option to jump to a specific line number after opening a file.
- Added syntax highlighting for
ini,robots.txtandDockerfilelanguages. - Fixed a compilation error on OpenBSD.
- Replaced quirky command-line option parser with POSIX
getopt(3).
Downloads:
v1.0
Released on 2015-04-28.
This is identical to the v1.0 release of
dex (the editor from which
this project was forked).
Downloads:
Public Key
A detached PGP signature file is provided for each release. The
public key for verifying these signatures is available to download at https://craigbarnes.gitlab.io/pubkey/0330BEB4.asc
or from the keyserver at hkps://keys.openpgp.org.
Checksums
A list of SHA256 checksums for all release tarballs and signatures is available at https://craigbarnes.gitlab.io/dist/dte/dte-sha256sums.txt.
Portable Builds for Linux
Some pre-built, portable binaries are available for Linux. They're
statically-linked with musl
libc and require nothing of the host system except a somewhat recent
kernel and a compatible CPU architecture (x86_64 or
aarch64).
dte-1.11.1-linux-x86_64.tar.gz(latest release,x86_64)dte-1.11.1-linux-aarch64.tar.gz(latest release,aarch64)dte-master-linux-x86_64.tar.gz(latest commit,x86_64)dte-master-linux-aarch64.tar.gz(latest commit,aarch64)
Note: builds for riscv64 may be added at some
point in the future, but no other architectures or platforms will be
hosted here. These builds are maintained on a "best effort" basis
only.