;;; init.el --- Emacs configuration

;; Copyright (C) 2019 Luigi Santivetti

;; Author: Luigi Santivetti <luigi.santivetti@gmail.com>

;; This program is free software. You can redistribute it and/or modify it under
;; the terms of the GPL, v3.
;;
;; 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 http://www.wtfpl.net/.

;;; Commentary:

;; Faces are manually edited and vaguely recall SublimeText, I find it balanced.
;; This configuration file works for me, but I DO NOT KNOW lisp, when you find
;; any problem let me know the fix :P - thanks.

;;; Code:

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Debian Stretch Emacs default version
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(when (< (string-to-number (concat
			    (number-to-string emacs-major-version)
			    "."
			    (number-to-string emacs-minor-version))) 24.4)
  (error "Version >= 24.5 is required."))

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Install packages
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(require 'package)
(package-initialize t)

(add-to-list 'package-archives
	     '("melpa" . "https://melpa.org/packages/") t)
(add-to-list 'package-archives
	     '("gnu" . "https://elpa.gnu.org/packages/"))

(package-initialize)

(setq package-selected-packages
      '(diff-hl
	multiple-cursors
	smooth-scroll
	markdown-mode
	smart-mode-line-powerline-theme
	rainbow-delimiters
	nlinum))

(unless package-archive-contents
  (package-refresh-contents))

(dolist (package package-selected-packages)
  (unless (package-installed-p package)
    (message "Missing packages detected, please wait...")
    (package-install package)))

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Custom set variables
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(custom-set-variables
 '(column-number-mode t)
 '(cua-mode t nil (cua-base))
 '(custom-enabled-themes (quote (smart-mode-line-powerline)))
 '(custom-safe-themes
   (quote
    ("84d2f9eeb3f82d619ca4bfffe5f157282f4779732f48a5ac1484d94d5ff5b279" default)))
 '(fill-column 80)
 '(global-hl-line-mode t)
 '(nlinum-highlight-current-line t)
 '(global-nlinum-mode t)
  '(inhibit-startup-screen t)
 '(show-paren-mode t)
 '(tool-bar-mode nil))

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Custom set faces
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(custom-set-faces
 '(default ((t (:background "#343D46" :foreground "#D8DEE9" :slant normal
			    :weight normal :width normal :foundry "adobe"
			    :family "Source Code Variable"))))
 '(font-lock-comment-face ((t (:background "#343D46" :foreground "#848B97"))))
 '(fringe ((t (:background "#343D46"))))
 '(hl-line ((t (:background "#2C3133" :weight bold))))
 '(nlinum-current-line ((t (:background "#2C3133" :foreground "white"
					:weight bold :height 80))))
 '(nlinum ((t (:slant normal :width ultra-condensed :foreground "#848B97"))))
 '(mode-line ((t (:background "#4E5A65" :foreground "#D8DEE9" :box nil))))
 '(mode-line-buffer-id-inactive ((t (:inherit mode-line-buffer-id
					      :background "#757B81"
					      :foreground "#D8DEE9"))))
 '(mode-line-highlight ((t (:box (:line-width 2 :color "#4E5A65"
					      :style released-button)))))
 '(mode-line-inactive ((t (:background "#4E5A65" :foreground "#4E5A65"
				       :box nil))))
 '(powerline-active1 ((t (:inherit sml/global :background "#4E5A65"
				   :foreground "#D8DEE9"))))
 '(powerline-active2 ((t (:inherit sml/global :background "#757B81"
				   :foreground "#D8DEE9"))))
 '(powerline-inactive1 ((t (:inherit mode-line-inactive
				     :background "#4E5A65"))))
 '(powerline-inactive2 ((t (:inherit mode-line-inactive
				     :background "#4E5A65"))))
 '(rainbow-delimiters-depth-1-face ((t (:foreground "dark orange"))))
 '(rainbow-delimiters-depth-2-face ((t (:foreground "deep pink"))))
 '(rainbow-delimiters-depth-3-face ((t (:foreground "chartreuse"))))
 '(rainbow-delimiters-depth-4-face ((t (:foreground "deep sky blue"))))
 '(rainbow-delimiters-depth-5-face ((t (:foreground "yellow"))))
 '(rainbow-delimiters-depth-6-face ((t (:foreground "orchid"))))
 '(rainbow-delimiters-depth-7-face ((t (:foreground "spring green"))))
 '(rainbow-delimiters-depth-8-face ((t (:foreground "sienna1"))))
 '(region ((t (:background "#4E5A65" :foreground "#D8DEE9"))))
 '(sml/col-number ((t (:inherit sml/global :background "#4E5A65"
				:foreground "white" :weight bold))))
 '(sml/filename ((t (:inherit sml/global :background "#4E5A65"
			      :foreground "black"))))
 '(sml/global ((t (:background "#4E5A65" :foreground "#D8DEE9"))))
 '(sml/line-number ((t (:inherit sml/global :background "#4E5A65"
				 :foreground "White" :weight bold))))
 '(sml/modes ((t (:inherit sml/global :background "#757B81"
			   :foreground "Black"))))
 '(sml/mule-info ((t (:inherit sml/global :background "#4E5A65"))))
 '(sml/name-filling ((t (:inherit sml/prefix :background "#757B81"
				  :weight normal))))
 '(sml/not-modified ((t (:inherit sml/global :background "#4E5A65"))))
 '(sml/numbers-separator ((t (:inherit sml/col-number :background "#4E5A65"))))
 '(sml/position-percentage ((t (:inherit sml/prefix :background "#757B81"
					 :foreground "orange" :weight normal))))
 '(sml/prefix ((t (:inherit sml/global :background "#4E5A65"
			    :foreground "orange"))))
 '(sml/process ((t (:inherit sml/prefix :background "#757B81"))))
 '(sml/remote ((t (:inherit sml/global :background "#4E5A65"))))
 '(sml/time ((t (:inherit sml/global :background "black"
			  :foreground "dark orange"))))
 '(sml/vc ((t (:inherit sml/git :background "#757B81" :foreground "#0000aa"))))
 '(sml/vc-edited ((t (:inherit sml/prefix :background "#757B81"
			       :foreground "#330000")))))

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Smoother scroll
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time
(setq mouse-wheel-progressive-speed nil) ;; don't accelerate scrolling
(setq mouse-wheel-follow-mouse 't) ;; scroll window under mouse
(setq scroll-step 1) ;; keyboard scroll one line at a time
(setq margin 1) ;; keyboard scroll one line at a time
(require 'smooth-scroll)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Buffer list cleanup
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(add-hook 'kill-buffer-hook
	  (lambda ()
	    (setq buffer-name-history
		  (delete (buffer-name) buffer-name-history))))
(setq history-delete-duplicates t)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Rainbow delimiters
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Powerline theme
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(setq powerline-default-separator 'arrow)
(setq sml/theme 'powerline)
(require 'smart-mode-line)
(sml/setup)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Fringe
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(fringe-mode '(10 . 0))

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Line number format
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(setq nlinum-format "%5.5s")

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Highlight matching bracket
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(show-paren-mode 1)
(setq show-paren-delay 0)
(require 'paren)
(set-face-background 'show-paren-match (face-background 'default))
(set-face-foreground 'show-paren-match "#def")
(set-face-attribute 'show-paren-match nil :weight 'extra-bold)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Custom bash mode, thanks gker
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(defun gker-setup-sh-mode ()
  "My own personal preferences for `sh-mode'.

This is a custom function that sets up the parameters I usually
prefer for `sh-mode'.  It is automatically added to
`sh-mode-hook', but is can also be called interactively."
  (interactive)
  (setq sh-basic-offset 4
	sh-indentation 4
	tab-width 4))
(add-hook 'sh-mode-hook 'gker-setup-sh-mode)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Git diff hl
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(require 'diff-hl)
(global-diff-hl-mode 1)
(diff-hl-flydiff-mode 1)
(add-hook 'dired-mode-hook 'diff-hl-dired-mode)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Multiple cursors
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(require 'multiple-cursors)
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
(global-set-key (kbd "M-<down>") 'mc/mark-next-like-this)
(global-set-key (kbd "M-<up>") 'mc/mark-previous-like-this)
(global-set-key (kbd "M-C-<down>") 'mc/mark-all-like-this)
(global-set-key (kbd "C-S-<mouse-1>") 'mc/add-cursor-on-click)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Disable beep
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(setq ring-bell-function 'ignore)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Stop spamming files
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(setq make-backup-files nil) ; stop creating backup~ files
(setq auto-save-default nil) ; stop creating #autosave# files
(setq create-lockfiles nil) ; stop hard links

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; No scroll bar in minibuffer
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(set-window-scroll-bars (minibuffer-window) nil nil)

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Furter customization for linum and left margin width
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(eval-after-load "nlinum"
  '(set-face-attribute 'linum nil :height 80))
(set-default-font "Source Code Variable-12")

;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;
;; Maximise Emacs
;;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';;
(add-to-list 'default-frame-alist '(fullscreen . maximized))

;;; init.el ends here
