Skip to content

Instantly share code, notes, and snippets.

@heliohead
Last active November 5, 2017 14:12
Show Gist options
  • Save heliohead/89208d5a1e4fb0455cd4 to your computer and use it in GitHub Desktop.
Save heliohead/89208d5a1e4fb0455cd4 to your computer and use it in GitHub Desktop.
; -*- mode: dotspacemacs -*-
;; This file is loaded by Spacemacs at startup.
;; It must be stored in your home directory.
(defun global-set-keys (key def &rest bindings)
(while key
(global-set-key (kbd key) def)
(setq key (pop bindings)
def (pop bindings))))
(defun dotspacemacs/layers ()
"Configuration Layers declaration."
dotspacemacs-additional-packages '(bracketed-paste)
(setq-default
;; List of additional paths where to look for configuration layers.
;; Paths must have a trailing slash (ie. `~/.mycontribs/')
dotspacemacs-configuration-layer-path '()
;; List of configuration layers to load. If it is the symbol `all' instead
;; of a list then all discovered layers will be installed.
dotspacemacs-configuration-layers '(
;emmet
;; auto-completion
git
html
javascript
markdown
osx
editorconfig
(perspectives :variables
perspective-enable-persp-projectile t)
themes-megapack
tmux
)
;; A list of packages and/or extensions that will not be install and loaded.
dotspacemacs-excluded-packages '(
tern-mode
smartparens
git-gutter
git-gutter-fringe
)
;; If non-nil spacemacs will delete any orphan packages, i.e. packages that
;; are declared in a layer which is not a member of
;; the list `dotspacemacs-configuration-layers'
dotspacemacs-delete-orphan-packages t))
(defun dotspacemacs/init ()
"Initialization function.
This function is called at the very startup of Spacemacs initialization
before layers configuration."
;; This setq-default sexp is an exhaustive list of all the supported
;; spacemacs settings.
(setq-default
;; Specify the startup banner. Default value is `official', it displays
;; the official spacemacs logo. An integer value is the index of text
;; banner, `random' chooses a random text banner in `core/banners'
;; directory. A string value must be a path to a .PNG file.
;; If the value is nil then no banner is displayed.
;; dotspacemacs-startup-banner 'official
;; dotspacemacs-startup-banner 'official
;; 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)
dotspacesmacs-default-theme 'monokai
dotspacemacs-themes '(
monokai
leuven
)
;; If non nil the cursor color matches the state color.
dotspacemacs-colorize-cursor-according-to-state t
;; Default font. `powerline-scale' allows to quickly tweak the mode-line
;; size to make separators look not too crappy.
dotspacemacs-default-font '("Source Code Pro for Powerline"
:size 14
:weight light
:width normal
:powerline-scale 1.25)
;; The leader key
dotspacemacs-leader-key "SPC"
;; Major mode leader key is a shortcut key which is the equivalent of
;; pressing `<leader> m`. Set it to `nil` to disable it.
dotspacemacs-major-mode-leader-key ","
;; The command 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> :'.
dotspacemacs-command-key ":"
;; If non nil the paste micro-state is enabled. While enabled pressing `p`
;; several times cycle between the kill ring content.
dotspacemacs-enable-paste-micro-state nil
;; Guide-key delay in seconds. The Guide-key is the popup buffer listing
;; the commands bound to the current keystrokes.
dotspacemacs-guide-key-delay 0.4
;; If non nil a progress bar is displayed when spacemacs is loading. This
;; may increase the boot time on some systems and emacs builds, set it to
;; nil ;; to boost the loading time.
dotspacemacs-loading-progress-bar t
;; If non nil the frame is fullscreen when Emacs starts up.
;; (Emacs 24.4+ only)
dotspacemacs-fullscreen-at-startup nil
;; If non nil `spacemacs/toggle-fullscreen' will not use native fullscreen.
;; Use to disable fullscreen animations in OSX."
dotspacemacs-fullscreen-use-non-native t
;; If non nil the frame is maximized when Emacs starts up.
;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil.
;; (Emacs 24.4+ only)
dotspacemacs-maximized-at-startup nil
;; A value from the range (0..100), in increasing opacity, which describes
;; Transparency can be toggled through `toggle-transparency'.
dotspacemacs-active-transparency 95
;; 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'.
dotspacemacs-inactive-transparency 95
;; If non nil unicode symbols are displayed in the mode line.
dotspacemacs-mode-line-unicode-symbols nil
;; 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.
dotspacemacs-smooth-scrolling t
;; If non-nil smartparens-strict-mode will be enabled in programming modes.
;; dotspacemacs-smartparens-strict-mode nil
;; If non nil advises quit functions to keep server open when quitting.
dotspacemacs-persistent-server nil
;; The default package repository used if no explicit repository has been
;; specified with an installed package.
;; Not used for now.
dotspacemacs-default-package-repository nil)
;; User initialization goes here
(add-hook 'sgml-mode-hook 'emmet-mode) ;; Auto-start on any markup modes
(add-hook 'css-mode-hook 'emmet-mode) ;; enable Emmet's css abbreviation.
; Org Mode
(setq org-agenda-files (list "~/org/drifty.org"
"~/org/life.org"
"~/org/self.org"))
(global-set-keys
"\C-cl" 'org-store-link
"\C-cc" 'org-capture
"\C-ca" 'org-agenda
"\C-cb" 'org-iswitchb
)
(setq perspective-enable-persp-projectile t)
(setq vc-follow-symlinks t)
;; gpg encryption
(require 'epa-file)
(setq epa-file-select-keys 0)
(setq epa-file-cache-passphrase-for-symmetric-encryption)
)
;; Scale fonts
(global-set-key (kbd "C-=") 'text-scale-increase)
(global-set-key (kbd "C--") 'text-scale-decrease)
(defun dotspacemacs/config ()
"Configuration function. This function is called at the very end of Spacemacs initialization"
(require 'bracketed-paste)
(bracketed-paste-enable)
; Editing
(global-hl-line-mode -1) ; Disable current line highlight
(global-linum-mode t) ; Show line numbers by default
(global-auto-revert-mode t)
(setq indent-tabs-mode nil)
(setq-default company-idle-delay 0.05
json-encoding-default-indentation 2
lua-indent-level 2
evil-shift-width 2
web-mode-markup-indent-offset 2
web-mode-css-indent-offset 2
typescript-indent-level 2
css-indent-offset 2
web-mode-code-indent-offset 2)
(turn-off-smartparens-mode)
(define-key evil-normal-state-map ";" 'evil-ex)
(add-hook 'before-save-hook 'delete-trailing-whitespace)
(setq evil-ex-substitute-global 1)
(setq web-mode-enable-auto-quoting nil)
(global-evil-search-highlight-persist 0)
(evil-search-highlight-persist 0)
; Magit
(add-hook 'magit-mode-hook 'turn-off-evil-mode)
; Custom leader
(evil-leader/set-key "os" 'helm-google-suggest)
(evil-leader/set-key "oa" 'helm-apropos)
(evil-leader/set-key "oo" 'helm-occur)
(evil-leader/set-key "op" 'helm-projectile-switch-project)
; Helm + Projectile
(setq projectile-switch-project-action 'helm-projectile-find-file)
(setq projectile-switch-project-action 'helm-projectile)
(setq helm-autoresize-mode t)
(setq helm-apropos-fuzzy-match t)
(setq helm-M-x-fuzzy-match t) ;; optional fuzzy matching for helm-M-x
(setq projectile-enable-caching nil)
(setq projectile-file-exists-remote-cache-expire (* 10 60))
; Js
(add-hook 'js2-mode 'js2-mode-hide-warnings-and-errors t)
(add-hook 'js2-mode 'js2-mode-hide-warnings-and-errors)
(custom-set-variables
'(js2-basic-offset 2))
; Json
(add-hook 'json-mode-hook (lambda()
(setq json-reformat:indent-width 2)
))
;(setq-default flycheck-disabled-checkers (append flycheck-disabled-checkers '(javascript-jshint)))
;(flycheck-add-mode 'javascript-eslint 'js2-mode)
;(setq flycheck-check-syntax-automatically '(save mode-enabled))
(global-set-key (kbd "s-<return>") 'spacemacs/toggle-fullscreen-frame)
(global-unset-key (kbd "C-x 3"))
(global-set-key (kbd "C-x 3") 'server-edit)
(defun my-configure-neotree()
(define-key neotree-mode-map (kbd "o") (neotree-make-executor :dir-fn 'neo-open-dir))
(define-key neotree-mode-map (kbd "C-l") 'windmove-right)
)
(add-hook 'neotree-mode-hook 'my-configure-neotree)
)
;; Do not write anything past this comment. This is where Emacs will
;; auto-generate custom variable definitions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment