-
-
Save Troplo/1a8701908f3801d450e6cf01ea6e9837 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
echo "Welcome to Troplo's Microsoft Office installation script for WINE (Arch Linux, yay required)" | |
echo "" | |
echo "Known issues:" | |
echo "- Broken Microsoft login (good thing!)" | |
echo "- Doesn't receive feature updates due to Windows 7 EoL." | |
echo "- OneNote, and Teams don't work." | |
echo "- Excel has a tendency to flicker when typing." | |
echo "" | |
install_prereq() { | |
echo "Installing pre-requisite packages..." | |
yay -Sy glibc libice libsm libx11 libxext libxi freetype2 libpng zlib lcms2 libgl libxcursor libxrandr glu alsa-lib fontconfig gnutls gsm libcups libdbus libexif libgphoto2 libldap libpulse libxcomposite libxinerama libxml2 libxslt libxxf86vm mpg123 nss-mdns ocl-icd openal openssl sane v4l-utils wine p7zip wget samba --needed | |
yay -Sy lib32-glibc lib32-libice lib32-libsm lib32-libx11 lib32-libxext lib32-libxi lib32-freetype2 lib32-libpng lib32-zlib lib32-lcms2 lib32-libgl lib32-libxcursor lib32-libxrandr lib32-glu lib32-alsa-lib lib32-fontconfig lib32-libcups lib32-libdbus lib32-libexif lib32-libldap lib32-libpulse lib32-gnutls lib32-libxcomposite lib32-libxinerama lib32-libxml2 lib32-libxslt lib32-mpg123 lib32-nss-mdns lib32-openal lib32-openssl lib32-v4l-utils --needed | |
} | |
install_wine() { | |
local wine_folder="/home/$USER/.wine-msoffice/wine" | |
if check_reinstall "$wine_folder"; then | |
if [[ -n "$wine_folder" ]]; then | |
rm -rf "$wine_folder" | |
fi | |
echo $wine_folder | |
echo "Downloading WINE 9.7..." | |
wget https://i.troplo.com/i/3512d274fa74.zst -O /home/$USER/wine-9.7.zst | |
echo "Extracting WINE 9.7..." | |
mkdir -p "/home/$USER/.wine-msoffice/wine" | |
tar --use-compress-program=unzstd -xf /home/$USER/wine-9.7.zst -C "$wine_folder" | |
rm /home/$USER/wine-9.7.zst | |
if check_kill_wineserver; then | |
wineserver -k | |
fi | |
echo "WINE package has been installed to $wine_folder" | |
else | |
echo "Skipping reinstallation of WINE." | |
fi | |
} | |
check_reinstall() { | |
local folder=$1 | |
if [ -d "$folder" ]; then | |
read -p "An existing install was detected in $folder. Do you want to reinstall? (y/n): " choice | |
case "$choice" in | |
y|Y|yes ) return 0 ;; # Proceed with reinstallation | |
n|N|no ) return 1 ;; # Skip reinstallation | |
* ) echo "Invalid choice. Please enter y or n." ; check_reinstall "$folder" ;; | |
esac | |
else | |
return 0 # Folder doesn't exist, proceed with installation | |
fi | |
} | |
check_kill_wineserver() { | |
read -p "Would you like to end the current wineserver process? (recommended) (y/n): " choice | |
case "$choice" in | |
y|Y|yes ) return 0 ;; # Proceed with reinstallation | |
n|N|no ) return 1 ;; # Skip reinstallation | |
* ) echo "Invalid choice. Please enter y or n." ; check_reinstall "$folder" ;; | |
esac | |
} | |
install_proplus() { | |
if check_reinstall "/home/$USER/.wine-msoffice/ProPlus"; then | |
rm -rf /home/$USER/.wine-msoffice/ProPlus | |
rm -rf /home/$USER/.wine-msoffice/Microsoft_Office_365-4 | |
echo "Installing/Reinstalling Microsoft Office 2021 LTSC..." | |
echo "Downloading Microsoft Office 365 ProPlus..." | |
wget https://i.troplo.com/i/b22de9957c24.7z -O /home/$USER/msoffice.7z | |
echo "Extracting Microsoft Office 365 ProPlus..." | |
mkdir -p ~/.wine-msoffice | |
7z x /home/$USER/msoffice.7z -o/home/$USER/.wine-msoffice | |
rm /home/$USER/msoffice.7z | |
mv /home/$USER/.wine-msoffice/Microsoft_Office_365-4 /home/$USER/.wine-msoffice/ProPlus | |
echo "Microsoft Office 365 ProPlus has been installed to ~/.wine-msoffice/ProPlus" | |
# Create file associations | |
echo "Creating file associations..." | |
mkdir -p ~/.local/share/applications | |
cat > ~/.local/share/applications/word-proplus.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Word [ProPlus] | |
Icon=/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/WINWORD.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/ProPlus /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/WINWORD.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document; | |
EOF | |
cat > ~/.local/share/applications/access-proplus.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Access [ProPlus] | |
Icon=/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/MSACCESS.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/ProPlus /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/MSACCESS.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/msaccess; | |
EOF | |
cat > ~/.local/share/applications/excel-proplus.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Excel [ProPlus] | |
Icon=/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/EXCEL.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/ProPlus /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/EXCEL.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/msexcel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; | |
EOF | |
cat > ~/.local/share/applications/powerpoint-proplus.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft PowerPoint [ProPlus] | |
Icon=/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/POWERPNT.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/ProPlus /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/POWERPNT.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation; | |
EOF | |
cat > ~/.local/share/applications/publisher-proplus.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Publisher [ProPlus] | |
Icon=/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/MSPUB.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/ProPlus /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/MSPUB.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/vnd.ms-publisher; | |
EOF | |
cat > ~/.local/share/applications/outlook-proplus.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Outlook [ProPlus] | |
Icon=/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/OUTLOOK.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/ProPlus /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/ProPlus/drive_c/Program Files/Microsoft Office/root/Office16/OUTLOOK.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/microsoft-outlook; | |
EOF | |
echo "File associations created." | |
echo "Updating menu items" | |
xdg-desktop-menu forceupdate | |
else | |
echo "Skipping reinstallation of Microsoft Office 2021 LTSC." | |
fi | |
} | |
install_ltsc() { | |
if check_reinstall "/home/$USER/.wine-msoffice/LTSC"; then | |
rm -rf /home/$USER/.wine-msoffice/LTSC | |
rm -rf /home/$USER/.wine-msoffice/Microsoft_Office_365-3 | |
echo "Downloading Microsoft Office 2021 LTSC..." | |
wget https://i.troplo.com/i/721f0242a2c0.7z -O /home/$USER/msoffice_ltsc.7z | |
echo "Extracting Microsoft Office 365 LTSC..." | |
mkdir -p ~/.wine-msoffice | |
7z x /home/$USER/msoffice_ltsc.7z -o/home/$USER/.wine-msoffice | |
rm /home/$USER/msoffice_ltsc.7z | |
mv /home/$USER/.wine-msoffice/Microsoft_Office_365-3 /home/$USER/.wine-msoffice/LTSC | |
echo "Microsoft Office 365 ProPlus has been installed to ~/.wine-msoffice/LTSC" | |
# Create file associations | |
echo "Creating file associations..." | |
mkdir -p ~/.local/share/applications | |
cat > ~/.local/share/applications/word-ltsc.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Word [LTSC] | |
Icon=/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/WINWORD.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/LTSC /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/WINWORD.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document; | |
EOF | |
cat > ~/.local/share/applications/access-ltsc.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Access [LTSC] | |
Icon=/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/MSACCESS.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/LTSC /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/MSACCESS.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/msaccess; | |
EOF | |
cat > ~/.local/share/applications/excel-ltsc.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Excel [LTSC] | |
Icon=/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/EXCEL.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/LTSC /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/EXCEL.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/msexcel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; | |
EOF | |
cat > ~/.local/share/applications/powerpoint-ltsc.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft PowerPoint [LTSC] | |
Icon=/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/POWERPNT.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/LTSC /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/POWERPNT.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation; | |
EOF | |
cat > ~/.local/share/applications/publisher-ltsc.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Publisher [LTSC] | |
Icon=/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/MSPUB.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/LTSC /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/MSPUB.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/vnd.ms-publisher; | |
EOF | |
cat > ~/.local/share/applications/outlook-ltsc.desktop << EOF | |
[Desktop Entry] | |
Type=Application | |
Name=Microsoft Outlook [LTSC] | |
Icon=/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/OUTLOOK.EXE | |
Exec=sh -c 'PATH="/home/$USER/.wine-msoffice/wine/usr/bin:$PATH" WINEARCH=win32 WINEPREFIX=/home/$USER/.wine-msoffice/LTSC /home/$USER/.wine-msoffice/wine/usr/bin/wine "/home/$USER/.wine-msoffice/LTSC/drive_c/Program Files/Microsoft Office/root/Office16/OUTLOOK.EXE" "%U"' | |
Categories=Office; | |
MimeType=application/microsoft-outlook; | |
EOF | |
echo "File associations created." | |
echo "Updating menu items" | |
xdg-desktop-menu forceupdate | |
else | |
echo "Skipping reinstallation of Microsoft Office 2021 LTSC." | |
fi | |
} | |
# Main script | |
echo "Which version of Microsoft Office do you want to install?" | |
echo "1. Microsoft Office 365 ProPlus [Light theme document, Animations work, Access works]" | |
echo "2. Microsoft Office 2021 LTSC [Dark theme document option, Broken animations, Broken Access, OneNote, Teams, Outlook, and Publisher.]" | |
echo "3. Install both" | |
echo "4. (Re)install WINE 9.7 (Does not replace system WINE, required for Office, amd64/x86)" | |
echo "5. (Re)install pacman/yay dependencies" | |
read -p "Enter your choice [1, 2 or 3]: " choice | |
case $choice in | |
1) | |
install_prereq | |
install_wine | |
install_proplus | |
;; | |
2) | |
install_prereq | |
install_wine | |
install_ltsc | |
;; | |
3) | |
install_prereq | |
install_wine | |
install_proplus | |
install_ltsc | |
;; | |
4) | |
install_wine | |
;; | |
5) | |
install_prereq | |
;; | |
*) | |
echo "Invalid choice. Please enter 1, 2 or 3." | |
;; | |
esac |
doesn't work on manjaro latest, word crashes on load screen
LTSC or ProPlus?
doesn't work on manjaro latest, word crashes on load screen
LTSC or ProPlus?
ProPlus
doesn't work on manjaro latest, word crashes on load screen
LTSC or ProPlus?
ProPlus
I've updated the script, it seems in Wine 9.8 (latest version) it broke, I've made the script automatically download Wine 9.7, and use it for the Office applications (this won't interfere with the system Wine, and you can have multiple wine versions running on the same machine.)
Try re-executing it, and reinstalling ProPlus or LTSC and it should work. If you can't type, just wait a bit and there should be an auto activation thing and all you need to do is restart the program and you should be able to type.
I've moved this script to an actual repository (https://github.com/Troplo/office-install.sh) as it'll be easier for me to update.
Let me know how it goes :)
Hello! How can I remove all the packages installed using your script?
You can delete the folder ~/.wine-msoffice which contains the Office files.
For the packages, the list of packages are in the script under install_prereq, there's no actual uninstaller, but you might be able to infer what packages you need to uninstall, although keep in mind some dependencies that are installed using the script may have already been installed prior to running it so uninstalling them could potentially break stuff if there's dependencies.
doesn't work on manjaro latest, word crashes on load screen