diff --git a/core/core-early-funcs.el b/core/core-early-funcs.el new file mode 100644 index 000000000..8a3b37987 --- /dev/null +++ b/core/core-early-funcs.el @@ -0,0 +1,39 @@ +;;; core-early-funcs.el --- Spacemacs Core File +;; +;; This file is sourced by emacs early-init.el file. +;; +;; Copyright (c) 2012-2021 Sylvain Benner & Contributors +;; +;; Author: Sylvain Benner +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;; 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 . + +(defun spacemacs/removes-gui-elements () + "Remove the menu bar, tool bar and scroll bars." + ;; removes the GUI elements + (when (and (fboundp 'scroll-bar-mode) (not (eq scroll-bar-mode -1))) + (scroll-bar-mode -1)) + (when (and (fboundp 'tool-bar-mode) (not (eq tool-bar-mode -1))) + (tool-bar-mode -1)) + (unless (memq (window-system) '(mac ns)) + (when (and (fboundp 'menu-bar-mode) (not (eq menu-bar-mode -1))) + (menu-bar-mode -1))) + ;; tooltips in echo-aera + (when (and (fboundp 'tooltip-mode) (not (eq tooltip-mode -1))) + (tooltip-mode -1))) + +(provide 'core-early-funcs) diff --git a/core/core-spacemacs.el b/core/core-spacemacs.el index 1fe34e82b..4a1d19f26 100644 --- a/core/core-spacemacs.el +++ b/core/core-spacemacs.el @@ -45,6 +45,7 @@ (require 'core-spacemacs-buffer) (require 'core-keybindings) (require 'core-toggle) +(require 'core-early-funcs) (require 'core-funcs) (require 'core-micro-state) (require 'core-transient-state) @@ -73,7 +74,7 @@ the final step of executing code in `emacs-startup-hook'.") (setq ad-redefinition-action 'accept) ;; this is for a smoother UX at startup (i.e. less graphical glitches) (hidden-mode-line-mode) - (spacemacs//removes-gui-elements) + (spacemacs/removes-gui-elements) (spacemacs//setup-ido-vertical-mode) ;; explicitly set the preferred coding systems to avoid annoying prompt ;; from emacs (especially on Microsoft Windows) @@ -174,20 +175,6 @@ the final step of executing code in `emacs-startup-hook'.") ;; install the dotfile if required (dotspacemacs/maybe-install-dotfile)) -(defun spacemacs//removes-gui-elements () - "Remove the menu bar, tool bar and scroll bars." - ;; removes the GUI elements - (when (and (fboundp 'scroll-bar-mode) (not (eq scroll-bar-mode -1))) - (scroll-bar-mode -1)) - (when (and (fboundp 'tool-bar-mode) (not (eq tool-bar-mode -1))) - (tool-bar-mode -1)) - (unless (spacemacs/window-system-is-mac) - (when (and (fboundp 'menu-bar-mode) (not (eq menu-bar-mode -1))) - (menu-bar-mode -1))) - ;; tooltips in echo-aera - (when (and (fboundp 'tooltip-mode) (not (eq tooltip-mode -1))) - (tooltip-mode -1))) - (defun spacemacs//setup-ido-vertical-mode () "Setup `ido-vertical-mode'." (require 'ido-vertical-mode) diff --git a/early-init.el b/early-init.el index ee8f9dfaf..c648461b4 100644 --- a/early-init.el +++ b/early-init.el @@ -34,3 +34,10 @@ ;; the package manager before loading the init file, so this file is neither ;; needed nor loaded on those versions. (setq package-enable-at-startup nil) + +(load (concat (file-name-directory load-file-name) + "core/core-early-funcs.el") + nil (not init-file-debug)) + +;; Remove GUI elements early to avoid some possible grapical glitches. +(spacemacs/removes-gui-elements)