Orbiton is a text editor and a simple IDE with the following leading principles:
VT100
)Please submit a PR if anything can be improved to help adhere to these.
Orbiton might be a good fit for:
EDITOR=o git commit
).README.md
and TODO.md
files.visudo
replacement and has built-in support for neatly formatting /etc/fstab
files.ctrl-g
to see the word count).This has been my main editor for around 3 years now (since early 2022), and it is mostly written in itself, apart from some NeoViM in the early beginning.
Screenshot of the VTE GUI application (that can be found in the gtk3
directory), running the o
editor:
Stepping through the assembly instructions of a Rust program by entering debug mode with the ctrl-o
menu and then stepping with ctrl-n
:
Editing a C source file in og
using the "synthwave" theme:
There are also light themes available:
Writing commit messages:
orbitonWith Go 1.21 or later, the development version of o
can be installed like this:
go install github.com/xyproto/orbiton/v2@latest && mv -i ~/go/bin/orbiton ~/go/bin/o
Adjust the mv
flags and the ~/go/bin
path as needed. Perhaps go install
will have an -o
flag in the future.
Alternatively, download and install a release version. For example, for Raspberry Pi 2, 3 or 4 running Linux:
curl -sL 'https://github.com/xyproto/orbiton/releases/download/v2.70.0/orbiton-2.70.0-linux_armv7_static.tar.xz' | tar JxC /tmp && sudo install -Dm755 /tmp/orbiton-2.70.0-linux_armv7_static/o /usr/bin/o && sudo install -Dm644 /tmp/orbiton-2.70.0-linux_armv7_static/o.1.gz /usr/share/man/man1/o.1.gz
Setting o
as the default editor executable for git
To set:
git config --global core.editor o
To unset:
git config --global --unset core.editor
By setting the MANPAGER
environment variable, it's possible to use o
for viewing man pages:
An alternative to viewing man pages in o
is to use less
:
export MANPAGER='less -s -M +Gg'
Install o
manually, until an OpenSUSE package exists:
git clone https://github.com/xyproto/orbiton
cd orbiton
make && sudo make install
The following is not strictly needed, but it sets everything up to make full use of o
:
Add this to ~/.alias
:
Add this to ~/.profile
:
export MANPAGER=/usr/bin/o
export EDITOR=/usr/bin/o
Log out and in again to activate the changes.
These features are unique to o
, as far as I am aware:
ctrl-v
once to paste one line, press ctrl-v
again to paste the rest.ctrl-c
once to copy one line, press ctrl-c
again to copy a block of lines (until a blank line), press ctrl-c
again to copy the current function.ctrl-r
. When a portal is open, copy lines across files (or within the same file) with ctrl-v
.ctrl-space
and format code with ctrl-w
, for a wide range of programming languages.ctrl-w
or ctrl-r
, when an interactive git rebase session is in progress.ctrl-l
. Either enter a number to jump to a line or just press return
(or t
) to jump to the top. Press ctrl-l
and return
again (or b
) to jump to the bottom. Press c
to jump to the center.ctrl-l
, jumping to a percentage (like 50%
) or a fraction (like 0.5
or .5
) is also possible. It is also possible to jump to one of the highlighted letters.main.
file that does not exist, but main.cpp
and main.o
does exists, then main.cpp
will be opened.ctrl-f
, entering text and pressing return
. Replace by pressing tab
instead of return
, then enter the replacement text and press return
. Searching for unicode runes on the form u+0000
is also supported.iferr
on a single line in a Go or Odin program and press return
to insert a suitable if err != nil { return ... }
block, based on koron/iferr.ctrl-t
when the cursor is on a table. This works best for tables that are not too wide.ctrl-w
.if
, for
and while
when return is pressed.ctrl-f
twice searches for the word under the cursor."Hello, World"
in many popular programming languages simply by pressing ctrl-space
.o main.c
, pressing ctrl-w
and then a double ctrl-space
..png
, .jpg
, .jpeg
, .gif
, .ico
, .bmp
and .webp
images directly in the terminal (using a scaled down version and up to 16 colors).-p
flag followed by a filename can be used for just pasting the clipboard to a new file, instead of editing a file.ctrl-t
can jump between a C++ header and source file, when editing C++ code.ctrl-t
shows the Markdown table editor, when editing Markdown and the cursor is on a Markdown table.vim
and emacs
, for small files.pandoc
.alacritty
, konsole
, st
, urxvt
, xfce4-terminal
, xterm
and zutty
.NO_COLOR
environment variable can be set to disable all colors.ctrl-a
and ctrl-e
may need to be used instead of Home
and End
. And for browsing up and down, ctrl-n
and ctrl-p
may be used.go
or gccgo
./dev/tty
is available.xclip
for X, wl-clipboard
for Wayland or pbcopy
for macOS needs to be installed to access the system clipboard.+
or :
prefix.COMMIT_EDITMSG
, the look and feel will be adjusted for git commit messages.UTF-8
, but some runes may be displayed incorrectly.\n
).\r\n
) to UNIX line endings (just \n
), whenever possible.0xc2 0xa0
) with a regular space (0x20
) whenever possible.0xcc 0x88
) with a regular tilde (~
) whenever possible.0xcd 0xbe
) with a regular semicolon (;
) whenever possible.git rebase -i
, then either ctrl-w
or ctrl-r
will cycle the keywords for the current line (fixup
, drop
, edit
etc).r
(or have a symlink with that name), the default theme will be red/black.l
(or have a symlink with that name), the default theme will be suitable for light backgrounds.s
(or have a symlink with that name), the default theme will be the "synthwave" theme.o filename.md
, press ctrl-space
twice and quit with ctrl-q
.ctrl-space
or ctrl-t
to toggle the check mark in - [ ] TODO item
boxes in Markdown..gz
extension.ctrl-w
.ctrl-f
and then t
to search for a typo, ctrl-n
for next match and then ctrl-a
to add it and ctrl-i
to ignore it).ctrl-l
is pressed.tmux
and resizing the terminal emulator window may trigger text rendering issues. Try pressing esc
to redraw the text, or ctrl-f
to search for text. Setting TERM
correctly might help. Using zellij
instead of tmux
works!o
is busy performing an operation, pressing ctrl-s
may lock the terminal. Some terminal emulators, like konsole
, can be configured to turn off this behavior. Press ctrl-q
to unlock the terminal again (together with the unfortunate risk of quitting o
). To sidestep this issue, the ctrl-o
menu can be used instead, for saving and quitting.mosh
may cause text rendering issues (in both nvim
and o
).cmd-v
, cmd-x
and cmd-c
on macOS only works when using the og
GUI/VTE frontend. For o
, ctrl-v
, ctrl-x
and ctrl-c
can be used instead.There are pretty few hotkeys to remember:
ctrl-s
- Save.ctrl-q
- Quit.ctrl-r
- Open or close a portal. Text can be pasted from the portal into another (or the same) file with ctrl-v
. For "git interactive rebase" mode (git rebase -i
), this will cycle the rebase keywords instead.ctrl-a
- Go to start of text, then start of line and then to the previous line.ctrl-e
- Go to end of line and then to the next linectrl-n
- Scroll down 10 lines, or go to the next match if a search is active. Insert a column when in the Markdown table editor. Jump to a matching parenthesis or bracket if the arrow keys were just used.ctrl-p
- Scroll up 10 lines, or go to the previous match if a search is active. Remove an empty column when in the Markdown table editor. Jump to a matching parenthesis or bracket if the arrow keys were just used.ctrl-k
- Delete characters to the end of the line, then delete the line.ctrl-_
- Insert a symbol by typing in a 2-letter digraph. Try the --digraphs
or -s
flag to list all possible digraphs.ctrl-d
- Delete a single character.ctrl-t
- For C and C++: jump between the current header and source file. For Agda and Ivy, insert a symbol. For Markdown: toggle checkboxes, or launch the table editor if the cursor is over a table. For the rest: record and play back keypresses/"macros". Press Esc
to clear the current macro.ctrl-o
- Open a command menu with actions that can be performed.ctrl-x
- Cut the current line. Press twice to cut a block of text (to the next blank line).ctrl-c
- Copy one line. Press twice to copy a block of text. Press thrice to copy the current function.ctrl-v
- Paste one trimmed line. Press twice to paste multiple untrimmed lines.ctrl-space
- Build program, render to PDF or export to man page (see table below). For Markdown: toggle checkboxes, or double press to export to HTML.ctrl-j
- Join the current line with the next one.ctrl-u
- Undo (ctrl-z
is also possible, but may background the application).ctrl-l
- Jump to a specific line number or percentage. Press return
to jump to the top. If at the top, press return
to jump to the bottom. Press one of the highlighted on-screen letters to jump to that location.ctrl-f
- Search for a string. The search wraps around and is case sensitive. Press tab
instead of return
to search and replace. To find typos, search for the letter t
, then press ctrl-n
for the next word, ctrl-a
to add it or ctrl-i
to ignore it.ctrl-b
- Jump back after jumping to a definition with ctrl-g
. Toggle a bookmark for the current line, or if set: jump to a bookmark on a different line.ctrl-w
- Format the current file (see the table below), or cycle git rebase keywords. For Markdown, format the table under the cursor.ctrl-g
- Jump to definition, for some programming languages (experimental feature), or toggle the status bar.ctrl-\
- Comment in or out a block of code.ctrl-~
- Insert the current date and time.esc
- Redraw everything and clear the last search.ctrl-space
to build or export the current file.ctrl-w
to format the current file, in an opinionated way. If the current file is empty, a "Hello, World!" template will be inserted, for some file extensions.$(o -l)
, to get more details. o -l
can be used to preview the command..adb
, .gpr
, .ads
, .ada
WIP WIP WIP Agda .agda
Yes agda -c $filename
N/A ALGOL 68 .a68
WIP a68g --compile $filename
WIP Assembly .asm
, .s
, .S
, .inc
Yes yasm -f elf64 -o $output.o $filename
N/A C .c
, .h
Yes gcc $filename -o $output
clang-format -i --style=WebKit $filename
C++ .cpp
, .cc
, .cxx
, .h
, .hpp
, .h++
, .c++
Yes g++ $filename -o $output
clang-format -i --style=WebKit $filename
C# .cs
Yes dotnet build $filename
astyle --mode=cs $filename
C3 .c3
Yes c3c compile -o $output $filename
c3fmt --rewrite $filename
Clojure .clj
, .cljs
, .clojure
WIP lein compile $filename
WIP Crystal .cr
Yes crystal build $filename --release
crystal tool format $filename
CSS .css
WIP No prettier --tab-width 2 -w $filename
D .d
Yes dmd $filename -of$output
WIP Dart .dart
Yes dart compile exe --output $output $filename
dart format $filename
Erlang .erl
Yes erlc $filename
WIP Fortran77, Fortran90 .f
, .f90
Yes gfortran -o $output $filename
WIP Garnet .gt
WIP garnetc -o $output $filename
WIP GLSL .glsl
, .vert
, .frag
WIP glslangValidator -V -o $output $filename
WIP Go .go
Yes go build $filename
goimports -w $filename
Hare .ha
Yes hare build $filename
N/A Haskell .hs
Yes ghc -dynamic $filename
brittany --write-mode=inplace $filename
HTML .html
WIP No tidy -m $filename
Ivy .ivy
WIP WIP N/A Java .java
Yes javac
+ jar
, see details below google-java-format -a -i $filename
JavaScript .js
WIP No prettier --tab-width 4 -w $filename
Jakt .jakt
WIP jakt $filename
WIP Just justfile
, .justfile
No No just --unstable --fmt -f $filename
Kotlin .kt
, .kts
Yes kotlinc $filename -include-runtime -d $output.jar
ktlint -F $filename
Kotlin Native .kt
, .kts
Yes kotlinc-native -nowarn -opt -Xallocator=mimalloc -produce program -linker-option --as-needed $filename -o $output
ktlint -F $filename
Lua .lua
Yes luac -o $output.luac $filename
lua-format -i --no-keep-simple-function-one-line --column-limit=120 --indent-width=2 --no-use-tab $filename
Markdown .md
WIP No prettier --write $filename
Nim .nim
WIP nim c -o:$output $filename
WIP Objective-C .m
Yes clang $filename -o $output
clang-format -i --style=WebKit $filename
Odin .odin
Yes odin build $filename
N/A Objective Pascal .pas
, .pp
, .lpr
Yes fpc $filename
WIP OCaml .ml
WIP No ocamlformat $filename
Perl .pl
Yes perl $filename
/usr/bin/vendor_perl/perltidy -se -b -i=2 -ole=unix -bt=2 -pt=2 -sbt=2 -ce $filename
Python .py
Yes python -m py_compile $filename
black $filename
Ruby .rb
No No rubocop -A $filename
Rust (with Cargo.toml) .rs
Yes cargo build
rustfmt $filename
Rust .rs
Yes rustc $filename
rustfmt $filename
Scala .scala
Yes scalac $filename && jar cfe $output MainClass *.class
scalafmt $filename
Shell .sh
, PKGBUILD
, APKBUILD
WIP makepkg
shfmt -s -w -i 2 -bn -ci -sr -kp $filename
Standard ML .sml
, .fun
, .mlb
, .cm
Yes mlton $filename
WIP Swift .swift
WIP WIP WIP TypeScript .ts
WIP No prettier --tab-width 4 -w $filename
V .v
Yes v build $filename
v fmt $filename
XML .xml
WIP No tidy -w 80 -q -i -utf8 --show-errors 0 --show-warnings no --tidy-mark no -xml -m $filename
Zig .zig
Yes zig build-exe $filename
zig fmt $filename
/etc/fstab
, JSON and HTML files are also supported, and can be formatted with ctrl-w
.
o
will try to jump to the location where the error is and otherwise display Success
.ctrl-w
will word wrap the lines to a length of 99.kotlinc-native
is not available, this build command will be used instead: kotlinc $filename -include-runtime -d $name.jar
CXX can be downloaded here: GitHub project page for CXX.
File type File extensions Build or export command AsciiDoc.adoc
asciidoctor -b manpage
(writes to out.1
) scdoc .scd
, .scdoc
scdoc
(writes to out.1
) Markdown .md
pandoc -N --toc -V geometry:a4paper
(writes to $filename.pdf
) Debug support for C and C++
This is a brand new feature and needs more testing.
gdb
is installed, it's possible to select "Debug mode" from the ctrl-o
menu and then build and step through a program with ctrl-space
, or set a breakpoint with ctrl-b
and continue with ctrl-space
.While in the Markdown table editor:
tab
can be used to go to the next cell, or insert new cells if the last cell is reached.return
can be used to either jump to the blank cell below or to insert a new row below.backspace
can be used to delete letters, but also for deleting the current row if it is empty.ctrl-n
can be used to insert a new column to the right.ctrl-d
can be used to delete the current column (if all cells in the column are empty).esc
or ctrl-t
can be used to close the Markdown table editor.ctrl-s
can be used to save.Themes can be selected with the ctrl-o
menu. The theme menu also lists the theme names, which can be specified in the O_THEME
environment variable.
The O_THEME
environment variable is an exception to the claim that o
is configuration-free, but it is completely optional.
For using ie. the Synthwave theme, the /usr/bin/sw
symlink to /usr/bin/o
can be used, or this can be added to ~/.profile
:
æ
, just press ctrl-_
and type in ae
. To insert µ
, type in My
.git clone https://github.com/xyproto/orbiton
cd orbiton
make && sudo make install
And optionally:
make gui && sudo make gui-install
It is also possible to install the symlinks that are suggested further down in this document.
OpenBSD installation instructionsInstall dependencies (use doas
if needed):
add_pkg git gmake go vte3
Build both the editor o
and the GUI frontend og
:
gmake CXX="clang++ -w" o og
Install both executables, a man page, an icon and a desktop shortcut file (use doas
if needed`):
PREFIX=/usr/local gmake install og-install
Just building and installing o
also works:
It is also possible to install the symlinks that are suggested further down in this document.
C++
ctrl-space
, cxx
must be installed.ctrl-w
, clang-format
must be installed.Go
ctrl-space
, The go
compiler must be installed.ctrl-w
, goimports
must be installed.Zig
zig
command is needed.V
v
command is needed.Rust
ctrl-space
, Cargo.toml
must exist and cargo
must be installed.ctrl-w
, rustfmt
must be installed.Haskell
ctrl-space
, the ghc
compiler must be installed.ctrl-w
, brittany
must be installed.Python
ctrl-space
only checks the syntax, without executing. This only requires python
to be available.ctrl-w
, black
must be installed.Crystal
crystal
command is needed.Kotlin
ctrl-space
, kotlinc
must be installed. A .jar
file is created if the compilation succeeded.ctrl-w
, ktlint
must be installed.Java
ctrl-space
, javac
and jar
must be installed. A .jar
file is created if the compilation succeeded.ctrl-w
, google-java-format
must be installed.Scala
ctrl-space
, scalac
and jar
must be installed. A .jar
file is created if the compilation succeeded.java -jar main.jar
. Use scalac -d main.jar MyFile.scala
if you want to produce a jar that can be executed with scala main.jar
.ctrl-w
, scalafmt
must be installed.D
ctrl-space
, gdc
must be available.JSON
fstab
fstab
files (usually /etc/fstab
) is a built-in feature. Just press ctrl-w
. If you need a standalone utility, fstabfmt
is available.JavaScript
prettier
must be installed.Since kotlinc $filename -include-runtime -d
builds to a .jar
, I though I should do the same for Java. The idea is to easily compile a single or a small collection of .java
files, where one of the files has a main
function.
If you know about an easier way to build a .jar
file from *.java
, without using something like gradle, please let me know by submitting a pull request. This is pretty verbose...
javaFiles=$(find . -type f -name '*.java') for f in $javaFiles; do grep -q 'static void main' "$f" && mainJavaFile="$f" done className=$(grep -oP '(?<=class )[A-Z]+[a-z,A-Z,0-9]*' "$mainJavaFile" | head -1) packageName=$(grep -oP '(?<=package )[a-z,A-Z,0-9,.]*' "$mainJavaFile" | head -1) if [[ $packageName != "" ]]; then packageName="$packageName." fi mkdir -p _o_build/META-INF javac -d _o_build $javaFiles cd _o_build echo "Main-Class: $packageName$className" > META-INF/MANIFEST.MF classFiles=$(find . -type f -name '*.class') jar cmf META-INF/MANIFEST.MF ../main.jar $classFiles cd .. rm -rf _o_build
For Scala, this is the code that is used to produce a main.jar
file that can be run directly with java -jar main.jar
:
#!/bin/sh scalaFiles=$(find . -type f -name '*.scala') for f in $scalaFiles; do grep -q 'def main' "$f" && mainScalaFile="$f" grep -q ' extends App ' "$f" && mainScalaFile="$f" done objectName=$(grep -oP '(?<=object )[A-Z]+[a-z,A-Z,0-9]*' "$mainScalaFile" | head -1); packageName=$(grep -oP '(?<=package )[a-z,A-Z,0-9,.]*' "$mainScalaFile" | head -1); if [[ $packageName != "" ]]; then packageName="$packageName." fi mkdir -p _o_build/META-INF scalac -d _o_build $scalaFiles cd _o_build echo -e "Main-Class: $packageName$objectName\nClass-Path: /usr/share/scala/lib/scala-library.jar" > META-INF/MANIFEST.MF classFiles=$(find . -type f -name '*.class') jar cmf META-INF/MANIFEST.MF ../main.jar $classFiles cd .. rm -rf _o_build
/usr/share/scala/lib/scala-library.jar
is not found scalac -d run_with_scala.jar
is used instead.scala-library.jar
was not found, then the resulting jar
file will need scala
to run.ctrl-t
brings up a menu with a selection of special symbols.
There are also these shortcuts:
⊤
by pressing ctrl-t
and then t
.ℕ
by pressing ctrl-t
and then n
.When editing PKGBUILD
files, it is possible to press ctrl-o
and select Call Guessica
to update the pkgver=
and source=
fields, by a combination of guesswork and online searching. This functionality depends on the Guessica package update utility being installed, and will only work for some PKGBUILD
files.
a68g
- for compiling ALGOL 68 codeagda
- for compiling Agda codeasciidoctor
- for writing man pagesastyle
- for formatting C# codeblack
- for formatting Python codebrittany
- for formatting Haskell codecargo
- for compiling Rustclang
- for formatting C++ code with clang-format
clojure
- for compiling Clojurecrystal
- for compiling Crystalcxx
- for compiling C++fpc
- for compiling Object Pascalg++
- for compiling C++ codegdc
- for compiling D codeghc
- for compiling Haskell codego
- for compiling Go codego-tools
- for formatting Go code and handling imports with goimports
google-java-format
- for formatting Java codejad
- decompile .class
files on the fly when opening them with o
java-environment
- for compiling Java code and creating .jar
files with javac
and jar
kotlin
- for compiling Kotlinktlint
- for formatting Kotlin codelua
- for compiling Lua to bytecodelua-format
- for formatting Lua codemlton
- for compiling Standard MLmono
- for compiling C# codeocaml
- for compiling and formatting OCaml codeodin
- for compiling Odinpandoc
- for exporting Markdown to PDFprettier
- for formatting JavaScript, TypeScript and CSSpython
- for compiling Python to bytecoderustc
- for compiling Rustrustfmt
- for formatting Rustscala
- for compiling Scalasdoc
- for writing man pagestidy
- for formatting XMLv
- for compiling and formatting V codezig
- for compiling and formatting Zig codeo
executable is 1.5M when built with GCC 12 (for 64-bit Linux) and compressed with upx
.One way of building with gccgo
and upx
(in the v2
directory):
go build -mod=vendor -gccgoflags '-Os -s' -o o && upx --best --lzma o
If the o
executable is built with go
instead, the size can be 8.7M, or just 2.8M when packed with upx
:
go build -mod=vendor -ldflags='-s -w' -trimpath -o o && upx --best --lzma o
Jumping to a specific line when opening a file
These four ways of opening file.txt
at line 7
are supported:
o file.txt 7
o file.txt +7
o file.txt:7
o file.txt+7
This also means that filenames containing +
or :
, and then followed by a number, are not supported.
-f
can be used to open a file, regardless of if there are any locks. It can also be used for overwriting files together with -p
.-c FILENAME
can be used to copy the contents of the given file to the clipboard and then exit.-p FILENAME
can be used to paste the contents of the clipboard to the given FILENAME
(if it does not already exist) and then exit.-n
can be used to avoid writing lockfiles, build files, location history, search history and the game highscore to $XDG_CACHE_DIR/cache/o
or ~/.cache/o
. Not recommended.-m
can be used to open a file as read-only, but monitor it for changes.--help
can be used to get a quick overview of the supported keybindings. It will also list additional supported flags.--version
will print the current version and then exit.When loading files that are large or from a slow disk, an animated spinner will appear. The loading operation can be interrupted by pressing esc
, q
or ctrl-q
.
This shell function works in zsh
and bash
and may be useful for both searching for and opening a file at the given line number (works best if there is only one matching file, if not it will open several files in succession):
fo() { find . -type f -wholename "*$1" -exec o {} $2 \;; }
If too many files are found, it is possible to stop opening them by selecting Stop parent and quit without saving
from the ctrl-o
menu, which will quit the editor and also kill the parent find
process.
Example use:
It is also possible to run a case-insensitive file search and open up the first match with, where "omfile" is a case-insensitive substring of the found filename:
When using pandoc
to export from Markdown to PDF:
PAPERSIZE
environment variable is set to ie. a4
or letter
, it will be respected when exporting from Markdown to PDF using pandoc, at the press of ctrl-space
.--pdf-engine=xelatex
and --listings
flags are used, so xelatex
and the listings
package needs to be available. A standard installation of LaTeX and Pandoc should provide both.Render to PDF with pandoc
will only appear on the ctrl-o
menu when editing a Markdown file and pandoc
is installed.ctrl-o
menu to start a silly little game about feeding creatures with pellets before they are eaten. Alternatively, create a symlink for starting it directly, ie.: ln -sf /usr/bin/o /usr/bin/feedgame
.right, down, left
or left, down, right
in rapid succession followed by either down
to save or up
to save and quit. The only purpose of this unusual shortcut is to help avoid the painful Emacs pinky.o
- for terminal emulators that supports at least VT100og
- for the VTE GUI (optional)# For starting o with the Light theme ln -sf /usr/bin/o /usr/bin/li # For starting o with the Red/Black theme ln -sf /usr/bin/o /usr/bin/redblack # For starting o with the Synthwave theme ln -sf /usr/bin/o /usr/bin/sw # For starting o with the Blue Edit theme ln -sf /usr/bin/o /usr/bin/edi # For starting o with the Light VS theme ln -sf /usr/bin/o /usr/bin/vs
# For starting the GUI version of o with the Light theme ln -sf /usr/bin/og /usr/bin/lig # For starting the GUI version of o with the Red/Black theme ln -sf /usr/bin/og /usr/bin/redblackg # For starting the GUI version of o with the Synthwave theme ln -sf /usr/bin/og /usr/bin/swg # For starting the GUI version of o with the Blue Edit theme ln -sf /usr/bin/og /usr/bin/edg # For starting the GUI version of o with the Light VS theme ln -sf /usr/bin/og /usr/bin/vg
Build:
Install (use sudo
or doas
, if needed):
ctrl-f
to search, and then type in t
and press return to search for the next typo.ctrl-a
to (temporarily) add it to the dictionary or ctrl-i
to (temporarily) ignore it.o
is launched by a symlink or executable named nan
or nano
), ctrl-t
searches for the next typo.The built-in spellchecker uses a list of words from this project that is licensed under this MIT license:
MIT License, Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Flow control
option in the profile settings, to ensure that ctrl-s
will never freeze the terminal.RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4