;;; init.el --- Tom-Emacs Interface -*- lexical-binding: t; -*- ;; Copyright (C) 2018 Tom Willemse ;; Author: Tom Willemse ;; Keywords: local ;; 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 . ;;; Commentary: ;; This is my Emacs configuration. It has gone through many iterations ;; before and may yet go through many more iterations. ;;; Code: (require 'diminish) ; To hide minor mode lighters. (require 'package) ; To load packages installed through ELPA. (defalias 'yes-or-no-p 'y-or-n-p) ;;;; Visual initialization: ;; In order to make the change from the default visuals to my ;; preferred setings as quick as possible, I put anything that will ;; have an immediate effect first. (add-to-list 'custom-theme-load-path (locate-user-emacs-file "local-lisp/yoshi-theme")) (setq inhibit-startup-screen t) (setq default-frame-alist (append default-frame-alist '((font . "Fantasque Sans Mono-15") (internal-border-width . 15)))) (menu-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) (load-theme 'yoshi :no-confirm) ;;;; Rest: (eval-and-compile (mapc (lambda (d) (add-to-list 'load-path d)) (directory-files (locate-user-emacs-file "vendor-lisp/") t "^[^.]")) (add-to-list 'load-path (locate-user-emacs-file "local-lisp/")) (let ((loaddefs (locate-user-emacs-file "local-lisp/autoloads.el"))) (when (file-exists-p loaddefs) (load loaddefs)))) (setq package-archives (append package-archives '(("melpa" . "https://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))) (eval-and-compile (package-initialize)) (defvar init--backup-directory (locate-user-emacs-file "data/backup-files/") "The location for backup files.") (defvar init--auto-save-directory (locate-user-emacs-file "data/auto-save-files/") "The location for auto-save files.") (defvar init--auto-save-list-prefix (locate-user-emacs-file "data/auto-save-list/.saves-") "Prefix for auto-save list files.") (add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) (add-to-list 'auto-save-file-name-transforms `(".*" ,init--auto-save-directory t) :append) (setq auto-save-list-file-prefix init--auto-save-list-prefix) (setq backup-directory-alist `((".*" . ,init--backup-directory))) (setq-default cursor-type '(bar . 2)) (setq indent-tabs-mode nil) (setq require-final-newline t) (setq sentence-end-double-space nil) (setq-default tab-width 4) (setq-default truncate-lines t) (setq user-full-name "Tom Willemse") (setq user-mail-address "tom@ryuslash.org") (global-set-key (kbd "C-M-SPC") 'er/expand-region) (global-set-key (kbd "C-c (") 'embrace-commander) (global-set-key (kbd "C-c m") 'oni-hydra-magit/body) (global-set-key (kbd "C-c o") 'oni-hydra-org/body) (global-set-key (kbd "M-+") 'mc/mark-next-like-this) (global-unset-key (kbd "C-z")) (show-paren-mode) ;;;; Destroy trailing whitespace: (require 'destroy-trailing-whitespace) (global-destroy-trailing-whitespace-mode) ;;;; Ivy: (require 'ivy) (ivy-mode) (diminish 'ivy-mode) ;;;; Counsel: (require 'counsel) (setq counsel-find-file-ignore-regexp (rx (or (and bos ".") (and ".zwc" eos)))) (counsel-mode) (diminish 'counsel-mode) ;;;; Lazy configurations: (with-eval-after-load 'bookmark (load "init/oni-bookmarks")) (provide 'init) ;;; init.el ends here