Aimar's elpa repository

The purpose of this repository

I use emacs on a variety of machines and systems, so in order to manage the different configurations I use for the different programming languages I program in for the different systems I use it seems like a good idea to have my own elpa repository.

How to install

Just add the url of the current page excluding the index.html to your archives and you should be good to go.

How to use this repository

Although you are free to use this repository as you like, there are a bunch of things you should take into account.

Also there is a recommended way to use the provided packages, for they come in (install . config) pairs.

Package namespace

Every package in this repository is and will be prefixed with either air-c- or air-i-. This is so there can be packages that refer to other packages; air-c-lsp-haskell is the configuration package for lsp-hakell.

Installation packages

The packages that are prefixed with air-i- are installation packages and are not intended to be installed permanently, instead you are supposed to try and run the <package name>-run function that each installation package provides, i.e.: install -> run -> uninstall.

Additionally, the installation packages might be specialized for different cpu architectures, for they might attemp to install binaries. Such packages are also prefixed with the arch they target, e.g: air-i-amd64-foo.

The following elisp code implements the idea of trying a package:



(defvar tmp-packages-list nil "List of packages intended for removal.")

(defun try-out (package-name)
  "Installs a package intended to be removed later."
  ;; Interactive definition stripped from package.el
  (interactive
   (progn
     ;; Initialize the package system to get the list of package
     ;; symbols for completion.
     (package--archives-initialize)
     (list (intern (completing-read
                    "Try package out: "
                    (mapcan
                     (lambda (elt)
                       (and (or (and (or current-prefix-arg
                                         package-install-upgrade-built-in)
                                     (package--active-built-in-p (car elt)))
                                (not (package-installed-p (car elt))))
                            (list (symbol-name (car elt)))))
                     package-archive-contents)
                    nil t)))))
  (package-install package-name)
  (add-to-list 'tmp-packages-list package-name))

(defun delete-tmp-packages ()
  "Deletes the tmp packages."
  (dolist (pkg tmp-packages-list)
    (package-delete packages)))

(add-hook 'kill-emacs-hook #'delete-tmp-packages)
                    

When exiting emacs, all the installed packages trough try-out will be uninstalled.

Then to run the installation package air-i-foo you would run the following: M-x try-out RET air-i-foo RET M-x air-i-foo-run RET

Configuration packages

Configuration packages are prefixed with air-c- and also provide a <package name>-run function, however they are regular packages and the run function just sets up the required configuration, so just run it in your init file or whenever you want.

Contributing

Currently this project does not accept any contributions. Mail me if you want to make one and I will make some contribution guidelines.

License

This project is under the GPL license.