archlinux.plugin.zsh 5.48 KB
Newer Older
1
2
# Archlinux zsh aliases and functions
# Usage is also described at https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins
Benjamin Boudreau's avatar
Benjamin Boudreau committed
3
4

# Look for yaourt, and add some useful functions if we have it.
5
if [[ -x `command -v yaourt` ]]; then
Benjamin Boudreau's avatar
Benjamin Boudreau committed
6
  upgrade () {
7
    yaourt -Syu
Benjamin Boudreau's avatar
Benjamin Boudreau committed
8
  }
9
  alias yaconf='yaourt -C'        # Fix all configuration files with vimdiff
Benjamin Boudreau's avatar
Benjamin Boudreau committed
10
  # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
11
  alias yaupg='yaourt -Syua'        # Synchronize with repositories before upgrading packages (AUR packages too) that are out of date on the local system.
12
  alias yasu='yaourt --sucre'      # Same as yaupg, but without confirmation
13
  alias yain='yaourt -S'           # Install specific package(s) from the repositories
14
  alias yains='yaourt -U'          # Install specific package not from the repositories but from a file
15
16
17
18
19
20
  alias yare='yaourt -R'           # Remove the specified package(s), retaining its configuration(s) and required dependencies
  alias yarem='yaourt -Rns'        # Remove the specified package(s), its configuration(s) and unneeded dependencies
  alias yarep='yaourt -Si'         # Display information about a given package in the repositories
  alias yareps='yaourt -Ss'        # Search for package(s) in the repositories
  alias yaloc='yaourt -Qi'         # Display information about a given package in the local database
  alias yalocs='yaourt -Qs'        # Search for package(s) in the local database
21
22
  alias yalst='yaourt -Qe'         # List installed packages, even those installed from AUR (they're tagged as "local")
  alias yaorph='yaourt -Qtd'       # Remove orphans using yaourt
Benjamin Boudreau's avatar
Benjamin Boudreau committed
23
  # Additional yaourt alias examples
24
  if [[ -x `command -v abs` && -x `command -v aur` ]]; then
25
    alias yaupd='yaourt -Sy && sudo abs && sudo aur'  # Update and refresh the local package, ABS and AUR databases against repositories
26
  elif [[ -x `command -v abs` ]]; then
27
    alias yaupd='yaourt -Sy && sudo abs'   # Update and refresh the local package and ABS databases against repositories
28
  elif [[ -x `command -v aur` ]]; then
29
    alias yaupd='yaourt -Sy && sudo aur'   # Update and refresh the local package and AUR databases against repositories
30
  else
31
    alias yaupd='yaourt -Sy'               # Update and refresh the local package database against repositories
32
33
34
  fi
  alias yainsd='yaourt -S --asdeps'        # Install given package(s) as dependencies of another package
  alias yamir='yaourt -Syy'                # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist
Benjamin Boudreau's avatar
Benjamin Boudreau committed
35
36
37
38
39
40
41
42
43
else
 upgrade() {
   sudo pacman -Syu
 }
fi

# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
alias pacupg='sudo pacman -Syu'        # Synchronize with repositories before upgrading packages that are out of date on the local system.
alias pacin='sudo pacman -S'           # Install specific package(s) from the repositories
44
alias pacins='sudo pacman -U'          # Install specific package not from the repositories but from a file
Benjamin Boudreau's avatar
Benjamin Boudreau committed
45
46
47
48
49
50
51
alias pacre='sudo pacman -R'           # Remove the specified package(s), retaining its configuration(s) and required dependencies
alias pacrem='sudo pacman -Rns'        # Remove the specified package(s), its configuration(s) and unneeded dependencies
alias pacrep='pacman -Si'              # Display information about a given package in the repositories
alias pacreps='pacman -Ss'             # Search for package(s) in the repositories
alias pacloc='pacman -Qi'              # Display information about a given package in the local database
alias paclocs='pacman -Qs'             # Search for package(s) in the local database
# Additional pacman alias examples
52
if [[ -x `command -v abs` && -x `command -v aur` ]]; then
53
  alias pacupd='sudo pacman -Sy && sudo abs && sudo aur'  # Update and refresh the local package, ABS and AUR databases against repositories
54
elif [[ -x `command -v abs` ]]; then
55
  alias pacupd='sudo pacman -Sy && sudo abs'              # Update and refresh the local package and ABS databases against repositories
56
elif [[ -x `command -v aur` ]]; then
57
  alias pacupd='sudo pacman -Sy && sudo aur'              # Update and refresh the local package and AUR databases against repositories
58
else
59
  alias pacupd='sudo pacman -Sy'     # Update and refresh the local package database against repositories
60
fi
Benjamin Boudreau's avatar
Benjamin Boudreau committed
61
62
63
64
65
alias pacinsd='sudo pacman -S --asdeps'        # Install given package(s) as dependencies of another package
alias pacmir='sudo pacman -Syy'                # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist

# https://bbs.archlinux.org/viewtopic.php?id=93683
paclist() {
66
  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}'
Benjamin Boudreau's avatar
Benjamin Boudreau committed
67
}
Benjamin Boudreau's avatar
Benjamin Boudreau committed
68
69

alias paclsorphans='sudo pacman -Qdt'
Benjamin Boudreau's avatar
Benjamin Boudreau committed
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)'

pacdisowned() {
  tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$
  db=$tmp/db
  fs=$tmp/fs

  mkdir "$tmp"
  trap  'rm -rf "$tmp"' EXIT

  pacman -Qlq | sort -u > "$db"

  find /bin /etc /lib /sbin /usr \
      ! -name lost+found \
        \( -type d -printf '%p/\n' -o -print \) | sort > "$fs"

  comm -23 "$fs" "$db"
}
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103

pacmanallkeys() {
  # Get all keys for developers and trusted users
  curl https://www.archlinux.org/{developers,trustedusers}/ |
  awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
  xargs sudo pacman-key --recv-keys
}

pacmansignkeys() {
  for key in $*; do
    sudo pacman-key --recv-keys $key
    sudo pacman-key --lsign-key $key
    printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \
      --no-permission-warning --command-fd 0 --edit-key $key
  done
}