blob: 0699619e247b2341af1529bcdef37e567f346327 (
plain) (
tree)
|
|
;;; init-base.el --- base configuration -*- lexical-binding: t -*-
;; Author: Franck Cuny <franck@fcuny.net>
;;; Commentary:
;; commentary
;;; Code:
(setq backup-inhibited t) ;; no backups
(setq create-lockfiles nil) ;; don't use a lock file
(setq auto-save-default nil) ;; no auto save
(setq confirm-kill-emacs #'yes-or-no-p) ;; ask before killing emacs
(setq cursor-in-non-selected-windows nil) ;; keep cursors and highlights in current window only
(setq delete-by-moving-to-trash t) ;; delete files by moving them to the trash
(setq highlight-nonselected-windows nil) ;; don't highlight inactive windows
(setq history-delete-duplicates t) ;; delete duplicate from history
(setq initial-major-mode 'fundamental-mode) ;; default mode for the scratch buffer
(setq initial-scratch-message "") ;; makes the scratch buffer empty
(setq midnight-period (* 3600 6)) ;; clear buffer every 6 hours
(setq mode-line-default-help-echo nil) ;; don't say anything on mode-line mouseover
(setq require-final-newline t) ;; ensure a new line is present at the bottom of files
(setq ring-bell-function 'ignore) ;; really no bell
(setq sentence-end-double-space nil) ;; it matters for filling
(setq use-short-answers t) ;; use y-or-n
(setq visible-bell nil) ;; no bell
(setq bidi-display-reordering nil) ;; disable bidirectional text support for slight performance bonus
(setq column-number-mode t) ;; show column number in the mode line
(global-set-key (kbd "M-j") 'join-line)
(use-package recentf
:hook (after-init . recentf-mode)
:custom
(recentf-max-saved-items 1000)
(recentf-max-menu-items 25)
(recentf-save-file-modes nil)
(recentf-keep nil)
(recentf-auto-cleanup nil)
(recentf-initialize-file-name-history nil)
(recentf-filename-handlers nil)
(recentf-show-file-shortcuts-flag nil))
(use-package midnight
:custom
;; every 6 hours
(midnight-period (* 3600 6)))
(use-package imenu
:config
(setq imenu-auto-rescan t))
(use-package autorevert
:hook (after-init . global-auto-revert-mode)
:custom
(auto-revert-use-notify nil))
(use-package time
:commands (world-clock)
:hook (after-init . display-time-mode)
:config
(setq display-time-format " %a %e %b, %H:%M ")
(setq display-time-24hr-format t)
(setq display-time-interval 60)
(setq display-time-default-load-average nil)
(setq display-time-world-list t)
;; M-x shell RET timedatectl list-timezones
(setq zoneinfo-style-world-list '(("America/Los_Angeles" "Berkeley")
("America/Chicago" "Chicago")
("UTC" "UTC")
("Europe/Paris" "Paris")))
;; M-x world-clock
(setq world-clock-list t)
(setq world-clock-time-format "%z %R %a %d %b (%Z)")
(setq world-clock-buffer-name "*world-clock*") ; Placement handled by `display-buffer-alist'
(setq world-clock-timer-enable t)
(setq world-clock-timer-second 60))
(use-package ibuffer
:bind ("C-x C-b" . ibuffer)
:custom
(ibuffer-expert t)
(ibuffer-show-empty-filter-groups nil)
(ibuffer-jump-offer-only-visible-buffers t)
(ibuffer-never-show-predicates '("^ "))
(ibuffer-use-other-window t)
(ibuffer-filter-group-name-face '(:inherit (font-lock-string-face bold))))
(use-package which-key
:diminish
:hook (after-init . which-key-mode))
(use-package saveplace
:config
(save-place-mode t))
(use-package savehist
:hook (after-init . savehist-mode)
:custom
(savehist-file (locate-user-emacs-file "savehist"))
(history-length 100)
(history-delete-duplicates t)
(savehist-save-minibuffer-history t))
(use-package project
:bind
(("C-x p ." . project-dired)
("C-x p <return>" . project-dired))
:custom
(project-switch-commands
'(
(consult-project-buffer "buffer" ?b)
(project-dired "dired" ?d)
(magit-project-status "magit status" ?g)
(project-find-file "find file" ?p)
(consult-ripgrep "rigprep" ?r)))
(setq project-mode-line t)
(setq project-key-prompt-style t))
; Emacs 30
(use-package rg
:custom
(rg-group-result t)
(rg-show-columns t)
(rg-align-line-number-field-length 3)
(rg-align-column-number-field-length 3)
(rg-align-line-column-separator "#")
(rg-align-position-content-separator "|")
(rg-hide-command nil)
(rg-align-position-numbers t)
(rg-command-line-flags '("--follow")))
(use-package dired
:hook (dired-mode . dired-omit-mode)
:bind (:map dired-mode-map
( "." . dired-omit-mode))
:custom
(dired-omit-files (rx (seq bol ".")))
(dired-use-ls-dired t)
(dired-clean-up-buffers-too nil)
(dired-dwim-target t)
(dired-hide-details-hide-information-lines nil)
(dired-hide-details-hide-symlink-targets nil)
(dired-recursive-copies 'always)
(dired-recursive-deletes 'always)
(dired-no-confirm
'(byte-compile chgrp chmod chown copy hardlink symlink touch)))
(defun my/rename-this-buffer-and-file ()
"Renames current buffer and file it is visiting."
(interactive)
(let ((name (buffer-name))
(filename (buffer-file-name))
(read-file-name-function 'read-file-name-default))
(if (not (and filename (file-exists-p filename)))
(error "Buffer '%s' is not visiting a file!" name)
(let ((new-name (read-file-name "New name: " filename)))
(cond ((get-buffer new-name)
(error "A buffer named '%s' already exists!" new-name))
(t
(rename-file filename new-name 1)
(rename-buffer new-name)
(set-visited-file-name new-name)
(set-buffer-modified-p nil)
(message "File '%s' successfully renamed to '%s'" name (file-name-nondirectory new-name))))))))
(provide 'init-base)
;;; init-base.el ends here
|