Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install Steps on Mac? #825

Open
eroepken opened this issue Nov 3, 2023 · 7 comments
Open

Install Steps on Mac? #825

eroepken opened this issue Nov 3, 2023 · 7 comments

Comments

@eroepken
Copy link

eroepken commented Nov 3, 2023

Is it possible to get some installation instructions for Mac? When I download Artemis, I get a zip file that expands into a folder with a bunch of files in it, no readme or executable as far as I can see. And the wiki only shows install steps for Windows and Linux.

@diogotr7
Copy link
Member

diogotr7 commented Nov 3, 2023

Unfortunately none of us developers have access to macs so support is mostly assumed (since underlying frameworks are supposed to work with it).

The zip you mentioned should have an executable in it (Artemis.UI.MacOS) but, again, I'm not sure if Mac will like it or if we need to actually bundle this into an *.app file. I tried creating an OSX virtual machine on my server but didn't have much luck, I'll give that another try and see if I find anything interesting :)

@eroepken
Copy link
Author

eroepken commented Nov 3, 2023

Ah! I was able to get it set up by adapting from the Linux script. Now I need to figure out how to run it without having to keep a terminal window open.

@eroepken
Copy link
Author

eroepken commented Nov 3, 2023

Adaptation:

#!/bin/bash

# Check if wget is installed
if ! command -v wget &> /dev/null
then
    echo "wget is not installed, please install wget before running this script"
    echo "On Mac, run: brew install wget"
    exit
fi

# Check if the XDG_DATA_HOME environment variable is set
if [ -z "$XDG_DATA_HOME" ]; then
    echo "XDG_DATA_HOME is not set, defaulting to ~/.local/share"
    XDG_DATA_HOME="$HOME/.local/share"
fi

# Create a temporary directory
temp_dir=$(mktemp -d)

# Artemis installation directory (~/.local/share/bin/Artemis)
install_dir="$XDG_DATA_HOME/bin/Artemis"

# Check if the installation directory exists
if [ -d "$install_dir" ]; then
    echo "Artemis is already installed, do you want to reinstall it? (y/n)"
    read -r reinstall
    if [ "$reinstall" != "y" ]; then
        echo "Aborting installation"
        exit
    fi
fi

# Remove the installation directory if it exists
if [ -d "$install_dir" ]; then
    rm -r "$install_dir"
fi

echo "Creating install directory"
# Create the installation directory
mkdir -p "$install_dir"

# if $1 is an artifact id, use that. othewise, latest master
if [[ $1 =~ ^[0-9]+$ ]]; then
    download_link="https://updating.artemis-rgb.com/api/artifacts/$1"
else
    download_link="https://updating.artemis-rgb.com/api/artifacts/latest/master/osx"
fi

# Download the zip artifact
echo "Downloading the latest version of Artemis from $download_link"
wget -q "$download_link" -O "$temp_dir"/artemis.zip --show-progress

# Unzip the artifact
echo "Installing Artemis"
unzip -q "$temp_dir"/artemis.zip -d "$install_dir"

# Make executable
echo "Making Artemis executable"
chmod +x "$install_dir/Artemis.UI.MacOS"

# Remove the zip file
echo "Deleting the zip file"
rm "$temp_dir"/artemis.zip

# Create the desktop file
echo "Creating the desktop file"
echo "[Desktop Entry]
Name=Artemis
Exec=$install_dir/Artemis.UI.MacOS
Icon=artemis
Terminal=false
Type=Application" > "$XDG_DATA_HOME/applications/artemis.desktop"

# Copy the icons to the appropriate directories
echo "Copying the icons"
mkdir -p "$XDG_DATA_HOME/icons/hicolor"
cp -r "$install_dir/Icons/." "$XDG_DATA_HOME/icons/hicolor/"

# Remove the temporary directory
echo "Removing the temporary directory"
rm -r "$temp_dir"

echo "Artemis has been installed successfully! Press enter to exit"
read -r

Only I think the desktop icon part doesn't work on mac. I'm still trying to figure that one out.

