From 7c5780a719565630f58e7751afa8c7e458c49871 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Sat, 6 Apr 2024 11:22:57 -0700 Subject: a org file is definitely not the way for me --- config/init-buffer.el | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 config/init-buffer.el (limited to 'config/init-buffer.el') diff --git a/config/init-buffer.el b/config/init-buffer.el new file mode 100644 index 0000000..c8688c6 --- /dev/null +++ b/config/init-buffer.el @@ -0,0 +1,101 @@ +;;; init-buffer.el --- Configure buffer -*- lexical-binding: t -*- +;; Author: Franck Cuny + +;;; Commentary: + +;; buffer related configurations + +;;; Code: + +(require 'ibuffer) +(require 'ibuf-ext) + +(setq ibuffer-expert t) +(setq ibuffer-show-empty-filter-groups nil) +(setq ibuffer-jump-offer-only-visible-buffers t) +(setq ibuffer-maybe-show-predicates '("^\\*.*\\*$")) +(setq ibuffer-never-show-predicates '("^ ")) +(setq ibuffer-use-other-window t) + +(setq ibuffer-saved-filter-groups + '(("default" + ("Config" (or + (filename . "world/") + (filename . ".emacs/"))) + + ("Programming" (or + (mode . c++-mode) + (mode . c-mode) + (mode . cargo-mode) + (mode . emacs-lisp-mode) + (mode . go-mode) + (mode . java-mode) + (mode . lisp-mode) + (mode . nix-mode) + (mode . python-mode) + (mode . rust-mode) + (mode . sh-mode) + (name . "\\*Cargo") + (name . "\\*Python.*\\*"))) + + ("Writing" (or + (mode . plain-tex-mode) + (mode . rst-mode) + (mode . markdown-mode) + (mode . html-mode) + (mode . nxhtml-mode) + (mode . css-mode))) + + ("Org" (or + (mode . org-agenda-mode) + (mode . org-mode))) + + ("Dired" (mode . dired-mode)) + + ("Terminals" (mode . term-mode)) + + ("Shells" (or + (mode . eshell-mode) + (mode . shell-mode))) + + ("Magit" (or + (mode . magit-mode) + (name . "\\*magit-.*\\*"))) + + ("VC" (name . "\\*vc.*\\*")) + + ("Emacs" (name . "^\\*.*\\*$"))))) + +(add-hook 'ibuffer-mode-hook + (lambda () + (ibuffer-auto-mode 1) + (ibuffer-switch-to-saved-filter-groups "default"))) + +(require 'midnight) +(setq midnight-period (* 3600 6)) ; every 6 hours + +(setq clean-buffer-list-delay-general 2 ; every 2 day + clean-buffer-list-delay-special (* 3600 3)) ; every 3 hours + +(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-buffer) + +;;; init-buffer.el ends here -- cgit 1.4.1