FG42, The ultimate editor for true believers

FG42 is a framework to create and editor and window manager based on GNU/Emacs. It has a pre-defined setup as well which can be installed out of the box. But the goal of this project is to provide the API necessary to create an integrated editor.

So you need to know about Emacs in advance.

Requirements

In order to use FG42 you need Emacs >= 27.1 and the texinfo package. If you're on a debian based distro you can install it using apt install texinfo.

Install from source

In order to install FG42, issue the following commands:

# clonse the FG42 repository in ~/.fg42 directory
$ git clone https://devheroes.codes/FG42/FG42.git ~/.fg42/
# You can clone it where ever your want
$ cd ~/.fg42/
$ make install
# Run fg42, It will download and build some lisp dependencies on the first execution.
$ fg42

Since the installer script uses sudo, during the installation process, you'll have to enter your password. Make sure that you're user account has a sudo access.

After installing FG42 you should be able to start the default editor via fg42 script. The very first time that you start fg42 it will download all the necessary packages to operate, so it will take a while for all the packages to install. You can tell when it is finished by a message in the minibuffer and the fact that the look of emacs changes. Enjoy using FG42 ;)

Configuration

After installation there would be a file at ~/.fg42.el which is the user specific configuration of FG42. You can configure your copy of FG42 using this file. Also you can generally use this file to configure Emacs as well.

Terms & Concepts

FG42 introduced some new features to the Vanilla Gnu/Emacs. So you migh encounter several of these features during your journey. It's a good idea to at least know what you're dealing with.

Cubes

FG42's design is very similar to Gentoo. The abstraction unit of functionality in FG42 is a Cube. Cubes are function like entities that you can call in order to activate them. They get activated just once and multiple calls don't have any effect on them.

Flags

Documentation

TBD

Debugging

If you ran into an issue and want to debug FG42, the best and easiest way is to turn on debugging by uncommenting (setq debug-on-error t) in your configuration (~/.fg42.el) and restarting FG42. After that you'll get a traceback for any exception in FG42.

what's with the name?

I'm a huge fan of [Steins Gate](https://en.wikipedia.org/wiki/Steins;Gate) anime and I follow its naming convensions on Future Gadgets 42.

Why we moved from Github ?

We're not happy with Microsoft buying Github and we don't trust a company like Microsoft because of their history and their strategies (For more information take a look at Halloween documents. So we decided to move to Devheroes as an alternative and we are happy here so far.

Contribute

FG42 made possible by the effort of the community of Contributors.

If you're interested in FG42 and wants to contribute to the project please follow the How to Contribute Guitd. Also please read our Code of Conduct as well.

Recent updates:

License

FG42 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version.

FG42 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

All the documents of FG42 that locate in 'doc' directories release under the term of GNU FDL.

Copyright (C) 2010-2022 Sameer Rahmani <[email protected]>