@diogotr7
Copy link
Member

diogotr7 commented Nov 3, 2023

Ah cool! Expect a lot of features to be missing, for example devices will only really work through OpenRGB. Things like currently running processes or Ambilight are also not going to work since those implementations are platform-specific. Out of curiosity, are you running this on an Intel or Apple Silicon? I have no idea how dotnet handles that, or if we should switch to arm builds instead of x86.

@eroepken
Copy link
Author

eroepken commented Nov 3, 2023

I'm running this on Apple Silicon (Macbook Pro with the M1 Pro chip and Mac OS Ventura 13.6.1)

That's okay. I can't seem to find any other software that works to control my RGB lighting that has been updated within the last year, so I'm happy to get anything running.

@eroepken
Copy link
Author

eroepken commented Nov 3, 2023

Ah! I got it to work by double clicking! The Artemis.UI.MacOS file needs to have a .app extension to be launchable without the terminal! I'll report back with docs once I get a good workflow going.

@eroepken
Copy link
Author

eroepken commented Nov 3, 2023

The following script downloads the OSX version and installs it and makes it openable in the Applications directory:

#!/bin/bash

# Check if wget is installed
if ! command -v wget &> /dev/null
then
    echo "wget is not installed, please install wget before running this script"
    echo "On Ubuntu/Debian, run: sudo apt install wget"
    exit
fi

# check if unzip is installed
if ! command -v unzip &> /dev/null
then
    echo "unzip is not installed, please install unzip before running this script"
    echo "On Ubuntu/Debian, run: sudo apt install unzip"
    exit
fi

# Check if the XDG_DATA_HOME environment variable is set
if [ -z "$XDG_DATA_HOME" ]; then
    echo "XDG_DATA_HOME is not set, defaulting to ~/.local/share"
    XDG_DATA_HOME="$HOME/.local/share"
fi

# Create a temporary directory
temp_dir=$(mktemp -d)

# Artemis installation directory (~/.local/share/bin/Artemis)
install_dir="$XDG_DATA_HOME/bin/Artemis"

# Check if the installation directory exists
if [ -d "$install_dir" ]; then
    echo "Artemis is already installed, do you want to reinstall it? (y/n)"
    read -r reinstall
    if [ "$reinstall" != "y" ]; then
        echo "Aborting installation"
        exit
    fi
fi

# Remove the installation directory if it exists
if [ -d "$install_dir" ]; then
    rm -r "$install_dir"
fi

echo "Creating install directory"
# Create the installation directory
mkdir -p "$install_dir"

# if $1 is an artifact id, use that. othewise, latest master
if [[ $1 =~ ^[0-9]+$ ]]; then
    download_link="https://updating.artemis-rgb.com/api/artifacts/$1"
else
    download_link="https://updating.artemis-rgb.com/api/artifacts/latest/master/osx"
fi

# Download the zip artifact
echo "Downloading the latest version of Artemis from $download_link"
wget -q "$download_link" -O "$temp_dir"/artemis.zip --show-progress

# Unzip the artifact
echo "Installing Artemis"
unzip -q "$temp_dir"/artemis.zip -d "$install_dir"

# Make executable
echo "Making Artemis executable"
chmod +x "$install_dir/Artemis.UI.MacOS"
mv "$install_dir/Artemis.UI.MacOS" "$install_dir/Artemis.UI.MacOS.app"
ln -s "$install_dir/Artemis.UI.MacOS.app" "/Applications/Artemis.UI.MacOS.app"

# Remove the zip file
echo "Deleting the zip file"
rm "$temp_dir"/artemis.zip

# Copy the icons to the appropriate directories
echo "Copying the icons"
mkdir -p "$XDG_DATA_HOME/icons/hicolor"
cp -r "$install_dir/Icons/." "$XDG_DATA_HOME/icons/hicolor/"

# Remove the temporary directory
echo "Removing the temporary directory"
rm -r "$temp_dir"

echo "Artemis has been installed successfully! Press enter to exit"
read -r

I hope this helps! And thank you for this project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants