;;; -*- lexical-binding: t -*- ;; ;; -------------------------------------------------------------------------- (require 'luki-lisp) ;; -------------------------------------------------------------------------- (-> 'll-close) (-> 'll-scroll) (-> 'package) ;; -------------------------------------------------------------------------- (setq package-archives `(("gnu" . "https://elpa.gnu.org/packages/") ("nongnu" . "https://elpa.nongnu.org/nongnu/") ("melpa" . "https://melpa.org/packages/"))) ;; -------------------------------------------------------------------------- (let ((pack-status '#1=("" "available" "built-in" "deleted" "dependency" "incompat" "installed" "new" . #1#) )) (defun pack-filter (&optional status) (i) (or status (setq status (pop pack-status))) (package-menu-filter-by-status status) ($ (if (string-empty-p status) "all" status)))) (declare-function pack-filter nil) ;; -------------------------------------------------------------------------- (defun elpa (&optional get) (interactive "P") (if get (list-packages) (let ((buf (get-buffer "*Packages*"))) ; hardcoded in package.el 28 times (if (& buf (bufferp buf)) (pop-to-buffer buf) (list-packages))))) ;; -------------------------------------------------------------------------- (let ((kmap package-menu-mode-map)) (set-close-key kmap) (set-pane-scroll-keys kmap) (set-vertical-keys kmap) (keymap-set kmap "TAB" #'pack-filter)) ;; -------------------------------------------------------------------------- (<- 'll-elpa)