spacemacs/core/dotspacemacs.el

133 lines
5.1 KiB
EmacsLisp
Raw Normal View History

;;; dotspacemacs.el --- Spacemacs Core File
;;
;; Copyright (c) 2012-2014 Sylvain Benner
;; Copyright (c) 2014-2015 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
2014-12-25 20:24:26 +00:00
(defconst dotspacemacs-template-directory
(expand-file-name (concat spacemacs-core-directory "templates/"))
"Templates directory.")
(defvar dotspacemacs-configuration-layer-path '()
"List of additional paths where to look for configuration layers.
Paths must have a trailing slash (ie. `~/.mycontribs/')"
2014-12-25 20:24:26 +00:00
)
(defvar dotspacemacs-startup-banner 'random
"Specify the startup banner. If the value is an integer then the
banner with the corresponding index is used, if the value is `random'
then the banner is chosen randomly among the available banners, if
the value is nil then no banner is displayed.")
(defvar dotspacemacs-configuration-layers '()
"list of contribution to load."
)
(defvar dotspacemacs-themes '(solarized-light solarized-dark)
"List of themes, the first of the list is loaded when spacemacs starts.
Press <SPC> T n to cycle to the next theme in the list (works great
with 2 themes variants, one dark and one light")
2014-11-28 04:14:51 +00:00
(defvar dotspacemacs-leader-key "SPC"
"The leader key.")
(defvar dotspacemacs-major-mode-leader-key ","
"Major mode leader key is a shortcut key which is the equivalent of
pressing `<leader> m`")
(defvar dotspacemacs-default-font '("Source Code Pro"
:size 13
:weight normal
:width normal
:powerline-offset 2)
"Default font. The powerline-offset allows to quickly tweak the mode-line
size to make separators look not too crappy.")
(defvar dotspacemacs-command-key ":"
"The key used for Evil commands (ex-commands) and Emacs commands (M-x).
By default the command key is `:' so ex-commands are executed like in Vim
with `:' and Emacs commands are executed with `<leader> :'.")
(defvar dotspacemacs-guide-key-delay 0.4
"Guide-key delay in seconds.")
(defvar dotspacemacs-fullscreen-at-startup nil
"If non nil the frame is fullscreen when Emacs starts up (Emacs 24.4+ only).")
(defvar dotspacemacs-fullscreen-use-non-native nil
"If non nil `spacemacs/toggle-fullscreen' will not use native fullscreen. Use
to disable fullscreen animations in OSX.")
(defvar dotspacemacs-maximized-at-startup nil
"If non nil the frame is maximized when Emacs starts up (Emacs 24.4+ only).
Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil.")
(defvar dotspacemacs-active-transparency 90
"A value from the range (0..100), in increasing opacity, which describes the
transparency level of a frame when it's active or selected. Transparency
can be toggled through `toggle-transparency'.")
(defvar dotspacemacs-inactive-transparency 90
"A value from the range (0..100), in increasing opacity, which describes the
transparency level of a frame when it's inactive or deselected. Transparency
can be toggled through `toggle-transparency'.")
(defvar dotspacemacs-mode-line-unicode-symbols t
"If non nil unicode symbols are displayed in the mode-line (eg. for lighters)")
(defvar dotspacemacs-smooth-scrolling t
"If non nil smooth scrolling (native-scrolling) is enabled. Smooth scrolling
overrides the default behavior of Emacs which recenters the point when
it reaches the top or bottom of the screen.")
(defvar dotspacemacs-persistent-server nil
"If non nil advises quit functions to keep server open when quitting.")
(defvar dotspacemacs-smartparens-strict-mode nil
"If non-nil smartparens-strict-mode will be enabled in programming modes.")
(defvar dotspacemacs-default-package-repository 'melpa-stable
"The default package repository used if no explicit repository has been
specified with an installed package.
NOT USED FOR NOW :-)"
)
(defvar dotspacemacs-excluded-packages '()
"A list of packages and/or extensions that will not be install and loaded.")
(defun dotspacemacs/location ()
"Return the absolute path to the spacemacs dotfile."
(concat user-home-directory ".spacemacs"))
2014-11-22 03:33:54 +00:00
(defun dotspacemacs/install ()
"Install `.spacemacs.template' in home directory. Ask for confirmation
before installing the file if the destination already exists."
(interactive)
(let* ((dotfile "~/.spacemacs")
(install (if (file-exists-p dotfile)
(y-or-n-p (format "%s already exists. Do you want to overwite it ? "
dotfile))
t)))
(when install
2014-12-25 20:24:26 +00:00
(copy-file (concat dotspacemacs-template-directory
2014-11-22 03:33:54 +00:00
".spacemacs.template") dotfile t)
(message "%s has been installed." dotfile))))
(defun dotspacemacs/load ()
"Load ~/.spacemacs. If it is not found then copy .spacemacs.template to
~/.spacemacs"
(let ((dotspacemacs (dotspacemacs/location)))
(if (file-exists-p dotspacemacs) (load dotspacemacs))))
(defmacro dotspacemacs|call-func (func)
"Call the function from the dotfile only if it is bound."
`(if (fboundp ',func) (,func)))
(provide 'dotspacemacs)