Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ales-tsurko/cc8cb59f6d5a1aa95512e81e3dfe64ff to your computer and use it in GitHub Desktop.
Save ales-tsurko/cc8cb59f6d5a1aa95512e81e3dfe64ff to your computer and use it in GitHub Desktop.
Install Alacritty on Ubuntu
#!/bin/bash
# This installs alacritty terminal on ubuntu (https://github.com/jwilm/alacritty)
# You have to have rust/cargo installed for this to work
# Install required tools
sudo apt-get install -y cmake libfreetype6-dev libfontconfig1-dev xclip
# Download, compile and install Alacritty
git clone https://github.com/jwilm/alacritty
cd alacritty
cargo build --release
# Add Man-Page entries
sudo mkdir -p /usr/local/share/man/man1
gzip -c extra/alacritty.man | sudo tee /usr/local/share/man/man1/alacritty.1.gz > /dev/null
# Add shell completion for bash and zsh
mkdir -p ~/.bash_completion
cp extra/completions/alacritty.bash ~/.bash_completion/alacritty
echo "source ~/.bash_completion/alacritty" >> ~/.bashrc
sudo mkdir -p /usr/share/zsh/functions/Completion/X/
sudo cp extra/completions/_alacritty /usr/share/zsh/functions/Completion/X/_alacritty
# Copy default config into home dir
cp alacritty.yml ~/.alacritty.yml
# Create desktop file
mkdir -p ~/.local/share/applications/
cp extra/linux/Alacritty.desktop ~/.local/share/applications/
# Copy binary to path
sudo cp target/release/alacritty /usr/local/bin
# Remove temporary dir
cd ..
rm -rf alacritty
@ales-tsurko
Copy link
Author

ales-tsurko commented Nov 25, 2020

@Unrud

Instead of cargo install --path alacritty/ I suggest using cargo build --release. The former automatically installs the binary to ~/.cargo/bin/alacritty.

This is surprising... cargo build --release usually just normal cargo build command but for release target (i.e. with optimizations). So it should put the build artifacts inside target at the source root or $CARGO_TARGET_DIR if it's specified. Are you sure in this?

UPD

Hmm But doing cargo install --path alacritty/ doesn't make sense as well, because at the end we copy the binary from target/releaseanyway (which is built by cargo build --release as a part of cargo install). Will update the script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment