feat(installer): add structured logging to all modules and installers
Add modules/lib/logging.sh with log(), skip(), warn(), err() helpers. Source it in all 84 scripts (core, DEs, optional apps) and replace bare echo calls with structured log messages. Add log file capture to install.sh. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>main
parent
242a544909
commit
0c88a09a0f
|
|
@ -1,4 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -uo pipefail
|
||||
|
||||
LOG="$HOME/dotfiles-install.log"
|
||||
> "$LOG"
|
||||
printf "Dotfiles install: %s\n" "$(date)" >> "$LOG"
|
||||
exec > >(tee -a "$LOG") 2>&1
|
||||
|
||||
echo "Running Core installation Scripts"
|
||||
bash ~/Dotfiles/setup/modules/package-managers.sh
|
||||
|
|
@ -31,3 +37,4 @@ esac
|
|||
# bash ~/Dotfiles/setup/modules/optional-Modules/zfs.sh
|
||||
# bash ~/Dotfiles/setup/modules/optional-Modules/wprs.sh
|
||||
|
||||
printf "\nDone. Log: %s\n" "$LOG"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== COSMIC Desktop Installer ==="
|
||||
|
||||
echo "[+] Installing COSMIC..."
|
||||
log "Installing COSMIC desktop..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
cosmic \
|
||||
pipewire wireplumber pipewire-alsa pipewire-jack pipewire-pulse \
|
||||
|
|
@ -11,7 +10,7 @@ sudo pacman -S --noconfirm --needed \
|
|||
bluez bluez-utils \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
log "Enabling services..."
|
||||
# cosmic-greeter is COSMIC's own display manager; fall back to sddm if absent
|
||||
if pacman -Qi cosmic-greeter &>/dev/null; then
|
||||
sudo systemctl enable cosmic-greeter.service
|
||||
|
|
@ -22,4 +21,4 @@ fi
|
|||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== COSMIC installation complete. Reboot to start. ==="
|
||||
log "COSMIC installation complete. Reboot to start."
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== GNOME Installer ==="
|
||||
|
||||
echo "[+] Installing GNOME..."
|
||||
log "Installing GNOME desktop..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
gnome \
|
||||
gnome-tweaks \
|
||||
|
|
@ -12,8 +11,8 @@ sudo pacman -S --noconfirm --needed \
|
|||
networkmanager \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
log "Enabling services..."
|
||||
sudo systemctl enable gdm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
|
||||
echo "=== GNOME installation complete. Reboot to start. ==="
|
||||
log "GNOME installation complete. Reboot to start."
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== Hyprland Environment Installer (legacy — hyprlang config) ==="
|
||||
log "Starting Hyprland installer (legacy — hyprlang config)..."
|
||||
|
||||
# 1. Update system and install Flatpak
|
||||
echo "Updating system and installing Flatpak..."
|
||||
log "Updating system and installing Flatpak..."
|
||||
sudo pacman -Syu --noconfirm --needed flatpak
|
||||
|
||||
# 2. Install required packages
|
||||
echo "Installing required packages..."
|
||||
log "Installing required packages..."
|
||||
sudo pacman -Syu --noconfirm --needed \
|
||||
hyprland hyprcursor wl-clipboard hyprpaper hyprlock wofi kitty dunst \
|
||||
nwg-dock-hyprland nwg-drawer nwg-menu nwg-look \
|
||||
|
|
@ -28,14 +29,14 @@ sudo pacman -Syu --noconfirm --needed \
|
|||
hyprpolkitagent pavucontrol playerctl wf-recorder sound-theme-freedesktop
|
||||
|
||||
# 3. Enable essential services
|
||||
echo "Enabling essential services..."
|
||||
log "Enabling essential services..."
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl disable getty@tty1.service || true
|
||||
sudo systemctl enable ly@tty1.service
|
||||
sudo systemctl enable udisks2.service
|
||||
|
||||
# 4. Install AUR packages
|
||||
echo "Installing AUR packages..."
|
||||
log "Installing AUR packages..."
|
||||
rustup default stable
|
||||
yay -Syu --answerdiff None --answerclean All --noconfirm \
|
||||
hyprland-workspaces vicinae-bin bluetuith wvkbd iwmenu pinta \
|
||||
|
|
@ -43,7 +44,7 @@ yay -Syu --answerdiff None --answerclean All --noconfirm \
|
|||
wofi-calc bri chamel
|
||||
|
||||
# 5. EWW bar selection and compilation
|
||||
echo "Setting up EWW bar..."
|
||||
log "Setting up EWW bar..."
|
||||
rm -rf ~/.config/eww
|
||||
read -n1 -p "Install eww bar for PC, Notebook or Tablet [P/N/T]: " doit
|
||||
echo
|
||||
|
|
@ -51,10 +52,10 @@ case $doit in
|
|||
n|N) cp -rf ~/Dotfiles/desktopenvs/hyprland/eww/ ~/.config/ ;;
|
||||
p|P) cp -rf ~/Dotfiles/desktopenvs/hyprland/eww-nobattery/ ~/.config/eww ;;
|
||||
t|T) cp -rf ~/Dotfiles/desktopenvs/hyprland/eww-touch/ ~/.config/eww ;;
|
||||
*) echo "No valid choice — skipping EWW copy. Run manually later." ;;
|
||||
*) warn "No valid choice — skipping EWW copy. Run manually later." ;;
|
||||
esac
|
||||
|
||||
echo "Compiling EWW..."
|
||||
log "Compiling EWW..."
|
||||
mkdir -p ~/install-tmp
|
||||
cd ~/install-tmp
|
||||
git clone https://github.com/elkowar/eww
|
||||
|
|
@ -65,6 +66,7 @@ sudo cp target/release/eww /usr/bin/
|
|||
cd ~
|
||||
|
||||
# 6. Theme and icon setup
|
||||
log "Installing themes and icons..."
|
||||
sudo cp -r ~/Dotfiles/gtk-themes/cyberqueer /usr/share/themes
|
||||
sudo cp ~/Dotfiles/desktopenvs/hyprland/btop/themes/cyberqueer.theme /usr/share/btop/themes
|
||||
sudo cp -f ~/Dotfiles/etc-ly-config.ini /etc/ly/config.ini
|
||||
|
|
@ -72,12 +74,14 @@ sudo ln -sf /usr/bin/kitty /usr/bin/xdg-terminal-exec
|
|||
sudo ln -sf /usr/bin/ksshaskpass /usr/lib/ssh/ssh-askpass
|
||||
|
||||
# 7. Cursor setup
|
||||
log "Installing cursor theme..."
|
||||
mkdir -p ~/.icons
|
||||
wget -O ~/install-tmp/Nordzy-cursors-lefthand.tar.gz \
|
||||
https://github.com/guillaumeboehm/Nordzy-cursors/releases/download/v2.3.0/Nordzy-cursors-lefthand.tar.gz
|
||||
tar -zxf ~/install-tmp/Nordzy-cursors-lefthand.tar.gz -C ~/.icons/
|
||||
|
||||
# 8. Enable Bluetooth and wireless services
|
||||
log "Enabling Bluetooth and wireless services..."
|
||||
sudo systemctl enable bluez
|
||||
sudo systemctl enable bluetooth.service
|
||||
sudo systemctl enable iwd.service
|
||||
|
|
@ -88,7 +92,7 @@ sudo systemctl enable iwd.service
|
|||
# hyprpm add https://github.com/hyprwm/hyprland-plugins
|
||||
|
||||
# 10. Copy configs
|
||||
echo "Copying configs..."
|
||||
log "Copying configs..."
|
||||
CONFIGS=(kitty mimeapps.list vicinae walker ulauncher hypr xfce4 wofi dunst alacritty nwg-dock-hyprland nwg-drawer nwg-panel scripts btop gtk-3.0)
|
||||
for cfg in "${CONFIGS[@]}"; do
|
||||
rm -rf ~/.config/"$cfg"
|
||||
|
|
@ -99,16 +103,18 @@ cp ~/Dotfiles/desktopenvs/hyprland/hypr-usr/* ~/.config/
|
|||
cp ~/Dotfiles/colors.conf ~/.config/colors.conf
|
||||
|
||||
# 11. Wallpaper and resources
|
||||
log "Copying wallpaper and resources..."
|
||||
mkdir -p ~/Pictures
|
||||
cp ~/Dotfiles/resources/fflogo.svg ~/Pictures/fflogo.svg
|
||||
wget "https://cloud.abdelbaki.eu/apps/theming/image/background?v=15" -O ~/Pictures/background.jpg
|
||||
|
||||
# 12. Python venv for scripts
|
||||
log "Setting up Python venv for scripts..."
|
||||
python -m venv ~/.config/python-script
|
||||
~/.config/python-script/bin/pip install speedtest-cli requests pint simpleeval parsedatetime
|
||||
|
||||
# 13. Udiskie icon fix
|
||||
echo "Applying Udiskie icon fix..."
|
||||
log "Applying Udiskie icon fix..."
|
||||
PAPIRUS_DIR="/usr/share/icons/Papirus-Dark/status"
|
||||
HICOLOR_DIR="/usr/share/icons/hicolor/scalable/status"
|
||||
if [ -d "$PAPIRUS_DIR" ]; then
|
||||
|
|
@ -116,14 +122,16 @@ if [ -d "$PAPIRUS_DIR" ]; then
|
|||
sudo ln -sf "$PAPIRUS_DIR/checkbox-unchecked.svg" "$HICOLOR_DIR/udiskie-checkbox-unchecked.svg"
|
||||
sudo gtk-update-icon-cache -f -t /usr/share/icons/hicolor
|
||||
else
|
||||
echo "Papirus-Dark not found — skipping udiskie icon fix."
|
||||
warn "Papirus-Dark not found — skipping udiskie icon fix."
|
||||
fi
|
||||
|
||||
# 14. Enable udiskie
|
||||
log "Enabling udiskie service..."
|
||||
sudo systemctl enable udiskie.service
|
||||
sudo systemctl start udiskie.service
|
||||
|
||||
# 15. Install config updater and theme script
|
||||
log "Installing config updater and theme script..."
|
||||
mkdir -p ~/.config/config-updater
|
||||
ln -sf ~/Dotfiles/desktopenvs/hyprland/config-updater/updater.conf ~/.config/config-updater/updater.conf
|
||||
ln -sf ~/Dotfiles/desktopenvs/hyprland/config-updater/update-configs.sh ~/update-configs.sh
|
||||
|
|
@ -135,4 +143,4 @@ chmod +x ~/apply-theme.sh
|
|||
# | grep -Po '"browser_download_url": "\K[^"]+' | grep WallRizz)" | tar -xz \
|
||||
# && sudo mv WallRizz /usr/bin/
|
||||
|
||||
echo "=== Hyprland installation complete. Reboot to start. ==="
|
||||
log "Hyprland installation complete. Reboot to start."
|
||||
|
|
|
|||
|
|
@ -1,14 +1,15 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== HyprLua Environment Installer (Lua-based config) ==="
|
||||
log "Starting HyprLua installer (Lua-based config)..."
|
||||
|
||||
# 1. Update system and install Flatpak
|
||||
echo "Updating system and installing Flatpak..."
|
||||
log "Updating system and installing Flatpak..."
|
||||
sudo pacman -Syu --noconfirm --needed flatpak
|
||||
|
||||
# 2. Install required packages
|
||||
echo "Installing required packages..."
|
||||
log "Installing required packages..."
|
||||
sudo pacman -Syu --noconfirm --needed \
|
||||
hyprland hyprcursor wl-clipboard hyprpaper hyprlock wofi kitty dunst \
|
||||
nwg-dock-hyprland nwg-drawer nwg-menu nwg-look \
|
||||
|
|
@ -28,14 +29,14 @@ sudo pacman -Syu --noconfirm --needed \
|
|||
hyprpolkitagent pavucontrol playerctl wf-recorder sound-theme-freedesktop
|
||||
|
||||
# 3. Enable essential services
|
||||
echo "Enabling essential services..."
|
||||
log "Enabling essential services..."
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl disable getty@tty1.service || true
|
||||
sudo systemctl enable ly@tty1.service
|
||||
sudo systemctl enable udisks2.service
|
||||
|
||||
# 4. Install AUR packages
|
||||
echo "Installing AUR packages..."
|
||||
log "Installing AUR packages..."
|
||||
rustup default stable
|
||||
yay -Syu --answerdiff None --answerclean All --noconfirm \
|
||||
hyprland-workspaces vicinae-bin bluetuith wvkbd iwmenu pinta \
|
||||
|
|
@ -43,7 +44,7 @@ yay -Syu --answerdiff None --answerclean All --noconfirm \
|
|||
wofi-calc bri chamel
|
||||
|
||||
# 5. EWW bar selection and compilation
|
||||
echo "Setting up EWW bar..."
|
||||
log "Setting up EWW bar..."
|
||||
rm -rf ~/.config/eww
|
||||
read -n1 -p "Install eww bar for PC, Notebook or Tablet [P/N/T]: " doit
|
||||
echo
|
||||
|
|
@ -51,10 +52,10 @@ case $doit in
|
|||
n|N) cp -rf ~/Dotfiles/desktopenvs/hyprlua/eww/ ~/.config/ ;;
|
||||
p|P) cp -rf ~/Dotfiles/desktopenvs/hyprlua/eww-nobattery/ ~/.config/eww ;;
|
||||
t|T) cp -rf ~/Dotfiles/desktopenvs/hyprlua/eww-touch/ ~/.config/eww ;;
|
||||
*) echo "No valid choice — skipping EWW copy. Run manually later." ;;
|
||||
*) warn "No valid choice — skipping EWW copy. Run manually later." ;;
|
||||
esac
|
||||
|
||||
echo "Compiling EWW..."
|
||||
log "Compiling EWW..."
|
||||
mkdir -p ~/install-tmp
|
||||
cd ~/install-tmp
|
||||
git clone https://github.com/elkowar/eww
|
||||
|
|
@ -65,6 +66,7 @@ sudo cp target/release/eww /usr/bin/
|
|||
cd ~
|
||||
|
||||
# 6. Theme and icon setup
|
||||
log "Installing themes and icons..."
|
||||
sudo cp -r ~/Dotfiles/gtk-themes/cyberqueer /usr/share/themes
|
||||
sudo cp ~/Dotfiles/desktopenvs/hyprlua/btop/themes/cyberqueer.theme /usr/share/btop/themes
|
||||
sudo cp -f ~/Dotfiles/etc-ly-config.ini /etc/ly/config.ini
|
||||
|
|
@ -74,12 +76,14 @@ sudo ln -sf /usr/bin/ksshaskpass /usr/lib/ssh/ssh-askpass
|
|||
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
|
||||
|
||||
# 7. Cursor setup
|
||||
log "Installing cursor theme..."
|
||||
mkdir -p ~/.icons
|
||||
wget -O ~/install-tmp/Nordzy-cursors-lefthand.tar.gz \
|
||||
https://github.com/guillaumeboehm/Nordzy-cursors/releases/download/v2.3.0/Nordzy-cursors-lefthand.tar.gz
|
||||
tar -zxf ~/install-tmp/Nordzy-cursors-lefthand.tar.gz -C ~/.icons/
|
||||
|
||||
# 8. Enable Bluetooth and wireless services
|
||||
log "Enabling Bluetooth and wireless services..."
|
||||
sudo systemctl enable bluez
|
||||
sudo systemctl enable bluetooth.service
|
||||
sudo systemctl enable iwd.service
|
||||
|
|
@ -90,7 +94,7 @@ sudo systemctl enable iwd.service
|
|||
# hyprpm add https://github.com/hyprwm/hyprland-plugins
|
||||
|
||||
# 10. Copy configs
|
||||
echo "Copying configs..."
|
||||
log "Copying configs..."
|
||||
CONFIGS=(kitty mimeapps.list vicinae walker ulauncher hypr xfce4 wofi dunst alacritty nwg-dock-hyprland nwg-drawer nwg-panel scripts btop gtk-3.0)
|
||||
for cfg in "${CONFIGS[@]}"; do
|
||||
rm -rf ~/.config/"$cfg"
|
||||
|
|
@ -105,16 +109,18 @@ cp ~/Dotfiles/desktopenvs/hyprlua/hypr-usr/wallpaper.conf ~/.config/
|
|||
cp ~/Dotfiles/colors.conf ~/.config/colors.conf
|
||||
|
||||
# 11. Wallpaper and resources
|
||||
log "Copying wallpaper and resources..."
|
||||
mkdir -p ~/Pictures
|
||||
cp ~/Dotfiles/resources/fflogo.svg ~/Pictures/fflogo.svg
|
||||
wget "https://cloud.abdelbaki.eu/apps/theming/image/background?v=15" -O ~/Pictures/background.jpg
|
||||
|
||||
# 12. Python venv for scripts
|
||||
log "Setting up Python venv for scripts..."
|
||||
python -m venv ~/.config/python-script
|
||||
~/.config/python-script/bin/pip install speedtest-cli requests pint simpleeval parsedatetime
|
||||
|
||||
# 13. Udiskie icon fix
|
||||
echo "Applying Udiskie icon fix..."
|
||||
log "Applying Udiskie icon fix..."
|
||||
PAPIRUS_DIR="/usr/share/icons/Papirus-Dark/status"
|
||||
HICOLOR_DIR="/usr/share/icons/hicolor/scalable/status"
|
||||
if [ -d "$PAPIRUS_DIR" ]; then
|
||||
|
|
@ -122,18 +128,20 @@ if [ -d "$PAPIRUS_DIR" ]; then
|
|||
sudo ln -sf "$PAPIRUS_DIR/checkbox-unchecked.svg" "$HICOLOR_DIR/udiskie-checkbox-unchecked.svg"
|
||||
sudo gtk-update-icon-cache -f -t /usr/share/icons/hicolor
|
||||
else
|
||||
echo "Papirus-Dark not found — skipping udiskie icon fix."
|
||||
warn "Papirus-Dark not found — skipping udiskie icon fix."
|
||||
fi
|
||||
|
||||
# 14. Enable udiskie
|
||||
log "Enabling udiskie service..."
|
||||
sudo systemctl enable udiskie.service
|
||||
sudo systemctl start udiskie.service
|
||||
|
||||
# 15. Install config updater and theme script
|
||||
log "Installing config updater and theme script..."
|
||||
mkdir -p ~/.config/config-updater
|
||||
ln -sf ~/Dotfiles/desktopenvs/hyprlua/config-updater/updater.conf ~/.config/config-updater/updater.conf
|
||||
ln -sf ~/Dotfiles/desktopenvs/hyprlua/config-updater/update-configs.sh ~/update-configs.sh
|
||||
cp ~/Dotfiles/apply-theme.sh ~/apply-theme.sh
|
||||
chmod +x ~/apply-theme.sh
|
||||
|
||||
echo "=== HyprLua installation complete. Reboot to start. ==="
|
||||
log "HyprLua installation complete. Reboot to start."
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== KDE Plasma Installer ==="
|
||||
|
||||
echo "[+] Installing KDE Plasma..."
|
||||
log "Installing KDE Plasma desktop..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
plasma-meta \
|
||||
sddm sddm-kcm \
|
||||
|
|
@ -16,9 +15,9 @@ sudo pacman -S --noconfirm --needed \
|
|||
power-profiles-daemon \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
log "Enabling services..."
|
||||
sudo systemctl enable sddm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== KDE Plasma installation complete. Reboot to start. ==="
|
||||
log "KDE Plasma installation complete. Reboot to start."
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== LXQt Installer ==="
|
||||
|
||||
echo "[+] Installing LXQt..."
|
||||
log "Installing LXQt desktop..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
lxqt \
|
||||
openbox obconf-qt \
|
||||
|
|
@ -17,9 +16,9 @@ sudo pacman -S --noconfirm --needed \
|
|||
gvfs gvfs-smb gvfs-mtp \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
log "Enabling services..."
|
||||
sudo systemctl enable sddm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== LXQt installation complete. Reboot to start. ==="
|
||||
log "LXQt installation complete. Reboot to start."
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== Sway Environment Installer ==="
|
||||
log "Starting Sway installer..."
|
||||
|
||||
# 1. Install packages
|
||||
echo "Installing required packages..."
|
||||
log "Installing required packages..."
|
||||
sudo pacman -Syu --noconfirm --needed \
|
||||
brightnessctl btop dmenu foot glfw grim \
|
||||
greetd-tuigreet gst-plugin-pipewire imagemagick iwd libpulse \
|
||||
|
|
@ -18,15 +19,16 @@ sudo pacman -Syu --noconfirm --needed \
|
|||
zram-generator
|
||||
|
||||
# 2. Enable services
|
||||
echo "Enabling services..."
|
||||
log "Enabling services..."
|
||||
sudo systemctl enable NetworkManager.service
|
||||
|
||||
# 3. greetd config
|
||||
log "Deploying greetd config..."
|
||||
sudo cp -f ~/Dotfiles/desktopenvs/hyprland/greetd-tuigreet/config.toml /etc/greetd/config.toml
|
||||
sudo systemctl enable greetd.service
|
||||
|
||||
# 4. Copy DE configs
|
||||
echo "Copying configs..."
|
||||
log "Copying Sway configs..."
|
||||
CONFIGS=(sway alacritty)
|
||||
for cfg in "${CONFIGS[@]}"; do
|
||||
rm -rf ~/.config/"$cfg"
|
||||
|
|
@ -37,4 +39,4 @@ cp ~/Dotfiles/colors.conf ~/.config/colors.conf
|
|||
cp ~/Dotfiles/apply-theme.sh ~/apply-theme.sh
|
||||
chmod +x ~/apply-theme.sh
|
||||
|
||||
echo "=== Sway installation complete. Run shell-setup.sh if you haven't already, then reboot. ==="
|
||||
log "Sway installation complete. Run shell-setup.sh if you haven't already, then reboot."
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "=== XFCE Installer ==="
|
||||
|
||||
echo "[+] Installing XFCE..."
|
||||
log "Installing XFCE desktop..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
xfce4 xfce4-goodies \
|
||||
lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings \
|
||||
|
|
@ -15,9 +14,9 @@ sudo pacman -S --noconfirm --needed \
|
|||
gvfs gvfs-smb gvfs-mtp \
|
||||
flatpak
|
||||
|
||||
echo "[+] Enabling services..."
|
||||
log "Enabling services..."
|
||||
sudo systemctl enable lightdm.service
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl enable bluetooth.service
|
||||
|
||||
echo "=== XFCE installation complete. Reboot to start. ==="
|
||||
log "XFCE installation complete. Reboot to start."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/lib/logging.sh"
|
||||
|
||||
log "Installing core packages..."
|
||||
sudo pacman -Syu --noconfirm --needed \
|
||||
7zip arch-install-scripts atftp atool \
|
||||
base base-devel bc bind bluez btrfs-progs btop \
|
||||
|
|
@ -18,4 +20,7 @@ sudo pacman -Syu --noconfirm --needed \
|
|||
vim vnstat wget whois wireplumber wireless_tools wpa_supplicant wprs \
|
||||
yazi zip unzip zram-generator
|
||||
|
||||
log "Installing AUR packages..."
|
||||
yay -S --aur --noconfirm --needed pamtester
|
||||
|
||||
log "Core packages installed."
|
||||
|
|
|
|||
|
|
@ -1,16 +1,21 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/lib/logging.sh"
|
||||
|
||||
#networkmanager setup
|
||||
echo "enabling NetworkManager"
|
||||
log "Enabling NetworkManager..."
|
||||
sudo systemctl enable NetworkManager.service
|
||||
|
||||
#cron setup
|
||||
echo "enabling cronie"
|
||||
log "Enabling cronie..."
|
||||
sudo systemctl enable cronie.service
|
||||
|
||||
#greetd setup
|
||||
echo "Installing greetd"
|
||||
log "Deploying greetd config..."
|
||||
sudo cp -f ~/Dotfiles/desktopenvs/hyprland/greetd-tuigreet/config.toml /etc/greetd/config.toml
|
||||
sudo systemctl enable greetd.service
|
||||
|
||||
log "Enabling fail2ban..."
|
||||
sudo systemctl enable fail2ban.service
|
||||
|
||||
log "Enabling udisks2..."
|
||||
sudo systemctl enable udisks2.service
|
||||
|
||||
log "Core services enabled."
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
# Shared logging helpers — source this in every module
|
||||
|
||||
GREEN="\e[32m"
|
||||
YELLOW="\e[33m"
|
||||
RED="\e[31m"
|
||||
RESET="\e[0m"
|
||||
|
||||
log() { printf "${GREEN}[+] %s${RESET}\n" "$*"; }
|
||||
skip() { printf "${YELLOW}[~] %s${RESET}\n" "$*"; }
|
||||
warn() { printf "${YELLOW}[!] %s${RESET}\n" "$*" >&2; }
|
||||
err() { printf "${RED}[✖] %s${RESET}\n" "$*" >&2; }
|
||||
|
|
@ -1,24 +1,33 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing anti-malware tools (clamav, clamtk, rkhunter)..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
clamav clamtk rkhunter
|
||||
|
||||
log "Installing chkrootkit (AUR)..."
|
||||
yay -S --aur --noconfirm --needed chkrootkit
|
||||
|
||||
# initialise ClamAV database (first run)
|
||||
if [[ ! -f /var/lib/clamav/main.cvd ]] && [[ ! -f /var/lib/clamav/main.cld ]]; then
|
||||
echo "Running initial freshclam..."
|
||||
log "Running initial freshclam (virus database update)..."
|
||||
sudo freshclam
|
||||
else
|
||||
skip "ClamAV database already present."
|
||||
fi
|
||||
|
||||
# cron job: update virus definitions twice a day
|
||||
CRON_FILE=/etc/cron.d/freshclam
|
||||
if [[ ! -f "$CRON_FILE" ]]; then
|
||||
echo "Installing freshclam cron job..."
|
||||
log "Installing freshclam cron job (twice daily)..."
|
||||
sudo tee "$CRON_FILE" > /dev/null <<'EOF'
|
||||
# Update ClamAV virus definitions twice a day
|
||||
0 */12 * * * root /usr/bin/freshclam --quiet 2>/dev/null
|
||||
EOF
|
||||
sudo chmod 644 "$CRON_FILE"
|
||||
else
|
||||
skip "freshclam cron job already configured."
|
||||
fi
|
||||
|
||||
log "Anti-malware tools installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Ardour (professional DAW)..."
|
||||
sudo pacman -S --noconfirm --needed ardour
|
||||
log "Ardour installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Audacity (audio editor)..."
|
||||
sudo pacman -S --noconfirm --needed audacity
|
||||
log "Audacity installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Blender and POV-Ray..."
|
||||
sudo pacman -S --noconfirm --needed blender povray
|
||||
log "Blender and POV-Ray installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing btrfs-progs..."
|
||||
sudo pacman -S --noconfirm --needed btrfs-progs
|
||||
|
||||
log "Installing butter (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm butter
|
||||
log "butter installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Cecilia (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm cecilia
|
||||
log "Cecilia installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Chromium..."
|
||||
sudo pacman -S --noconfirm --needed chromium
|
||||
log "Chromium installed."
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Claude Code via npm..."
|
||||
if ! command -v npm &>/dev/null; then
|
||||
log "Sourcing nvm to get npm..."
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
|
||||
fi
|
||||
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
log "Claude Code installed."
|
||||
|
|
|
|||
|
|
@ -1,17 +1,19 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# Core + official-repo plugins
|
||||
log "Installing Cockpit (core + official plugins)..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
cockpit \
|
||||
cockpit-pcp \
|
||||
pcp
|
||||
|
||||
# AUR plugins: machines (VMs), podman containers, file navigator
|
||||
log "Installing Cockpit AUR plugins (machines, podman, navigator)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm \
|
||||
cockpit-machines \
|
||||
cockpit-podman \
|
||||
cockpit-navigator
|
||||
|
||||
log "Enabling Cockpit socket..."
|
||||
sudo systemctl enable cockpit.socket
|
||||
echo "Cockpit enabled. Web UI available at https://localhost:9090"
|
||||
log "Cockpit enabled. Web UI available at https://localhost:9090"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Code::Blocks..."
|
||||
sudo pacman -S --noconfirm --needed codeblocks
|
||||
log "Code::Blocks installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing croc (file transfer)..."
|
||||
sudo pacman -S --noconfirm --needed croc
|
||||
log "croc installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing pgcli..."
|
||||
sudo pacman -S --noconfirm --needed pgcli
|
||||
|
||||
log "Installing mycli (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm mycli
|
||||
log "DB clients installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing ddrescue..."
|
||||
sudo pacman -S --noconfirm --needed ddrescue
|
||||
|
||||
log "Installing f3 (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm f3
|
||||
log "Disk recovery tools installed."
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Docker and Docker Compose..."
|
||||
sudo pacman -S --noconfirm --needed docker docker-compose
|
||||
|
||||
log "Enabling Docker service..."
|
||||
sudo systemctl enable docker.service
|
||||
|
||||
log "Adding $USER to docker group..."
|
||||
sudo usermod -aG docker "$USER"
|
||||
echo "Docker installed. Log out and back in for group membership to take effect."
|
||||
|
||||
log "Docker installed. Log out and back in for group membership to take effect."
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# chocolate-doom: faithful vanilla Doom port; freedoom: free game data (playable without IWADs)
|
||||
log "Installing Chocolate Doom and Freedoom data..."
|
||||
sudo pacman -S --noconfirm --needed chocolate-doom freedoom
|
||||
log "Doom installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing FFmpeg extras (thumbnailer + GStreamer codecs)..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
ffmpeg ffmpegthumbnailer \
|
||||
gst-libav gst-plugins-good gst-plugins-bad gst-plugins-ugly
|
||||
log "FFmpeg extras installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Firefox..."
|
||||
sudo pacman -S --noconfirm --needed firefox
|
||||
log "Firefox installed."
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Starting FreeIPA client installer..."
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
FREEIPA_DIR="$SCRIPT_DIR/../../FreeipaAnsible"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/bash
|
||||
# freeipa-image-builder.sh — build a FreeIPA server image for multiple targets
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
log "Starting FreeIPA image builder..."
|
||||
#
|
||||
# Targets (TUI chooser):
|
||||
# docker Build Docker/Podman image and optionally push to a registry
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
# and optionally auto-enroll-ansible.sh) ready for distribution.
|
||||
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Starting FreeIPA server installer..."
|
||||
|
||||
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'; CYAN='\033[0;36m'; MAGENTA='\033[0;35m'; NC='\033[0m'
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Geany and plugins..."
|
||||
sudo pacman -S --noconfirm --needed geany geany-plugins
|
||||
log "Geany installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing GIMP..."
|
||||
sudo pacman -S --noconfirm --needed gimp
|
||||
log "GIMP installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Gnuplot..."
|
||||
sudo pacman -S --noconfirm --needed gnuplot
|
||||
log "Gnuplot installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Himalaya (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm himalaya-bin
|
||||
log "Himalaya installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing ImageMagick..."
|
||||
sudo pacman -S --noconfirm --needed imagemagick
|
||||
log "ImageMagick installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Inkscape..."
|
||||
sudo pacman -S --noconfirm --needed inkscape
|
||||
log "Inkscape installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Kubernetes tools (kubectl, podman-desktop)..."
|
||||
sudo pacman -S --noconfirm --needed kubectl podman-desktop
|
||||
log "Kubernetes tools installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Kate..."
|
||||
sudo pacman -S --noconfirm --needed kate
|
||||
log "Kate installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Kdenlive..."
|
||||
sudo pacman -S --noconfirm --needed kdenlive
|
||||
log "Kdenlive installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Krita..."
|
||||
sudo pacman -S --noconfirm --needed krita
|
||||
log "Krita installed."
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# lamco-rdp-server — native Wayland RDP server (Rust, H.264, VA-API)
|
||||
# Builds from AUR; requires cargo, clang, cmake, nasm (auto-pulled as makedeps)
|
||||
log "Installing lamco-rdp-server (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm lamco-rdp-server
|
||||
|
||||
# Runs as a systemd user service (session-scoped, D-Bus activated)
|
||||
log "Enabling lamco-rdp-server as user service..."
|
||||
systemctl --user enable lamco-rdp-server.service
|
||||
|
||||
echo "lamco-rdp-server enabled as a user service."
|
||||
echo "Start it with: systemctl --user start lamco-rdp-server"
|
||||
echo "Or launch the GUI tray: lamco-rdp-server-gui"
|
||||
echo ""
|
||||
echo "Optional: install a matching xdg-desktop-portal for your compositor:"
|
||||
echo " xdg-desktop-portal-hyprland / -wlr / -gnome / -kde"
|
||||
log "lamco-rdp-server enabled as a user service."
|
||||
log "Start it with: systemctl --user start lamco-rdp-server"
|
||||
log "Or launch the GUI tray: lamco-rdp-server-gui"
|
||||
warn "Install a matching xdg-desktop-portal for your compositor: xdg-desktop-portal-hyprland / -wlr / -gnome / -kde"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing LibreWolf (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm librewolf-bin
|
||||
log "LibreWolf installed."
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# Provides standalone llama-cli, llama-server, and related tools.
|
||||
# Ollama bundles its own copy of llama.cpp internally — the two coexist
|
||||
# at the package level but share GPU resources at runtime.
|
||||
log "Installing llama.cpp (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm llama-cpp
|
||||
log "llama.cpp installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing LMMS..."
|
||||
sudo pacman -S --noconfirm --needed lmms
|
||||
log "LMMS installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing LocalSend (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm localsend
|
||||
log "LocalSend installed."
|
||||
|
|
|
|||
|
|
@ -1,8 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing LocalTunnel..."
|
||||
if command -v npm &>/dev/null; then
|
||||
npm install -g localtunnel
|
||||
else
|
||||
yay -S --answerdiff None --answerclean All --noconfirm localtunnel
|
||||
fi
|
||||
log "LocalTunnel installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Min browser (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm min
|
||||
log "Min browser installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Mixxx (DJ software)..."
|
||||
sudo pacman -S --noconfirm --needed mixxx
|
||||
log "Mixxx installed."
|
||||
|
|
|
|||
|
|
@ -1,10 +1,17 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing MariaDB..."
|
||||
sudo pacman -S --noconfirm --needed mariadb
|
||||
|
||||
if [[ ! -d /var/lib/mysql/mysql ]]; then
|
||||
log "Initialising MariaDB data directory..."
|
||||
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
|
||||
else
|
||||
skip "MariaDB data directory already initialised."
|
||||
fi
|
||||
|
||||
log "Enabling MariaDB service..."
|
||||
sudo systemctl enable --now mariadb.service
|
||||
log "MariaDB installed and running."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing networking CLI tools..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
httpie ipcalc mitmproxy mtr net-tools nethogs \
|
||||
nmap tcpdump traceroute
|
||||
log "Networking CLI tools installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Nyxt browser (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm nyxt
|
||||
log "Nyxt installed."
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# GPU variants: install ollama-cuda (AUR) for NVIDIA or ollama-rocm (AUR) for AMD.
|
||||
# The base package runs on CPU and auto-uses GPU libs if present at runtime.
|
||||
log "Installing Ollama..."
|
||||
sudo pacman -S --noconfirm --needed ollama
|
||||
|
||||
log "Enabling Ollama service..."
|
||||
sudo systemctl enable --now ollama.service
|
||||
|
||||
echo "Ollama running on http://localhost:11434"
|
||||
echo "Pull models with: ollama pull <model>"
|
||||
echo "Note: if llama.cpp is also installed, avoid running both GPU-bound at once."
|
||||
log "Ollama running on http://localhost:11434"
|
||||
log "Pull models with: ollama pull <model>"
|
||||
warn "If llama.cpp is also installed, avoid running both GPU-bound at once."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing OnlyOffice (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm onlyoffice-bin
|
||||
log "OnlyOffice installed."
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# Open WebUI — browser UI for Ollama and other LLM backends.
|
||||
# Ollama module should be installed first for full functionality.
|
||||
log "Installing Open WebUI (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm open-webui
|
||||
|
||||
log "Enabling Open WebUI service..."
|
||||
sudo systemctl enable --now open-webui.service
|
||||
|
||||
echo "Open WebUI running at http://localhost:8080"
|
||||
log "Open WebUI running at http://localhost:8080"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing OpenArena..."
|
||||
sudo pacman -S --noconfirm --needed openarena
|
||||
log "OpenArena installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing OpenShot..."
|
||||
sudo pacman -S --noconfirm --needed openshot
|
||||
log "OpenShot installed."
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Podman (rootless containers, buildah, skopeo)..."
|
||||
sudo pacman -S --noconfirm --needed podman podman-compose buildah skopeo
|
||||
# Enable lingering so rootless containers survive logout
|
||||
|
||||
log "Enabling user lingering so rootless containers survive logout..."
|
||||
loginctl enable-linger "$USER"
|
||||
echo "Podman installed (rootless, no daemon). User lingering enabled."
|
||||
log "Podman installed (rootless, no daemon). User lingering enabled."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing PrismLauncher (Flatpak)..."
|
||||
flatpak install -y flathub org.prismlauncher.PrismLauncher
|
||||
log "PrismLauncher installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing taskwarrior..."
|
||||
sudo pacman -S --noconfirm --needed task
|
||||
|
||||
log "Installing watson and jrnl (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm watson python-jrnl
|
||||
log "Productivity tools installed."
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# QEMU/KVM + libvirt stack + virt-manager GUI
|
||||
log "Installing QEMU/KVM + libvirt stack + virt-manager..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
qemu-full \
|
||||
libvirt \
|
||||
|
|
@ -13,10 +14,12 @@ sudo pacman -S --noconfirm --needed \
|
|||
swtpm \
|
||||
vde2
|
||||
|
||||
log "Enabling libvirtd service..."
|
||||
sudo systemctl enable --now libvirtd.service
|
||||
|
||||
# Enable the default NAT network at libvirt startup
|
||||
log "Configuring default NAT network for autostart..."
|
||||
sudo virsh net-autostart default 2>/dev/null || true
|
||||
|
||||
log "Adding $USER to libvirt and kvm groups..."
|
||||
sudo usermod -aG libvirt,kvm "$USER"
|
||||
echo "QEMU/KVM installed. Log out and back in for group membership to take effect."
|
||||
log "QEMU/KVM installed. Log out and back in for group membership to take effect."
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
# Remmina + protocol plugins
|
||||
log "Installing Remmina RDP client with FreeRDP and VNC support..."
|
||||
sudo pacman -S --noconfirm --needed \
|
||||
remmina \
|
||||
freerdp \
|
||||
libvncserver
|
||||
|
||||
echo "Remmina installed with RDP (freerdp) and VNC support."
|
||||
log "Remmina installed with RDP (freerdp) and VNC support."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Sauerbraten (Cube 2 FPS)..."
|
||||
sudo pacman -S --noconfirm --needed sauerbraten
|
||||
log "Sauerbraten installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Shotcut..."
|
||||
sudo pacman -S --noconfirm --needed shotcut
|
||||
log "Shotcut installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing SoX (audio processing toolkit)..."
|
||||
sudo pacman -S --noconfirm --needed sox
|
||||
log "SoX installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Spotify launcher..."
|
||||
sudo pacman -S --noconfirm --needed spotify-launcher
|
||||
|
||||
log "Installing Spicetify CLI..."
|
||||
curl -fsSL https://raw.githubusercontent.com/spicetify/cli/main/install.sh | sh
|
||||
|
||||
log "Deploying Spicetify config..."
|
||||
rm -rf ~/.config/spicetify
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/spicetify ~/.config/
|
||||
log "Spotify installed with Spicetify theming."
|
||||
|
|
|
|||
|
|
@ -1,14 +1,17 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing OpenSSH server..."
|
||||
sudo pacman -S --noconfirm --needed openssh
|
||||
|
||||
# Harden defaults: disable root login, enforce key auth only
|
||||
log "Hardening SSH config (disable root login, enforce key auth)..."
|
||||
SSHD_CONF=/etc/ssh/sshd_config
|
||||
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' "$SSHD_CONF"
|
||||
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' "$SSHD_CONF"
|
||||
sudo sed -i 's/^#\?PubkeyAuthentication.*/PubkeyAuthentication yes/' "$SSHD_CONF"
|
||||
|
||||
log "Enabling sshd service..."
|
||||
sudo systemctl enable sshd.service
|
||||
echo "SSH server installed and enabled (key auth only, root login disabled)."
|
||||
echo "Add your public key to ~/.ssh/authorized_keys before first use."
|
||||
log "SSH server installed and enabled (key auth only, root login disabled)."
|
||||
warn "Add your public key to ~/.ssh/authorized_keys before first use."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Steam..."
|
||||
sudo pacman -S --noconfirm --needed steam
|
||||
log "Steam installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Stunt Rally (Flatpak)..."
|
||||
flatpak install -y flathub io.github.stuntrally.StuntRally3
|
||||
log "Stunt Rally installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing bastet (Tetris CLI)..."
|
||||
sudo pacman -S --noconfirm --needed bastet
|
||||
|
||||
log "Installing vitetris (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm vitetris
|
||||
log "Tetris CLI tools installed."
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Timeshift and cronie..."
|
||||
sudo pacman -S --noconfirm --needed timeshift cronie
|
||||
|
||||
# Auto-snapshot before pacman transactions
|
||||
log "Installing timeshift-autosnap (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm timeshift-autosnap
|
||||
|
||||
log "Enabling cronie service..."
|
||||
sudo systemctl enable --now cronie.service
|
||||
log "Timeshift installed with autosnap on pacman transactions."
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing TLP (laptop power management)..."
|
||||
sudo pacman -S --noconfirm --needed tlp tlp-rdw
|
||||
|
||||
log "Enabling TLP and masking rfkill to avoid conflicts..."
|
||||
sudo systemctl enable --now tlp.service
|
||||
sudo systemctl enable NetworkManager-dispatcher.service
|
||||
sudo systemctl mask systemd-rfkill.service systemd-rfkill.socket
|
||||
log "TLP installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing toot (Mastodon CLI, AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm toot
|
||||
log "toot installed."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Vesktop (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm vesktop
|
||||
|
||||
log "Deploying Vencord config..."
|
||||
rm -rf ~/.config/Vencord ~/.config/vesktop
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/Vencord ~/.config/
|
||||
cp -r ~/Dotfiles/desktopenvs/hyprland/Vencord ~/.config/vesktop
|
||||
log "Vesktop installed with Vencord theme."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Vintage Story (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm vintagestory
|
||||
log "Vintage Story installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing VSCodium (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm vscodium-bin
|
||||
log "VSCodium installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Wireshark..."
|
||||
sudo pacman -S --noconfirm --needed wireshark-qt
|
||||
log "Wireshark installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Xournal++ (PDF annotator)..."
|
||||
sudo pacman -S --noconfirm --needed xournalpp
|
||||
log "Xournal++ installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing yt-dlp (media downloader)..."
|
||||
sudo pacman -S --noconfirm --needed yt-dlp
|
||||
log "yt-dlp installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Zed editor..."
|
||||
sudo pacman -S --noconfirm --needed zed
|
||||
log "Zed installed."
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/logging.sh"
|
||||
|
||||
log "Installing Zen Browser (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm zen-browser-bin
|
||||
log "Zen Browser installed."
|
||||
|
|
|
|||
|
|
@ -1,2 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
log "Installing Python tools..."
|
||||
sudo pacman -Syu python pyright python-pynvim python-pipx
|
||||
log "Python tools installed."
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
log "Installing wprs-git (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm wprs-git
|
||||
log "wprs installed."
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/../lib/logging.sh"
|
||||
|
||||
echo "Installing ZFS kernel module..."
|
||||
log "Installing ZFS kernel module (AUR)..."
|
||||
yay -S --answerdiff None --answerclean All --noconfirm zfs-dkms
|
||||
log "ZFS installed."
|
||||
|
|
|
|||
|
|
@ -1,35 +1,39 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/lib/logging.sh"
|
||||
|
||||
log "Updating system and installing Flatpak..."
|
||||
sudo pacman -Syu --noconfirm --needed flatpak
|
||||
|
||||
# yay
|
||||
if ! command -v yay &>/dev/null; then
|
||||
echo "Installing yay..."
|
||||
log "Installing yay..."
|
||||
mkdir -p ~/install-tmp
|
||||
git clone https://aur.archlinux.org/yay.git ~/install-tmp/yay
|
||||
cd ~/install-tmp/yay
|
||||
makepkg -si --noconfirm
|
||||
cd ~
|
||||
else
|
||||
echo "yay already installed."
|
||||
skip "yay already installed."
|
||||
fi
|
||||
|
||||
# rustup / rust
|
||||
if ! command -v rustup &>/dev/null; then
|
||||
echo "Installing rustup..."
|
||||
log "Installing rustup..."
|
||||
sudo pacman -S --noconfirm --needed rustup
|
||||
fi
|
||||
rustup default stable
|
||||
|
||||
# nvm + Node.js
|
||||
if ! command -v node &>/dev/null; then
|
||||
echo "Installing nvm and Node.js 22..."
|
||||
log "Installing nvm and Node.js 22..."
|
||||
if [ ! -d "$HOME/.nvm" ]; then
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
|
||||
fi
|
||||
. "$HOME/.nvm/nvm.sh"
|
||||
nvm install 22
|
||||
else
|
||||
echo "Node.js already installed: $(node -v)"
|
||||
skip "Node.js already installed: $(node -v)"
|
||||
fi
|
||||
|
||||
log "Package managers ready."
|
||||
|
|
|
|||
|
|
@ -1,18 +1,11 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/lib/logging.sh"
|
||||
|
||||
GREEN="\e[32m"
|
||||
YELLOW="\e[33m"
|
||||
RESET="\e[0m"
|
||||
|
||||
log() { echo -e "${GREEN}✔ $1${RESET}"; }
|
||||
skip() { echo -e "${YELLOW}↷ $1${RESET}"; }
|
||||
|
||||
# Update system
|
||||
log "Updating system..."
|
||||
sudo pacman -Syu --noconfirm
|
||||
|
||||
# Install base packages
|
||||
log "Installing base shell packages..."
|
||||
PACKAGES=(zsh neovim curl pyright bash atftp bash-language-server btop clang fastfetch fzf hyfetch lua-language-server micro nano pulsemixer yazi z qrencode distrobox dysk python python-pip glow)
|
||||
for pkg in "${PACKAGES[@]}"; do
|
||||
if ! pacman -Qi "$pkg" &>/dev/null; then
|
||||
|
|
@ -55,10 +48,9 @@ else
|
|||
skip "Node.js already installed."
|
||||
fi
|
||||
|
||||
# git config
|
||||
log "Configuring git..."
|
||||
git config --global core.editor nvim
|
||||
|
||||
# Dotfiles
|
||||
log "Deploying dotfiles..."
|
||||
mkdir -p ~/.config ~/Pictures
|
||||
|
||||
|
|
@ -69,9 +61,6 @@ ln -sf ~/Dotfiles/starship.toml ~/.config/starship.toml
|
|||
rm -rf ~/.config/micro
|
||||
cp -r ~/Dotfiles/micro ~/.config/
|
||||
|
||||
# nvim — lazy.nvim bootstraps itself on first launch via init.lua
|
||||
# airline cyberqueer theme lives at nvim/autoload/airline/themes/cyberqueer.vim
|
||||
# and is discovered automatically via the rtp symlink below
|
||||
rm -rf ~/.config/nvim
|
||||
ln -sf ~/Dotfiles/nvim ~/.config/nvim
|
||||
|
||||
|
|
@ -91,7 +80,7 @@ else
|
|||
skip "Starship already installed."
|
||||
fi
|
||||
|
||||
# oh-my-zsh (RUNZSH=no prevents installer from spawning a new shell)
|
||||
# oh-my-zsh
|
||||
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
||||
log "Installing oh-my-zsh..."
|
||||
RUNZSH=no CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
|
|
@ -102,12 +91,14 @@ fi
|
|||
# oh-my-zsh plugins
|
||||
ZSH_CUSTOM="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}"
|
||||
if [ ! -d "$ZSH_CUSTOM/plugins/zsh-syntax-highlighting" ]; then
|
||||
log "Installing zsh-syntax-highlighting..."
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
|
||||
"$ZSH_CUSTOM/plugins/zsh-syntax-highlighting"
|
||||
else
|
||||
skip "zsh-syntax-highlighting already installed."
|
||||
fi
|
||||
if [ ! -d "$ZSH_CUSTOM/plugins/zsh-autosuggestions" ]; then
|
||||
log "Installing zsh-autosuggestions..."
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions \
|
||||
"$ZSH_CUSTOM/plugins/zsh-autosuggestions"
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue