3
6
Fork
You've already forked parchment
0
Barebones plaintext editor for GNOME
  • Lua 91.1%
  • C 6%
  • Makefile 2.9%
Victoria Lacroix e1e6d1e4b0 parchment: Fail silently when opening file from command-line
When attempting to open a file outside of the Flatpak sandbox using the command-line, Parchment would output a failed assertion to the console. Now, it fails completely silently.
2026年05月06日 16:49:48 -04:00
data parchment: Add empty status pages 2026年05月03日 18:25:43 -04:00
icons parchment: Add empty status pages 2026年05月03日 18:25:43 -04:00
po po: Add MESSAGES.pot 2026年04月29日 15:26:27 -04:00
.gitignore Remove pattern-based find/replace 2025年01月06日 16:14:31 -05:00
ca.vtrlx.Parchment.desktop launchers: Fix up wording 2026年04月23日 13:01:44 -04:00
ca.vtrlx.Parchment.Devel.desktop launchers: Fix up wording 2026年04月23日 13:01:44 -04:00
ca.vtrlx.Parchment.Devel.json 1.0 2026年04月29日 15:39:57 -04:00
ca.vtrlx.Parchment.metainfo.xml metainfo: Update release date, minimum requirements, tweak description 2026年05月04日 13:24:56 -04:00
COPYING Add GPL license 2024年07月24日 09:34:07 -04:00
Makefile makefile: Export scalable icon instead of 128x128 2026年05月04日 15:57:48 -04:00
parchment.c parchment: Remove standalone mode 2026年04月29日 17:13:06 -04:00
parchment.lua parchment: Fail silently when opening file from command-line 2026年05月06日 16:49:48 -04:00
parchment.png Update the image 2025年10月29日 08:57:13 -04:00
README.md readme: Add Flathub badge 2026年05月06日 15:30:48 -04:00

Get it on Flathub

parchment screenshot

Parchment

Write and edit plain text.

Features

  • write and edit text files
  • find and replace
  • jump to line by number
  • optimized for proportional type
  • quickly hop between files

Anti-Features

  • text formatting
  • regular expressions
  • line numbers
  • file gutters
  • monospace
  • tab expansion
  • syntax highlight

Rationale

Plain text editors are too complicated, and are overly reliant on monospace type to the point where it's often difficult to use proportional. Parchment was designed to provide a good experience with proportional type by default while also providing only those features which are absolutely necessary for editing code and prose in plain text.

Most of writing and software development involves writing new text rather than modifying existing text. Because writing new text is virtually the same experience between all text editors, there is very little time efficiency to be gained in optimizing the text editing experience beyond a few simple features before reaching a point of diminishing returns. Worse still, the increasing complexity of a text editing interface negatively impacts usability to the point where the aforementioned diminishing returns are often negated. In other words: most text editing features are distractions of little or negative value to the task at hand.

Extra Functionality

Parchment's find-and-replace functions are intentionally limited for simplicity, with only a single advanced feature to note: If the current selected text contains one or more matches, then a new "Replace in Selection" button will be presented allowing for quick localized changes.

To facilitate clean text editing, Parchment will fix files when saving. Specifically, whitespace at the end of each line will be removed and the file itself will be guaranteed to terminate in exactly one newline character, making Parchment-written files properly suitable for use in command-line programs.

Parchment refuses to open non-textual and non-UTF-8 files; Any file containing a NUL character (byte of value 0x00) or any invalid UTF-8 sequence will be rejected with a warning.

When pressing the tab key, Parchment will always insert tab characters. For files and projects requiring spaces as indentation, it's recommended to use the "Modify Formatting" dialog which can be opened from the secondary-click context menu when a file is open. For editing code in an existing project using non-tab indentation, it's recommended to use this dialog to change the indentation to tabs, make your changes, then reindent to the number of spaces the project expects once it's time to save.

Building

Parchment compiles with Flatpak Builder.

flatpak-builder build ca.vtrlx.Parchment.Devel.json --user --install --force-clean

This will install the development version of Parchment. Run using flatpak run ca.vtrlx.Parchment.Devel or from your desktop's application launcher.

Localization

Parchment uses gettext for localization. These instructions assume you have it installed on your system.

To create a message file for your desired language, execute this command in a terminal from Parchment's root folder:

make po/<LANG>.po

<LANG> should be replaced by the two-letter language code for the language you're translating the app to, optionally followed by an underscore _ character and a two-letter country code in ALL-CAPS i.e. fr for French or fr_CA for Canadian French.

This command creates a file in the po/ folder named <LANG>.po.

Next, edit the <LANG>.po file and add your translated strings. I recommend using Translation Editor for this.

The last strings to localize are for the ca.vtrlx.Parchment.desktop and ca.vtrlx.Parchment.Devel.desktop files. Add new lines for the Comment, Keywords, and (if applicable) Name keys in all sections of both files. Be sure to keep the translated lines in alphabetical order with respect to the language codes.

Once finished, try running Parchment in your language using the testing instructions above. If all the strings appear to have been translated, commit your finished <LANG>.po file to Git, push the commit to a branch under your control, and submit a pull request on Codeberg.

Updating a Localization

If the application is updated and the translation needs to be changed, again run this command in the project's root folder:

make po/<LANG>.po

This will update the given .po file with the new translatable strings. The updated .po file for your language may then be modified, committed, and put into a pull request as usual.

License

Parchment is free software distributed under the terms of the GNU General Public License version 3 or later. See COPYING for more information.