Skip to content

Instantly share code, notes, and snippets.

@al3rez
Created December 1, 2020 14:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save al3rez/8a76b4e81b61827180ff547acaeee6ce to your computer and use it in GitHub Desktop.
Save al3rez/8a76b4e81b61827180ff547acaeee6ce to your computer and use it in GitHub Desktop.
;;; init.el --- Emacs init file
;; Author: Ian Y.E. Pan
;;; Commentary:
;;; A lightweight Emacs config containing only the essentials: shipped with a custom theme!
;;; Code:
(defvar file-name-handler-alist-original file-name-handler-alist)
(setq gc-cons-threshold most-positive-fixnum
gc-cons-percentage 0.6
file-name-handler-alist nil
site-run-file nil)
(defvar ian/gc-cons-threshold 100000000)
(add-hook 'emacs-startup-hook ; hook run after loading init files
(lambda ()
(setq gc-cons-threshold ian/gc-cons-threshold
gc-cons-percentage 0.1
file-name-handler-alist file-name-handler-alist-original)))
(add-hook 'minibuffer-setup-hook (lambda ()
(setq gc-cons-threshold (* ian/gc-cons-threshold 2))))
(add-hook 'minibuffer-exit-hook (lambda ()
(garbage-collect)
(setq gc-cons-threshold ian/gc-cons-threshold)))
(require 'package)
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/"))
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/"))
(setq package-enable-at-startup nil)
(package-initialize)
;; Setting up the package manager. Install if missing.
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(eval-and-compile
(setq use-package-always-ensure t))
;; Load main config file "./config.org"
(require 'org)
(org-babel-load-file (expand-file-name (concat user-emacs-directory "config.org")))
(provide 'init)
;;; init.el ends here
(setq hrs/default-font "SF Mono Powerline")
(setq hrs/default-font-size 12)
(setq hrs/current-font-size hrs/default-font-size)
(setq hrs/font-change-increment 1.1)
(defun hrs/font-code ()
"Return a string representing the current font (like \"Inconsolata-14\")."
(concat hrs/default-font "-" (number-to-string hrs/current-font-size)))
(defun hrs/set-font-size ()
"Set the font to `hrs/default-font' at `hrs/current-font-size'.
Set that for the current frame, and also make it the default for
other, future frames."
(let ((font-code (hrs/font-code)))
(if (assoc 'font default-frame-alist)
(setcdr (assoc 'font default-frame-alist) font-code)
(add-to-list 'default-frame-alist (cons 'font font-code)))
(set-frame-font font-code)))
(defun hrs/reset-font-size ()
"Change font size back to `hrs/default-font-size'."
(interactive)
(setq hrs/current-font-size hrs/default-font-size)
(hrs/set-font-size))
(defun hrs/increase-font-size ()
"Increase current font size by a factor of `hrs/font-change-increment'."
(interactive)
(setq hrs/current-font-size
(ceiling (* hrs/current-font-size hrs/font-change-increment)))
(hrs/set-font-size))
(defun hrs/decrease-font-size ()
"Decrease current font size by a factor of `hrs/font-change-increment', down to a minimum size of 1."
(interactive)
(setq hrs/current-font-size
(max 1
(floor (/ hrs/current-font-size hrs/font-change-increment))))
(hrs/set-font-size))
(define-key global-map (kbd "C-)") 'hrs/reset-font-size)
(define-key global-map (kbd "C-+") 'hrs/increase-font-size)
(define-key global-map (kbd "C-=") 'hrs/increase-font-size)
(define-key global-map (kbd "C-_") 'hrs/decrease-font-size)
(define-key global-map (kbd "C--") 'hrs/decrease-font-size)
(hrs/reset-font-size)
; Disable italic
(set-face-italic-p 'italic nil)
(set-face-italic 'font-lock-comment-face nil)
(use-package go-mode)
(use-package evil-leader)
(use-package ivy)
(use-package swiper)
(use-package counsel
:after (counsel-spotify))
(use-package vterm ; when installing, evaluate exec-path first (else 'command not found')
:hook (vterm-mode . (lambda ()
(setq-local global-hl-line-mode nil)
(setq-local line-spacing nil)))
:config
(define-key vterm-mode-map (kbd "C-l") #'(lambda ()
(interactive)
(vterm-clear)
(vterm-clear-scrollback))))
(use-package vterm-toggle
:after (projectile vterm evil)
:config
(setq vterm-toggle-fullscreen-p nil)
(setq vterm-toggle-scope 'projectile)
(with-eval-after-load 'evil
(evil-set-initial-state 'vterm-mode 'emacs))
(global-set-key (kbd "C-`") #'vterm-toggle)
(global-set-key (kbd "s-j") #'vterm-toggle)
(add-to-list 'display-buffer-alist
'((lambda (bufname _) (with-current-buffer bufname (equal major-mode 'vterm-mode)))
(display-buffer-reuse-window display-buffer-at-bottom)
(reusable-frames . visible)
(window-height . 0.7))))
(use-package emojify
:after (vterm)
:config
:hook (after-init . global-emojify-mode))
(ivy-mode 1)
(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
;; enable this if you want `swiper' to use it
;; (setq search-default-mode #'char-fold-to-regexp)
(global-set-key "\C-s" 'swiper)
(global-set-key (kbd "C-c C-r") 'ivy-resume)
(global-set-key (kbd "<f6>") 'ivy-resume)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
(global-set-key (kbd "<f1> o") 'counsel-describe-symbol)
(global-set-key (kbd "<f1> l") 'counsel-find-library)
(global-set-key (kbd "<f2> i") 'counsel-info-lookup-symbol)
(global-set-key (kbd "<f2> u") 'counsel-unicode-char)
(global-set-key (kbd "C-c g") 'counsel-git)
(global-set-key (kbd "C-c j") 'counsel-git-grep)
(global-set-key (kbd "C-c k") 'counsel-ag)
(global-set-key (kbd "C-x l") 'counsel-locate)
(global-set-key (kbd "C-S-o") 'counsel-rhythmbox)
(define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history)
(defun split-4-ways ()
(interactive)
(delete-other-windows)
(split-window-right)
(split-window-below)
(windmove-right)
(split-window-below)
(windmove-left))
(add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
(setq counsel-spotify-client-id "cb86407f22624fffbc8e59a1a34e3ec5")
(setq counsel-spotify-client-secret "282e84062777410f9565a2d630e7e468")
(define-key evil-normal-state-map (kbd ",e") 'counsel-find-file)
(define-key evil-normal-state-map (kbd ",s") 'counsel-spotify-search-tracks-by-artist)
(setq magit-status-buffer-switch-function 'switch-to-buffer)
(setq magit-display-buffer-function 'magit-display-buffer-same-window-except-diff-v1)
(defun org-archive-done-tasks ()
(interactive)
(org-map-entries 'org-archive-subtree "/DONE" 'file))
(set-face-attribute 'fixed-pitch nil :family "Libre Baskerville" :height 150)
(set-face-attribute 'variable-pitch nil :family "Libre Baskerville" :height 150)
(defun close-all-buffers ()
(interactive)
(mapc 'kill-buffer (buffer-list)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment