summaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/init.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/init.el')
-rw-r--r--emacs/.emacs.d/init.el267
1 files changed, 0 insertions, 267 deletions
diff --git a/emacs/.emacs.d/init.el b/emacs/.emacs.d/init.el
deleted file mode 100644
index b7bd392..0000000
--- a/emacs/.emacs.d/init.el
+++ /dev/null
@@ -1,267 +0,0 @@
-;; --- FUNCTIONS ---
-(defun load-if-exists (filename)
- (when (file-exists-p filename) (load-file filename)))
-
-(defun bab/disable-line-numbers (&optional dummy dummy2)
- (display-line-numbers-mode -1))
-
-(defun bab/sidebar-toggle ()
- "Toggle both `dired-sidebar' and `ibuffer-sidebar'."
- (interactive)
- (dired-sidebar-toggle-sidebar)
- (ibuffer-sidebar-toggle-sidebar))
-
-;; --- BUG WORKAROUNDS ---
-
-;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34341
-;; Affects ability to use the gnu package repository on gnutls 3.6.
-;; Should recheck when emacs >26 is out.
-(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
-
-;; https://stackoverflow.com/questions/26108655/
-;; https://lists.gnu.org/archive/html/bug-gnu-emacs/2014-12/msg00781.html
-;; Apparently the gnu package repository has had unverifiable
-;; signatures since 2014 and nobody cares ¯\_(ツ)_/¯
-(setq package-check-signature nil)
-
-;; --- TERMINAL SUPPORT ---
-(add-to-list 'term-file-aliases '("st-256color" . "tmux-256color"))
-
-;; --- PACKAGE REPOSITORIES ---
-(require 'package)
-(setq package-archives
- '(("gnu" . "https://elpa.gnu.org/packages/")
- ("melpa" . "https://melpa.org/packages/")))
-
-(package-initialize)
-
-(require 'use-package)
-
-(require 'whitespace)
-(require 'yasnippet)
-(require 'evil)
-
-;; --- GLOBAL MODES ---
-(evil-mode 1) ;; Make emacs usable
-(global-hl-line-mode 1) ;; Highlight the line containing the cursor
-(show-paren-mode 1) ;; Highlight matching parenthesis
-
-(use-package ivy
- :config
- (setq ivy-use-virtual-buffers t
- enable-recursive-minibuffers t)
- (ivy-mode 1))
-
-(use-package flycheck
- :ensure t
- :config
- (add-to-list 'display-buffer-alist
- `(,(rx bos "*Flycheck errors*" eos)
- (display-buffer-reuse-window
- display-buffer-in-side-window)
- (side . bottom)
- (reusable-frames . visible)
- (window-height . 0.33)))
- :init
- (global-flycheck-mode))
-
-;; --- ORG MODE ---
-(use-package org-ql
- :demand t
- :mode
- (("\\.org$" . org-mode))
- :init
- (add-to-list 'auto-mode-alist `(,(expand-file-name "~/org/") . org-mode))
- :bind
- (("C-c a" . org-agenda))
- :hook
- (org-agenda-finalize . bab/disable-line-numbers)
- :config
- (org-super-agenda-mode 1)
- (load-file "~/.emacs.d/org-mode.el"))
-
-(use-package calfw-org
- :demand t)
-
-;; --- PROJECTS ---
-(use-package projectile
- :demand t
- :config
- (setq projectile-completion-system 'ivy)
- (projectile-mode 1)
- :bind-keymap
- ("C-c p" . projectile-command-map))
-
-(use-package counsel-projectile
- :config (counsel-projectile-mode 1)
- :after (ivy projectile))
-
-;; --- WINDOW MANAGEMENT ---
-(windmove-default-keybindings 'control)
-(use-package windswap
- :init
- (windswap-default-keybindings 'control 'shift))
-
-;; --- GIT INTEGRATION ---
-(use-package magit
- :commands
- (magit-status)
- :bind
- (("<f12>" . magit-status))
- :hook
- (magit-status-mode . bab/disable-line-numbers))
-
-;; --- FILE TREE / BUFFER LIST ---
-(use-package projectile-speedbar
- :bind
- ("<f8>" . projectile-speedbar-toggle)
- :hook
- (speedbar-mode . bab/disable-line-numbers))
-
-;; --- AUTO-COMPLETE ---
-(use-package company
- :config
- (global-company-mode)
- (require 'color)
- (let ((bg "midnight blue"))
- (set-face-attribute 'company-tooltip nil :background bg)
- (set-face-attribute 'company-scrollbar-bg nil :background (color-lighten-name bg 20))
- (set-face-attribute 'company-scrollbar-fg nil :background (color-lighten-name bg 40)))
- )
-
-(use-package company-posframe
- :after company
- :config
- (setq company-posframe-show-indicator nil
- company-posframe-quickhelp-delay nil)
- (company-posframe-mode 1)
- )
-
-(use-package company-c-headers
- :after company
- :config (push 'company-c-headers company-backends))
-
-(use-package company-lsp
- :after company
- :config (push 'company-lsp company-backends))
-
-;; --- LANGUAGE SERVERS ---
-(use-package lsp-mode
- :hook (typescript-mode . lsp-deferred)
- :config
- (add-to-list 'lsp-language-id-configuration '(zig-mode . "zig"))
- (lsp-register-client
- (make-lsp-client
- :new-connection (lsp-stdio-connection "/opt/zls/zls")
- :major-modes '(zig-mode)
- :server-id 'zls))
- :commands (lsp lsp-deferred))
-
-(use-package lsp-ui
- :hook (lsp-mode . lsp-ui-mode))
-
-(use-package company-lsp
- :commands company-lsp)
-
-;; --- AUTO-FORMAT ON SAVE ---
-(use-package prettier-js
- :config
- (setq prettier-js-args
- '("--trailing-comma" "all"
- "--use-tabs" "true"
- "--print-width" "110"
- "--arrow-parens" "avoid"
- "--end-of-line" "auto"))
- :hook (typescript-mode . prettier-js-mode))
-
-;; --- THEME ---
-(use-package doom-themes
- :config
- (setq doom-themes-enable-bold t
- doom-themes-enable-italic t)
- (load-theme 'doom-palenight t)
- (doom-themes-visual-bell-config)
- (doom-themes-neotree-config)
- (doom-themes-org-config))
-
-;; --- TODO ---
-;;(require 'undo-tree)
-
-;; --- POWERLINE ---
-(require 'telephone-line)
-(telephone-line-mode 1)
-
-;; --- WHITESPACE ---
-;; Show whitespace for prog-mode, but not other modes
-(define-global-minor-mode bab/global-whitespace-mode whitespace-mode
- (lambda () (when (derived-mode-p 'prog-mode) (whitespace-mode))))
-(bab/global-whitespace-mode 1)
-
-;; --- INDENTATION ---
-;; Two callable functions for enabling/disabling tabs in Emacs
-(defun disable-tabs () (setq indent-tabs-mode nil))
-(defun enable-tabs ()
- (local-set-key (kbd "TAB") 'tab-to-tab-stop)
- (setq indent-tabs-mode t))
-
-;; Hooks to Enable Tabs
-(add-hook 'prog-mode-hook 'enable-tabs)
-;; Hooks to Disable Tabs
-;; Using tabs in lisp just leads to mixing tabs and spaces, which is yucky
-(add-hook 'lisp-mode-hook 'disable-tabs)
-(add-hook 'emacs-lisp-mode-hook 'disable-tabs)
-(add-hook 'zig-mode-hook 'disable-tabs)
-
-;; --- GENERAL PREFERENCES ---
-(setq-default
- ;; --- THEME CONFIGURATION ---
- ;;dracula-enlarge-headings nil
-
- ;; -- TABS AND INDENTATION --
- ;; Set tab stops to every four spaces
- tab-width 4
- ;; Tab key indents if cursor at start of line, otherwise inserts tab character
- tab-always-indent nil
- ;; Backspace deletes one whole tab character
- backward-delete-char-untabify-method nil
-
- ;; --- MOUSE ---
- ;; Don't speed up during continued mouse wheel scrolling
- mouse-wheel-progressive-speed nil
-
- ;; -- C LANGUAGE --
- ;; Overall tab and brace placement style
- c-default-style "linux"
- ;; Indent width
- c-basic-offset 4
-
- ;; -- LISP --
- inferior-lisp-program "sbcl"
-
- ;; -- WHITESPACE --
- ;; Clean up trailing whitespace automatically on save
- whitespace-action '(auto-cleanup)
- ;; Configure what to highlight.
- ;; Main difference from default is that for overlong lines,
- ;; we only highlight the overlong tail, not the whole line
- whitespace-style
- '(face trailing tabs spaces lines-tail empty indentation space-after-tab
- space-before-tab space-mark tab-mark)
-
- ;; -- MISC --
- ;; Display line numbers, relative to the current line
- display-line-numbers 'relative
- ;; Don't show the emacs startup screen
- inhibit-startup-screen t
- )
-
-(let ((fg "RoyalBlue4")
- (bg 'unspecified)
- (faces '(whitespace-hspace whitespace-newline whitespace-space whitespace-tab)))
- (dolist (face faces)
- (set-face-attribute face nil :foreground fg :background bg)))
-
-(load-if-exists "~/.emacs.d/local.el")
-
-(setq custom-file "~/.emacs.d/custom.el")
-(load-file custom-file)