Last active
September 25, 2024 16:08
-
-
Save balmacefa/87818833c9ada45af09b5f8ac0b179a7 to your computer and use it in GitHub Desktop.
install OhMyZsh + powerlevel10k + plugins in ["debian","ubuntu" ,"linuxmint","pop","arch","manjaro""fedora","centos","rhel","solus"]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Created by hmike | |
# https://gitlab.com/whitemike00/scripts/-/blob/master/install_zsh-omz.sh | |
############################ INSTALL <----------------------------******************* | |
# curl https://gist.githubusercontent.com/balmacefa/87818833c9ada45af09b5f8ac0b179a7/raw/908705adea903a1d34e999241fcf1e39c3c3f172/install_OhMyZSH_PowerLevel10k.sh | sh | |
# mod by: @balmacefa | |
set -o errexit | |
set -o pipefail | |
APPS="zsh git curl wget unzip" | |
OS=$(source /etc/os-release && echo "${ID}") | |
DATE=$(date '+%d.%m.%Y_%Hh%M') | |
# Installation of packages | |
case ${OS} in | |
"debian" | "ubuntu" | "linuxmint" | "pop") | |
sudo apt update && sudo apt install $APPS -y | |
;; | |
"arch" | "manjaro") | |
sudo pacman -Sy $APPS --noconfirm | |
;; | |
"fedora" | "centos" | "rhel") | |
sudo dnf install $APPS -y | |
;; | |
"solus") | |
sudo eopkg install $APPS -y | |
;; | |
*) | |
echo -e "\e[31mSystem can't be defined." | |
exit | |
;; | |
esac | |
# Fonts installlation | |
if [[ ! -d /usr/share/fonts/hack ]]; then | |
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/Hack.zip -O "${HOME}"/hack.zip | |
unzip "${HOME}"/hack.zip -d "${HOME}"/hack && rm "$HOME"/hack.zip | |
find "${HOME}"/hack/ -iname "*Windows*" -exec rm {} \; | |
sudo mkdir -p /usr/share/fonts/hack | |
sudo mv "${HOME}"/hack/* /usr/share/fonts/hack | |
rmdir "${HOME}"/hack | |
fi | |
# Change default shell | |
sudo chsh -s /usr/bin/zsh "${USER}" | |
# Backup old zshrc | |
if [[ -f "${HOME}"/.zshrc ]]; then | |
cp "${HOME}"/.zshrc "${HOME}"/.zshrc.backup_"${DATE}" | |
elif [[ ! -f "${HOME}"/.zshrc ]]; then | |
touch "${HOME}"/.zshrc | |
fi | |
# Backup old installation of oh-my-zsh | |
if [[ -d "${HOME}"/.oh-my-zsh ]]; then | |
mv "${HOME}"/.oh-my-zsh "${HOME}"/.oh-my-zsh.backup_"${DATE}" | |
fi | |
# Installation OhMyZsh + powerlevel10k + plugins | |
git clone https://github.com/ohmyzsh/ohmyzsh.git "${HOME}"/.oh-my-zsh | |
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions | |
git clone https://github.com/zsh-users/zsh-completions ${ZSH_CUSTOM:=~/.oh-my-zsh/custom}/plugins/zsh-completions | |
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting | |
git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k | |
echo '# Path to your oh-my-zsh installation | |
export ZSH="$HOME/.oh-my-zsh" | |
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. | |
# Initialization code that may require console input (password prompts, [y/n] | |
# confirmations, etc.) must go above this block, everything else may go below. | |
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then | |
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" | |
fi | |
# Fix slowness of pastes with zsh-syntax-highlighting.zsh | |
pasteinit() { | |
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]} | |
zle -N self-insert url-quote-magic | |
} | |
pastefinish() { | |
zle -N self-insert $OLD_SELF_INSERT | |
} | |
zstyle :bracketed-paste-magic paste-init pasteinit | |
zstyle :bracketed-paste-magic paste-finish pastefinish | |
source ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh | |
export ZSH_HIGHLIGHT_MAXLENGTH="60" | |
# ZSH Theme | |
ZSH_THEME="powerlevel10k/powerlevel10k" | |
# Uncomment the following line to use case-sensitive completion. | |
CASE_SENSITIVE="off" | |
# Uncomment the following line to use hyphen-insensitive completion. | |
# Case-sensitive completion must be off. _ and - will be interchangeable. | |
HYPHEN_INSENSITIVE="true" | |
# Uncomment the following line to disable bi-weekly auto-update checks. | |
DISABLE_AUTO_UPDATE="off" | |
# Uncomment the following line to automatically update without prompting. | |
DISABLE_UPDATE_PROMPT="off" | |
# Uncomment the following line to change how often to auto-update (in days). | |
export UPDATE_ZSH_DAYS=15 | |
# Uncomment the following line if pasting URLs and other text is messed up. | |
DISABLE_MAGIC_FUNCTIONS="true" | |
# Uncomment the following line to disable colors in ls. | |
DISABLE_LS_COLORS="off" | |
# Uncomment the following line to disable auto-setting terminal title. | |
DISABLE_AUTO_TITLE="off" | |
# Uncomment the following line to enable command auto-correction. | |
ENABLE_CORRECTION="true" | |
# Uncomment the following line to display red dots whilst waiting for completion. | |
COMPLETION_WAITING_DOTS="true" | |
# History time stamp | |
# You can set one of the optional three formats: | |
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" | |
HIST_STAMPS="dd.mm.yyyy" | |
# ZSH plugins | |
plugins=( | |
git | |
zsh-autosuggestions | |
zsh-completions | |
zsh-syntax-highlighting) | |
source $ZSH/oh-my-zsh.sh | |
# User configuration | |
export MANPATH="/usr/local/man:$MANPATH" | |
# You may need to manually set your language environment | |
# export LANG=en_US.UTF-8 | |
# Preferred editor for local and remote sessions | |
if [[ -n $SSH_CONNECTION ]]; then | |
export EDITOR='vim' | |
else | |
export EDITOR='vim' | |
fi | |
# Compilation flags | |
export ARCHFLAGS="-arch x86_64" | |
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. | |
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh' > "${HOME}"/.zshrc | |
echo -e "\e[32mInstallation is finished you must relaunch your $USER session to apply the configurations.\n\e[32mTo get display of special characters, you must set up fonts in your terminal options.\e[0m" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment