Skip to content

Releases

Plain 0.3.3

Choose a tag to compare

@dhh dhh released this 12 Nov 21:03
9a24d38

Improvements

  • The app is called Text Editor in the app launcher, in its window title, as in hyprland.conf — Text Editor, and in its own messages, translated into every Omarchy language (#18, #19). The command, package and icon keep the Plain name.

Plain 0.3.2

Choose a tag to compare

@dhh dhh released this 12 Nov 14:47

Improvements

  • The find bar is tidier: the match count sits at the end of the find field, so nothing shifts as you type, and both fields share a width (#12, #16)
  • Shift + Enter in the replace field replaces and steps back to the previous match, and Ctrl + Enter replaces all (#12, #15)
  • The unsaved-changes panel answers to a bare C, D or S, without Alt. Alt + letter still works (#10)
  • Shortcuts read with spaces, as in Ctrl + Shift + S (#11)
  • A redrawn icon in Omarchy's app icon style. On Omarchy it now follows the theme's colors (#17)

Fixes

  • Files containing a U+2029 paragraph separator now open, and save back byte for byte (#13)
  • In right-to-left languages, long search text no longer runs under the match count (#14)

Plain 0.3.1

Choose a tag to compare

@omarchybot omarchybot released this 12 Nov 12:12

Translated

  • Plain now speaks the language picked under Setup > Language, in all 49 of Omarchy's languages: the find bar, the banners about the file, the unsaved-changes question, Go to line and the shortcut overlay.
  • The unsaved-changes buttons keep Alt+C, Alt+D and Alt+S in every language, and underline the letter where the translated word has it.
  • New strings are translated automatically as they're added.

Right-to-left languages show translated text in a layout that isn't mirrored yet.

Plain 0.3.0

Choose a tag to compare

@omarchybot omarchybot released this 12 Nov 11:48

Safer files

  • Save As no longer writes over a file Plain refused to open. A binary or huge file that was put aside can't be truncated by Ctrl+Shift+S, Enter.
  • A file that turns into one Plain won't open while it's open (a FIFO swapped in, or a file grown past 1 MB) is handled the way opening it would be, instead of freezing the window or being read whole.
  • A read-only file unlocks as soon as you make it writable in a terminal, without reopening it.

Editing

  • Saving an untitled file from the unsaved-changes question now goes on to close the window or open the other file.
  • A comment or string that closes on a line too long to color no longer leaves the rest of the file colored as if still inside it.
  • With a language picked, the find bar's count falls back to English counted by English rules ("21 matches", not "21 match"), and a first language pick that creates ~/.config/omarchy is followed right away.

Everywhere

  • plain --help and plain --version answer on a TTY or over SSH, without a display.
  • Plain builds with CMake, and every pull request runs the tests.

Plain 0.2.0

Choose a tag to compare

@dhh dhh released this 10 Nov 20:50

Faster

  • Typing in a long file no longer lags: a keystroke at the end of a 10,000-line config takes 2 ms instead of 160. Files now load through Qt Quick's TextEdit, which draws only the visible lines of a long text.
  • Opening is about twice as fast: a 10,000-line config in 0.27 s instead of 0.5, a 2,000-line one in 60 ms.
  • Lines over 2,000 characters stay uncolored, so a minified file's single line opens in 12 ms and types at 10 ms a key instead of half a second.
  • Files over 1 MB are put aside before reading them, and saving other files in the same folder no longer makes Plain reread the open one.

Safer saving

  • Overwrite in place now checks the file on disk first, like Save, so it never writes over changes made elsewhere since you opened it.
  • A save stops when the file can't be read back to check it hasn't changed.
  • Reload keeps your text when the file on disk has become unreadable, isn't text, or is gone, instead of emptying the editor.
  • A file ending in a cut-off UTF-8 sequence is refused instead of being opened without those bytes, which saving would have dropped.
  • Replacing a file asks first when it would change the file's group, and a failed restore of special permission bits is reported.
  • A new file in a folder you can't write opens locked, like a read-only file.

Editing

  • The find bar is at the top, its match count follows your edits, and Ctrl+G 1 2 Enter typed quickly lands every key in Go to line.
  • Tab over a selection within one line replaces it with the indentation.
  • Dismissing the save dialog while closing or opening another file cancels that, and saving an untitled file before opening another goes on to open it.
  • The shortcut overlay and Go to line follow the desktop's text size.

Verified by Codex.

Plain 0.1.0

Choose a tag to compare

@dhh dhh released this 10 Nov 20:11

The first release of Plain, Omarchy's text editor for config files: the editor you don't have to learn. Ctrl+S saves, Ctrl+Z undoes, Ctrl+F finds, and the window closes like any other.

Editing

  • Conventional keys throughout: save, open, undo and redo, find and replace, go to line (Ctrl+G), comment and uncomment (Ctrl+/), indent and outdent (Tab, Shift+Tab), word wrap (Alt+Z) and text size (Ctrl+Plus, Ctrl+Minus). F1 or the ? in the footer lists them all.
  • Enter keeps the line's indentation, and tabs or spaces are detected from the file.
  • Syntax colors for Lua (Hyprland's config), hyprlang, INI and other key = value files, TOML, JSON, YAML, shell and CSS, from a small built-in highlighter that opens a 10,000-line file in under a second.

Careful with files

  • Saves atomically and follows symlinks, so linked configs stay linked.
  • Keeps line endings, a byte-order mark and the final newline as they were. Opening and saving without edits gives back the same bytes.
  • Never saves over a version you haven't seen: it checks the file right before every save, and asks when something else changed or deleted it.
  • Asks before writing in place when replacing the file would lose hard links, ownership, special permission bits or extended attributes.
  • Opens only valid UTF-8 text. Files that belong to root open read-only, with a lock in the footer and the sudoedit command to edit them.

Fits the desktop

  • Follows the Omarchy theme, font and text size live, with dialogs in the theme's colors and Hyprland's corner rounding.
  • Works as $EDITOR, $VISUAL and $SUDO_EDITOR: it runs in the foreground and exits when its window closes.