+(defvar ibuffer-mode-groups-popup
+ (let ((groups-map (make-sparse-keymap "Filter Groups")))
+ ;; Filter groups
+
+ (define-key-after groups-map [filters-to-filter-group]
+ '(menu-item "Create filter group from current filters..."
+ ibuffer-filters-to-filter-group
+ :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)))
+ (define-key-after groups-map [forward-filter-group]
+ '(menu-item "Move point to the next filter group"
+ ibuffer-forward-filter-group))
+ (define-key-after groups-map [backward-filter-group]
+ '(menu-item "Move point to the previous filter group"
+ ibuffer-backward-filter-group))
+ (define-key-after groups-map [jump-to-filter-group]
+ '(menu-item "Move point to a specific filter group..."
+ ibuffer-jump-to-filter-group))
+ (define-key-after groups-map [kill-filter-group]
+ '(menu-item "Kill filter group named..."
+ ibuffer-kill-filter-group
+ :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
+ (define-key-after groups-map [yank-filter-group]
+ '(menu-item "Yank last killed filter group before..."
+ ibuffer-yank-filter-group
+ :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring)))
+ (define-key-after groups-map [pop-filter-group]
+ '(menu-item "Remove top filter group"
+ ibuffer-pop-filter-group
+ :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
+ (define-key-after groups-map [clear-filter-groups]
+ '(menu-item "Remove all filter groups"
+ ibuffer-clear-filter-groups
+ :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
+ (define-key-after groups-map [pop-filter-group]
+ '(menu-item "Decompose filter group..."
+ ibuffer-pop-filter-group
+ :help "\"Unmake\" a filter group"
+ :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)))
+ (define-key-after groups-map [save-filter-groups]
+ '(menu-item "Save current filter groups permanently..."
+ ibuffer-save-filter-groups
+ :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups)
+ :help "Use a mnemnonic name to store current filter groups"))
+ (define-key-after groups-map [switch-to-saved-filter-groups]
+ '(menu-item "Restore permanently saved filters..."
+ ibuffer-switch-to-saved-filter-groups
+ :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups)
+ :help "Replace current filters with a saved stack"))
+ (define-key-after groups-map [delete-saved-filter-groups]
+ '(menu-item "Delete permanently saved filter groups..."
+ ibuffer-delete-saved-filter-groups
+ :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups)))
+ (define-key-after groups-map [set-filter-groups-by-mode]
+ '(menu-item "Set current filter groups to filter by mode"
+ ibuffer-set-filter-groups-by-mode))