From 1a9ea736edc349c97573792d009477c0ec2a94b6 Mon Sep 17 00:00:00 2001 From: codepuncher Date: Sun, 3 Aug 2025 11:51:14 +0100 Subject: [PATCH 1/2] feat(arch): add `ghostty` --- shell/functions | 573 ++++++++++++++++++++++++------------------------ 1 file changed, 287 insertions(+), 286 deletions(-) diff --git a/shell/functions b/shell/functions index 2679d5f..93bed3c 100644 --- a/shell/functions +++ b/shell/functions @@ -1,350 +1,351 @@ #!/usr/bin/env bash section_start() { - printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' - - echo "${1}" + printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' - + echo "${1}" } reinstall_dotfiles() { - rm -rf ~/.{local/bin,npm,nvm,zinit,go/bin,config/composer/vendor} - cd ~/.dotfiles && ./setup.sh + rm -rf ~/.{local/bin,npm,nvm,zinit,go/bin,config/composer/vendor} + cd ~/.dotfiles && ./setup.sh } install_arch_packages() { - echo 'Enabling the AUR...' - sudo sed -Ei '/EnableAUR/s/^#//' /etc/pamac.conf - - PACKAGES=( - # General - redshift - ulauncher - variety - bitwarden - plank - spotify-launcher - spotifyd - pandoc - texlive-basic - texlive-latex - texlive-latexrecommended - texlive-pictures - texlive-latexextra - texlive-fontsrecommended - - # Social - discord - caprine - whatsapp-for-linux - - # Work - microsoft-edge-stable-bin - clickup - zoom - - # Dev - alacritty - tmux - github-cli - go - rustup - nginx - mailpit - mariadb - php-legacy - php-legacy-fpm - php-legacy-gd - php-legacy-imagick - php-legacy-sodium - php-legacy-sqlite - php-legacy-tidy - php-legacy-xdebug - php-legacy-xsl - python - python-pip - python-pipx - - # Fonts - noto-fonts-emoji - ttf-anonymouspro-nerd - ttf-dejavu-nerd - ttf-firacode-nerd - ttf-go-nerd - ttf-hack-nerd - ttf-jetbrains-mono-nerd - ttf-liberation-mono-nerd - ttf-sourcecodepro-nerd - ttf-terminus-nerd - - # IDE - neovim - lua-language-server - shellcheck - hadolint-bin - - # System - vim - tldr - git - jq - ripgrep - exa - fd - git-delta - xsel - xclip - imagemagick - dnsutils - bat - ) - - # shellcheck disable=2046 - sudo pamac install --no-confirm --no-upgrade $( - IFS=' ' - echo "${PACKAGES[*]}" - ) "$@" + echo 'Enabling the AUR...' + sudo sed -Ei '/EnableAUR/s/^#//' /etc/pamac.conf + + PACKAGES=( + # General + redshift + ulauncher + variety + bitwarden + plank + spotify-launcher + spotifyd + pandoc + texlive-basic + texlive-latex + texlive-latexrecommended + texlive-pictures + texlive-latexextra + texlive-fontsrecommended + + # Social + discord + caprine + whatsapp-for-linux + + # Work + microsoft-edge-stable-bin + clickup + zoom + + # Dev + alacritty + ghostty + tmux + github-cli + go + rustup + nginx + mailpit + mariadb + php-legacy + php-legacy-fpm + php-legacy-gd + php-legacy-imagick + php-legacy-sodium + php-legacy-sqlite + php-legacy-tidy + php-legacy-xdebug + php-legacy-xsl + python + python-pip + python-pipx + + # Fonts + noto-fonts-emoji + ttf-anonymouspro-nerd + ttf-dejavu-nerd + ttf-firacode-nerd + ttf-go-nerd + ttf-hack-nerd + ttf-jetbrains-mono-nerd + ttf-liberation-mono-nerd + ttf-sourcecodepro-nerd + ttf-terminus-nerd + + # IDE + neovim + lua-language-server + shellcheck + hadolint-bin + + # System + vim + tldr + git + jq + ripgrep + exa + fd + git-delta + xsel + xclip + imagemagick + dnsutils + bat + ) + + # shellcheck disable=2046 + sudo pamac install --no-confirm --no-upgrade $( + IFS=' ' + echo "${PACKAGES[*]}" + ) "$@" } install_wsl_packages() { - PACKAGES=( - # Text processing - pandoc - texlive-latex-base - texlive-latex-extra - texlive-latex-recommended - texlive-fonts-recommended - texlive-fonts-extra - - # Dev - tmux - golang-go - python3 - python3-pip - pipx - - # Fonts - fonts-noto-color-emoji - fonts-firacode - fonts-hack - fonts-jetbrains-mono - - # IDE - shellcheck - - # System - vim - tldr - git - jq - ripgrep - exa - fd-find - # git-delta - xsel - xclip - imagemagick - dnsutils - bat - ) - - sudo add-apt-repository ppa:longsleep/golang-backports -y - - # shellcheck disable=2046 - sudo apt install -y "${PACKAGES[@]}" - - install_rustup - install_mailpit - install_neovim - install_git_delta - # ensure fd is available - ln -s "$(which fdfind)" ~/.local/bin/fd + PACKAGES=( + # Text processing + pandoc + texlive-latex-base + texlive-latex-extra + texlive-latex-recommended + texlive-fonts-recommended + texlive-fonts-extra + + # Dev + tmux + golang-go + python3 + python3-pip + pipx + + # Fonts + fonts-noto-color-emoji + fonts-firacode + fonts-hack + fonts-jetbrains-mono + + # IDE + shellcheck + + # System + vim + tldr + git + jq + ripgrep + exa + fd-find + # git-delta + xsel + xclip + imagemagick + dnsutils + bat + ) + + sudo add-apt-repository ppa:longsleep/golang-backports -y + + # shellcheck disable=2046 + sudo apt install -y "${PACKAGES[@]}" + + install_rustup + install_mailpit + install_neovim + install_git_delta + # ensure fd is available + ln -s "$(which fdfind)" ~/.local/bin/fd } setup_arch_services() { - SERVICES=( - nginx - mariadb - php-fpm - ) - - # shellcheck disable=2046 - sudo systemctl start $( - IFS=' ' - echo "${SERVICES[*]}" - ) - # shellcheck disable=2046 - sudo systemctl enable $( - IFS=' ' - echo "${SERVICES[*]}" - ) + SERVICES=( + nginx + mariadb + php-fpm + ) + + # shellcheck disable=2046 + sudo systemctl start $( + IFS=' ' + echo "${SERVICES[*]}" + ) + # shellcheck disable=2046 + sudo systemctl enable $( + IFS=' ' + echo "${SERVICES[*]}" + ) } install_nvm() { - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash } install_rustup() { - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y } install_mailpit() { - # shellcheck disable=2024 - if ! sudo bash < <(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh); then - echo 'Failed to install Mailpit' >&2 - return 1 - fi - sudo ln -s "${HOME}/.dotfiles/templates/mailpit.service" "/etc/systemd/system/mailpit.service" - sudo systemctl enable mailpit && sudo systemctl start mailpit - sudo ln -s /usr/local/bin/mailpit /usr/sbin/sendmail + # shellcheck disable=2024 + if ! sudo bash < <(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh); then + echo 'Failed to install Mailpit' >&2 + return 1 + fi + sudo ln -s "${HOME}/.dotfiles/templates/mailpit.service" "/etc/systemd/system/mailpit.service" + sudo systemctl enable mailpit && sudo systemctl start mailpit + sudo ln -s /usr/local/bin/mailpit /usr/sbin/sendmail } install_neovim() { - set -x - local DIRNAME='nvim-linux-x86_64' - local FILENAME="${DIRNAME}.tar.gz" - curl -LO "https://github.com/neovim/neovim/releases/latest/download/${FILENAME}" -o "/tmp/${FILENAME}" - rm ~/.local/bin/nvim - sudo rm -rf /opt/nvim - sudo rm -rf /opt/neovim - sudo tar -C /opt -xzf "${FILENAME}" - ln -s "/opt/${DIRNAME}/bin/nvim" ~/.local/bin/nvim - set +x + set -x + local DIRNAME='nvim-linux-x86_64' + local FILENAME="${DIRNAME}.tar.gz" + curl -LO "https://github.com/neovim/neovim/releases/latest/download/${FILENAME}" -o "/tmp/${FILENAME}" + rm ~/.local/bin/nvim + sudo rm -rf /opt/nvim + sudo rm -rf /opt/neovim + sudo tar -C /opt -xzf "${FILENAME}" + ln -s "/opt/${DIRNAME}/bin/nvim" ~/.local/bin/nvim + set +x } gh_get_latest_tag() { - if [[ -z "${1}" ]]; then - echo 'No repo provided' >&2 - return 1 - fi + if [[ -z "${1}" ]]; then + echo 'No repo provided' >&2 + return 1 + fi - TIMEOUT=90 - curl --silent --location --max-time "${TIMEOUT}" "https://api.github.com/repos/${1}/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' + TIMEOUT=90 + curl --silent --location --max-time "${TIMEOUT}" "https://api.github.com/repos/${1}/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' } install_git_delta() { - REPO='dandavison/delta' - VERSION="$(gh_get_latest_tag "${REPO}")" - VERSION="${VERSION:-0.16.5}" - FILE="git-delta_${VERSION}_amd64.deb" - curl -LO "https://github.com/${REPO}/releases/latest/download/${FILE}" && sudo dpkg -i "${FILE}" + REPO='dandavison/delta' + VERSION="$(gh_get_latest_tag "${REPO}")" + VERSION="${VERSION:-0.16.5}" + FILE="git-delta_${VERSION}_amd64.deb" + curl -LO "https://github.com/${REPO}/releases/latest/download/${FILE}" && sudo dpkg -i "${FILE}" } install_node_packages() { - if [[ ! -d "${NVM_DIR}" ]] || [[ ! -d "${HOME}/.nvm" ]]; then - install_nvm - fi - PACKAGES=( - @ansible/ansible-language-server - @fsouza/prettierd - @tailwindcss/language-server - @volar/vue-language-server - bash-language-server - blade-formatter - doctoc - eslint_d - fast-cli - intelephense - lighthouse - markdownlint - markdownlint-cli - speed-test - stylelint - stylelint-config-prettier - stylelint-lsp - typescript - typescript-language-server - vscode-langservers-extracted - yaml-language-server - ) - - # shellcheck disable=2046 - yarn global add $( - IFS=' ' - echo "${PACKAGES[*]}" - ) "$@" + if [[ ! -d "${NVM_DIR}" ]] || [[ ! -d "${HOME}/.nvm" ]]; then + install_nvm + fi + PACKAGES=( + @ansible/ansible-language-server + @fsouza/prettierd + @tailwindcss/language-server + @volar/vue-language-server + bash-language-server + blade-formatter + doctoc + eslint_d + fast-cli + intelephense + lighthouse + markdownlint + markdownlint-cli + speed-test + stylelint + stylelint-config-prettier + stylelint-lsp + typescript + typescript-language-server + vscode-langservers-extracted + yaml-language-server + ) + + # shellcheck disable=2046 + yarn global add $( + IFS=' ' + echo "${PACKAGES[*]}" + ) "$@" } install_go_packages() { - PACKAGES=( - github.com/rhysd/actionlint/cmd/actionlint@latest - golang.org/x/tools/gopls@latest - mvdan.cc/sh/v3/cmd/shfmt@latest - mvdan.cc/xurls/v2/cmd/xurls@latest - ) - - for P in "${PACKAGES[@]}"; do - go install "${P}" "$@" - done + PACKAGES=( + github.com/rhysd/actionlint/cmd/actionlint@latest + golang.org/x/tools/gopls@latest + mvdan.cc/sh/v3/cmd/shfmt@latest + mvdan.cc/xurls/v2/cmd/xurls@latest + ) + + for P in "${PACKAGES[@]}"; do + go install "${P}" "$@" + done } install_composer_packages() { - PACKAGES=( - cpriego/valet-linux:dev-master - wp-cli/wp-cli-bundle - itinerisltd/itineris-wp-coding-standards - ) - - # shellcheck disable=2046 - composer global require $( - IFS=' ' - echo "${PACKAGES[*]}" - ) "$@" + PACKAGES=( + cpriego/valet-linux:dev-master + wp-cli/wp-cli-bundle + itinerisltd/itineris-wp-coding-standards + ) + + # shellcheck disable=2046 + composer global require $( + IFS=' ' + echo "${PACKAGES[*]}" + ) "$@" } install_pip_packages() { - PACKAGES=( - csvkit - yamllint - ) - - for P in "${PACKAGES[@]}"; do - pipx install "${P}" "$@" - done + PACKAGES=( + csvkit + yamllint + ) + + for P in "${PACKAGES[@]}"; do + pipx install "${P}" "$@" + done } install_cargo_packages() { - PACKAGES=( - tree-sitter-cli - stylua - ) - - # shellcheck disable=2046 - cargo install $( - IFS=' ' - echo "${PACKAGES[*]}" - ) "$@" + PACKAGES=( + tree-sitter-cli + stylua + ) + + # shellcheck disable=2046 + cargo install $( + IFS=' ' + echo "${PACKAGES[*]}" + ) "$@" } post_install_packages() { - section_start 'Post package install' + section_start 'Post package install' - # shellcheck disable=2016 - echo 'Running `mariadb-install-db`' - sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql + # shellcheck disable=2016 + echo 'Running `mariadb-install-db`' + sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql - echo 'Enabling PHP extensions' - sudo sed -Ei '/^;extension=mysqli/s/^;//' /etc/php7/php.ini - sudo sed -Ei '/^;extension=gd/s/^;//' /etc/php7/php.ini + echo 'Enabling PHP extensions' + sudo sed -Ei '/^;extension=mysqli/s/^;//' /etc/php7/php.ini + sudo sed -Ei '/^;extension=gd/s/^;//' /etc/php7/php.ini - echo 'Installing `spotify-tui' - mkdir "${HOME}/.rustup" - rustup default stable - pamac install --no-confirm --no-upgrade spotify-tui + echo 'Installing `spotify-tui' + mkdir "${HOME}/.rustup" + rustup default stable + pamac install --no-confirm --no-upgrade spotify-tui } post_setup_arch_services() { - section_start 'Post setup arch services' + section_start 'Post setup arch services' - # shellcheck disable=2016 - echo 'Running `mysql_secure_installation`' - sudo mysql_secure_installation + # shellcheck disable=2016 + echo 'Running `mysql_secure_installation`' + sudo mysql_secure_installation - echo -e 'Creating wp mysql user' - sudo mysql -e "CREATE USER 'wp'@'localhost' IDENTIFIED BY 'wp'" - sudo mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'wp'@'localhost' WITH GRANT OPTION" - sudo mysql -e "FLUSH PRIVILEGES" + echo -e 'Creating wp mysql user' + sudo mysql -e "CREATE USER 'wp'@'localhost' IDENTIFIED BY 'wp'" + sudo mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'wp'@'localhost' WITH GRANT OPTION" + sudo mysql -e "FLUSH PRIVILEGES" } setup_arch_system_emoji_support() { - sudo pamac install noto-fonts-emoji - sudo cp ~/.dotfiles/templates/fonts-local.conf /etc/fonts/local.conf + sudo pamac install noto-fonts-emoji + sudo cp ~/.dotfiles/templates/fonts-local.conf /etc/fonts/local.conf } From c53117a715f0f66146705101ea0164df66ae06a9 Mon Sep 17 00:00:00 2001 From: codepuncher Date: Sun, 3 Aug 2025 11:55:31 +0100 Subject: [PATCH 2/2] chore(config): add ghostty config --- setup.sh | 199 +++++++++++++++++++++++----------------------- terminals/ghostty | 4 + 2 files changed, 104 insertions(+), 99 deletions(-) create mode 100644 terminals/ghostty diff --git a/setup.sh b/setup.sh index 05a4ba9..ebd9a73 100755 --- a/setup.sh +++ b/setup.sh @@ -5,134 +5,135 @@ SCRIPT_PATH=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) if [[ -f "${SCRIPT_PATH}/shell/functions" ]]; then - source "${SCRIPT_PATH}/shell/functions" + source "${SCRIPT_PATH}/shell/functions" fi section_start "Running from ${PWD}" # Initialize a few directories. init_dirs() { - section_start 'Creating ~/{Code/{misc,go,wordpress},Tools}' - mkdir -p "${HOME}"/{Code/{misc,go,wordpress},Tools} + section_start 'Creating ~/{Code/{misc,go,wordpress},Tools}' + mkdir -p "${HOME}"/{Code/{misc,go,wordpress},Tools} } backup() { - [ -e "${HOME}/${1}" ] && mkdir -p "${SCRIPT_PATH}/backups/$(dirname "${2}")" && mv "${HOME}/${1}" "${HOME}/.dotfiles/backups/${2}" + [ -e "${HOME}/${1}" ] && mkdir -p "${SCRIPT_PATH}/backups/$(dirname "${2}")" && mv "${HOME}/${1}" "${HOME}/.dotfiles/backups/${2}" } move_link() { - backup "${1}" "${2}" - from="${SCRIPT_PATH}/${2}" - to="${HOME}/${1}" - new_path="$(dirname "${to}")" - mkdir -p "${new_path}" - ln -s "${from}" "${to}" + backup "${1}" "${2}" + from="${SCRIPT_PATH}/${2}" + to="${HOME}/${1}" + new_path="$(dirname "${to}")" + mkdir -p "${new_path}" + ln -s "${from}" "${to}" } init_links() { - section_start 'Symlink dotfiles? [y/n]' - read -r resp - if [ "${resp}" = 'y' ] || [ "${resp}" = 'Y' ]; then - move_link .shell_variables shell/variables - move_link .shell_aliases shell/aliases - move_link .bashrc shell/bashrc - move_link .profile shell/profile - move_link .zshrc shell/zshrc - move_link .config/tmux tmux - move_link .config/nvim nvim - move_link .gitconfig git/gitconfig - move_link .config/alacritty/alacritty.toml terminals/alacritty.toml - move_link .config/spotifyd/spotifyd.conf media/spotifyd.conf - move_link .config/fontconfig fontconfig - move_link .config/ngrok/ngrok.yml web/ngrok.yml - - echo "Symlinking complete. Backups stored in ${SCRIPT_PATH}/backups." - return - fi - - echo 'Symlinking cancelled by user' + section_start 'Symlink dotfiles? [y/n]' + read -r resp + if [ "${resp}" = 'y' ] || [ "${resp}" = 'Y' ]; then + move_link .shell_variables shell/variables + move_link .shell_aliases shell/aliases + move_link .bashrc shell/bashrc + move_link .profile shell/profile + move_link .zshrc shell/zshrc + move_link .config/tmux tmux + move_link .config/nvim nvim + move_link .gitconfig git/gitconfig + move_link .config/alacritty/alacritty.toml terminals/alacritty.toml + move_link .config/ghostty/config terminals/ghostty + move_link .config/spotifyd/spotifyd.conf media/spotifyd.conf + move_link .config/fontconfig fontconfig + move_link .config/ngrok/ngrok.yml web/ngrok.yml + + echo "Symlinking complete. Backups stored in ${SCRIPT_PATH}/backups." + return + fi + + echo 'Symlinking cancelled by user' } install_packages() { - # TODO: support macOS - if [[ ! "${OSTYPE}" =~ ^linux ]]; then - return - fi - - section_start 'Install packages? [y/n]' - read -r resp - if [ "${resp}" != 'y' ] && [ "${resp}" != 'Y' ]; then - return - fi - - if grep --quiet 'ID=manjaro' /etc/os-release; then - # shellcheck disable=2119 - install_arch_packages - post_install_packages - setup_arch_services - post_setup_arch_services - elif grep --quiet --ignore-case microsoft /proc/sys/kernel/osrelease; then - install_wsl_packages - fi - # shellcheck disable=2119 - install_go_packages + # TODO: support macOS + if [[ ! "${OSTYPE}" =~ ^linux ]]; then + return + fi + + section_start 'Install packages? [y/n]' + read -r resp + if [ "${resp}" != 'y' ] && [ "${resp}" != 'Y' ]; then + return + fi + + if grep --quiet 'ID=manjaro' /etc/os-release; then + # shellcheck disable=2119 + install_arch_packages + post_install_packages + setup_arch_services + post_setup_arch_services + elif grep --quiet --ignore-case microsoft /proc/sys/kernel/osrelease; then + install_wsl_packages + fi + # shellcheck disable=2119 + install_go_packages } install_zinit() { - ZINIT_HOME="${HOME}/.zinit" - if [[ ! -f "${ZINIT_HOME}/bin/zinit.zsh" ]]; then - echo 'Zinit not installed. Installing...' - command mkdir -p "${ZINIT_HOME}" && command chmod g-rwX "${ZINIT_HOME}" - command git clone https://github.com/zdharma-continuum/zinit "${ZINIT_HOME}/bin" && - echo 'Zinit installed.' || - echo 'Zinit installation failed.' - fi + ZINIT_HOME="${HOME}/.zinit" + if [[ ! -f "${ZINIT_HOME}/bin/zinit.zsh" ]]; then + echo 'Zinit not installed. Installing...' + command mkdir -p "${ZINIT_HOME}" && command chmod g-rwX "${ZINIT_HOME}" + command git clone https://github.com/zdharma-continuum/zinit "${ZINIT_HOME}/bin" && + echo 'Zinit installed.' || + echo 'Zinit installation failed.' + fi } install_tpm() { - TMUX_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}/tmux" - TPM_PATH="${TMUX_HOME}/plugins/tpm" - if [[ -d "${TPM_PATH}" ]]; then - return - fi - - echo 'TPM not installed. Installing...' - git clone https://github.com/tmux-plugins/tpm \ - "${TPM_PATH}" && - echo "TPM installed. Don't forget to press prefix + I when opening tmux for the first time!" || - echo 'TPM installation failed.' + TMUX_HOME="${XDG_CONFIG_HOME:-${HOME}/.config}/tmux" + TPM_PATH="${TMUX_HOME}/plugins/tpm" + if [[ -d "${TPM_PATH}" ]]; then + return + fi + + echo 'TPM not installed. Installing...' + git clone https://github.com/tmux-plugins/tpm \ + "${TPM_PATH}" && + echo "TPM installed. Don't forget to press prefix + I when opening tmux for the first time!" || + echo 'TPM installation failed.' } install_composer() { - section_start 'Installing Composer' - EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" - - if [ "${EXPECTED_CHECKSUM}" != "${ACTUAL_CHECKSUM}" ]; then - echo >&2 'ERROR: Invalid installer checksum' - rm composer-setup.php - return - fi - - php composer-setup.php --quiet - rm composer-setup.php - sudo mv composer.phar /usr/local/bin/composer - # shellcheck disable=2119 - install_composer_packages + section_start 'Installing Composer' + EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" + php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" + ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" + + if [ "${EXPECTED_CHECKSUM}" != "${ACTUAL_CHECKSUM}" ]; then + echo >&2 'ERROR: Invalid installer checksum' + rm composer-setup.php + return + fi + + php composer-setup.php --quiet + rm composer-setup.php + sudo mv composer.phar /usr/local/bin/composer + # shellcheck disable=2119 + install_composer_packages } install_tools() { - section_start 'Install tools? [y/n]' - read -r resp - if [ "${resp}" != 'y' ] && [ "${resp}" != 'Y' ]; then - return - fi - - install_nvm - install_zinit - install_tpm - install_composer + section_start 'Install tools? [y/n]' + read -r resp + if [ "${resp}" != 'y' ] && [ "${resp}" != 'Y' ]; then + return + fi + + install_nvm + install_zinit + install_tpm + install_composer } install_packages @@ -140,6 +141,6 @@ install_tools init_dirs init_links if [[ "${SHELL}" != */zsh ]]; then - chsh -s "$(which zsh)" + chsh -s "$(which zsh)" fi command zsh diff --git a/terminals/ghostty b/terminals/ghostty new file mode 100644 index 0000000..c2b47c4 --- /dev/null +++ b/terminals/ghostty @@ -0,0 +1,4 @@ +background-opacity=0.75 +maximize=true +window-decoration=none +theme=tokyonight-storm