189 lines
4.7 KiB
EmacsLisp
189 lines
4.7 KiB
EmacsLisp
(require 'uniquify)
|
||
|
||
; ## Generic settings ##
|
||
|
||
;; Make Helm go!
|
||
(require 'helm-config)
|
||
|
||
;; Enable fuzzy matching in Helm
|
||
(setq helm-mode-fuzzy-match t
|
||
helm-completion-in-region-fuzzy-match t)
|
||
(global-set-key (kbd "M-x") #'helm-M-x)
|
||
(global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks)
|
||
(global-set-key (kbd "C-x C-f") #'helm-find-files)
|
||
(helm-mode 1)
|
||
|
||
; Hide those ugly tool bars
|
||
(tool-bar-mode 0)
|
||
(scroll-bar-mode 0)
|
||
(menu-bar-mode 0)
|
||
|
||
(defun disable-scroll-bar ()
|
||
(scroll-bar-mode 0))
|
||
|
||
; And remember to do it if I create a new frame.
|
||
(add-hook 'before-make-frame-hook 'disable-scroll-bar)
|
||
|
||
;; Don't make any noises, don't flash, just leave me alone
|
||
(setq ring-bell-function 'ignore)
|
||
|
||
;; Go away go away
|
||
(setq initial-scratch-message "")
|
||
|
||
(setq gc-cons-threshold 20000000)
|
||
|
||
(setq uniquify-buffer-name-style 'forward)
|
||
|
||
;; Give me column numbers
|
||
(column-number-mode t)
|
||
|
||
;; Bash is the reliable one here
|
||
(setq multi-term-program "/bin/bash")
|
||
|
||
;; Use the GPG-provided SSH agent
|
||
(setenv "SSH_AUTH_SOCK" (concat (getenv "HOME") "/.gnupg/S.gpg-agent.ssh"))
|
||
|
||
;;; Code:
|
||
|
||
(add-to-list 'exec-path "/usr/local/bin")
|
||
(add-to-list 'exec-path (expand-file-name "~/bin"))
|
||
;; Stack installs here:
|
||
(add-to-list 'exec-path (expand-file-name "~/.local/bin"))
|
||
|
||
(when window-system
|
||
(setq frame-title-format '(buffer-file-name "%f" ("%b")))
|
||
(tooltip-mode -1)
|
||
(mouse-wheel-mode t)
|
||
(blink-cursor-mode -1))
|
||
|
||
; Fix some defaults
|
||
(setq visible-bell nil
|
||
inhibit-startup-message t
|
||
color-theme-is-global t
|
||
sentence-end-double-space nil
|
||
shift-select-mode nil
|
||
mouse-yank-at-point t
|
||
uniquify-buffer-name-style 'forward
|
||
whitespace-style '(face trailing lines-tail tabs)
|
||
whitespace-line-column 80
|
||
default-directory "~"
|
||
fill-column 80
|
||
ediff-window-setup-function 'ediff-setup-windows-plain
|
||
ediff-diff-options "-w"
|
||
ediff-split-window-function 'split-window-horizontally
|
||
oddmuse-directory (concat user-emacs-directory "oddmuse")
|
||
save-place-file (concat user-emacs-directory "places")
|
||
backup-directory-alist `((,(concat user-emacs-directory "backups")))
|
||
diff-switches "-u")
|
||
|
||
;; Fix keys on Linux
|
||
(if is-linux
|
||
(setq x-super-keysym 'meta
|
||
x-alt-keysym 'alt))
|
||
|
||
(add-to-list 'safe-local-variable-values '(lexical-binding . t))
|
||
(add-to-list 'safe-local-variable-values '(whitespace-line-column . 80))
|
||
|
||
(set-default 'indent-tabs-mode nil)
|
||
|
||
;; UTF-8 please
|
||
(setq locale-coding-system 'utf-8) ; pretty
|
||
(set-terminal-coding-system 'utf-8) ; pretty
|
||
(set-keyboard-coding-system 'utf-8) ; pretty
|
||
(set-selection-coding-system 'utf-8) ; please
|
||
(prefer-coding-system 'utf-8) ; with sugar on top
|
||
|
||
(require 'ffap)
|
||
|
||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||
(defalias 'auto-tail-revert-mode 'tail-mode)
|
||
|
||
;; ## Look and feel ##
|
||
|
||
;; Themes!
|
||
(global-hl-line-mode -1)
|
||
|
||
(setq default-frame-alist '((font-backend . "xft")
|
||
(font . "Input Mono-12")))
|
||
|
||
(set-default-font "Input Mono 12")
|
||
|
||
;; Style line numbers (shown with M-g g)
|
||
(setq linum-format
|
||
(lambda (line)
|
||
(propertize
|
||
(format (concat " %"
|
||
(number-to-string
|
||
(length (number-to-string
|
||
(line-number-at-pos (point-max)))))
|
||
"d ")
|
||
line)
|
||
'face 'linum)))
|
||
|
||
;; Use clipboard properly
|
||
(setq x-select-enable-clipboard t)
|
||
|
||
;; Auto refresh buffers
|
||
(global-auto-revert-mode 1)
|
||
|
||
;; Also auto refresh dired, but be quiet about it
|
||
(setq global-auto-revert-non-file-buffers t)
|
||
(setq auto-revert-verbose nil)
|
||
|
||
;; Show keystrokes in progress
|
||
(setq echo-keystrokes 0.1)
|
||
|
||
;; Move files to trash when deleting
|
||
(setq delete-by-moving-to-trash t)
|
||
|
||
;; Make emacs behave sanely (overwrite selected text)
|
||
(delete-selection-mode 1)
|
||
|
||
;; ## Navigation and key bindings ##
|
||
|
||
(setq windmove-wrap-around t)
|
||
|
||
;; Load ace-jump-mode
|
||
(autoload
|
||
'ace-jump-mode
|
||
"ace-jump-mode"
|
||
"Emacs quick move minor mode"
|
||
)
|
||
|
||
(define-key global-map [?] 'ace-jump-mode)
|
||
|
||
;; Quick jump back
|
||
(autoload
|
||
'ace-jump-mode-pop-mark
|
||
"ace-jump-mode"
|
||
"Ace jump back:-)"
|
||
)
|
||
|
||
(eval-after-load "ace-jump-mode"
|
||
'(ace-jump-mode-enable-mark-sync))
|
||
(define-key global-map (kbd "C-x ö") 'ace-jump-mode-pop-mark)
|
||
|
||
;; Keep your backup files in tmp, emacs!
|
||
(setq backup-directory-alist
|
||
`((".*" . ,temporary-file-directory)))
|
||
(setq auto-save-file-name-transforms
|
||
`((".*" ,temporary-file-directory t)))
|
||
|
||
;; Eshell
|
||
;; Start/join
|
||
(global-set-key (kbd "C-x m") 'eshell)
|
||
;; Always start
|
||
(global-set-key (kbd "C-x M") (lambda () (interactive) (eshell t)))
|
||
|
||
;; Git
|
||
(global-set-key (kbd "C-c g") 'magit-status)
|
||
|
||
(remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
|
||
|
||
;; Display tabs as 4 spaces
|
||
(setq default-tab-width 4)
|
||
|
||
;; Use CUPS
|
||
(setq lpr-command "xpp")
|
||
|
||
(provide 'settings)
|