From 7f3ce1b7db29cc5edf953ad1056927fff8eedf89 Mon Sep 17 00:00:00 2001 From: Dave Gallant Date: Sun, 5 Dec 2021 01:41:43 -0500 Subject: [PATCH] Add back emacs --- home/default.nix | 34 ++++++++++++++++++ home/init.el | 89 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 home/init.el diff --git a/home/default.nix b/home/default.nix index 9b032e0..53fab48 100644 --- a/home/default.nix +++ b/home/default.nix @@ -309,6 +309,39 @@ in enableZshIntegration = true; }; + emacs = { + enable = true; + extraPackages = epkgs: + (with epkgs; [ + all-the-icons + centaur-tabs + doom-modeline + doom-themes + evil + evil-collection + evil-commentary + evil-matchit + evil-numbers + evil-surround + evil-visualstar + flycheck + highlight-parentheses + htmlize + hydra + lsp-mode + magit + markdown-mode + markdown-toc + org-bullets + org-superstar + ox-pandoc + ripgrep + spinner + treemacs + xclip + ]); + }; + neovim = { enable = true; viAlias = true; @@ -359,5 +392,6 @@ in home.file.".config/nvim/lua".source = ./nvim/lua; home.file.".config/srv".source = ./srv; + home.file.".emacs.d/init.el".source = ./init.el; } diff --git a/home/init.el b/home/init.el new file mode 100644 index 0000000..5d63d57 --- /dev/null +++ b/home/init.el @@ -0,0 +1,89 @@ +;; Enable Mouse +(xterm-mouse-mode) + +;; Enable xclip +(require 'xclip) +(define-globalized-minor-mode global-xclip-mode + xclip-mode xclip-mode) +(global-xclip-mode 1) + +;; Set up fonts early. +(set-face-attribute 'default + nil + :height 120 + :family "Fira Code Mono") +(set-face-attribute 'variable-pitch + nil + :family "Fira CodeSans") + +;; Fix clipboard +(setq select-enable-clipboard t) + +;; Enable Line Numbers +(global-display-line-numbers-mode 1) + +;; Disable lock files +(setq create-lockfiles nil) + +;; Enable Evil +(require 'evil) +(evil-mode 1) + +;; Set Theme +(load-theme 'doom-gruvbox t) + +;; Disable startup message. +(setq inhibit-startup-message t + inhibit-startup-echo-area-message (user-login-name)) + +;; Accept 'y' and 'n' rather than 'yes' and 'no'. +(defalias 'yes-or-no-p 'y-or-n-p) + +;; Centaur Tabs +(require 'centaur-tabs) +(centaur-tabs-mode t) +(global-set-key (kbd "C-") 'centaur-tabs-backward) +(global-set-key (kbd "C-") 'centaur-tabs-forward) +(setq centaur-tabs-style "bar" + centaur-tabs-height 32 + centaur-tabs-set-icons t + centaur-tabs-set-modified-marker t + centaur-tabs-set-bar 'under + x-underline-at-descent-line t) + +;; Trailing white space +(setq-default show-trailing-whitespace t) + +;; Prefer UTF-8. +(prefer-coding-system 'utf-8) + +;; Disable some GUI distractions. +(tool-bar-mode -1) +(menu-bar-mode -1) +(blink-cursor-mode 0) + +;; Enable highlighting of current line. +(global-hl-line-mode 1) + +;; Always show line and column number in the mode line. +(line-number-mode) +(column-number-mode) + +;; Increment and decrement numbers easily +(global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt) +(global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt) + +;; Enable Mouse scrolling +(unless (display-graphic-p) + ;; activate mouse-based scrolling + (xterm-mouse-mode 1) + (global-set-key (kbd "") 'scroll-down-line) + (global-set-key (kbd "") 'scroll-up-line) + ) + +;; Enable Flycheck +(global-flycheck-mode) +(setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc)) + +;; An easier way to toggle comments +(evil-commentary-mode)