Files
.emacs.d/lisp/init-workspace.el

60 lines
2.3 KiB
EmacsLisp
Raw Normal View History

2025-12-20 15:13:13 +11:00
;; -*- lexical-binding: t; -*-
2025-12-21 12:57:53 +11:00
(use-package project)
2026-01-30 03:52:15 +11:00
2026-04-02 15:31:43 +11:00
(use-package ibuffer
:ensure nil
:bind ("C-x C-b" . ibuffer)
2026-04-03 15:12:32 +11:00
:bind (:map ibuffer-mode-map
2026-04-03 22:48:09 +11:00
("M-o" . nil))
2026-04-03 15:12:32 +11:00
:config
(add-to-list 'ibuffer-help-buffer-modes 'helpful-mode)
(add-to-list 'ibuffer-help-buffer-modes 'Man-mode)
2026-04-02 15:31:43 +11:00
:init (setq ibuffer-filter-group-name-face '(:inherit (font-lock-string-face bold))))
(use-package nerd-icons-ibuffer
2026-04-02 19:21:30 +11:00
:ensure t
2026-04-02 15:31:43 +11:00
:hook (ibuffer-mode-hook . nerd-icons-ibuffer-mode))
;; Group ibuffer's list by project
(use-package ibuffer-project
:autoload (ibuffer-project-generate-filter-groups ibuffer-do-sort-by-project-file-relative)
:hook (ibuffer . (lambda ()
"Group ibuffer's list by project."
(setq ibuffer-filter-groups (ibuffer-project-generate-filter-groups))
(unless (eq ibuffer-sorting-mode 'project-file-relative)
(ibuffer-do-sort-by-project-file-relative))))
:init (setq ibuffer-project-use-cache t))
2026-03-22 20:26:17 +11:00
2026-03-29 19:12:45 +11:00
(use-package beframe
2026-04-02 19:21:30 +11:00
:hook elpaca-after-init
2026-03-29 19:12:45 +11:00
:bind ("C-x f" . other-frame-prefix)
2026-03-14 19:46:30 +11:00
:config
2026-03-29 19:12:45 +11:00
(define-key global-map (kbd "C-c b") #'beframe-prefix-map)
(setq beframe-functions-in-frames '(project-switch-project)
2026-03-29 19:12:45 +11:00
beframe-rename-function #'ignore
beframe-global-buffers '("*scratch*" "*Messages*" "*Backtrace*"))
(use-package embark
:defer
:config
(define-key embark-buffer-map (kbd "fu")
(defun my/beframe-unassume-buffer (buf)
(interactive "bUnassume: ")
(beframe--unassume
(list (get-buffer buf)))))
(define-key embark-buffer-map (kbd "fa")
(defun my/beframe-assume-buffer (buf)
(interactive "bAssume: ")
(beframe--assume
(list (get-buffer buf))))))
2026-04-02 15:31:43 +11:00
;; Beframe integration with other packages
2026-03-29 19:12:45 +11:00
(with-eval-after-load 'consult
(defun consult-beframe-buffer-list (&optional frame)
"Return the list of buffers from `beframe-buffer-names' sorted by visibility.
With optional argument FRAME, return the list of buffers of FRAME."
(beframe-buffer-list frame :sort #'beframe-buffer-sort-visibility))
(setq consult-buffer-list-function #'consult-beframe-buffer-list)))
2026-03-14 19:46:30 +11:00
2025-12-20 15:13:13 +11:00
(provide 'init-workspace)