# Arch Linux plugin

This plugin adds some aliases and functions to work with Arch Linux.

To use it, add `archlinux` to the plugins array in your zshrc file:

```zsh
plugins=(... archlinux)
```

## Features

### Pacman

| Alias        | Command                                | Description                                                      |
|--------------|----------------------------------------|------------------------------------------------------------------|
| pacin        | `sudo pacman -S`                       | Install packages from the repositories                           |
| pacins       | `sudo pacman -U`                       | Install a package from a local file                              |
| pacinsd      | `sudo pacman -S --asdeps`              | Install packages as dependencies of another package              |
| pacloc       | `pacman -Qi`                           | Display information about a package in the local database        |
| paclocs      | `pacman -Qs`                           | Search for packages in the local database                        |
| paclsorphans | `sudo pacman -Qdt`                     | List all orphaned packages                                       |
| pacmir       | `sudo pacman -Syy`                     | Force refresh of all package lists after updating mirrorlist     |
| pacre        | `sudo pacman -R`                       | Remove packages, keeping its settings and dependencies           |
| pacrem       | `sudo pacman -Rns`                     | Remove packages, including its settings and dependencies         |
| pacrep       | `pacman -Si`                           | Display information about a package in the repositories          |
| pacreps      | `pacman -Ss`                           | Search for packages in the repositories                          |
| pacrmorphans | `sudo pacman -Rs $(pacman -Qtdq)`      | Delete all orphaned packages                                     |
| pacupd       | `sudo pacman -Sy && <abs/aur refresh>`[¹](#f1) | Update and refresh local package, ABS and AUR databases  |
| pacupg       | `sudo pacman -Syu`                     | Sync with repositories before upgrading packages                 |
| pacfileupg   | `sudo pacman -Fy`                      | Download fresh package databases from the server                 |
| pacfiles     | `pacman -F`                            | Search package file names for matching strings                   |
| pacls        | `pacman -Ql`                           | List files in a package                                          |
| pacown       | `pacman -Qo`                           | Show which package owns a file                                   |
| upgrade[³](#f3) | `sudo pacman -Syu`                  | Sync with repositories before upgrading packages                 |

| Function       | Description                                               |
|----------------|-----------------------------------------------------------|
| pacdisowned    | List all disowned files in your system                    |
| paclist        | List all explicitly installed packages with a description |
| pacmanallkeys  | Get all keys for developers and trusted users             |
| pacmansignkeys | Locally trust all keys passed as parameters               |
| pacweb         | Open the website of an ArchLinux package                  |

Note: paclist used to print packages with a description which are (1) explicitly installed
and (2) available for upgrade. Due to flawed scripting, it also printed all packages if no
upgrades were available. Use `pacman -Que` instead.

### AUR helpers

#### Pacaur

| Alias   | Command                           | Description                                                         |
|---------|-----------------------------------|---------------------------------------------------------------------|
| pain    | `pacaur -S`                       | Install packages from the repositories                              |
| pains   | `pacaur -U`                       | Install a package from a local file                                 |
| painsd  | `pacaur -S --asdeps`              | Install packages as dependencies of another package                 |
| paloc   | `pacaur -Qi`                      | Display information about a package in the local database           |
| palocs  | `pacaur -Qs`                      | Search for packages in the local database                           |
| palst   | `pacaur -Qe`                      | List installed packages including from AUR (tagged as "local")      |
| pamir   | `pacaur -Syy`                     | Force refresh of all package lists after updating mirrorlist        |
| paorph  | `pacaur -Qtd`                     | Remove orphans using pacaur                                         |
| pare    | `pacaur -R`                       | Remove packages, keeping its settings and dependencies              |
| parem   | `pacaur -Rns`                     | Remove packages, including its settings and unneeded dependencies   |
| parep   | `pacaur -Si`                      | Display information about a package in the repositories             |
| pareps  | `pacaur -Ss`                      | Search for packages in the repositories                             |
| paupd   | `pacaur -Sy && <abs/aur refresh>`[¹](#f1) | Update and refresh local package, ABS and AUR databases     |
| paupg   | `pacaur -Syua`                    | Sync with repositories before upgrading all packages (from AUR too) |
| pasu    | `pacaur -Syua --no-confirm`       | Same as `paupg`, but without confirmation                           |
| upgrade[³](#f3) | `pacaur -Syu`             | Sync with repositories before upgrading packages                    |

#### Trizen

| Alias   | Command                           | Description                                                         |
|---------|-----------------------------------|---------------------------------------------------------------------|
| trconf  | `trizen -C`                       | Fix all configuration files with vimdiff                            |
| trin    | `trizen -S`                       | Install packages from the repositories                              |
| trins   | `trizen -U`                       | Install a package from a local file                                 |
| trinsd  | `trizen -S --asdeps`              | Install packages as dependencies of another package                 |
| trloc   | `trizen -Qi`                      | Display information about a package in the local database           |
| trlocs  | `trizen -Qs`                      | Search for packages in the local database                           |
| trlst   | `trizen -Qe`                      | List installed packages including from AUR (tagged as "local")      |
| trmir   | `trizen -Syy`                     | Force refresh of all package lists after updating mirrorlist        |
| trorph  | `trizen -Qtd`                     | Remove orphans using yaourt                                         |
| trre    | `trizen -R`                       | Remove packages, keeping its settings and dependencies              |
| trrem   | `trizen -Rns`                     | Remove packages, including its settings and unneeded dependencies   |
| trrep   | `trizen -Si`                      | Display information about a package in the repositories             |
| trreps  | `trizen -Ss`                      | Search for packages in the repositories                             |
| trupd   | `trizen -Sy && <abs/aur refresh>`[¹](#f1) | Update and refresh local package, ABS and AUR databases     |
| trupg   | `trizen -Syua`                    | Sync with repositories before upgrading all packages (from AUR too) |
| trsu    | `trizen -Syua --no-confirm`       | Same as `trupg`, but without confirmation                           |
| upgrade[³](#f3) | `trizen -Syu`             | Sync with repositories before upgrading packages                    |

#### Yaourt[²](#f2)

| Alias   | Command                           | Description                                                         |
|---------|-----------------------------------|---------------------------------------------------------------------|
| yaconf  | `yaourt -C`                       | Fix all configuration files with vimdiff                            |
| yain    | `yaourt -S`                       | Install packages from the repositories                              |
| yains   | `yaourt -U`                       | Install a package from a local file                                 |
| yainsd  | `yaourt -S --asdeps`              | Install packages as dependencies of another package                 |
| yaloc   | `yaourt -Qi`                      | Display information about a package in the local database           |
| yalocs  | `yaourt -Qs`                      | Search for packages in the local database                           |
| yalst   | `yaourt -Qe`                      | List installed packages including from AUR (tagged as "local")      |
| yamir   | `yaourt -Syy`                     | Force refresh of all package lists after updating mirrorlist        |
| yaorph  | `yaourt -Qtd`                     | Remove orphans using yaourt                                         |
| yare    | `yaourt -R`                       | Remove packages, keeping its settings and dependencies              |
| yarem   | `yaourt -Rns`                     | Remove packages, including its settings and unneeded dependencies   |
| yarep   | `yaourt -Si`                      | Display information about a package in the repositories             |
| yareps  | `yaourt -Ss`                      | Search for packages in the repositories                             |
| yaupd   | `yaourt -Sy && <abs/aur refresh>`[¹](#f1) | Update and refresh local package, ABS and AUR databases     |
| yaupg   | `yaourt -Syua`                    | Sync with repositories before upgrading all packages (from AUR too) |
| yasu    | `yaourt -Syua --no-confirm`       | Same as `yaupg`, but without confirmation                           |
| upgrade[³](#f3) | `yaourt -Syu`             | Sync with repositories before upgrading packages                    |

#### Yay[²](#f2)

| Alias   | Command                        | Description                                                       |
|---------|--------------------------------|-------------------------------------------------------------------|
| yaconf  | `yay -Pg`                      | Print current configuration                                       |
| yain    | `yay -S`                       | Install packages from the repositories                            |
| yains   | `yay -U`                       | Install a package from a local file                               |
| yainsd  | `yay -S --asdeps`              | Install packages as dependencies of another package               |
| yaloc   | `yay -Qi`                      | Display information about a package in the local database         |
| yalocs  | `yay -Qs`                      | Search for packages in the local database                         |
| yalst   | `yay -Qe`                      | List installed packages including from AUR (tagged as "local")    |
| yamir   | `yay -Syy`                     | Force refresh of all package lists after updating mirrorlist      |
| yaorph  | `yay -Qtd`                     | Remove orphans using yay                                          |
| yare    | `yay -R`                       | Remove packages, keeping its settings and dependencies            |
| yarem   | `yay -Rns`                     | Remove packages, including its settings and unneeded dependencies |
| yarep   | `yay -Si`                      | Display information about a package in the repositories           |
| yareps  | `yay -Ss`                      | Search for packages in the repositories                           |
| yaupd   | `yay -Sy && <abs/aur refresh>`[¹](#f1) | Update and refresh local package, ABS and AUR databases   |
| yaupg   | `yay -Syu`                     | Sync with repositories before upgrading packages                  |
| yasu    | `yay -Syu --no-confirm`        | Same as `yaupg`, but without confirmation                         |
| upgrade[³](#f3) | `yay -Syu`             | Sync with repositories before upgrading packages                  |

---

<span id="f1">¹</span>
If the `abs` and/or `aur` commands are present, `sudo abs` and `sudo aur` are also
called to update the ABS and AUR databases.

<span id="f2">²</span>
Yay and Yaourt aliases overlap. If both are installed, yay will take precedence.

<span id="f3">³</span>
The `upgrade` alias is set for all package managers. Its value will depend on
whether the package manager is installed, checked in the following order:

1. `yay`
2. `yaourt`
3. `trizen`
4. `pacaur`
5. `pacman`

## Contributors

- Benjamin Boudreau - dreurmail@gmail.com
- Celso Miranda - contacto@celsomiranda.net
- ratijas (ivan tkachenko) - me@ratijas.tk
- Juraj Fiala - doctorjellyface@riseup.net
- KhasMek - Boushh@gmail.com
- Majora320 (Moses Miller) - Majora320@gmail.com
- Martin Putniorz - mputniorz@gmail.com
- MatthR3D - matthr3d@gmail.com
- ornicar - thibault.duplessis@gmail.com
- Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info
