diff --git a/scripts/install-os-packages.sh b/scripts/install-os-packages.sh index 4c6782e..cb7d52f 100755 --- a/scripts/install-os-packages.sh +++ b/scripts/install-os-packages.sh @@ -6,21 +6,57 @@ setup() { OS_INSTALL_COMMAND="" OS_PKG_CHECK_COMMAND="" - # Detect package manager and set package manager commands - if command -v apt-get >/dev/null 2>&1; then + # First try to get OS info from os-release + if [ -f /etc/os-release ]; then + . /etc/os-release + OS_TYPE="$ID" + else + # Fallback to uname + OS_TYPE="$(uname -s | tr '[:upper:]' '[:lower:]')" + fi + + case "$OS_TYPE" in + "debian" | "ubuntu") OS_INSTALL_COMMAND="apt-get install -y" OS_PKG_CHECK_COMMAND="apt-cache show" - apt_setup - elif command -v dnf >/dev/null 2>&1; then + ;; + "fedora" | "rhel" | "centos") OS_INSTALL_COMMAND="dnf install -y --allowerasing --skip-broken" OS_PKG_CHECK_COMMAND="dnf list available" - dnf_setup - else - log "Unsupported package manager. This script supports apt, yum, and dnf." + ;; + "freebsd") + OS_INSTALL_COMMAND="pkg install -y --skip-unresolvable" + OS_PKG_CHECK_COMMAND="pkg search" + freebsd_setup + ;; + *) + log "Unsupported operating system: $OS_TYPE" exit 1 - fi + ;; + esac +} + +freebsd_setup() { + # Update package repository + sudo pkg update && sudo pkg upgrade + + # Install KDE WM + sudo pkg install -y xorg kde5 sddm + + # Add current user to video & wheel group + sudo pw groupmod video -m "$(whoami)" + sudo pw groupmod wheel -m "$(whoami)" + + # Enable services that will be needed + sudo sysrc dbus_enable="YES" + sudo sysrc sddm_enable="YES" + + sudo sysctl net.local.stream.recvspace=65535 + sudo sysctl net.local.stream.sendspace=65535 + + echo "exec dbus-launch --exit-with-x11 ck-launch-session startplasma-x11" >~/.xinitrc } dnf_setup() { diff --git a/scripts/install.sh b/scripts/install.sh index 64a7a5b..da89236 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -26,8 +26,10 @@ post_install() { chsh -s "$(which zsh)" && echo "Default shell changed to zsh" - # Time fix for Windows dual boot - timedatectl set-local-rtc 1 --adjust-system-clock && echo "Set Datetime" + # Time fix for Windows dual boot - skip on FreeBSD + if [ "$(uname -s)" != "FreeBSD" ]; then + timedatectl set-local-rtc 1 --adjust-system-clock && echo "Set Datetime" + fi rm -rf ~/.cache } @@ -50,7 +52,11 @@ main() { pre_install ./install-os-packages.sh - ./install-brew-packages.sh + + # Skip brew installation on FreeBSD + if [ "$(uname -s)" != "FreeBSD" ]; then + ./install-brew-packages.sh + fi manual_installs post_install diff --git a/scripts/package-list-os b/scripts/package-list-os index ae52df9..221185e 100644 --- a/scripts/package-list-os +++ b/scripts/package-list-os @@ -13,38 +13,38 @@ dnf-plugins-core libva-nvidia-driver xorg-x11-drv-nvidia-cuda # Common +aspnetcore-runtime-8.0 bash bleachbit brave-browser ca-certificates clang cmake -extra-cmake-modules code +containerd.io curl -evolution-ews -evolution-mapi +docker-buildx-plugin docker-ce docker-ce-cli -containerd.io -docker-buildx-plugin docker-compose-plugin dolphin dolphin-plugins dnscrypt-proxy -aspnetcore-runtime-8.0 -dotnet-sdk-8.0 dotnet-runtime-8.0 +dotnet-sdk-8.0 +evolution-ews +evolution-mapi +extra-cmake-modules ffmpeg firefox flameshot flatpak -plasma-discover-backend-flatpak gcc gdb git -gparted gnupg +go +gparted grub-customizer htop kde-spectacle @@ -53,10 +53,13 @@ kitty-terminfo llvm lua lua5.3 +luajit make nala neovim net-tools +node +npm openssh-client python3 python3-pip @@ -71,11 +74,23 @@ tmux ufw ulauncher vim -vim-enhanced -vim-common -vim-tiny -volkan-tools vlc +vulkan-tools wget xclip zsh + +# FreeBSD packages +bat +fd-find +fzf +jq +libreoffice +lua54 +rclone +shellcheck +sqlite3 +tree-sitter +vscode +yt-dlp +zoxide