|
@@ -55,15 +55,15 @@ curl -O https://download.sublimetext.com/sublimehq-pub.gpg && pacman-key --add s
|
|
# Core tools
|
|
# Core tools
|
|
export PACKAGES="linux linux-headers linux-firmware base-devel mkinitcpio sudo bash-completion man-db tmux gvim dkms dmidecode at bc cronie lm_sensors lshw stress"
|
|
export PACKAGES="linux linux-headers linux-firmware base-devel mkinitcpio sudo bash-completion man-db tmux gvim dkms dmidecode at bc cronie lm_sensors lshw stress"
|
|
|
|
|
|
|
|
+# install core packages so dependencies exist
|
|
|
|
+pacman -Syu --noconfirm $PACKAGES
|
|
|
|
+
|
|
# Conditional CPU unicode
|
|
# Conditional CPU unicode
|
|
[ $(grep -c "Intel" /proc/cpuinfo) -gt 0 ] && PACKAGES="${PACKAGES} intel-ucode"
|
|
[ $(grep -c "Intel" /proc/cpuinfo) -gt 0 ] && PACKAGES="${PACKAGES} intel-ucode"
|
|
[ $(grep -c "AMD" /proc/cpuinfo) -gt 0 ] && PACKAGES="${PACKAGES} amd-ucode"
|
|
[ $(grep -c "AMD" /proc/cpuinfo) -gt 0 ] && PACKAGES="${PACKAGES} amd-ucode"
|
|
|
|
|
|
-# Conditional laptop packages
|
|
|
|
-if [ -e /sys/class/power_supply/BAT0 ]; then
|
|
|
|
- PACKAGES="${PACKAGES} xf86-input-synaptics acpid acpilight tlp"
|
|
|
|
- sed -i "s/panel_items = LTSC/panel_items = LTSBC/g" /srv/arch-desktop/install/etc/skel/.config/tint2/tint2rc
|
|
|
|
-fi
|
|
|
|
|
|
+# Conditional battery packages
|
|
|
|
+[ -e /sys/class/power_supply/BAT0 ] && PACKAGES="${PACKAGES} xf86-input-synaptics acpid tlp"
|
|
|
|
|
|
# Storage
|
|
# Storage
|
|
PACKAGES="${PACKAGES} btrfs-progs smartmontools usbutils gvfs gvfs-mtp gvfs-afc android-udev parted postgresql transmission-cli python-pip python-setuptools"
|
|
PACKAGES="${PACKAGES} btrfs-progs smartmontools usbutils gvfs gvfs-mtp gvfs-afc android-udev parted postgresql transmission-cli python-pip python-setuptools"
|
|
@@ -72,52 +72,53 @@ PACKAGES="${PACKAGES} btrfs-progs smartmontools usbutils gvfs gvfs-mtp gvfs-afc
|
|
PACKAGES="${PACKAGES} cryptsetup lzop unzip p7zip xz unrar unace lrzip arj innoextract"
|
|
PACKAGES="${PACKAGES} cryptsetup lzop unzip p7zip xz unrar unace lrzip arj innoextract"
|
|
|
|
|
|
# networking packages
|
|
# networking packages
|
|
-PACKAGES="${PACKAGES} nftables iptables dnsmasq rsync dhcpcd inetutils net-tools openssh sshfs ntp wget curl wireless_tools bluez bluez-utils oath-toolkit openconnect openvpn ethtool pptpclient"
|
|
|
|
-
|
|
|
|
-# conditional networking packages
|
|
|
|
-[ -d "/sys/class/net/${active_network_device}/wireless" ] && PACKAGES="${PACKAGES} connman wpa_supplicant iwd"
|
|
|
|
|
|
+PACKAGES="${PACKAGES} nftables iptables dnsmasq rsync dhcpcd inetutils net-tools openssh sshfs ntp wget curl wireless_tools bluez bluez-utils oath-toolkit openconnect openvpn ethtool pptpclient connman wpa_supplicant iwd"
|
|
|
|
|
|
# programming packages
|
|
# programming packages
|
|
-PACKAGES="${PACKAGES} pkgfile pkgconf bison gcc gcc-libs cmake ccache ncurses xmlstarlet jq git mercurial subversion bzr patchelf packer vagrant libvirt qemu libguestfs virt-install edk2-ovmf"
|
|
|
|
|
|
+PACKAGES="${PACKAGES} pkgfile pkgconf bison gcc gcc-libs cmake ccache ncurses xmlstarlet jq git mercurial subversion bzr patchelf xdelta3 packer vagrant libvirt qemu qemu-base libguestfs virt-install edk2-ovmf"
|
|
|
|
|
|
# multimedia dependencies
|
|
# multimedia dependencies
|
|
-PACKAGES="${PACKAGES} mesa lib32-mesa dbus polkit giflib lib32-giflib mpg123 lib32-mpg123 v4l-utils lib32-v4l-utils lame libwebp libid3tag libvorbis vorbis-tools faac x264 x265 libpng12 lib32-libpng12 pulseaudio libpulse lib32-libpulse openal lib32-openal opencl-icd-loader lib32-opencl-icd-loader libva lib32-libva gst-plugins-base-libs lib32-gst-plugins-base-libs graphicsmagick imagemagick joyutils evtest libexif ffmpeg lxsession yt-dlp wine-staging winetricks fcitx5 fcitx5-mozc fcitx5-configtool fcitx5-gtk fcitx5-qt"
|
|
|
|
|
|
+PACKAGES="${PACKAGES} mesa lib32-mesa dbus polkit giflib lib32-giflib mpg123 lib32-mpg123 v4l-utils lib32-v4l-utils lame libwebp libid3tag libvorbis vorbis-tools faac x264 x265 libpng12 lib32-libpng12 pulseaudio libpulse lib32-libpulse openal lib32-openal opencl-icd-loader lib32-opencl-icd-loader libva lib32-libva libva-utils gst-plugins-base-libs lib32-gst-plugins-base-libs graphicsmagick imagemagick joyutils evtest libexif ffmpeg lxsession-gtk3 yt-dlp wine-staging winetricks fcitx5 fcitx5-mozc fcitx5-configtool fcitx5-gtk fcitx5-qt"
|
|
|
|
|
|
# GUI theme
|
|
# GUI theme
|
|
-PACKAGES="${PACKAGES} gnome-themes-extra gnome-icon-theme arc-gtk-theme"
|
|
|
|
|
|
+PACKAGES="${PACKAGES} gnome-themes-extra hicolor-icon-theme arc-gtk-theme gtk-engines gtk-engine-murrine"
|
|
|
|
|
|
-# Xorg dependencies
|
|
|
|
-PACKAGES="${PACKAGES} xorg-server xorg-server-devel xorg-xinit xorg-xinput xorg-xdpyinfo xorg-xprop xdotool xsel arandr "
|
|
|
|
|
|
+# GUI dependencies
|
|
|
|
+PACKAGES="${PACKAGES} gtk3 lib32-gtk3 pavucontrol pcmanfm-gtk3 ffmpegthumbnailer tumbler xdg-utils xdg-user-dirs"
|
|
|
|
|
|
-# openbox Environment
|
|
|
|
-PACKAGES="${PACKAGES} openbox gtk3 lib32-gtk3 feh hsetroot archlinux-xdg-menu picom pavucontrol pasystray xdg-utils xdg-user-dirs tint2 conky pcmanfm-gtk3 gmrun gtk-engines gtk-engine-murrine lxappearance ffmpegthumbnailer tumbler libva-mesa-driver lib32-libva-mesa-driver lib32-mesa-vdpau vulkan-tools vulkan-icd-loader lib32-vulkan-icd-loader "
|
|
|
|
|
|
+# vulkan packages
|
|
|
|
+PACKAGES="${PACKAGES} libva-mesa-driver lib32-libva-mesa-driver lib32-mesa-vdpau vulkan-tools vulkan-icd-loader lib32-vulkan-icd-loader"
|
|
|
|
+
|
|
|
|
+# Sway dependencies
|
|
|
|
+PACKAGES="${PACKAGES} sway swaybg alacritty wofi waybar xorg-xwayland xorg-xlsclients wev qt5-wayland glfw-x11 grim slurp xdg-desktop-portal-wlr libpipewire lib32-libpipewire wl-clipboard brightnessctl playerctl mako libappindicator-gtk3 lib32-libappindicator-gtk3"
|
|
|
|
|
|
# fonts
|
|
# fonts
|
|
PACKAGES="${PACKAGES} fontconfig ttf-bitstream-vera ttf-droid ttf-dejavu ttf-liberation ttf-hanazono ttf-font-awesome"
|
|
PACKAGES="${PACKAGES} fontconfig ttf-bitstream-vera ttf-droid ttf-dejavu ttf-liberation ttf-hanazono ttf-font-awesome"
|
|
|
|
|
|
# GUI software
|
|
# GUI software
|
|
-PACKAGES="${PACKAGES} rxvt-unicode urxvt-perls xarchiver gparted psensor hardinfo steam discord mpv openshot gimp krita firefox obs-studio dia mednafen mame ppsspp lutris sublime-text evince viewnior virt-manager virtualbox virtualbox-host-modules-arch"
|
|
|
|
|
|
+PACKAGES="${PACKAGES} xarchiver gparted psensor steam steam-native-runtime gamemode lib32-gamemode discord mpv mpv-mpris openshot gimp krita firefox obs-studio mednafen mame ppsspp lutris sublime-text evince viewnior virt-manager virtualbox virtualbox-host-modules-arch corectrl"
|
|
|
|
|
|
# conditional GPU packages
|
|
# conditional GPU packages
|
|
if [ $(lspci | grep -i "vga" | grep -ci "amd") -gt 0 ]; then
|
|
if [ $(lspci | grep -i "vga" | grep -ci "amd") -gt 0 ]; then
|
|
- PACKAGES="$PACKAGES xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon mesa-vdpau"
|
|
|
|
|
|
+ PACKAGES="${PACKAGES} xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon mesa-vdpau"
|
|
|
|
|
|
# update modules to load
|
|
# update modules to load
|
|
[ $(grep -c "amd" /etc/mkinitcpio.conf) -eq 0 ] && sed -i 's/MODULES=(\(.*\))/MODULES=(\1 amdgpu radeon)/' /etc/mkinitcpio.conf
|
|
[ $(grep -c "amd" /etc/mkinitcpio.conf) -eq 0 ] && sed -i 's/MODULES=(\(.*\))/MODULES=(\1 amdgpu radeon)/' /etc/mkinitcpio.conf
|
|
fi
|
|
fi
|
|
if [ $(lspci | grep -i "vga" | grep -ci "intel") -gt 0 ]; then
|
|
if [ $(lspci | grep -i "vga" | grep -ci "intel") -gt 0 ]; then
|
|
- PACKAGES="$PACKAGES xf86-video-intel vulkan-intel lib32-vulkan-intel mesa-vdpau"
|
|
|
|
|
|
+ PACKAGES="${PACKAGES} xf86-video-intel vulkan-intel lib32-vulkan-intel mesa-vdpau"
|
|
|
|
|
|
# update modules to load
|
|
# update modules to load
|
|
[ $(grep -c "amd" /etc/mkinitcpio.conf) -eq 0 ] && sed -i 's/MODULES=(\(.*\))/MODULES=(\1 i915)/' /etc/mkinitcpio.conf
|
|
[ $(grep -c "amd" /etc/mkinitcpio.conf) -eq 0 ] && sed -i 's/MODULES=(\(.*\))/MODULES=(\1 i915)/' /etc/mkinitcpio.conf
|
|
fi
|
|
fi
|
|
if [ $(lspci | grep -i "vga" | grep -ci "nvidia") -gt 0 ]; then
|
|
if [ $(lspci | grep -i "vga" | grep -ci "nvidia") -gt 0 ]; then
|
|
- PACKAGES="$PACKAGES nvidia-dkms libglvnd lib32-libglvnd opencl-nvidia lib32-opencl-nvidia xf86-video-nouveau nvidia-utils lib32-nvidia-utils mesa-vdpau nvidia-settings"
|
|
|
|
|
|
+ PACKAGES="${PACKAGES} nvidia-dkms libglvnd lib32-libglvnd opencl-nvidia lib32-opencl-nvidia xf86-video-nouveau nvidia-utils lib32-nvidia-utils mesa-vdpau nvidia-settings"
|
|
|
|
|
|
# update modules to load
|
|
# update modules to load
|
|
[ $(grep -c "nvidia" /etc/mkinitcpio.conf) -eq 0 ] && sed -i 's/MODULES=(\(.*\))/MODULES=(\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf
|
|
[ $(grep -c "nvidia" /etc/mkinitcpio.conf) -eq 0 ] && sed -i 's/MODULES=(\(.*\))/MODULES=(\1 nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf
|
|
|
|
|
|
# automatic mkinitcpio updates in pacman.d
|
|
# automatic mkinitcpio updates in pacman.d
|
|
|
|
+ mkdir -p /etc/pacman.d/hooks
|
|
echo -e "[Trigger]\nOperation=Install\nOperation=Upgrade\nOperation=Remove\nType=Package\nTarget=nvidia\n\n[Action]\nDepends=mkinitcpio\nWhen=PostTransaction\nExec=/usr/bin/mkinitcpio -P" > /etc/pacman.d/hooks/nvidia.hook
|
|
echo -e "[Trigger]\nOperation=Install\nOperation=Upgrade\nOperation=Remove\nType=Package\nTarget=nvidia\n\n[Action]\nDepends=mkinitcpio\nWhen=PostTransaction\nExec=/usr/bin/mkinitcpio -P" > /etc/pacman.d/hooks/nvidia.hook
|
|
fi
|
|
fi
|
|
|
|
|
|
@@ -128,7 +129,7 @@ pacman -Syu --noconfirm $PACKAGES
|
|
[ -d /srv/arch-desktop/install ] || git clone https://git.caseydelorme.com/cdelorme/arch-desktop /srv/arch-desktop
|
|
[ -d /srv/arch-desktop/install ] || git clone https://git.caseydelorme.com/cdelorme/arch-desktop /srv/arch-desktop
|
|
rsync -Pav /srv/arch-desktop/install/ /
|
|
rsync -Pav /srv/arch-desktop/install/ /
|
|
mkdir -p /etc/skel/.config/pulse
|
|
mkdir -p /etc/skel/.config/pulse
|
|
-mkdir -p /etc/skel/{desktop,downloads,public,public/templates,documents,music,pictures,videos,git}
|
|
|
|
|
|
+mkdir -p /etc/skel/{desktop,downloads,public,public/templates,documents,music,pictures,videos,code}
|
|
sed "/module-suspend-on-idle/d" /etc/pulse/default.pa > /etc/skel/.config/pulse/default.pa
|
|
sed "/module-suspend-on-idle/d" /etc/pulse/default.pa > /etc/skel/.config/pulse/default.pa
|
|
# @note: we may want to avoid disabling this on laptops
|
|
# @note: we may want to avoid disabling this on laptops
|
|
sed -i "/module-switch-on-port-available/d" /etc/skel/.config/pulse/default.pa
|
|
sed -i "/module-switch-on-port-available/d" /etc/skel/.config/pulse/default.pa
|
|
@@ -136,7 +137,7 @@ rsync -Pav /etc/skel/ "$(getent passwd root | cut -d: -f6)/"
|
|
sed -i "/ssh-add/d" "$(getent passwd root | cut -d: -f6)/.bashrc"
|
|
sed -i "/ssh-add/d" "$(getent passwd root | cut -d: -f6)/.bashrc"
|
|
|
|
|
|
# install protontricks
|
|
# install protontricks
|
|
-python3 -m pip install protontricks
|
|
|
|
|
|
+# python3 -m pip install protontricks
|
|
|
|
|
|
# enable ccache and optimize cores for AUR
|
|
# enable ccache and optimize cores for AUR
|
|
sed -i 's/!ccache/ccache/' /etc/makepkg.conf
|
|
sed -i 's/!ccache/ccache/' /etc/makepkg.conf
|
|
@@ -155,6 +156,10 @@ sudo -u $aur_username git clone https://aur.archlinux.org/xcursor-chameleon-skyb
|
|
sudo -u $aur_username git clone https://aur.archlinux.org/numix-icon-theme-git.git /home/${aur_username}/numix-icon-theme-git
|
|
sudo -u $aur_username git clone https://aur.archlinux.org/numix-icon-theme-git.git /home/${aur_username}/numix-icon-theme-git
|
|
(cd /home/${aur_username}/numix-icon-theme-git && sudo -u ${aur_username} makepkg -rcsi --noconfirm)
|
|
(cd /home/${aur_username}/numix-icon-theme-git && sudo -u ${aur_username} makepkg -rcsi --noconfirm)
|
|
|
|
|
|
|
|
+# cmst (for connman UI)
|
|
|
|
+sudo -u $aur_username git clone https://aur.archlinux.org/cmst.git /home/${aur_username}/cmst
|
|
|
|
+(cd /home/${aur_username}/cmst && sudo -u ${aur_username} makepkg -rcsi --noconfirm)
|
|
|
|
+
|
|
# cleanup aur user
|
|
# cleanup aur user
|
|
rm -rf /etc/sudoers.d/${aur_username}
|
|
rm -rf /etc/sudoers.d/${aur_username}
|
|
userdel -fr $aur_username
|
|
userdel -fr $aur_username
|
|
@@ -172,9 +177,6 @@ if ! which flashplayer &> /dev/null; then
|
|
tar -xf /tmp/flash.tar.gz -C /usr/local/bin flashplayer
|
|
tar -xf /tmp/flash.tar.gz -C /usr/local/bin flashplayer
|
|
fi
|
|
fi
|
|
|
|
|
|
-# install urxvt perl enhancement for font resize support
|
|
|
|
-[ ! -f /usr/lib/urxvt/perl/font ] && curl -Lfs "https://raw.githubusercontent.com/noah/urxvt-font/master/font" > /usr/lib/urxvt/perl/font
|
|
|
|
-
|
|
|
|
# create sudo group and add to sudoers
|
|
# create sudo group and add to sudoers
|
|
groupadd -fr sudo
|
|
groupadd -fr sudo
|
|
[ ! -f /etc/sudoers.d/sudo ] && echo '%sudo ALL=(ALL) ALL' > /etc/sudoers.d/sudo
|
|
[ ! -f /etc/sudoers.d/sudo ] && echo '%sudo ALL=(ALL) ALL' > /etc/sudoers.d/sudo
|
|
@@ -204,45 +206,41 @@ su - postgres -c "initdb --locale en_US.UTF-8 -D '/var/lib/postgres/data'"
|
|
echo "net.core.rmem_max = 4194304" > /etc/sysctl.d/transmission.conf
|
|
echo "net.core.rmem_max = 4194304" > /etc/sysctl.d/transmission.conf
|
|
echo "net.core.wmem_max = 1048576" >> /etc/sysctl.d/transmission.conf
|
|
echo "net.core.wmem_max = 1048576" >> /etc/sysctl.d/transmission.conf
|
|
|
|
|
|
-# check whether username and password are not empty
|
|
|
|
-if [[ -n "$username" && -n "$password" ]]; then
|
|
|
|
-
|
|
|
|
- # create user if not exists, else (re)-install dot-files
|
|
|
|
- if ! id $username &> /dev/null; then
|
|
|
|
- useradd -m -s /bin/bash $username
|
|
|
|
- echo "${username}:${password}" | chpasswd -c SHA256
|
|
|
|
- else
|
|
|
|
- [ $EUID -ne 0 ] && rsync -Pav /etc/skel/ "$(getent passwd $username | cut -d: -f6)/"
|
|
|
|
- fi
|
|
|
|
-
|
|
|
|
- # add user to standard groups
|
|
|
|
- usermod -aG users,sudo,adm,input,audio,video,disk,storage,lp,vboxusers $username
|
|
|
|
-
|
|
|
|
- # generate postgres user and user database
|
|
|
|
- systemctl start postgresql
|
|
|
|
- su postgres -c "cd && createuser -ds $username" 2> /dev/null && su $username -c "cd && createdb"
|
|
|
|
-
|
|
|
|
- # load xdg-user-dirs
|
|
|
|
- su $username -c "cd && xdg-user-dirs-update"
|
|
|
|
- update-desktop-database
|
|
|
|
-
|
|
|
|
- # generate default (passwordless) ed25519 ssh key if none exists
|
|
|
|
- su $username -c "cd; if [ ! -f ~/.ssh/id_ed25519 ]; then ssh-keygen -q -t ed25519 -N '' -f ~/.ssh/id_ed25519 && cd && chmod 600 ~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519.pub; fi"
|
|
|
|
-
|
|
|
|
- # install gvm loading from ~/.bash_profile, and the latest go version
|
|
|
|
- su $username -c "if [ ! -d ~/.gvm ]; then GVM_NO_UPDATE_PROFILE=1 bash < <(curl -Ls https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer 2> /dev/null); fi"
|
|
|
|
- su $username -c 'grep "gvm" ~/.bash_profile &> /dev/null || echo -e "\n# load gvm\n! which gvm &> /dev/null && . ~/.gvm/scripts/gvm" >> ~/.bash_profile'
|
|
|
|
- su $username -c ". ~/.gvm/scripts/gvm && gvm install go1.17.6 -B && gvm use go1.17.6 --default"
|
|
|
|
-
|
|
|
|
- # configure user-space transmission
|
|
|
|
- if [ ! -f "/etc/systemd/system/transmission.service.d/local.conf" ]; then
|
|
|
|
- su $username -c "cd && mkdir -p ~/transmission/{done,incomplete}"
|
|
|
|
- su $username -c 'cd && tmp=$(mktemp) && jq ".[\"download-dir\"] = \"${HOME}/transmission/done\"" $HOME/.config/transmission-daemon/settings.json | jq ".[\"incomplete-dir\"] = \"${HOME}/transmission/incomplete\"" | jq ".[\"watch-dir\"] = \"$(xdg-user-dir DOWNLOAD)\"" > $tmp && mv $tmp $HOME/.config/transmission-daemon/settings.json'
|
|
|
|
- fi
|
|
|
|
|
|
+# create user if not exists, else (re)-install dot-files
|
|
|
|
+if ! id $username &> /dev/null; then
|
|
|
|
+ useradd -m -s /bin/bash $username
|
|
|
|
+ echo "${username}:${password}" | chpasswd -c SHA256
|
|
|
|
+else
|
|
|
|
+ [ $EUID -ne 0 ] && rsync -Pav /etc/skel/ "$(getent passwd $username | cut -d: -f6)/"
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+# add user to standard groups
|
|
|
|
+usermod -aG users,sudo,adm,input,audio,video,disk,storage,lp,vboxusers $username
|
|
|
|
+
|
|
|
|
+# generate postgres user and user database
|
|
|
|
+systemctl start postgresql
|
|
|
|
+su postgres -c "cd && createuser -ds $username" 2> /dev/null && su $username -c "cd && createdb"
|
|
|
|
+
|
|
|
|
+# load xdg-user-dirs
|
|
|
|
+su $username -c "cd && xdg-user-dirs-update"
|
|
|
|
+update-desktop-database
|
|
|
|
+
|
|
|
|
+# generate default (passwordless) ed25519 ssh key if none exists
|
|
|
|
+su $username -c "cd; if [ ! -f ~/.ssh/id_ed25519 ]; then ssh-keygen -q -t ed25519 -N '' -f ~/.ssh/id_ed25519 && cd && chmod 600 ~/.ssh/id_ed25519 && chmod 600 ~/.ssh/id_ed25519.pub; fi"
|
|
|
|
+
|
|
|
|
+# install gvm loading from ~/.bashrc & ~/.bash_profile, and the latest go version
|
|
|
|
+su $username -c "if [ ! -d ~/.gvm ]; then GVM_NO_UPDATE_PROFILE=1 bash < <(curl -Ls https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer 2> /dev/null); fi"
|
|
|
|
+su $username -c 'grep "gvm" ~/.bash_profile &> /dev/null || echo -e "\n# load gvm\n[ -s $HOME/.gvm/scripts/gvm ] && . $HOME/.gvm/scripts/gvm" >> ~/.bash_profile'
|
|
|
|
+su $username -c ". ~/.gvm/scripts/gvm && gvm install go1.21.3 -B && gvm use go1.21.3 --default"
|
|
|
|
+
|
|
|
|
+# configure user-space transmission
|
|
|
|
+if [ ! -f "/etc/systemd/system/transmission.service.d/local.conf" ]; then
|
|
|
|
+ su $username -c "cd && mkdir -p ~/transmission/{done,incomplete}"
|
|
|
|
+ su $username -c 'cd && tmp=$(mktemp) && jq ".[\"download-dir\"] = \"${HOME}/transmission/done\"" $HOME/.config/transmission-daemon/settings.json | jq ".[\"incomplete-dir\"] = \"${HOME}/transmission/incomplete\"" | jq ".[\"watch-dir\"] = \"$(xdg-user-dir DOWNLOAD)\"" > $tmp && mv $tmp $HOME/.config/transmission-daemon/settings.json'
|
|
fi
|
|
fi
|
|
|
|
|
|
# symlink shceduled maintenance tasks
|
|
# symlink shceduled maintenance tasks
|
|
-ln -sf /usr/local/bin/system-updates /etc/cron.daily/system-updates
|
|
|
|
|
|
+#ln -sf /usr/local/bin/system-updates /etc/cron.daily/system-updates
|
|
ln -sf /usr/local/bin/disk-maintenance /etc/cron.weekly/disk-maintenance
|
|
ln -sf /usr/local/bin/disk-maintenance /etc/cron.weekly/disk-maintenance
|
|
|
|
|
|
# symlink override vi to vim
|
|
# symlink override vi to vim
|
|
@@ -260,6 +258,7 @@ systemctl enable dnsmasq
|
|
systemctl enable cronie
|
|
systemctl enable cronie
|
|
systemctl enable ntpd
|
|
systemctl enable ntpd
|
|
systemctl enable sshd
|
|
systemctl enable sshd
|
|
|
|
+systemctl enable connman
|
|
|
|
|
|
# attempt to enable dhcp on active network devices on reboot
|
|
# attempt to enable dhcp on active network devices on reboot
|
|
export active_network_device=$(ip addr | awk '/state UP/ {print $2}' | sed 's/.$//')
|
|
export active_network_device=$(ip addr | awk '/state UP/ {print $2}' | sed 's/.$//')
|
|
@@ -279,7 +278,7 @@ echo "linux vmlinuz-linux" >> /boot/loader/entries/arch.conf
|
|
echo "initrd /initramfs-linux.img" >> /boot/loader/entries/arch.conf
|
|
echo "initrd /initramfs-linux.img" >> /boot/loader/entries/arch.conf
|
|
export boot_options="options root=PARTUUID=$(blkid -s PARTUUID -o value $(mount | grep ' / '|cut -d' ' -f 1)) rw quiet loglevel=3"
|
|
export boot_options="options root=PARTUUID=$(blkid -s PARTUUID -o value $(mount | grep ' / '|cut -d' ' -f 1)) rw quiet loglevel=3"
|
|
[ "$enable_hibernation" = "y" ] && [ -n "$resume_uuid" ] && boot_options="${boot_options} resume=UUID=${resume_uuid}"
|
|
[ "$enable_hibernation" = "y" ] && [ -n "$resume_uuid" ] && boot_options="${boot_options} resume=UUID=${resume_uuid}"
|
|
-[[ $(lspci | grep -i " vga" | grep -ci " nvidia") -gt 0 && $(grep -c "nvidia" /boot/loader/entires/arch.conf) -eq 0 ]] && boot_options="${boot_options} nvidia-dkm.modeset=1"
|
|
|
|
|
|
+[[ $(lspci | grep -i " vga" | grep -ci " nvidia") -gt 0 && $(grep -c "nvidia" /boot/loader/entires/arch.conf) -eq 0 ]] && boot_options="${boot_options} nvidia-drm.modeset=1"
|
|
echo "$boot_options" >> /boot/loader/entries/arch.conf
|
|
echo "$boot_options" >> /boot/loader/entries/arch.conf
|
|
|
|
|
|
# set boot loader entry as default
|
|
# set boot loader entry as default
|