From 30b53a97dc5b9f59d0f492ce5522d77da982462f Mon Sep 17 00:00:00 2001 From: Benson Chu Date: Sun, 28 May 2023 14:36:21 -0500 Subject: [PATCH] Custom sorter --- config-min.org | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/config-min.org b/config-min.org index 4f4c0a5..b481076 100644 --- a/config-min.org +++ b/config-min.org @@ -692,7 +692,7 @@ (add-hook 'ibuffer-mode-hook #'(lambda () (ibuffer-switch-to-saved-filter-groups "default") - (ibuffer-do-sort-by-alphabetic) + (ibuffer-do-sort-by-custom) ;; (ibuffer-auto-mode) )) @@ -700,13 +700,25 @@ (define-key ibuffer-mode-map my/keymap-key nil) - (eval-after-load "ibuf-ext" - '(define-ibuffer-filter directory-name - "Filter files in the agenda folder" - (:description "agenda") - (and (buffer-file-name buf) - (string-match qualifier - (buffer-file-name buf))))) + (with-eval-after-load "ibuf-ext" + (define-ibuffer-filter directory-name + "Filter files in the agenda folder" + (:description "agenda") + (and (buffer-file-name buf) + (string-match qualifier + (buffer-file-name buf)))) + + (define-ibuffer-sorter custom + "My custom ibuffer sorter." + (:description "custom") + (cl-labels ((exwm-name-or-directory (buffer) + (with-current-buffer buffer + (if (eq major-mode 'exwm-mode) + (downcase (buffer-name)) + (ibuffer-buffer-file-name))))) + (not + (string-lessp (exwm-name-or-directory (car a)) + (exwm-name-or-directory (car b))))))) (add-to-list 'ibuffer-never-show-predicates #'(lambda (buf) @@ -720,10 +732,17 @@ (mode . term-mode))) ("emacs-config" (and (or (filename . ".emacs.d") (filename . "emacs-config")) - (not (mode . magit-status-mode)))) + (not (mode . magit-status-mode)) + (not (mode . magit-log-mode)) + (not (mode . magit-diff-mode)) + (not (mode . magit-process-mode)))) ("code-aux" (or (mode . slime-repl-mode) (mode . slime-mode) (mode . magit-status-mode) + (mode . magit-status-mode) + (mode . magit-log-mode) + (mode . magit-diff-mode) + (mode . magit-process-mode) (mode . ein:notebooklist-mode) (mode . cider-repl-mode) (mode . comint-mode)