summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Light <samlight1994@gmail.com>2025-05-17 20:17:44 +0100
committerSam Light <samlight1994@gmail.com>2025-05-17 20:17:44 +0100
commit0b48b7d84872ea328ff942d2a2f786efc3319e82 (patch)
tree1d83b715d124d0a812df6669ac8e8ee4a27a5d26
Inital commit
-rw-r--r--.gitignore8
-rw-r--r--config/backups.el3
-rw-r--r--config/common.el20
-rw-r--r--config/editor.el85
-rw-r--r--config/helm.el16
-rw-r--r--config/keys.el1
-rw-r--r--config/magit.el5
-rw-r--r--config/packages.el17
-rw-r--r--config/projectile.el14
-rw-r--r--config/ui.el7
-rw-r--r--emacs-custom.el27
-rw-r--r--init.el12
12 files changed, 215 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0596670
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+savefile
+eln-cache
+elpa
+auto-save-list
+projectile-bookmarks.eld
+recentf.eld
+transient
+tramp
diff --git a/config/backups.el b/config/backups.el
new file mode 100644
index 0000000..a48936e
--- /dev/null
+++ b/config/backups.el
@@ -0,0 +1,3 @@
+;; -*- lexical-binding: t; -*-
+
+(setq backup-directory-alist '(("." . "~/.emacs.d/saves")))
diff --git a/config/common.el b/config/common.el
new file mode 100644
index 0000000..cd874de
--- /dev/null
+++ b/config/common.el
@@ -0,0 +1,20 @@
+;; -*- lexical-binding: t; -*-
+
+(setq
+ gc-cons-threshold 200000000
+ make-backup-files nil
+ auto-save-default t
+ visible-bell t
+ inhibit-startup-screen t)
+
+(defalias 'yes-or-no-p 'y-or-n-p)
+
+(setq custom-file (expand-file-name "emacs-custom.el" user-emacs-directory))
+(when (file-exists-p custom-file) (load custom-file))
+
+(use-package doom-modeline
+ :ensure t
+ :hook (after-init . doom-modeline-mode))
+
+(use-package nerd-icons
+ :ensure t)
diff --git a/config/editor.el b/config/editor.el
new file mode 100644
index 0000000..0542f12
--- /dev/null
+++ b/config/editor.el
@@ -0,0 +1,85 @@
+;; -*- lexical-binding: t; -*-
+
+(setq-default indent-tabs-mode nil) ;; don't use tabs to indent
+(setq-default tab-width 4) ;; but maintain correct appearance
+
+;; Newline at end of file
+(setq require-final-newline t)
+
+;; delete the selection with a keypress
+(delete-selection-mode t)
+
+(global-auto-revert-mode t)
+
+(global-hl-line-mode 1)
+
+;; meaningful names for buffers with the same name
+(use-package uniquify
+ :config
+ (setq uniquify-buffer-name-style 'forward)
+ (setq uniquify-separator "/")
+ (setq uniquify-after-kill-buffer-p t) ; rename after killing uniquified
+ (setq uniquify-ignore-buffers-re "^\\*")) ; don't muck with special buffers
+
+;; saveplace remembers your location in a file when saving files
+(setq save-place-file (expand-file-name "saveplace" savefile-dir))
+
+;; activate it for all buffers
+(save-place-mode 1)
+
+;; savehist keeps track of some history
+(use-package savehist
+ :config
+ (setq savehist-additional-variables
+ ;; search entries
+ '(search-ring regexp-search-ring)
+ ;; save every minute
+ savehist-autosave-interval 60
+ ;; keep the home clean
+ savehist-file (expand-file-name "savehist" savefile-dir))
+ (savehist-mode +1))
+
+
+;; smart tab behavior - indent or complete
+(setq tab-always-indent 'complete)
+
+(use-package diminish :ensure t)
+
+(use-package smartparens
+ :ensure t
+ :config
+ (require 'smartparens-config)
+ (smartparens-global-mode t)
+ (show-smartparens-global-mode t)
+ (setq sp-base-key-bindings 'paredit)
+ (setq sp-autoskip-closing-pair 'always)
+ (setq sp-hybrid-kill-entire-symbol nil)
+ (setq blink-matching-paren nil))
+
+(use-package easy-kill
+ :ensure t
+ :config
+ (global-set-key [remap kill-ring-save] 'easy-kill)
+ (global-set-key [remap mark-sexp] 'easy-mark))
+
+(use-package whitespace-cleanup-mode
+ :ensure t
+ :config
+ (global-whitespace-cleanup-mode t))
+
+(use-package whitespace
+ :config
+ (setq whitespace-line-column 80) ;; limit line length
+ (setq whitespace-style '(face tabs empty trailing lines-tail))
+ (global-whitespace-mode t))
+
+(use-package super-save
+ :ensure t
+ :config
+ (super-save-mode +1))
+
+(use-package volatile-highlights
+ :ensure t
+ :diminish t
+ :config
+ (volatile-highlights-mode t))
diff --git a/config/helm.el b/config/helm.el
new file mode 100644
index 0000000..b3f87aa
--- /dev/null
+++ b/config/helm.el
@@ -0,0 +1,16 @@
+;; -*- lexical-binding: t; -*-
+(use-package helm
+ :ensure t
+ :config
+ (global-set-key (kbd "M-x") 'helm-M-x)
+ (global-set-key (kbd "C-x C-m") 'helm-M-x)
+ (global-set-key (kbd "M-y") 'helm-show-kill-ring)
+ (global-set-key (kbd "C-x b") 'helm-mini)
+ (global-set-key (kbd "C-x C-b") 'helm-buffers-list)
+ (global-set-key (kbd "C-x C-f") 'helm-find-files)
+ (global-set-key (kbd "C-h f") 'helm-apropos)
+ (global-set-key (kbd "C-h r") 'helm-info-emacs)
+ (global-set-key (kbd "C-h C-l") 'helm-locate-library)
+ (helm-mode 1))
+
+(use-package helm-ag :ensure t)
diff --git a/config/keys.el b/config/keys.el
new file mode 100644
index 0000000..2e0df35
--- /dev/null
+++ b/config/keys.el
@@ -0,0 +1 @@
+(keymap-global-set "C-d" `delete-region)
diff --git a/config/magit.el b/config/magit.el
new file mode 100644
index 0000000..18ba336
--- /dev/null
+++ b/config/magit.el
@@ -0,0 +1,5 @@
+;; -*- lexical-binding: t; -*-
+
+(use-package magit
+ :ensure t
+ :bind (("C-x g" . magit)))
diff --git a/config/packages.el b/config/packages.el
new file mode 100644
index 0000000..b4302cf
--- /dev/null
+++ b/config/packages.el
@@ -0,0 +1,17 @@
+;; -*- lexical-binding: t; -*-
+
+(require 'package)
+
+
+(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
+
+;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
+;; and `package-pinned-packages`. Most users will not need or want to do this.
+;; (add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
+
+(package-initialize)
+
+(require 'use-package)
+
+(use-package solarized-theme :ensure t)
+(use-package ag :ensure t)
diff --git a/config/projectile.el b/config/projectile.el
new file mode 100644
index 0000000..2c34633
--- /dev/null
+++ b/config/projectile.el
@@ -0,0 +1,14 @@
+;; -*- lexical-binding: t; -*-
+(use-package projectile
+ :ensure t
+ :init
+ (projectile-mode +1)
+ :bind
+ (:map projectile-mode-map
+ ("s-p" . projectile-command-map)
+ ("C-c p" . projectile-command-map)))
+
+(use-package helm-projectile
+ :ensure t
+ :config
+ (helm-projectile-on))
diff --git a/config/ui.el b/config/ui.el
new file mode 100644
index 0000000..9cf1209
--- /dev/null
+++ b/config/ui.el
@@ -0,0 +1,7 @@
+;; -*- lexical-binding: t; -*-
+
+(scroll-bar-mode -1)
+(tool-bar-mode -1)
+(menu-bar-mode -1)
+
+(global-display-line-numbers-mode t)
diff --git a/emacs-custom.el b/emacs-custom.el
new file mode 100644
index 0000000..e14f31d
--- /dev/null
+++ b/emacs-custom.el
@@ -0,0 +1,27 @@
+;;; -*- lexical-binding: t -*-
+(custom-set-variables
+ ;; custom-set-variables was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ '(custom-enabled-themes '(solarized-dark))
+ '(custom-safe-themes
+ '("833ddce3314a4e28411edf3c6efde468f6f2616fc31e17a62587d6a9255f4633"
+ "830877f4aab227556548dc0a28bf395d0abe0e3a0ab95455731c9ea5ab5fe4e1"
+ "51ec7bfa54adf5fff5d466248ea6431097f5a18224788d0bd7eb1257a4f7b773"
+ "2b0fcc7cc9be4c09ec5c75405260a85e41691abb1ee28d29fcd5521e4fca575b"
+ "7f1d414afda803f3244c6fb4c2c64bea44dac040ed3731ec9d75275b9e831fe5"
+ "b49f66a2e1724db880692485a5d5bcb9baf28ed2a3a05c7a799fa091f24321da"
+ "7fea145741b3ca719ae45e6533ad1f49b2a43bf199d9afaee5b6135fd9e6f9b8"
+ default))
+ '(package-selected-packages
+ '(ag diminish doom-modeline easy-kill helm-ag helm-projectile magit
+ smartparens solarized-theme super-save volatile-highlights
+ whitespace-cleanup-mode)))
+
+(custom-set-faces
+ ;; custom-set-faces was added by Custom.
+ ;; If you edit it by hand, you could mess it up, so be careful.
+ ;; Your init file should contain only one such instance.
+ ;; If there is more than one, they won't work right.
+ '(default ((t (:inherit nil :extend nil :stipple nil :background "#002b36" :foreground "#839496" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight regular :height 115 :width normal :foundry "GOOG" :family "inconsolata")))))
diff --git a/init.el b/init.el
new file mode 100644
index 0000000..c52e08c
--- /dev/null
+++ b/init.el
@@ -0,0 +1,12 @@
+;; -*- lexical-binding: t; -*-
+
+(defvar savefile-dir (expand-file-name "savefile" user-emacs-directory)
+ "This folder stores all the automatically generated save/history-files.")
+
+(load "~/.emacs.d/config/ui")
+(load "~/.emacs.d/config/packages")
+(load "~/.emacs.d/config/editor")
+(load "~/.emacs.d/config/common")
+(load "~/.emacs.d/config/helm")
+(load "~/.emacs.d/config/projectile")
+(load "~/.emacs.d/config/magit")