diff --git a/install.sh b/install.sh index 16fbcb3..25add87 100755 --- a/install.sh +++ b/install.sh @@ -2,6 +2,7 @@ # # Author: Severin Kaderli # Usage: ./install.sh +. utils.sh ####################################### # Configuration variables @@ -29,6 +30,7 @@ LINKED_FILES_HOME=( ".config/termite" ".crontab" ".dircolors" + ".env" ".gitconfig" ".gtkrc-2.0.mine" ".gtkrc-2.0" @@ -46,37 +48,6 @@ SYSTEMD_SERVICES=( "bumblebeed" ) -####################################### -# Directory variables -####################################### -DIR="$( cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" -SYSTEM_DIR="$DIR/system" -PACKAGES_DIR="$DIR/packages" - -####################################### -# Helper functions -####################################### -# Function to display fancy headers -function print_header() { - echo -e "\n\e[32m########################################" - echo -e "# $1" - echo -e "########################################\e[39m" -} - -# Function to set owner and permission of a file -function set_permission() { - echo -e "- Changing permission of $3 to $1" - sudo chown -R "$1" "$3" - echo -e "- Changing permission of $3 to $2" - sudo chmod -R "$2" "$3" -} - -# Function to enable a service -function enable_service() { - echo -e "- Enabling service $1" - sudo systemctl enable "$1" -} - ####################################### # Main code ####################################### diff --git a/post-install.sh b/post-install.sh new file mode 100755 index 0000000..48caa04 --- /dev/null +++ b/post-install.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# +# This is the post installation script. This should be executed only after +# install.sh has been executed completly and the system has been rebooted +# after that. +# +# This script installs npm packages. +# +# Author: Severin Kaderli +# Usage: ./post-install.sh +. utils.sh + +####################################### +# Configuration variables +####################################### +# Array of npm packages which should be installed globally +NPM_PACKAGES=( + "@vue/cli" + "gatsby-cli" + "npm-check-updates" +) + +####################################### +# Main code +####################################### +# Install global npm packages +print_header "Installing global npm packages" +npm i -g "${NPM_PACKAGES[@]}" \ No newline at end of file diff --git a/system/.bashrc b/system/.bashrc index 13179f6..f47106d 100644 --- a/system/.bashrc +++ b/system/.bashrc @@ -1,29 +1,11 @@ #!/bin/bash -# 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 +# Bash configuration 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 -# 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|xterm-color|*-256color) color_prompt=yes;; @@ -41,6 +23,7 @@ if [ -f $HOME/.aliases ]; then . $HOME/.aliases fi +# Source git-prompt script if [ -f /usr/share/git/completion/git-prompt.sh ]; then . /usr/share/git/completion/git-prompt.sh fi @@ -51,53 +34,7 @@ if [ -f /etc/bash_completion ]; then fi complete -cf sudo -# Setting default editor and terminal -export VISUAL=vim -export EDITOR="$VISUAL" -export TERMINAL=termite -export QT_QPA_PLATFORMTHEME=qt5ct - -# ibus -export GTK_IM_MODULE=xim -export XMODIFIERS=@im=ibus -export QT_IM_MODULE=xim - -# wine -export WINEDEBUG=-all -export __GL_FSAA_MODE=0 -export __GL_DEFAULT_LOG_ANISO=0 -export __GL_LOG_MAX_ANISO=0 -export STAGING_SHARED_MEMORY=1 -export STAGING_RT_PRIORITY_SERVER=90 -export WINEESYNC=1 -export PBA_ENABLE=1 -#export LD_PRELOAD="libpthread.so.0 libGL.so.1" -export __GL_THREADED_OPTIMIZATIONS=1 -export __GL_SYNC_TO_VBLANK=0 -export __GL_YIELD=NOTHING - -# Path -if [ -d "$HOME/bin" ]; then - export PATH="$PATH:$HOME/bin" -fi -export PATH="$PATH:$GEM_HOME/bin" - -# Color codes for bash prompt -Reset='\033[0m' -Green='\033[32m' -Red='\033[31m' -Blue='\033[34m' -Yellow='\033[33m' - -# Set bash prompt -set_bash_prompt() { - PS1="${Reset}┌─" - PS1="${PS1}${Red}[\t]" - PS1="${PS1}${Blue}[\h]" - PS1="${PS1}${Yellow}[\w]" - PS1="${PS1}${Blue}$(__git_ps1 "[%s]")" - PS1="${PS1}${Reset}\n└─╼ " - export MSYS2_PS1="$PS1" -} - -export PROMPT_COMMAND=set_bash_prompt \ No newline at end of file +# Sourcing alias definitions +if [ -f $HOME/.env ]; then + . $HOME/.env +fi \ No newline at end of file diff --git a/system/.env b/system/.env new file mode 100644 index 0000000..1237ff6 --- /dev/null +++ b/system/.env @@ -0,0 +1,57 @@ +#!/bin/bash + +# Bash +export HISTCONTROL=ignoreboth +export HISTSIZE=1000 +export HISTFILESIZE=2000 + +# Setting default editor and terminal +export VISUAL=vim +export EDITOR="$VISUAL" +export TERMINAL=termite +export QT_QPA_PLATFORMTHEME=qt5ct + +# Ibus +export GTK_IM_MODULE=xim +export XMODIFIERS=@im=ibus +export QT_IM_MODULE=xim + +# Wine +export WINEDEBUG=-all +export __GL_FSAA_MODE=0 +export __GL_DEFAULT_LOG_ANISO=0 +export __GL_LOG_MAX_ANISO=0 +export STAGING_SHARED_MEMORY=1 +export STAGING_RT_PRIORITY_SERVER=90 +export WINEESYNC=1 +export PBA_ENABLE=1 +#export LD_PRELOAD="libpthread.so.0 libGL.so.1" +export __GL_THREADED_OPTIMIZATIONS=1 +export __GL_SYNC_TO_VBLANK=0 +export __GL_YIELD=NOTHING + +# npm +export npm_config_prefix="$HOME/.node_modules" + +# Adding folders to the PATH variable +export PATH="$PATH:$HOME/bin:$HOME/.node_modules/bin" + +# Color codes for bash prompt +RESET='\033[0m' +GREEN='\033[32m' +RED='\033[31m' +BLUE='\033[34m' +YELLOW='\033[33m' + +# Set bash prompt +set_bash_prompt() { + PS1="${Reset}┌─" + PS1="${PS1}${RED}[\t]" + PS1="${PS1}${BLUE}[\h]" + PS1="${PS1}${YELLOW}[\w]" + PS1="${PS1}${BLUE}$(__git_ps1 "[%s]")" + PS1="${PS1}${RESET}\n└─╼ " + export MSYS2_PS1="$PS1" +} + +export PROMPT_COMMAND=set_bash_prompt \ No newline at end of file diff --git a/utils.sh b/utils.sh new file mode 100644 index 0000000..ed25673 --- /dev/null +++ b/utils.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# Author: Severin Kaderli + +####################################### +# Directory variables +####################################### +DIR="$( cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)" +SYSTEM_DIR="$DIR/system" +PACKAGES_DIR="$DIR/packages" + +####################################### +# Bash color code variables +####################################### +RESET='\033[0m' +GREEN='\033[32m' +RED='\033[31m' +BLUE='\033[34m' +YELLOW='\033[33m' + +####################################### +# Helper functions +####################################### +# Function to display fancy headers +function print_header() { + echo -e "$GREEN########################################" + echo -e "# $1" + echo -e "########################################$RESET" +} + +# Function to set owner and permission of a file +function set_permission() { + echo -e "- Changing permission of $3 to $1" + sudo chown -R "$1" "$3" + echo -e "- Changing permission of $3 to $2" + sudo chmod -R "$2" "$3" +} + +# Function to enable a service +function enable_service() { + echo -e "- Enabling service $1" + sudo systemctl enable "$1" +} \ No newline at end of file