Commit 19e30771 authored by Pierre Neidhardt's avatar Pierre Neidhardt

helm-system-packages: Init

parent f4588e40
Pipeline #28363038 passed with stages
in 2 minutes and 31 seconds
#+TITLE: Helm System Packages
#+DATE: <2018-08-21 Tue>
/This package was originally introduced on [[https://www.reddit.com/r/emacs/comments/7tv4sr/helm_system_packages_an_overpowered_companion_to/][Reddit]]./
* Introduction
Allow me to introduce [[https://github.com/emacs-helm/helm-system-packages][Helm System Packages]], an interface to your system package
manager. (Check out the screencasts on the home page.)
Highlights:
- List, search, filter and select packages incrementally.
- All actions work on multiple packages.
- Display information of multiple packages in an Org buffer.
- (Un)Install a selection of packages.
- Browse the (reverse) dependency graph with the same Helm interface.
- Find files with Helm (again, over multiple packages).
- Each package manager interface comes with its set of specializations. For
instance it has a source for USE flags when Portage is detected.
- Last but not least, Helm sessions can be resumed, which means actions can be
chained over the same package selection.
It's been packaged for Guix and MELPA.
* Motivation
I believe that most package manager's graphical interfaces take the approach of
providing a "user-friendly" experience with a familiar toolkit (GTK, Qt, you
name it), while leaving aside usability enhancements that could make them
worth the use to everyone.
As a results, many power users solely resort to a commandline usage. It's a
shame, really, because of the many intrinsic limitations of shells (especially
if [[../emacs-eshell/index.org][you don't use Eshell]]), namely the cumbersome search-fix-process steps:
1. Search for local packages.
2. Package missing? Search for remote packages.
3. List is too long? Pipe through a pager.
4. (Un)install the desired package by writing the searched package names again.
With Helm, all those actions get factored into one.
Based on Emacs, it also naturally comes with a bunch of perks:
- Keyboard driven.
- Self-documented.
- Customizable.
- As portable as Emacs is.
- Works in a TTY too!
* Credits and future development
The original work was done by Helm's current maintainer Thierry Volpiatto on
[[https://github.com/thierryvolpiatto/helm-gentoo][Portage]] and dpkg. I've compiled his work together and added support for [[https://www.archlinux.org/pacman/][pacman]].
/Helm System Packages/ now effectively acts as a uniform abstraction for
managing packages across different systems.
I've later added support for Void Linux' [[https://voidlinux.org/usage/xbps/][xbps]] and [[https://www.gnu.org/software/guix/][Guix]]. Not all package
managers are equally well supported because I can't possibly be using all of
them, so contributions are welcome to bring them all up to speed!
Performance should be good. If not, please report. Also please report if you
notice some packages or categories are missing.
Contributions (and issue reports) are welcome!
* UX-experiment: a (somewhat) user-friendly, stand-alone version
For many years I've been looking for a straightforward interface to the /pacman/
package manager for the less techie of us. Now that I've worked on /Helm System
Packages/ for Emacs users, I thought it would be nice to try it out on non-Emacs
users.
As an experiment, I've written a small program that automates the installation
and the configuration of /Helm System Packages/ in a separate directory. (It
won't interfere with your Emacs files.) You can [[https://github.com/emacs-helm/helm-system-packages/blob/master/stand-alone/helm-system-packages][try it out]], it's a simple
portable script that only requires Emacs 24.4 and a supported package manager.
Feedback is more than welcome on that side! :)
......@@ -11,7 +11,7 @@
- [[https://github.com/emacs-helm/helm][Helm]] ([[https://github.com/orgs/emacs-helm/people][contributor]])
- [[https://github.com/emacs-helm/helm-eww][Helm-EWW]]
- [[https://github.com/emacs-helm/helm-exwm][Helm-EXWM]]
- [[https://github.com/emacs-helm/helm-system-packages][Helm-System-Packages]]
- [[../helm-system-packages/index.org][Helm System Packages]]
- [[https://gitlab.com/ambrevar/mu4e-conversation][mu4e-conversation]] - Show a complete thread in a single buffer
- [[https://www.gnu.org/software/guix][Guix]] ([[https://savannah.gnu.org/project/memberlist.php?group=guix][contributor]])
- [[../hsync][hsync]] - A filesystem hierarchy synchronizer
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment