nixos/software.sh

60 lines
2.6 KiB
Bash
Raw Normal View History

#! /usr/bin/env bash
# Install various programs
mkdir -p "$HOME/.local/bin"
# python
command -v apt > /dev/null && sudo apt install python3 python3-pip python3-venv
# pyenv
command -v pyenv > /dev/null || {
curl https://pyenv.run | bash
# Below are suggested dependencies for python
command -v apt > /dev/null && {
sudo apt update
sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
}
}
# pipx
command -v pipx > /dev/null || python3 -m pip install --user pipx
command -v pyright > /dev/null || python3 -m pipx install pyright
command -v poetry > /dev/null || python3 -m pipx install poetry
command -v black > /dev/null || python3 -m pipx install black
command -v isort > /dev/null || python3 -m pipx install isort
command -v zimports > /dev/null || python3 -m pipx install zimports
command -v pre-commit > /dev/null || python3 -m pipx install pre-commit
command -v ranger > /dev/null || python3 -m pipx install ranger-fm
command -v euporie > /dev/null || python3 -m pipx install euporie
# kitty
command -v kitty > /dev/null || {
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
# Create a symbolic link to add kitty to PATH (assuming $HOME/.local/bin is in
# your system-wide PATH)
ln -s "$HOME/.local/kitty.app/bin/kitty" "$HOME/.local/bin/"
# Place the kitty.desktop file somewhere it can be found by the OS
cp "$HOME/.local/kitty.app/share/applications/kitty.desktop" "$HOME/.local/share/applications/"
# If you want to open text files and images in kitty via your file manager also add the kitty-open.desktop file
cp "$HOME/.local/kitty.app/share/applications/kitty-open.desktop" "$HOME/.local/share/applications/"
# Update the paths to the kitty and its icon in the kitty.desktop file(s)
sed -i "s|Icon=kitty|Icon=/home/$USER/.local/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" "$HOME/.local/share/applications/kitty.desktop"
sed -i "s|Exec=kitty|Exec=/home/$USER/.local/kitty.app/bin/kitty|g" "$HOME/.local/share/applications/kitty.desktop"
}
# neovim
command -v nvim > /dev/null || {
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
chmod u+x nvim.appimage
mv nvim.appimage "$HOME/.local/bin/nvim"
ln -s "$HOME/.local/bin/nvim" "$HOME/.local/bin/vim"
}
# fzf
command -v fzf > /dev/null || {
git clone --depth 1 https://github.com/junegunn/fzf.git "$HOME/.fzf"
"$HOME/.fzf/install"
}