mirror of
https://codeberg.org/frosty/init.el.git
synced 2024-09-19 03:36:40 -04:00
first try working at it
This commit is contained in:
parent
7d2cb523e7
commit
db8e902526
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1 +1,3 @@
|
||||||
elpa/
|
**/*
|
||||||
|
!init.el
|
||||||
|
!config.org
|
||||||
|
|
220
config.org
Normal file
220
config.org
Normal file
|
@ -0,0 +1,220 @@
|
||||||
|
#+TITLE: Emacs Configuration
|
||||||
|
#+AUTHOR: frosty
|
||||||
|
#+EMAIL: passedgoandgot200@gmail.com
|
||||||
|
#+OPTIONS: num:nil
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
;;; Initial bootstrapping
|
||||||
|
|
||||||
|
;; Enable MELPA repository
|
||||||
|
(require 'package)
|
||||||
|
(add-to-list 'package-archives
|
||||||
|
'("melpa" . "https://melpa.org/packages/") t)
|
||||||
|
(package-initialize)
|
||||||
|
|
||||||
|
;;; Look and feel
|
||||||
|
|
||||||
|
;; Set the theme
|
||||||
|
(unless (package-installed-p 'ample-theme)
|
||||||
|
(package-install 'ample-theme))
|
||||||
|
(load-theme 'ample t)
|
||||||
|
|
||||||
|
;; Disable menu bar
|
||||||
|
(menu-bar-mode -1)
|
||||||
|
|
||||||
|
;; Disable tool bar
|
||||||
|
(tool-bar-mode -1)
|
||||||
|
|
||||||
|
;; Disable scroll bars
|
||||||
|
(toggle-scroll-bar -1)
|
||||||
|
|
||||||
|
;; Disable splash screen
|
||||||
|
(setq inhibit-startup-screen t)
|
||||||
|
|
||||||
|
;; Display line numbers
|
||||||
|
(global-display-line-numbers-mode 1)
|
||||||
|
(setq-default display-line-numbers-width 3)
|
||||||
|
|
||||||
|
;; Highlight current line
|
||||||
|
(global-hl-line-mode 1)
|
||||||
|
|
||||||
|
;; Show trailing whitespace
|
||||||
|
(setq-default show-trailing-whitespace t)
|
||||||
|
|
||||||
|
;; Flash mode line on bell
|
||||||
|
(unless (package-installed-p 'mode-line-bell)
|
||||||
|
(package-install 'mode-line-bell))
|
||||||
|
(require 'mode-line-bell)
|
||||||
|
(mode-line-bell-mode)
|
||||||
|
|
||||||
|
;;; Buffer input and interaction
|
||||||
|
|
||||||
|
;; Better mouse scrolling
|
||||||
|
(setq mouse-wheel-progressive-speed nil)
|
||||||
|
|
||||||
|
;; Use short yes/no answers
|
||||||
|
(setq-default use-short-answers t)
|
||||||
|
|
||||||
|
;; Auto-pair parenthesis
|
||||||
|
(electric-pair-mode 1)
|
||||||
|
|
||||||
|
;; VIM emulation
|
||||||
|
(unless (package-installed-p 'evil)
|
||||||
|
(package-install 'evil))
|
||||||
|
(setq
|
||||||
|
;; Scroll up with C-u
|
||||||
|
evil-want-C-u-scroll t
|
||||||
|
;; Yank to EOL with Y
|
||||||
|
evil-want-Y-yank-to-eol t
|
||||||
|
;; Create split windows below
|
||||||
|
evil-split-window-below t
|
||||||
|
;; Create vsplit windows to the right
|
||||||
|
evil-vsplit-window-right t)
|
||||||
|
(require 'evil)
|
||||||
|
(evil-mode 1)
|
||||||
|
|
||||||
|
;; Automatically trim trailing whitespace on save
|
||||||
|
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||||
|
|
||||||
|
;;; General interface
|
||||||
|
|
||||||
|
;; Completion UI
|
||||||
|
(unless (package-installed-p 'vertico)
|
||||||
|
(package-install 'vertico))
|
||||||
|
(require 'vertico)
|
||||||
|
(vertico-mode 1)
|
||||||
|
|
||||||
|
;; Improve directory navigation
|
||||||
|
(define-key vertico-map (kbd "RET") #'vertico-directory-enter)
|
||||||
|
(define-key vertico-map (kbd "DEL") #'vertico-directory-delete-word)
|
||||||
|
(define-key vertico-map (kbd "M-d") #'vertico-directory-delete-char)
|
||||||
|
|
||||||
|
;;; Extended completion utilities
|
||||||
|
(unless (package-installed-p 'consult)
|
||||||
|
(package-install 'consult))
|
||||||
|
(global-set-key [rebind switch-to-buffer] #'consult-buffer)
|
||||||
|
(global-set-key (kbd "C-c j") #'consult-line)
|
||||||
|
(global-set-key (kbd "C-c i") #'consult-imenu)
|
||||||
|
(setq read-buffer-completion-ignore-case t
|
||||||
|
read-file-name-completion-ignore-case t
|
||||||
|
completion-ignore-case t)
|
||||||
|
|
||||||
|
;;; LSP Support
|
||||||
|
(unless (package-installed-p 'eglot)
|
||||||
|
(package-install 'eglot))
|
||||||
|
|
||||||
|
;; Enable LSP support by default in programming buffers
|
||||||
|
(add-hook 'prog-mode-hook #'eglot-ensure)
|
||||||
|
|
||||||
|
;; Create a memorable alias for `eglot-ensure'.
|
||||||
|
(defalias 'start-lsp-server #'eglot)
|
||||||
|
|
||||||
|
;; Completion style
|
||||||
|
(unless (package-installed-p 'orderless)
|
||||||
|
(package-install 'orderless))
|
||||||
|
(require 'orderless)
|
||||||
|
(setq completion-styles '(orderless basic)
|
||||||
|
completion-category-overrides '((file (styles basic partial-completion))))
|
||||||
|
|
||||||
|
;; Persist history over restarts
|
||||||
|
(require 'savehist)
|
||||||
|
(savehist-mode 1)
|
||||||
|
|
||||||
|
|
||||||
|
;;; Inline static analysis
|
||||||
|
|
||||||
|
;; Enabled inline static analysis
|
||||||
|
(add-hook 'prog-mode-hook #'flymake-mode)
|
||||||
|
|
||||||
|
;; Display messages when idle, without prompting
|
||||||
|
(setq help-at-pt-display-when-idle t)
|
||||||
|
|
||||||
|
;; Message navigation bindings
|
||||||
|
(with-eval-after-load 'flymake
|
||||||
|
(define-key flymake-mode-map (kbd "C-c n") #'flymake-goto-next-error)
|
||||||
|
(define-key flymake-mode-map (kbd "C-c p") #'flymake-goto-prev-error))
|
||||||
|
|
||||||
|
;;; Pop-up completion
|
||||||
|
(unless (package-installed-p 'corfu)
|
||||||
|
(package-install 'corfu))
|
||||||
|
|
||||||
|
;; Enable autocompletion by default in programming buffers
|
||||||
|
(add-hook 'prog-mode-hook #'corfu-mode)
|
||||||
|
|
||||||
|
;; Enable automatic completion.
|
||||||
|
(setq corfu-auto t)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;; Git client
|
||||||
|
(unless (package-installed-p 'magit)
|
||||||
|
(package-install 'magit))
|
||||||
|
|
||||||
|
;; Bind the `magit-status' command to a convenient key.
|
||||||
|
(global-set-key (kbd "C-c g") #'magit-status)
|
||||||
|
|
||||||
|
;;; Indication of local VCS changes
|
||||||
|
(unless (package-installed-p 'diff-hl)
|
||||||
|
(package-install 'diff-hl))
|
||||||
|
|
||||||
|
;; Enable `diff-hl' support by default in programming buffers
|
||||||
|
(add-hook 'prog-mode-hook #'diff-hl-mode)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;; Go Support
|
||||||
|
(unless (package-installed-p 'go-mode)
|
||||||
|
(package-install 'go-mode))
|
||||||
|
|
||||||
|
;;; JSON Support
|
||||||
|
(unless (package-installed-p 'json-mode)
|
||||||
|
(package-install 'json-mode))
|
||||||
|
|
||||||
|
;;; Lua Support
|
||||||
|
(unless (package-installed-p 'lua-mode)
|
||||||
|
(package-install 'lua-mode))
|
||||||
|
|
||||||
|
;;; Rust Support
|
||||||
|
(unless (package-installed-p 'rust-mode)
|
||||||
|
(package-install 'rust-mode))
|
||||||
|
|
||||||
|
;;; YAML Support
|
||||||
|
(unless (package-installed-p 'yaml-mode)
|
||||||
|
(package-install 'yaml-mode))
|
||||||
|
|
||||||
|
;;; Markdown support
|
||||||
|
(unless (package-installed-p 'markdown-mode)
|
||||||
|
(package-install 'markdown-mode))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;; EditorConfig support
|
||||||
|
(unless (package-installed-p 'editorconfig)
|
||||||
|
(package-install 'editorconfig))
|
||||||
|
|
||||||
|
;; Enable EditorConfig
|
||||||
|
(editorconfig-mode t)
|
||||||
|
|
||||||
|
;;; In-Emacs Terminal Emulation
|
||||||
|
(unless (package-installed-p 'eat)
|
||||||
|
(package-install 'eat))
|
||||||
|
|
||||||
|
;; Close the terminal buffer when the shell terminates.
|
||||||
|
(setq eat-kill-buffer-on-exit t)
|
||||||
|
|
||||||
|
;; Enable mouse-support.
|
||||||
|
(setq eat-enable-mouse t)
|
||||||
|
|
||||||
|
;;; Jump to arbitrary positions
|
||||||
|
(unless (package-installed-p 'avy)
|
||||||
|
(package-install 'avy))
|
||||||
|
(global-set-key (kbd "C-c z") #'avy-goto-word-1)
|
||||||
|
|
||||||
|
;; Store automatic customisation options elsewhere
|
||||||
|
(setq custom-file (locate-user-emacs-file "custom.el"))
|
||||||
|
(when (file-exists-p custom-file)
|
||||||
|
(load custom-file))
|
||||||
|
|
||||||
|
#+END_SRC
|
40
init.el
40
init.el
|
@ -1,36 +1,6 @@
|
||||||
(require 'package)
|
;;; init.el --- Initialize configuration -*- lexical-binding: t -*-
|
||||||
(add-to-list 'package-archives
|
;;; Commentary:
|
||||||
'("melpa" . "https://melpa.org/packages/"))
|
;;; Code:
|
||||||
(package-initialize)
|
|
||||||
(package-refresh-contents)
|
|
||||||
|
|
||||||
;; Download Evil
|
(org-babel-load-file (locate-user-emacs-file "config.org"))
|
||||||
(unless (package-installed-p 'evil)
|
;;; init.el ends here
|
||||||
(package-install 'evil))
|
|
||||||
|
|
||||||
;; Enable Evil
|
|
||||||
(require 'evil)
|
|
||||||
(evil-mode 1)
|
|
||||||
|
|
||||||
(unless (package-installed-p 'gruvbox-theme)
|
|
||||||
(package-install 'gruvbox-theme))
|
|
||||||
|
|
||||||
(load-theme 'gruvbox-dark-medium)
|
|
||||||
|
|
||||||
(set-face-attribute 'default nil
|
|
||||||
:font "Fira Mono"
|
|
||||||
:height 100
|
|
||||||
:weight 'medium)
|
|
||||||
|
|
||||||
(set-face-attribute 'font-lock-comment-face nil
|
|
||||||
:slant 'italic)
|
|
||||||
|
|
||||||
(menu-bar-mode -1)
|
|
||||||
(tool-bar-mode -1)
|
|
||||||
(scroll-bar-mode -1)
|
|
||||||
|
|
||||||
(global-display-line-numbers-mode 1)
|
|
||||||
(global-visual-line-mode t)
|
|
||||||
|
|
||||||
;; Disable custom.el
|
|
||||||
(setq custom-file null-device)
|
|
||||||
|
|
Loading…
Reference in a new issue