Function: package-menu-mode

package-menu-mode is a byte-compiled function defined in package.el.gz.

Signature

(package-menu-mode)

Documentation

Major mode for browsing a list of packages.

The most useful commands here are:

  x: Install the package under point if it isn't already installed,
       and delete it if it's already installed,
  i: mark a package for installation, and
  d: mark a package for deletion. Use the x command to perform the
       actions on the marked files.
( package-menu-toggle-hiding
- negative-argument
/ / package-menu-clear-filter
/ N package-menu-filter-by-name-or-description
/ a package-menu-filter-by-archive
/ d package-menu-filter-by-description
/ k package-menu-filter-by-keyword
/ m package-menu-filter-marked
/ n package-menu-filter-by-name
/ s package-menu-filter-by-status
/ u package-menu-filter-upgradable
/ v package-menu-filter-by-version
0 digit-argument
1 digit-argument
2 digit-argument
3 digit-argument
4 digit-argument
5 digit-argument
6 digit-argument
7 digit-argument
8 digit-argument
9 digit-argument
< beginning-of-buffer
<follow-link> mouse-face
<keymap> C-M-i backward-button
<keymap> TAB forward-button
<mouse-2> mouse-select-window
> end-of-buffer
? describe-mode
? package-menu-describe-package
DEL package-menu-backup-unmark
DEL scroll-down-command
H package-menu-hide-package
M-<left> tabulated-list-previous-column
M-<right> tabulated-list-next-column
RET package-menu-describe-package
S tabulated-list-sort
S-SPC scroll-down-command
SPC scroll-up-command
SPC..~ undefined
U package-menu-mark-upgrades
b package-report-bug
d package-menu-mark-delete
g revert-buffer
h describe-mode
h package-menu-quick-help
i package-menu-mark-install
n next-line
p previous-line
q quit-window
r revert-buffer
u package-menu-mark-unmark
w package-browse-url
x package-menu-execute
{ tabulated-list-narrow-current-column
} tabulated-list-widen-current-column
~ package-menu-mark-obsolete-for-deletion

In addition to any hooks its parent mode tabulated-list-mode might have run, this mode runs the hook package-menu-mode-hook, as the final or penultimate step during initialization.

Probably introduced at or before Emacs version 27.1.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/package.el.gz
(define-derived-mode package-menu-mode tabulated-list-mode "Package Menu"
  "Major mode for browsing a list of packages.
The most useful commands here are:

  `x': Install the package under point if it isn't already installed,
       and delete it if it's already installed,
  `i': mark a package for installation, and
  `d': mark a package for deletion.  Use the `x' command to perform the
       actions on the marked files.
\\<package-menu-mode-map>
\\{package-menu-mode-map}"
  :interactive nil
  (setq mode-line-process '((package--downloads-in-progress ":Loading")
                            (package-menu--transaction-status
                             package-menu--transaction-status)))
  (setq tabulated-list-format
        `[("Package" ,package-name-column-width package-menu--name-predicate)
          ("Version" ,package-version-column-width package-menu--version-predicate)
          ("Status"  ,package-status-column-width  package-menu--status-predicate)
          ,@(if (cdr package-archives)
                `(("Archive" ,package-archive-column-width package-menu--archive-predicate)))
          ("Description" 0 package-menu--description-predicate)])
  (setq tabulated-list-padding 2)
  (setq tabulated-list-sort-key (cons "Status" nil))
  (add-hook 'tabulated-list-revert-hook #'package-menu--refresh nil t)
  (tabulated-list-init-header)
  (setq revert-buffer-function 'package-menu--refresh-contents)
  (setf imenu-prev-index-position-function
        #'package--imenu-prev-index-position-function)
  (setf imenu-extract-index-name-function
        #'package--imenu-extract-index-name-function))