xs-update-manjaro
Switch to Stable)
ReadMe for Beta/Dev (Table of Contents
↕
- Summary
- Suggested usage / Disclaimer
- Execution Overview
- Supported Automatic Repair / Manual Changes
- Installation/Requirements
- Supported AUR Helpers
- Configuration
- =Sample Configuration=
- =Custom
makepkg
flags= - aur_1helper_str
- aur_aftercritical_bool
- aur_update_freq
- aur_devel_freq
- cln_1enable_bool
- cln_aurpkg_num
- cln_aurbuild_bool
- cln_orphan_bool
- cln_flatpakorphan_bool
- cln_paccache_num
- flatpak_update_freq
- notify_1enable_bool
- notify_function_str
- notify_lastmsg_num
- notify_errors_bool
- notify_vsn_bool
- main_ignorepkgs_str
- main_systempkgs_str
- main_inhibit_bool
- main_logdir_str
- main_perstdir_str
- main_country_str
- main_testsite_str
- reboot_1enable_num
- reboot_action_str
- reboot_delayiflogin_bool
- reboot_delay_num
- reboot_notifyrep_num
- reboot_ignoreusers_str
- repair_1enable_bool
- repair_db01_bool
- repair_db02_bool
- repair_keyringpkg_bool
- repair_manualpkg_bool
- repair_pikaur01_bool
- repair_aurrbld_bool
- repair_aurrbldfail_freq
- self_1enable_bool
- self_branch_str
- update_downgrades_bool
- update_mirrors_freq
- update_keys_freq
Summary
This is a highly configurable, non-interactive script for automating updates for Manjaro Linux, with basic support for other distributions based on Arch Linux. It supports updating the following:
- Main system packages (via
pacman
) - AUR packages (via an AUR helper)
- Flatpak packages
Status Notifications are currently supported on the following Desktop Environments:
- Xfce
- KDE (requires notify-desktop-git for full notification support)
- Gnome (permanent notifications extension is recommended) .
Suggested Usage and Disclaimer:
Please do not use this script blindly. You should have a firm understanding of how to manually update your computer before using this. You can learn about updating your computer at the following:
This is not a replacement for manually updating/maintaining your own computer, but a supplement. This script automates what it can, but updates needing manual steps (for example, merging .pacnew files) will still need those. Some of the manual steps have been incorporated into this script, but your system(s) may require additional manual steps depending on what packages you have installed.
Always have external bootable media (like a flash drive with manjaro on it) available in case the system becomes unbootable.
Support of other distributions based on Arch Linux
Functions in this script are designed to be distro-agnostic and should work with any distro that uses pacman. Manjaro Linux continues to be the primary testing environment, but feel free to submit issues/pull requests concerning other distributions.
↕VMs tested before each Release (updated from old/original snapshots)↕
Distro | Desktop | Arch | Snapshot Date/Version |
Manjaro Linux | Xfce | x86_64 | 17.1.7 18.0 18.1.0 2021/06/08 |
Manjaro Linux | KDE | x86_64 | 20.0-rc3 2020/10/11 |
Manjaro Linux | Gnome | x86_64 | 2021/03/21 |
Arch Linux | Xfce | x86_64 | 2022/02/04 |
EndeavourOS | Xfce | x86_64 | 2021/08/30 |
Garuda Linux | Xfce | x86_64 | 2021/08/09 |
↕Hardware tested before each Release (continuously updated)↕
Hardware | Distro | Desktop | Arch | Fresh install version/date |
AMD Ryzen 3500u (thinkpad laptop) | Manjaro Linux | Xfce | x86_64 | 2021/11/26 |
Intel core i7-3770 + Nvidia gtx 970 (dell tower) | Manjaro Linux | Xfce | x86_64 | 2018/10/28 |
Pinephone v1.2b | Manjaro Linux | Phosh | arm | beta 23 |
Legal stuff
↕
This is licensed under Apache 2.0
- TL/DR (as I understand it): You can modify, redistribute, or include in sold products as long as you include the license. You lose this right if you start throwing around litigation. No warranty or guarantee is included or implied. Use at your own risk.
= Expand for License details =
Copyright 2016-2023 Steven Hoff (aka "lectrode")
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Execution Overview
↕
Overview of what the script does from start to finish. Some steps may be slightly out of order for readability.
Initialization
↕
- Define main functions
- Load Config
- Determine notification function (config: enable, manual selection)
- Initialize logging (config: location)
- Load Persistent data (config: location)
- Export Config and Persistent data files
- Perform checks:
- Start background notification process
- Package cache cleanup (see Cleanup Tasks for details)
Update Official Repos
↕
-
Update mirrorlist (config: frequency)
pacman-mirrors [--geoip || -c
$main_country_str
]
- Upon failure, falls back to
pacman-mirrors -g
-
Update package signature keys (config: frequency)
pacman-key --refresh-keys
-
Pre-update system checks
- Check if too old (does not support installs with
xproto
<=7.0.31-1) - Partial cache cleanup
- Check Free space
- Check if too old (does not support installs with
-
Update repo databases
pacman -Syy
- Repair upon detection of "error: GPGME error: No data" (config: enable):
- delete package database files (normally stored in
/var/lib/pacman/sync
) - re-attempt
pacman -Syy
- delete package database files (normally stored in
- Repair upon detection of "error: GPGME error: No data" (config: enable):
-
Update keyring packages
- manual update if packages are older than 1.5 years (config: enable)
-
Download package updates
pacman -Su[
u
]w --needed --noconfirm [--ignore
$main_ignorepkgs_str
]
- Upon dependency resolution issues, this will be re-attempted, but with 'd' and 'dd' parameters to skip dependency checks
- This ensures that as many packages are downloaded as possible before making any major changes
-
Apply manual package changes (config: enable)(see this section for details)
- If
pacman
<5.2, switch topacman-static
- Required removal and/or replacement of known conflicting packages
- If
-
Update System packages
- Installed repo packages that end with "-keyring"
- Installed repo packages that end with "-system"
- Packages specified in
$main_systempkgs_str
-
Check/fix package database errors (config: enable)
- For every package with errors:
- search local caches and arch linux archive for package of installed version
- if installed version not found, fall back to installing the latest version
- create missing
files
/desc
- reinstall with
pacman -[S|Udd] --noconfirm --overwrite=* packagename
- package dependencies are ignored if re-installing same version
- search local caches and arch linux archive for package of installed version
- For every package with errors:
-
Update packages from Official Repos
pacman -Syyu[
u
] --needed --noconfirm [--ignore
$main_ignorepkgs_str
]
- If this fails, AUR updates are skipped
Update AUR packages
↕
-
AUR updates are skipped after critical system package updates if aur_aftercritical_bool is false
-
Determine available AUR helpers (config: frequency, manual selection)
- Check if pikaur is functional (config: enable)
-
If AUR helper available/enabled, detect and rebuild AUR packages that need it (config: enable)
- If packages are still detected as needing a rebuild afterward, these packages are excluded from future attempts (config: number of days to exclude)
-
If selected, update AUR packages with
pikaur
- Update AUR packages with custom flags specified
- Update remaining AUR packages
pikaur -Sau[
u
] [
--devel
] --needed --noconfirm --noprogressbar [--ignore
$main_ignorepkgs_str
]
-
If selected, update AUR packages with
apacman
apacman -Su[
u
] --auronly --needed --noconfirm [--ignore
$main_ignorepkgs_str
]
Cleanup Tasks
↕
-
All cleanup operations (config: enable)
-
Remove orphan packages (config: enable)
- mark keyring packages as explicitly installed if they would otherwise be removed
pacman -Rnsc $(pacman -Qtdq) --noconfirm
-
Package cache cleanup
- Clean AUR package cache
- ``paccache -rfqk
[
$cln_aurpkg_num`](#cln_aurpkg_num "") -c /var/cache/apacman/pkg` - ``paccache -rfqk
[
$cln_aurpkg_num`](#cln_aurpkg_num "") -c /var/cache/pikaur/pkg`
- ``paccache -rfqk
- Clean AUR build cache (config: enable)
rm -rf /var/cache/pikaur/aur_repos/*
rm -rf /var/cache/pikaur/build/*
- Clean pacman package cache
paccache -rfqk
$cln_paccache_num
- Clean AUR package cache
-
Update Flatpak
↕
Final Actions
↕
- Stop background notification process
- Determine final message
- Perform System Power Action (i.e. reboot) if required (config: enable)
- Delay system power action if users are logged in (config: enable, ignore these users)
- Countdown to system power action (config: duration, notification frequency)
sync; [reboot|halt|poweroff] || systemctl --force [reboot|halt|poweroff] || systemctl --force --force [reboot|halt|poweroff]
(config: action)
- Delay system power action if users are logged in (config: enable, ignore these users)
- Final message if system power action not performed (config: duration)
- Stop auto-update service and quit
Supported Automatic Repair and Manual Changes
↕
Note: All current and future automatic repair and manual package changes can be disabled in one setting
Automatic Repair
This script supports detecting and repairing the following potential issues:
- Package database errors error 1 | error 2
- Obsolete keyring packages
- Non-functioning Pikaur
- AUR packages requiring rebuild after dependency update
Manual Package Changes
Every once in a while, updating Manjaro requires manual package changes to allow updates to succeed. This script supports automatically performing the following:
-
Setup and use
pacman-static
ifpacman
<5.2 -
Mark packages as explicitely installed:
adapta-black-breath-theme adapta-black-maia-theme adapta-breath-theme adapta-gtk-theme adapta-maia-theme arc-themes-maia arc-themes-breath matcha-gtk-theme | left as orphans with kvantum-manjaro >=0.13.5+1+g333aa00-1 |
breath-wallpaper vertex-maia-icon-theme | left as orphans with manjaro-xfce-settings >=20200109-1 |
- Mark packages as dependency:
phonon-qt4-gstreamer phonon-qt4-vlc phonon-qt4-mplayer-git | extras for phonon-qt4 <4.11.0(qt4 support dropped, package removed from repos 2019/05) |
- Package removal:
jre-openjdk jre-openjdk-headless | <=21.u35-3 | 2023/11/02: java 21 packages now conflict. of the ones installed, the most functional package is kept |
amtk | <=5.6.1-2 | 2023/09/28: replaced with libgedit-amtk (revisit later) |
gnome-shell-extension-desktop-icons-ng | <=47-1 | 2022/12/16: replaced with gnome-shell-extension-gtk4-desktop-icons-ng |
libxfce4ui-nocsd | <=4.17.0-1 | 2022/12/23: removed from repos |
lib32-db | <=5.3.28-5 | 2022/12/21: moved to aur |
kjsembed | <=5.100.0-1 | 2022/12/20: removed from repos |
glib2-static | <=2.72.3-1 | 2022/09/07: merged into glib2 |
wxgtk2 | <=3.0.5.1-3 | 2022/07/14: removed from arch repos |
manjaro-gdm-theme | <=20210528-1 | 2022/04/23: removed from repos |
libkipi | <=22.04.0-1 | 2022/04/22: moved to AUR |
kvantum-qt5 | <=0.20.2-2 | 2022/01/02: removed from repos |
user-manager | <=5.19.5-1 | 2020/11/04: removed from repos |
kvantum-theme-matchama | <=20191118-1 | 2022/02/14: removed from repos, 2023/10/11: re-added (renamed) |
[lib32-]libcanberra-gstreamer | <=0.30+2+gc0620e4-3 | 2021/06: merged into lib32-/libcanberra-pulse |
python2-dbus | <=1.2.16-3 | 2021/03: removed from dbus-python |
knetattach | <=5.20.5-1 | 2021/01/09: merged into plasma-desktop |
ms-office-online | <=20.1.0-1 | 2020/06: former default pkg moved to AUR |
libxxf86dga libdmx libxxf86misc |
<=1.1.5-1 <=1.1.4-1 <=1.0.4-1 | 2019/12/20: moved to AUR |
pyqt5-common | <=5.13.2-1 | 2019/12: removed from repos |
ilmbase | <=2.3.0-1 | 2019/10: merged into openexr |
breeze-kde4 oxygen-kde4 sni-qt |
<=5.13.4-1 <=5.13.4-1 <=0.2.6-5 | 2019/05: removed from repos |
libmagick | <=7.0.8.41-1 | 2019/04/22: merged into imagemagick |
colord | <=1.4.4-1 | 2019/??: conflicts with libcolord |
kuiserver | <=5.12.5-3 | 2018/06/12: removed from repos |
[lib32-]gtk3-classic | <=3.24.24-1 | Xfce 18.0.4: replaced with gtk3 |
engrampa-thunar-plugin | <=1.0-2 | Xfce 17.1.10: removed from repos |
- Package replacement:
dbus-x11 | <=1.14.4-1 | 2022/12/16: dropped in favor of dbus |
qpdfview | <=0.4.18-1 | 2022/04/01: former default pkg moved to AUR, replaced with evince |
galculator-gtk2 | <=2.1.4-5 | 2021/11/13: replaced with galculator |
manjaro-kde-settings-19.0 ,breath2-icon-themes ,plasma5-themes-breath2 | <=20200426-1 | 2021/11: replaced with manjaro-kde-settings ,plasma5-themes-breath |
[lib32-]jack | <=0.125.0-10 | 2021/07/26: replaced with [lib32-]jack2 |
gksu-polkit | <=0.0.3-2 | 2020/10: replaced with zensu |
- Package overwrite:
glibc-locales | <=2.38-5 | 2023/10/01: split package (glibc ) conflicts with files generated by old |
-
Transition packages that depend on
electron
toelectronXX
where required -
Install new
base-devel
metapackage if system had the (now defunct) group installed
Installation and Requirements
↕
Dependencies:
Required:
coreutils
,pacman
,grep
,iputils
Optional:
pacman-contrib | for package cache cleanup support (if packaged separately, i.e. Arch Linux) |
pacman-mirrors | for mirror update support |
AUR Helper | for AUR package support |
flatpak | for flatpak package support |
notification daemon | usually a part of the desktop environment; for notification support |
lsof | for more thorough detection of reboot needed on login |
notify-desktop | required for KDE notifications, optional alternative for Xfce, Gnome |
wget | if available, will use instead of curl |
Installation
- Move script files to these locations:
ElectrodeXS.png -> /usr/share/pixmaps/
auto-update.sh -> /usr/share/xs/
xs-autoupdate.service -> /etc/systemd/system/
xs-updatehelper.desktop -> /etc/xdg/autostart/
-
Make sure
auto-update.sh
is allowed to execute as a program -
Enable running the auto-update script at startup (optional):
sudo systemctl enable xs-autoupdate
- You can manually run the script with the following:
sudo systemctl start xs-autoupdate
(run silently as service)sudo /usr/share/xs/auto-update.sh
(watch logs)sudo /usr/share/xs/auto-update.sh nofork
(watch logs, do not fork to background)
Supported AUR Helpers:
↕
If you want the script to automatically update packages from the AUR, it will need one of the following:
pikaur (recommended)
You can install pikaur
with another AUR helper, or install it directly with the following:
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/pikaur.git
cd pikaur
makepkg -fsri
Features:
- Actively developed/maintained
- Supports latest PKGBUILD format and AUR features
- Introduces the ability to pass specific makepkg flags to packages
- Supports skipping devel packages
Drawbacks:
- Does not support automatically importing PGP keys
- (workaround: pass
--skippgpcheck
custom flag to packages that need it)
apacman (deprecated)
You can install apacman
(deprecated) with the following:
git clone https://aur.archlinux.org/apacman.git
pushd apacman
makepkg -si --noconfirm
popd
rm -rf apacman
#Replace old apacman with my fork with some fixes (not currently maintained)
sudo wget "https://raw.githubusercontent.com/lectrode/apacman/master/apacman" -O "/usr/bin/apacman"
sudo chmod +x "/usr/bin/apacman"
Features:
- Automatically imports PGP keys for packages
Drawbacks:
- No longer maintained upstream
- Does not support newer AUR packages
- Cannot pass custom makepkg flags
- Support will be removed in future version of script
Configuration
=Overview=
-
By default settings are located at
/etc/xs/auto-update.conf
-
Settings file is (re)generated on every run
-
Older settings will be converted to preserve preferences
-
True and False are 1 and 0 respectively
-
Settings location can be changed by exporting
xs_autoupdate_conf
environment variable- This needs absolute path and filename
- Warning: whichever file is specified will be overwritten whenever the script runs
=Sample configuration file=
- NOTE: Blank line at end may be required for last line to be parsed
aur_1helper_str=auto
aur_aftercritical_bool=0
aur_update_freq=3
aur_devel_freq=6
cln_1enable_bool=1
cln_aurbuild_bool=0
cln_aurpkg_num=1
cln_flatpakorphan_bool=1
cln_orphan_bool=1
cln_paccache_num=1
flatpak_update_freq=3
main_country_str=Global,United_States
main_ignorepkgs_str=
main_logdir_str=/var/log/xs
main_perstdir_str=
main_systempkgs_str=
main_testsite_str=www.google.com
notify_1enable_bool=1
notify_errors_bool=1
notify_function_str=auto
notify_lastmsg_num=20
notify_vsn_bool=0
reboot_1enable_num=1
reboot_action_str=reboot
reboot_delayiflogin_bool=1
reboot_delay_num=120
reboot_ignoreusers_str=nobody lightdm sddm gdm
reboot_notifyrep_num=10
repair_db01_bool=1
repair_db02_bool=1
repair_manualpkg_bool=1
repair_pikaur01_bool=1
repair_aurrbld_bool=1
repair_aurrbldfail_freq=32
self_1enable_bool=1
self_branch_str=stable
update_downgrades_bool=1
update_keys_freq=30
update_mirrors_freq=1
zflag:dropbox,tor-browser=--skippgpcheck
=Custom makepkg flags for specific AUR packages=
- Requires pikaur
- You can add as many entries as you need
- All packages listed in one line will be updated at the same time
- Format:
zflag:package1,package2=--flag1,--flag2,--flag3
Individual Settings
aur_1helper_str
- Default:
auto
- Specifies which AUR helper to use to update AUR packages
- Current valid values are:
auto
,none
,all
,pikaur
,apacman
auto
will use an available AUR helper with the following preference: pikaur > apacmanall
will run every supported AUR helper found in this order: pikaur, apacmannone
will not use any AUR helper
aur_aftercritical_bool
- Default:
0
(False) - If set to false, script will skip AUR package updates after critical main system packages have been updated
- If set to true, script will proceed to update AUR packages, regardless of critical main package updates
aur_update_freq
- Default:
3
- Every X days, update AUR packages (-1 disables all AUR updates, including devel)
aur_devel_freq
- Default:
6
- Every X days, update "devel" AUR packages (any package that ends in -git, -svn, etc) (-1 to disable)
- This setting only applies if AUR packages are updated with
pikaur
cln_aurpkg_num
- Default:
1
- Specifies the number of AUR (built) package versions to keep in cache
- If set to "-1" all AUR package versions will be kept
- pikaur cache:
/var/cache/pikaur/pkg
- apacman cache:
/var/cache/apacman/pkg
cln_aurbuild_bool
- Default:
1
(True) - If this is True, all AUR package build folders will be deleted when finished
cln_orphan_bool
- Default:
1
(True) - If this is True, obsolete dependencies from main repos will be uninstalled
cln_flatpakorphan_bool
- Default:
1
(True) - If this is True, obsolete flatpak dependencies will be uninstalled
cln_paccache_num
- Default:
1
- Specifies the number of repo package versions to keep in cache
- If set to "-1" all official package versions will be kept (cache is usually
/var/cache/pacman/pkg
)
notify_function_str
- Default:
auto
- Specifies which notification method to use
- Current valid values are:
auto
,gdbus
,desk
,send
auto
: will automatically select the best methodgdbus
: usesgdbus
to create notifications (works on Xfce, Gnome)desk
: usesnotify-desktop
to create notifications (works on Xfce, KDE, and Gnome)send
: usesnotify-send
to create notifications (partial Xfce and KDE support - does not support replacing/dismissing existing notifications, which may result in notification spam)
- Note: if
desk
is specified (or ifauto
is specified and KDE is detected), and an AUR helper is configured, script will attempt to installnotify-desktop-git
to provide this functionality
notify_lastmsg_num
- Default:
20
- Specifies how long (in seconds) the "System update finished" notification is visible before it expires.
- The "Kernel and/or drivers were updated" message does not expire, regardless of this setting
notify_errors_bool
- Default:
1
(True) - If true, script will state which tasks failed in the "System update finished" notification
notify_vsn_bool
- Default:
0
(False) - If true, the version number of the script will be included in notifications
main_ignorepkgs_str
- Default: (blank)
- Packages to ignore, separated by spaces (these are in addition to those stored in pacman.conf)
main_systempkgs_str
- Default: (blank)
- Packages to update before any other packages (i.e.
archlinux-keyring
), separated by spaces
main_inhibit_bool
- Default:
1
(True) - If true, script will inhibit accidental restart/shutdown/hibernate/suspend while the script is updating the system
- This can be manually overridden with one of the following methods:
- WARNING: interupting a system update can result in a non-functoinal system! Use with caution!
- Execute with elevated permissions, i.e.
sudo reboot
, orsudo systemctl suspend
- Stop the script with
sudo pkill auto-update
- NOTE: On KDE, while inhibited, selecting shutdown or restart results in a black screen (use different TTY to get back in)
main_perstdir_str
- Default: (blank)
- Defines the directory where persistent timestamps are stored. If blank, uses main_logdir_str
main_country_str
- Default: (blank)
- If blank,
pacman-mirrors --geoip
is used - Countries separated by commas from which to pull updates
- See output of
pacman-mirrors -l
for supported values
main_testsite_str
- Default:
www.google.com
- Script checks if there is internet access by attempting to ping this address
- Can also be an IP address
reboot_1enable_num
- Determines when script should perform "System Power Action" (see
reboot_action_str
below) - Default:
1
- -1: Disable in all cases
- 0: Only if rebooting manually may not be possible (system may be in critical state after critical package update)
- 1: Only after critical system packages have been updated
- 2: Always reboot, regardless of any updates
reboot_action_str
- This is the System Power Action the script should take when required
- Default:
reboot
reboot
: System will be restartedhalt
: System will be halted (shutdown, with hardware left running)poweroff
: System will be powered off (shutdown, with hardware powered off)
reboot_delayiflogin_bool
- Default:
1
(True) - If true, the reboot will be delayed only if a user is logged in. If false, there will always be a delay
reboot_notifyrep_num
- Default:
10
- Reboot notification is updated every X seconds
- Works best if reboot_delay_num is evenly divisible by this
reboot_ignoreusers_str
- Default:
nobody lightdm sddm gdm
- List of users separated by spaces
- These users will not trigger the reboot delay even if they are logged on
repair_1enable_bool
- Default:
1
(True) - Enables/Disables all repair steps
- NOTE: If either this, or the individual repair option is disabled, that repair will be ignored
repair_db01_bool
- Default:
1
(True) - If true, the script will detect and attempt to repair missing "desc"/"files" files in package database
- NOTE: It repairs this by creating the missing files and re-installing the package(s) with
overwrite=*
specified - NOTE: in 3.9.8-rc1 and later, this will attempt to reinstall the local version before installing the latest
repair_db02_bool
- Default:
1
(True) - If true, the script will detect and attempt to redownload corrupt package database files
- NOTE: It repairs this by removing existing package database files, then running 'pacman -Syy'
repair_keyringpkg_bool
- Default:
1
(True) - If true, the script will detect and attempt to repair outdated keyring packages
repair_manualpkg_bool
- Default:
1
(True) - If true, script will check for and perform critical package changes required for continued updates
- See Automatic Repair for specific package changes the script supports
repair_pikaur01_bool
- Default:
1
(True) - If true, the script will attempt to re-install pikaur if it is not functioning
- NOTE: Specifically needed if python is updated
repair_aurrbld_bool
- Default:
1
(True) - If true, the script will attempt to rebuild AUR packages when needed (for example: if their dependencies were updated)
- Depends on external tool: rebuild-detector (available in official repos)
repair_aurrbldfail_freq
- Default:
32
(True) - After the script finishes attempting to rebuild packages that need it, any packages that still need to be rebuilt are excluded from future runs for this number of days
self_branch_str
- Default:
stable
- Script update branch (requires
self_1enable_bool
be True) - Current valid values are:
stable
,beta
update_downgrades_bool
- Default:
1
(True) - If true, allows pacman to downgrade packages if remote packages are a lesser version than installed
update_mirrors_freq
- Default:
0
- Every X days, refreshes mirror list before checking for package updates (-1 to disable)
update_keys_freq
- Default:
30
- Every X days, runs
pacman-key --refresh-keys
before checking for package updates (-1 to disable)