From 790f185e0fd8b70eab33847afe02af07f6af3a1e Mon Sep 17 00:00:00 2001
From: ratijas <me@ratijas.tk>
Date: Tue, 6 Apr 2021 13:28:22 +0300
Subject: [PATCH] refactor(archlinux): fix name & scripts; reorder aliases
 (#9546)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Marc Cornellà <hello@mcornella.com>
---
 plugins/archlinux/README.md            | 256 ++++++++++++------------
 plugins/archlinux/archlinux.plugin.zsh | 260 ++++++++++---------------
 2 files changed, 243 insertions(+), 273 deletions(-)

diff --git a/plugins/archlinux/README.md b/plugins/archlinux/README.md
index 5882c7603..a4f191a5f 100644
--- a/plugins/archlinux/README.md
+++ b/plugins/archlinux/README.md
@@ -1,4 +1,4 @@
-# Archlinux plugin
+# Arch Linux plugin
 
 This plugin adds some aliases and functions to work with Arch Linux.
 
@@ -10,145 +10,159 @@ plugins=(... archlinux)
 
 ## Features
 
-#### YAY
+### Pacman
 
-| 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                             |
-| yaupg   | yay -Syu                           | Sync with repositories before upgrading packages                    |
-| yasu    | yay -Syu --no-confirm              | Same as `yaupg`, but without confirmation                           |
+| 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                 |
 
-#### TRIZEN
+| 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                  |
 
-| 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 && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases             |
-| trupd   | trizen -Sy && sudo abs             | Update and refresh the local package and ABS databases              |
-| trupd   | trizen -Sy && sudo aur             | Update and refresh the local package and AUR databases              |
-| trupd   | trizen -Sy                         | Update and refresh the local package database                       |
-| 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 | trizen -Syu                        | Sync with repositories before upgrading packages                    |
+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.
 
-#### YAOURT
+### AUR helpers
 
-| 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 && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases             |
-| yaupd   | yaourt -Sy && sudo abs             | Update and refresh the local package and ABS databases              |
-| yaupd   | yaourt -Sy && sudo aur             | Update and refresh the local package and AUR databases              |
-| yaupd   | yaourt -Sy                         | Update and refresh the local package database                       |
-| 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 | yaourt -Syu                        | Sync with repositories before upgrading packages                    |
+#### Pacaur
 
-#### 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                    |
 
-| 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 && sudo abs && sudo aur | Update and refresh local package, ABS and AUR databases             |
-| paupd   | pacaur -Sy && sudo abs             | Update and refresh the local package and ABS databases              |
-| paupd   | pacaur -Sy && sudo aur             | Update and refresh the local package and AUR databases              |
-| paupd   | pacaur -Sy                         | Update and refresh the local package database                       |
-| 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 | pacaur -Syu                        | Sync with repositories before upgrading packages                    |
+#### Trizen
 
-#### PACMAN
+| 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                    |
 
-| 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 && sudo abs && sudo aur | Update and refresh the local package, ABS and AUR databases  |
-| pacupd       | sudo pacman -Sy && sudo abs             | Update and refresh the local package and ABS databases       |
-| pacupd       | sudo pacman -Sy && sudo aur             | Update and refresh the local package and AUR databases       |
-| pacupd       | sudo pacman -Sy                         | Update and refresh the local package database                |
-| pacupg       | sudo pacman -Syu                        | Sync with repositories before upgrading packages             |
-| upgrade      | 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                               |
+#### Yaourt[²](#f2)
 
-| Function       | Description                                          |
-|----------------|------------------------------------------------------|
-| pacdisowned    | List all disowned files in your system               |
-| paclist        | List all installed packages with a short 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             |
+| 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
-- Juraj Fiala - doctorjellyface@riseup.net
-- Majora320 (Moses Miller) - Majora320@gmail.com
 - Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info
diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh
index 32f09cef9..d53761077 100644
--- a/plugins/archlinux/archlinux.plugin.zsh
+++ b/plugins/archlinux/archlinux.plugin.zsh
@@ -1,138 +1,12 @@
-if (( $+commands[trizen] )); then
-  alias trconf='trizen -C'
-  alias trupg='trizen -Syua'
-  alias trsu='trizen -Syua --noconfirm'
-  alias trin='trizen -S'
-  alias trins='trizen -U'
-  alias trre='trizen -R'
-  alias trrem='trizen -Rns'
-  alias trrep='trizen -Si'
-  alias trreps='trizen -Ss'
-  alias trloc='trizen -Qi'
-  alias trlocs='trizen -Qs'
-  alias trlst='trizen -Qe'
-  alias trorph='trizen -Qtd'
-  alias trinsd='trizen -S --asdeps'
-  alias trmir='trizen -Syy'
+#######################################
+#               Pacman                #
+#######################################
 
+# abs and aur command check
+local abs_aur=''
+(( ! $+commands[abs] )) || abs_aur+=' && sudo abs'
+(( ! $+commands[aur] )) || abs_aur+=' && sudo aur'
 
-  if (( $+commands[abs] && $+commands[aur] )); then
-    alias trupd='trizen -Sy && sudo abs && sudo aur'
-  elif (( $+commands[abs] )); then
-    alias trupd='trizen -Sy && sudo abs'
-  elif (( $+commands[aur] )); then
-    alias trupd='trizen -Sy && sudo aur'
-  else
-    alias trupd='trizen -Sy'
-  fi
-fi
-
-if (( $+commands[yaourt] )); then
-  alias yaconf='yaourt -C'
-  alias yaupg='yaourt -Syua'
-  alias yasu='yaourt -Syua --noconfirm'
-  alias yain='yaourt -S'
-  alias yains='yaourt -U'
-  alias yare='yaourt -R'
-  alias yarem='yaourt -Rns'
-  alias yarep='yaourt -Si'
-  alias yareps='yaourt -Ss'
-  alias yaloc='yaourt -Qi'
-  alias yalocs='yaourt -Qs'
-  alias yalst='yaourt -Qe'
-  alias yaorph='yaourt -Qtd'
-  alias yainsd='yaourt -S --asdeps'
-  alias yamir='yaourt -Syy'
-
-
-  if (( $+commands[abs] && $+commands[aur] )); then
-    alias yaupd='yaourt -Sy && sudo abs && sudo aur'
-  elif (( $+commands[abs] )); then
-    alias yaupd='yaourt -Sy && sudo abs'
-  elif (( $+commands[aur] )); then
-    alias yaupd='yaourt -Sy && sudo aur'
-  else
-    alias yaupd='yaourt -Sy'
-  fi
-fi
-
-if (( $+commands[yay] )); then
-  alias yaconf='yay -Pg'
-  alias yaupg='yay -Syu'
-  alias yasu='yay -Syu --noconfirm'
-  alias yain='yay -S'
-  alias yains='yay -U'
-  alias yare='yay -R'
-  alias yarem='yay -Rns'
-  alias yarep='yay -Si'
-  alias yareps='yay -Ss'
-  alias yaloc='yay -Qi'
-  alias yalocs='yay -Qs'
-  alias yalst='yay -Qe'
-  alias yaorph='yay -Qtd'
-  alias yainsd='yay -S --asdeps'
-  alias yamir='yay -Syy'
-
-
-  if (( $+commands[abs] && $+commands[aur] )); then
-    alias yaupd='yay -Sy && sudo abs && sudo aur'
-  elif (( $+commands[abs] )); then
-    alias yaupd='yay -Sy && sudo abs'
-  elif (( $+commands[aur] )); then
-    alias yaupd='yay -Sy && sudo aur'
-  else
-    alias yaupd='yay -Sy'
-  fi
-fi
-
-if (( $+commands[pacaur] )); then
-  alias paupg='pacaur -Syu'
-  alias pasu='pacaur -Syu --noconfirm'
-  alias pain='pacaur -S'
-  alias pains='pacaur -U'
-  alias pare='pacaur -R'
-  alias parem='pacaur -Rns'
-  alias parep='pacaur -Si'
-  alias pareps='pacaur -Ss'
-  alias paloc='pacaur -Qi'
-  alias palocs='pacaur -Qs'
-  alias palst='pacaur -Qe'
-  alias paorph='pacaur -Qtd'
-  alias painsd='pacaur -S --asdeps'
-  alias pamir='pacaur -Syy'
-
-  if (( $+commands[abs] && $+commands[aur] )); then
-    alias paupd='pacaur -Sy && sudo abs && sudo aur'
-  elif (( $+commands[abs] )); then
-    alias paupd='pacaur -Sy && sudo abs'
-  elif (( $+commands[aur] )); then
-    alias paupd='pacaur -Sy && sudo aur'
-  else
-    alias paupd='pacaur -Sy'
-  fi
-fi
-
-if (( $+commands[trizen] )); then
-  function upgrade() {
-    trizen -Syu
-  }
-elif (( $+commands[pacaur] )); then
-  function upgrade() {
-    pacaur -Syu
-  }
-elif (( $+commands[yaourt] )); then
-  function upgrade() {
-    yaourt -Syu
-  }
-elif (( $+commands[yay] )); then
-  function upgrade() {
-    yay -Syu
-  }
-else
-  function upgrade() {
-    sudo pacman -Syu
-  }
-fi
 
 # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
 alias pacupg='sudo pacman -Syu'
@@ -152,22 +26,14 @@ alias pacfileupg='sudo pacman -Fy'
 alias pacfiles='pacman -F'
 alias pacls='pacman -Ql'
 alias pacown='pacman -Qo'
-
-
-if (( $+commands[abs] && $+commands[aur] )); then
-  alias pacupd='sudo pacman -Sy && sudo abs && sudo aur'
-elif (( $+commands[abs] )); then
-  alias pacupd='sudo pacman -Sy && sudo abs'
-elif (( $+commands[aur] )); then
-  alias pacupd='sudo pacman -Sy && sudo aur'
-else
-  alias pacupd='sudo pacman -Sy'
-fi
+alias pacupd="sudo pacman -Sy$abs_aur"
+alias upgrade='sudo pacman -Syu'
 
 function paclist() {
-  # Source: https://bbs.archlinux.org/viewtopic.php?id=93683
-  LC_ALL=C pacman -Qei $(pacman -Qu | cut -d " " -f 1) | \
-    awk 'BEGIN {FS=":"} /^Name/{printf("\033[1;36m%s\033[1;37m", $2)} /^Description/{print $2}'
+  # Based on https://bbs.archlinux.org/viewtopic.php?id=93683
+  pacman -Qqe | \
+    xargs -I '{}' \
+      expac "${bold_color}% 20n ${fg_no_bold[white]}%d${reset_color}" '{}'
 }
 
 function pacdisowned() {
@@ -187,11 +53,7 @@ function pacdisowned() {
   comm -23 "$fs" "$db"
 }
 
-function pacmanallkeys() {
-  curl -sL https://www.archlinux.org/people/{developers,trusted-users}/ | \
-    awk -F\" '(/keyserver.ubuntu.com/) { sub(/.*search=0x/,""); print $1}' | \
-    xargs sudo pacman-key --recv-keys
-}
+alias pacmanallkeys='sudo pacman-key --refresh-keys'
 
 function pacmansignkeys() {
   local key
@@ -205,6 +67,15 @@ function pacmansignkeys() {
 
 if (( $+commands[xdg-open] )); then
   function pacweb() {
+    if [[ $# = 0 || "$1" =~ '--help|-h' ]]; then
+      local underline_color="\e[${color[underline]}m"
+      echo "$0 - open the website of an ArchLinux package"
+      echo
+      echo "Usage:"
+      echo "    $bold_color$0$reset_color ${underline_color}target${reset_color}"
+      return 1
+    fi
+
     local pkg="$1"
     local infos="$(LANG=C pacman -Si "$pkg")"
     if [[ -z "$infos" ]]; then
@@ -215,3 +86,88 @@ if (( $+commands[xdg-open] )); then
     xdg-open "https://www.archlinux.org/packages/$repo/$arch/$pkg/" &>/dev/null
   }
 fi
+
+#######################################
+#             AUR helpers             #
+#######################################
+
+if (( $+commands[pacaur] )); then
+  alias paupg='pacaur -Syu'
+  alias pasu='pacaur -Syu --noconfirm'
+  alias pain='pacaur -S'
+  alias pains='pacaur -U'
+  alias pare='pacaur -R'
+  alias parem='pacaur -Rns'
+  alias parep='pacaur -Si'
+  alias pareps='pacaur -Ss'
+  alias paloc='pacaur -Qi'
+  alias palocs='pacaur -Qs'
+  alias palst='pacaur -Qe'
+  alias paorph='pacaur -Qtd'
+  alias painsd='pacaur -S --asdeps'
+  alias pamir='pacaur -Syy'
+  alias paupd="pacaur -Sy$abs_aur"
+  alias upgrade='pacaur -Syu'
+fi
+
+if (( $+commands[trizen] )); then
+  alias trconf='trizen -C'
+  alias trupg='trizen -Syua'
+  alias trsu='trizen -Syua --noconfirm'
+  alias trin='trizen -S'
+  alias trins='trizen -U'
+  alias trre='trizen -R'
+  alias trrem='trizen -Rns'
+  alias trrep='trizen -Si'
+  alias trreps='trizen -Ss'
+  alias trloc='trizen -Qi'
+  alias trlocs='trizen -Qs'
+  alias trlst='trizen -Qe'
+  alias trorph='trizen -Qtd'
+  alias trinsd='trizen -S --asdeps'
+  alias trmir='trizen -Syy'
+  alias trupd="trizen -Sy$abs_aur"
+  alias upgrade='trizen -Syu'
+fi
+
+if (( $+commands[yaourt] )); then
+  alias yaconf='yaourt -C'
+  alias yaupg='yaourt -Syua'
+  alias yasu='yaourt -Syua --noconfirm'
+  alias yain='yaourt -S'
+  alias yains='yaourt -U'
+  alias yare='yaourt -R'
+  alias yarem='yaourt -Rns'
+  alias yarep='yaourt -Si'
+  alias yareps='yaourt -Ss'
+  alias yaloc='yaourt -Qi'
+  alias yalocs='yaourt -Qs'
+  alias yalst='yaourt -Qe'
+  alias yaorph='yaourt -Qtd'
+  alias yainsd='yaourt -S --asdeps'
+  alias yamir='yaourt -Syy'
+  alias yaupd="yaourt -Sy$abs_aur"
+  alias upgrade='yaourt -Syu'
+fi
+
+if (( $+commands[yay] )); then
+  alias yaconf='yay -Pg'
+  alias yaupg='yay -Syu'
+  alias yasu='yay -Syu --noconfirm'
+  alias yain='yay -S'
+  alias yains='yay -U'
+  alias yare='yay -R'
+  alias yarem='yay -Rns'
+  alias yarep='yay -Si'
+  alias yareps='yay -Ss'
+  alias yaloc='yay -Qi'
+  alias yalocs='yay -Qs'
+  alias yalst='yay -Qe'
+  alias yaorph='yay -Qtd'
+  alias yainsd='yay -S --asdeps'
+  alias yamir='yay -Syy'
+  alias yaupd="yay -Sy$abs_aur"
+  alias upgrade='yay -Syu'
+fi
+
+unset abs_aur