145 lines
4.1 KiB
EmacsLisp
145 lines
4.1 KiB
EmacsLisp
;; -*- lexical-binding: t; -*-
|
|
|
|
|
|
(setq user-emacs-directory (expand-file-name "~/.cache/emacs/")
|
|
url-history-file (expand-file-name "url/history" user-emacs-directory))
|
|
|
|
|
|
(use-package no-littering
|
|
:demand t
|
|
:config
|
|
;; Set the custom-file to a file that won't be tracked by Git
|
|
(setq custom-file (if (boundp 'server-socket-dir)
|
|
(expand-file-name "custom.el" server-socket-dir)
|
|
(no-littering-expand-etc-file-name "custom.el")))
|
|
(when (file-exists-p custom-file)
|
|
(load custom-file t))
|
|
|
|
;; Don't litter project folders with backup files
|
|
(let ((backup-dir (no-littering-expand-var-file-name "backup/")))
|
|
(make-directory backup-dir t)
|
|
(setq backup-directory-alist
|
|
`(("\\`/tmp/" . nil)
|
|
("\\`/dev/shm/" . nil)
|
|
("." . ,backup-dir))))
|
|
|
|
(setq auto-save-default nil)
|
|
|
|
;; Tidy up auto-save files
|
|
(setq auto-save-default nil)
|
|
(let ((auto-save-dir (no-littering-expand-var-file-name "auto-save/")))
|
|
(make-directory auto-save-dir t)
|
|
(setq auto-save-file-name-transforms
|
|
`(("\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'"
|
|
,(concat temporary-file-directory "\\2") t)
|
|
("\\`\\(/tmp\\|/dev/shm\\)\\([^/]*/\\)*\\(.*\\)\\'" "\\3")
|
|
("." ,auto-save-dir t)))))
|
|
|
|
|
|
|
|
;;; -- Native Compilation -----
|
|
|
|
;; Silence compiler warnings as they can be pretty disruptive
|
|
(setq native-comp-async-report-warnings-errors nil)
|
|
|
|
;; Set the right directory to store the native comp cache
|
|
(add-to-list 'native-comp-eln-load-path (expand-file-name "eln-cache/" user-emacs-directory))
|
|
|
|
|
|
|
|
|
|
(setq-default fill-column 120)
|
|
|
|
(use-package minions
|
|
:init
|
|
(minions-mode))
|
|
|
|
|
|
;; Revert Dired and other buffers
|
|
(setq global-auto-revert-non-file-buffers t)
|
|
|
|
;; Revert buffers when the underlying file has changed
|
|
(global-auto-revert-mode 1)
|
|
|
|
(use-package alert)
|
|
|
|
(use-package super-save
|
|
:config
|
|
(super-save-mode +1)
|
|
(setq super-save-auto-save-when-idle t)
|
|
;; (add-to-list 'super-save-predicates (lambda ()
|
|
;; (not (eq major-mode 'mu4e-compose-mode))))
|
|
)
|
|
|
|
;; If a popup does happen, don't resize windows to be equal-sized
|
|
(setq even-window-sizes nil)
|
|
|
|
|
|
(use-package popper
|
|
:bind (("C-M-'" . popper-toggle-latest)
|
|
("M-'" . popper-cycle)
|
|
("C-M-\"" . popper-toggle-type))
|
|
:custom
|
|
(popper-window-height 12)
|
|
(popper-reference-buffers '(eshell-mode
|
|
vterm-mode
|
|
geiser-repl-mode
|
|
help-mode
|
|
grep-mode
|
|
helpful-mode
|
|
compilation-mode))
|
|
:config
|
|
(require 'popper) ;; Needed because I disabled autoloads
|
|
(popper-mode 1))
|
|
|
|
|
|
|
|
;;; ----- Dired -----
|
|
(use-package all-the-icons)
|
|
(use-package all-the-icons-dired)
|
|
(use-package dired-ranger)
|
|
|
|
(defun fn/dired-mode-hook ()
|
|
(interactive)
|
|
(dired-hide-details-mode 1)
|
|
(unless (or fn/is-termux
|
|
(string-equal "/nix/store/" (expand-file-name default-directory)))
|
|
(all-the-icons-dired-mode 1))
|
|
(hl-line-mode 1))
|
|
|
|
(use-package dired
|
|
:straight (:type built-in)
|
|
:bind (:map dired-mode-map
|
|
("b" . dired-up-directory)
|
|
("H" . dired-hide-details-mode))
|
|
:config
|
|
(setq dired-listing-switches "-agho --group-directories-first"
|
|
dired-omit-files "^\\.[^.].*"
|
|
dired-omit-verbose nil
|
|
dired-dwim-target 'dired-dwim-target-next
|
|
dired-hide-details-hide-symlink-targets nil
|
|
dired-kill-when-opening-new-dired-buffer t
|
|
delete-by-moving-to-trash t)
|
|
|
|
(add-hook 'dired-mode-hook #'fn/dired-mode-hook))
|
|
|
|
(use-package savehist
|
|
:config
|
|
(setq history-length 25)
|
|
(savehist-mode 1))
|
|
|
|
;;; -- Make Help More Helpful -----
|
|
|
|
(use-package helpful
|
|
:custom
|
|
(counsel-describe-function-function #'helpful-callable)
|
|
(counsel-describe-variable-function #'helpful-variable)
|
|
:bind (([remap describe-function] . helpful-function)
|
|
([remap describe-symbol] . helpful-symbol)
|
|
([remap describe-variable] . helpful-variable)
|
|
([remap describe-command] . helpful-command)
|
|
([remap describe-key] . helpful-key)))
|
|
|
|
|
|
(provide 'fn-core)
|