FG42/lisp/fg42/init.el

85 lines
2.4 KiB
EmacsLisp

;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*-
;;
;; Copyright (c) 2010-2024 Sameer Rahmani <lxsameer@gnu.org>
;;
;; Author: Sameer Rahmani <lxsameer@gnu.org>
;; URL: https://devheroes.codes/FG42/FG42
;; Version: 3.0.0
;;
;; This program 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 3 of the License, or
;; (at your option) any later version.
;;
;; This program 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, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;; This is the very first file that Emacs will load to setup FG42
;;; Code:
(when (string= (getenv "FG42_DEBUG") "1")
(setq debug-on-error t))
(eval-when-compile
(defvar package-archives)
(defvar use-package-ensure-function))
(defgroup fg42 nil
"Customize your FG42 instance via this group of configurations.")
(defvar fg42/disabled-features nil
"List of features to disable.")
(defvar fg42/after-init-hook nil
"The hook tha runs when FG42 finished running the user configuration.")
(defvar fg42/debug-p nil
"The hook tha runs when FG42 finished running the user configuration.")
(defvar fg42-home (or (getenv "FG42_HOME") "~/.fg42")
"The pass to fg42-home.")
(defvar fg42-tmp (make-temp-file "fg42-" t))
(add-to-list 'load-path (concat (getenv "FG42_HOME") "/lisp"))
;; (when fg42-use-nix
;; (require 'site-start))
;; Prevent package.el to install anything at startup
(setq package-enable-at-startup nil)
(setq package-archives nil)
(setq use-package-ensure-function 'ignore)
(setq tab-width 2)
(let ((emacsd (or (getenv "FG42_EMACSD") (format "%s/emacs.d" (getenv "FG42_HOME")))))
(setq custom-file (format "%s/.fg42.custom.el" emacsd))
(setq user-emacs-directory emacsd)
(setq user-init-file
(or (getenv "FG42_CONFIG_FILE")
(format "%s/.fg42.v4.el"
(getenv "HOME")))))
;; Load the customization file. In FG42 it is different than
;; the default `user-init-file'
(if (file-exists-p custom-file)
(load custom-file))
(require 'fg42)
(fg42/initialize-v4)
(provide 'fg42/init)
;;; init.el ends here