summaryrefslogtreecommitdiff
path: root/emacs/inits/01-basic.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/inits/01-basic.el')
-rw-r--r--emacs/inits/01-basic.el126
1 files changed, 126 insertions, 0 deletions
diff --git a/emacs/inits/01-basic.el b/emacs/inits/01-basic.el
new file mode 100644
index 0000000..5c66367
--- /dev/null
+++ b/emacs/inits/01-basic.el
@@ -0,0 +1,126 @@
+;; Time-stamp: <2019-09-11 10:19:29 (tslil@basingstoke)>
+
+;; -----------------------------------------------------------------------------
+;; Interface
+
+(tool-bar-mode -1)
+(menu-bar-mode -1)
+(scroll-bar-mode -1)
+(fset 'yes-or-no-p 'y-or-n-p)
+
+(setq select-enable-clipboard t
+ select-enable-primary t
+ save-interprogram-paste-before-kill t
+ require-final-newline t
+ visible-bell nil)
+
+(setq echo-keystrokes 0.1
+ confirm-kill-emacs 'y-or-n-p
+ disabled-command-function nil
+ ring-bell-function 'ignore)
+
+(size-indication-mode t)
+
+(defun enlarge-to-fill ()
+ "Stretch the buffer to accomodate `fill-column` many columns."
+ (interactive)
+ (let ((ww (window-width)))
+ (when (< ww (+ 1 fill-column))
+ (enlarge-window-horizontally (- (+ 1 fill-column) ww)))))
+
+(global-set-key (kbd "C-c 3") (lambda ()
+ (interactive)
+ (split-window-horizontally)
+ (enlarge-to-fill)))
+
+(blink-cursor-mode 0)
+(setq cursor-type 'box)
+(set-cursor-color "black")
+
+(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
+(when (eq 'x (window-system))
+ (load-theme 'zenburn t)
+ (set-face-attribute 'default nil :font "Fira Code-14"))
+
+(set-fringe-style 0)
+;; (set-fringe-mode 128)
+
+;; -----------------------------------------------------------------------------
+;; Backups
+
+(setq backup-by-copying t
+ backup-directory-alist '((".*" . "~/store/backups/"))
+ delete-old-versions t
+ kept-new-versions 6
+ kept-old-versions 2
+ version-control t)
+
+(setq create-lockfiles nil)
+
+;; -----------------------------------------------------------------------------
+;; Defaults
+
+(setq fill-column 80)
+
+(setq standard-indent 2)
+(setq-default tab-width 2
+ indent-tabs-mode nil)
+(add-hook 'before-save-hook #'whitespace-cleanup)
+
+(show-paren-mode t)
+
+(setq-default truncate-lines t
+ truncate-partial-width-windows nil)
+(setq scroll-step 1)
+
+(setq next-line-add-newlines nil)
+
+(setq enable-dir-local-variables nil)
+
+;; -----------------------------------------------------------------------------
+;; Packages
+
+(use-package recentf
+ :demand t
+ :config
+ (setq recentf-max-saved-items 42)
+ (recentf-mode))
+
+(use-package uniquify
+ :config
+ (setq uniquify-buffer-name-style 'forward))
+
+(require 'saveplace)
+(save-place-mode)
+
+(use-package undo-tree
+ :ensure t
+ :config (setq undo-tree-visualizer-timestamps t)
+ (global-undo-tree-mode 1))
+
+(use-package keyfreq
+ :ensure t
+ :config
+ (setq keyfreq-file "~/.emacs.d/keyfreq"
+ keyfreq-file-lock "~/.emacs.d/keyfreq.lock")
+ (keyfreq-mode 1)
+ (keyfreq-autosave-mode 1))
+
+;; -----------------------------------------------------------------------------
+;; Scratch buffer
+
+(defun immortal-scratch ()
+ (if (eq (current-buffer) (get-buffer "*scratch*"))
+ (progn (bury-buffer) nil) t))
+
+(add-hook 'kill-buffer-query-functions 'immortal-scratch)
+
+;; I couldn't figure the config options out, so this is the next best thing
+(defun display-startup-echo-area-message () nil)
+
+(setq initial-scratch-message nil
+ initial-buffer-choice t)
+
+(add-hook 'after-init-hook
+ (lambda ()
+ (setq default-directory "~/")))