mirror of
http://github.com/JaeUs3792/dotfiles
synced 2025-12-13 23:51:34 +09:00
163 lines
5.8 KiB
EmacsLisp
163 lines
5.8 KiB
EmacsLisp
;; init-base.el -*- lexical-binding: t -*-
|
||
(require 'init-const)
|
||
(require 'init-funcs)
|
||
|
||
(with-no-warnings
|
||
(setq read-process-output-max (* 1024 1024)) ;; 1mb (lsp recommendation)
|
||
;;
|
||
(setq ffap-machine-p-known 'reject))
|
||
|
||
;;
|
||
(use-package gcmh
|
||
:straight t
|
||
:ensure t
|
||
:diminish
|
||
:hook
|
||
(emacs-startup . gcmh-mode)
|
||
:init
|
||
(setq gcmh-idle-delay 'auto
|
||
gcmh-auto-idle-delay-factor 10
|
||
gcmh-high-cons-threshold (* 16 1024 1024)))
|
||
|
||
(when (fboundp 'set-charset-priority)
|
||
(set-charset-priority 'unicode))
|
||
(prefer-coding-system 'utf-8)
|
||
(setq locale-coding-system 'utf-8)
|
||
(setq system-time-locale "C")
|
||
|
||
(unless ON-WINDOWS
|
||
(set-selection-coding-system 'utf-8))
|
||
(when ON-LINUX
|
||
(use-package exec-path-from-shell
|
||
:straight t
|
||
:ensure t
|
||
:defer t
|
||
:init (exec-path-from-shell-initialize)))
|
||
|
||
;; open file point at where last saved place.
|
||
(use-package saveplace
|
||
:straight t
|
||
:ensure t
|
||
:hook (after-init . save-place-mode))
|
||
|
||
(use-package recentf
|
||
:straight t
|
||
:ensure t
|
||
:bind
|
||
(("C-x C-r" . recentf-open-files))
|
||
:hook
|
||
(after-init . recentf-mode)
|
||
:init
|
||
(setq recentf-max-saved-items 300
|
||
recentf-exclude
|
||
'("\\.?cache" ".cask" "url" "COMMIT_EDITMSG\\'" "bookmarks"
|
||
"\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$"
|
||
"\\.?ido\\.last$" "\\.revive$" "/G?TAGS$" "/.elfeed/"
|
||
"^/tmp/" "^/var/folders/.+$" "^/ssh:" "/persp-confs/"
|
||
(lambda (file) (file-in-directory-p file package-user-dir))))
|
||
:config
|
||
(push (expand-file-name recentf-save-file) recentf-exclude)
|
||
(add-to-list 'recentf-filename-handlers #'abbreviate-file-name))
|
||
|
||
(use-package savehist
|
||
:straight t
|
||
:ensure t
|
||
:hook
|
||
(after-init . savehist-mode)
|
||
:init
|
||
(setq enable-recursive-minibuffers t ; Allow commands in minibuffers
|
||
history-length 25
|
||
savehist-additional-variables '(mark-ring
|
||
global-mark-ring
|
||
search-ring
|
||
regexp-search-ring
|
||
extended-command-history)
|
||
savehist-autosave-interval 300))
|
||
|
||
(use-package simple
|
||
:ensure nil ; emacs base package
|
||
:hook ((after-init . size-indication-mode)
|
||
(text-mode . visual-line-mode)
|
||
((prog-mode markdown-mode conf-mode) . enable-trailing-whitespace))
|
||
:init
|
||
(setq column-number-mode t
|
||
line-number-mode t
|
||
;; kill-whole-line t ; Kill line including '\n'
|
||
line-move-visual nil
|
||
track-eol t ; Keep cursor at end of lines. Require line-move-visual is nil.
|
||
set-mark-command-repeat-pop t) ; Repeating C-SPC after popping mark pops it again
|
||
|
||
;; Only list the commands of the current modes
|
||
(when (boundp 'read-extended-command-predicate)
|
||
(setq read-extended-command-predicate
|
||
#'command-completion-default-include-p))
|
||
|
||
;; Visualize TAB, (HARD) SPACE, NEWLINE
|
||
(setq-default show-trailing-whitespace nil) ; Don't show trailing whitespace by default
|
||
(defun enable-trailing-whitespace ()
|
||
"Show trailing spaces and delete on saving."
|
||
(setq show-trailing-whitespace t)
|
||
(add-hook 'before-save-hook #'delete-trailing-whitespace nil t))
|
||
|
||
;; Prettify the process list
|
||
(with-no-warnings
|
||
(add-hook 'process-menu-mode-hook
|
||
(lambda ()
|
||
(setq tabulated-list-format
|
||
(vconcat `(("" ,(if (icons-displayable-p) 2 0)))
|
||
tabulated-list-format))))
|
||
|
||
(defun my-list-processes--prettify ()
|
||
"Prettify process list."
|
||
(when-let ((entries tabulated-list-entries))
|
||
(setq tabulated-list-entries nil)
|
||
(dolist (p (process-list))
|
||
(when-let* ((val (cadr (assoc p entries)))
|
||
(icon (if (icons-displayable-p)
|
||
(concat
|
||
" "
|
||
(nerd-icons-faicon "nf-fa-bolt" :face 'nerd-icons-lblue))
|
||
;;(all-the-icons-faicon "nf-fa-bolt" :face 'all-the-icons-lblue))
|
||
" x"))
|
||
(name (aref val 0))
|
||
(pid (aref val 1))
|
||
(status (aref val 2))
|
||
(status (list status
|
||
'face
|
||
(if (memq status '(stop exit closed failed))
|
||
'error
|
||
'success)))
|
||
(buf-label (aref val 3))
|
||
(tty (list (aref val 4) 'face 'font-lock-doc-face))
|
||
(thread (list (aref val 5) 'face 'font-lock-doc-face))
|
||
(cmd (list (aref val 6) 'face 'completions-annotations)))
|
||
(push (list p (vector icon name pid status buf-label tty thread cmd))
|
||
tabulated-list-entries)))))
|
||
(advice-add #'list-processes--refresh :after #'my-list-processes--prettify)))
|
||
|
||
;; Misc
|
||
(if (boundp 'use-short-answers)
|
||
(setq use-short-answers t)
|
||
(fset 'yes-or-no-p 'y-or-n-p))
|
||
(setq-default major-mode 'text-mode
|
||
fill-column 80
|
||
tab-width 4
|
||
indent-tabs-mode nil) ; Permanently indent with spaces, never with TABs
|
||
|
||
(setq visible-bell t
|
||
inhibit-compacting-font-caches t ; Don’t compact font caches during GC
|
||
delete-by-moving-to-trash t ; Deleting files go to OS's trash folder
|
||
make-backup-files nil ; Forbide to make backup files
|
||
auto-save-default nil ; Disable auto save
|
||
|
||
uniquify-buffer-name-style 'post-forward-angle-brackets ; Show path if names are same
|
||
adaptive-fill-regexp "[ t]+|[ t]*([0-9]+.|*+)[ t]*"
|
||
adaptive-fill-first-line-regexp "^* *$"
|
||
sentence-end "\\([。!?]\\|……\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t\n]*"
|
||
sentence-end-double-space nil
|
||
word-wrap-by-category t)
|
||
|
||
(provide 'init-base)
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
;;; init-base.el ends here
|