The Lumina Text Editor is a brand new utility released with Lumina 1.0. It is extremely lightweight, and can be opened with the user button or by typing lte in the command line.

Why does this exist?

One core philosophy behind the development of Lumina has been to use nothing but pure Qt5 for all underlying utilities. The Lumina Text Editor (LTE) was born from this philosophy. Surprisingly, despite the vast array of plain text editors floating around the Internet, there is no BSD-licensed text editor in active development that is purely Qt5. LTE fills that gap. It also follows other design philosophies of Lumina: clean and simple, with many customization options.

Figure 1: The Lumina Text editor, with three new files opened, along with the Find/Replace menu.


What does it do?

LTE is an ASCII text editor with all options contained within a few areas:

  • Menu Bar: The topmost element of the editor. Almost all options to configure the editor are housed within the “File”, “Edit”, and “View” menus. Where applicable, menu entries display the relevant keyboard shortcut.
  • Toolbar: The toolbar uses icons to provide easy access to the most common options for the editor: “New File” (sheet with green plus icon), “Open File” (page in folder icon), and “Save” (disk icon).
  • Tab Bar: LTE has a tab bar to easily navigate through multiple open files. Choosing to create a new file (Ctrl + N) or open an existing file (Ctrl + O) will create a new tab on the bar. Close the tabs with either the red “X” icon on each tab, or use the shortcut Ctrl + W. Please note closing tabs will currently not prompt to save the file, so be sure to save your work by pressing the disk icon (or Ctrl + S) before closing any tabs or the entire text editor. A save prompt will be added in the next update.
  • Find/Replace: Press “Ctrl + F” or “Ctrl + R” (or select “Edit” from the Menu Bar) to open the “Find/Replace” panel across the bottom of the window. The panel supports finding the previous or next match with the blue arrow up and arrow down icons. Also, the “i” button next to the previous/next match buttons can be selected to perform case-sensitive searches. Close the panel by pressing the red “X” icon, or by pressing Esc.

Figure 2: The “View” menu option, with “Syntax Highlighting” selected, showing the options for highlighting. Line numbers and wrapping are also active.

In the “View” category of the Menu Bar are more options to modify the editor:

  • Syntax highlighting: Currently supports C++ and reST, using rules created from scratch with regular expressions. Expanding the highlighting options will be a significant aspect of future development.
  • Line numbers: Select this option to display a vertical bar with line numbers on the left side of the window.
  • Line Wrap: Choose this option to have the editor automatically wrap lines using the the edge of the window.
  • Customize Colors: Choosing this opens a new window to choose the colors used for highlighting elements. The current item types and hex color codes are displayed, along with a sample of the color. To change a color, click the item type you wish to change, then “Select Color” in the lower left corner of the window. A new window will appear, offering a number of basic colors, in addition to a full editing option to create and save custom colors.

Figure 3: The LTE Color Customization Window                        Figure 4: The LTE Color Selection/Creation Window

What is the development status of this utility?

LTE was released as part of the Lumina 1.0 release. It is basic, but functional. It is still an active project, with more language syntax highlighting and menu options planned. One change immediately forthcoming is the addition of a “Fonts” toolbar option, where you can choose between different font styles for display.

Can I help?

Of course! LTE is an open source project relying on contributions from the broader community. LTE is housed in the Lumina repository on GitHub (, which is also used to report bugs and to submit additions or feature requests to the project. The project uses the three clause BSD license, which can be found at

Specifically, LTE could use a helping hand in creating more options for syntax highlighting. The rules for highlighting are all contained within one file, syntaxsupport.cpp, which is completely modular.

Collaborate on changes to LTE or the broader Lumina project with either the Gitter channel ( or the #lumina-desktop IRC channel on FreeNode.

Written by Tim Moore