From 80337427d2a3f24bb99c84e2164c910b1a5e3da4 Mon Sep 17 00:00:00 2001 From: Luca Pellegrini Date: Wed, 4 Jan 2023 10:16:59 +0100 Subject: [PATCH] bash: set custom configuration zsh: set custom configuration, with zap plugin manager and powerlevel10k added .gitignore --- .gitignore | 1 + bash/.bash_aliases | 47 +++++++++++++ bash/.bash_profile | 21 ++++++ bash/.bashrc | 150 ++++++++++++++--------------------------- bash/.bashrc-linuxmint | 117 ++++++++++++++++++++++++++++++++ bash/.profile | 2 + zsh/.zsh_aliases | 47 +++++++++++++ zsh/.zshrc | 36 ++++++++++ 8 files changed, 321 insertions(+), 100 deletions(-) create mode 100644 .gitignore create mode 100644 bash/.bash_aliases create mode 100644 bash/.bash_profile create mode 100644 bash/.bashrc-linuxmint create mode 100644 zsh/.zsh_aliases create mode 100644 zsh/.zshrc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..727bc05 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.directory diff --git a/bash/.bash_aliases b/bash/.bash_aliases new file mode 100644 index 0000000..4027807 --- /dev/null +++ b/bash/.bash_aliases @@ -0,0 +1,47 @@ +# .bash_aliases +# Alias definitions +# Questo file viene letto da ogni shell bash, dopo il file '~/.bashrc' + +# Common commands +alias q='exit' +alias c='clear' +alias h='history' +alias cs='clear;ls' +alias p='cat' +alias o='xdg-open' # open any file in the configured default application +#alias t='time' +#alias k='kill' +alias dolphin='dolphin --new-window' + +# ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Colorize grep output (good for log files) +alias grep='grep --color=auto' +alias egrep='egrep --color=auto' +alias fgrep='fgrep --color=auto' + +# confirm before overwriting something +alias cp="cp -i" +alias mv='mv -i' +alias rm='rm -i' + +# Directories +alias home='cd ~' +alias data='cd /Data' +alias root='cd /' +alias ..='cd ..' +alias ...='cd ..; cd ..' +alias ....='cd ..; cd ..; cd ..' +# Directories in Data partition +#alias dendron-dir='cd /Data/Dendron' +alias nextcloud='cd /Data/Nextcloud' + +# Git +alias g='git' +#alias g-st='git status' +#alias g-com='git commit' +#alias pull='git pull' +#alias push='git push' diff --git a/bash/.bash_profile b/bash/.bash_profile new file mode 100644 index 0000000..754e5a6 --- /dev/null +++ b/bash/.bash_profile @@ -0,0 +1,21 @@ +# .bash_profile +# In alcuni sistemi Unix-like, tra cui macOS, le impostazioni di ogni shell bash, di default, vengono salvate e lette dal file '~/.bash_profile' + +# Source '~/.bashrc' if it exists +# Legge il file '~/.bashrc', specifico per ogni utente +if [ -f ~/.bashrc ]; then + . ~/.bashrc +fi +# The dot (.) command is a synonym for the source command + +# User specific environment and startup programs +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/.local/bin" ] ; then + PATH="$HOME/.local/bin:$PATH" +fi +export PATH diff --git a/bash/.bashrc b/bash/.bashrc index b488fcc..7613edd 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -1,117 +1,67 @@ -# ~/.bashrc: executed by bash(1) for non-login shells. -# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) -# for examples +#!/bin/bash +# .bashrc -# If not running interactively, don't do anything -case $- in - *i*) ;; - *) return;; -esac +# Source global definitions +if [ -f /etc/bashrc ]; then + . /etc/bashrc +fi +# The dot (.) command is a synonym for the source command -# don't put duplicate lines or lines starting with space in the history. -# See bash(1) for more options -HISTCONTROL=ignoreboth +# User specific environment +if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]] +then + PATH="$HOME/.local/bin:$HOME/bin:$PATH" +fi +export PATH -# append to the history file, don't overwrite it -shopt -s histappend +# Uncomment the following line if you don't like systemctl's auto-paging feature: +# export SYSTEMD_PAGER= -# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) -HISTSIZE=1000 -HISTFILESIZE=2000 - -# check the window size after each command and, if necessary, -# update the values of LINES and COLUMNS. -shopt -s checkwinsize - -# If set, the pattern "**" used in a pathname expansion context will -# match all files and zero or more directories and subdirectories. -#shopt -s globstar - -# make less more friendly for non-text input files, see lesspipe(1) -[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" - -# set variable identifying the chroot you work in (used in the prompt below) -if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then - debian_chroot=$(cat /etc/debian_chroot) +# User specific aliases and functions +if [ -d ~/.bashrc.d ]; then + for rc in ~/.bashrc.d/*; do + if [ -f "$rc" ]; then + . "$rc" + fi + done fi -# set a fancy prompt (non-color, unless we know we "want" color) +unset rc + +# Don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth +#HISTCONTROL=erasedups:ignoredups:ignorespace + +# Append to the history file, don't overwrite it +shopt -s histappend +# opzione già presente in /etc/bashrc in Fedora Linux +#PROMPT_COMMAND='history -a' +# opzione presente nel .bashrc di Chris Titu Tech + +# For setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=10000 + +# Check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize +# opzione già presente in /etc/bashrc in Fedora Linux + +# Set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac -# uncomment for a colored prompt, if the terminal has the capability; turned -# off by default to not distract the user: the focus in a terminal window -# should be on the output of commands, not on the prompt -#force_color_prompt=yes - -if [ -n "$force_color_prompt" ]; then - if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then - # We have color support; assume it's compliant with Ecma-48 - # (ISO/IEC-6429). (Lack of such support is extremely rare, and such - # a case would tend to support setf rather than setaf.) - color_prompt=yes - else - color_prompt= - fi -fi - -if [ "$color_prompt" = yes ]; then - PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' -else - PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' -fi -unset color_prompt force_color_prompt - -# If this is an xterm set the title to user@host:dir -case "$TERM" in -xterm*|rxvt*) - PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" - ;; -*) - ;; -esac - -# enable color support of ls and also add handy aliases -if [ -x /usr/bin/dircolors ]; then - test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" - alias ls='ls --color=auto' - #alias dir='dir --color=auto' - #alias vdir='vdir --color=auto' - - alias grep='grep --color=auto' - alias fgrep='fgrep --color=auto' - alias egrep='egrep --color=auto' -fi - -# colored GCC warnings and errors -#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' - -# some more ls aliases -alias ll='ls -alF' -alias la='ls -A' -alias l='ls -CF' - -# Add an "alert" alias for long running commands. Use like so: -# sleep 10; alert -alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' - -# Alias definitions. +# Alias definitions # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. - if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi -# enable programmable completion features (you don't need to enable -# this, if it's already enabled in /etc/bash.bashrc and /etc/profile -# sources /etc/bash.bashrc). -if ! shopt -oq posix; then - if [ -f /usr/share/bash-completion/bash_completion ]; then - . /usr/share/bash-completion/bash_completion - elif [ -f /etc/bash_completion ]; then - . /etc/bash_completion - fi -fi +# Export some variables +export EDITOR="kate" +export TERMINAL="konsole" +export BROWSER="firefox" diff --git a/bash/.bashrc-linuxmint b/bash/.bashrc-linuxmint new file mode 100644 index 0000000..b488fcc --- /dev/null +++ b/bash/.bashrc-linuxmint @@ -0,0 +1,117 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi diff --git a/bash/.profile b/bash/.profile index d89ea5a..5ec9d50 100644 --- a/bash/.profile +++ b/bash/.profile @@ -11,10 +11,12 @@ # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists + # Legge il file '~/.bashrc', specifico per ogni utente if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi +# The dot (.) command is a synonym for the source command # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then diff --git a/zsh/.zsh_aliases b/zsh/.zsh_aliases new file mode 100644 index 0000000..3c213aa --- /dev/null +++ b/zsh/.zsh_aliases @@ -0,0 +1,47 @@ +# .zsh_aliases +# Alias definitions +# Questo file viene letto da ogni shell zsh, dopo il file '~/.zshrc' + +# Common commands +alias q='exit' +alias c='clear' +alias h='history' +alias cs='clear;ls' +alias p='cat' +alias o='xdg-open' # open any file in the configured default application +#alias t='time' +#alias k='kill' +alias dolphin='dolphin --new-window' + +# ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Colorize grep output (good for log files) +alias grep='grep --color=auto' +alias egrep='egrep --color=auto' +alias fgrep='fgrep --color=auto' + +# confirm before overwriting something +alias cp="cp -i" +alias mv='mv -i' +alias rm='rm -i' + +# Directories +alias home='cd ~' +alias data='cd /Data' +alias root='cd /' +alias ..='cd ..' +alias ...='cd ..; cd ..' +alias ....='cd ..; cd ..; cd ..' +# Directories in Data partition +#alias dendron-dir='cd /Data/Dendron' +alias nextcloud='cd /Data/Nextcloud' + +# Git +alias g='git' +#alias g-st='git status' +#alias g-com='git commit' +#alias pull='git pull' +#alias push='git push' diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..bcd957d --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,36 @@ +#!/bin/zsh +# .zshrc + +# 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 + +# Source '~/.local/share/zap/zap.zsh' if it exists +# Legge il file di configurazione del plugin manager Zap, se presente +if [ -f "$HOME/.local/share/zap/zap.zsh" ]; then + source "$HOME/.local/share/zap/zap.zsh" +fi + +# History +HISTFILE=~/.zsh_history +HISTSIZE=1000 +SAVEHIST=2000 + +# Export some variables +export EDITOR="kate" +export TERMINAL="konsole" +export BROWSER="firefox" + +# Alias definitions +if [ -f "$HOME/.zsh_aliases" ]; then + source "$HOME/.zsh_aliases" +fi + +# Plugins (Zap plugin manager) +plug "romkatv/powerlevel10k" + +# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh