Skip to content

Commit

Permalink
First version
Browse files Browse the repository at this point in the history
  • Loading branch information
bigbruno committed Oct 8, 2023
1 parent 470e5c2 commit 492ea15
Show file tree
Hide file tree
Showing 10 changed files with 1,807 additions and 3 deletions.
6 changes: 3 additions & 3 deletions pkgbuild/PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Maintainer: Barnabé di Kartola <barnabedikartola@gmail.com>

pkgname=biglinux-package-template
pkgdesc="Package template for biglinux"
# depends=('')
pkgname=biglinux-bash-config
pkgdesc="Better interactive mode"
depends=('fzf' 'blesh-git' 'grc' 'bash-pureline-git' 'ripgrep' 'ttf-nerd-fonts-symbols-with-biglinux')
# makedepends=('')
# conflicts=('')
pkgver=$(date +%y.%m.%d)
Expand Down
50 changes: 50 additions & 0 deletions usr/bin/biglinux-change-default-shell
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/usr/bin/env bash

#Translation
export TEXTDOMAINDIR="/usr/share/locale"
export TEXTDOMAIN=biglinux-bash-config


backup_and_copy() {
src=$1
dest=$2

if [[ -e $dest ]]; then
counter=1
while [[ -e "${dest}.backup.${counter}" ]]; do
((counter++))
done

cp "$dest" "${dest}.backup.${counter}"
echo "Backup created: ${dest}.backup.${counter}."
fi

cp -f "$src" "$dest"
}

bash_power() {
backup_and_copy "/usr/share/biglinux/bash-config/bashrc" "$HOME/.bashrc"
backup_and_copy "/usr/share/biglinux/bash-config/blerc" "$HOME/.blerc"
backup_and_copy "/usr/share/biglinux/bash-config/pureline.conf" "$HOME/.pureline.conf"
backup_and_copy "/usr/share/biglinux/bash-config/KonsoleBash.profile" "$HOME/.local/share/konsole/Bash.profile"
sed -i 's|DefaultProfile=.*|DefaultProfile=Bash.profile|g' "$HOME/.config/konsolerc"
rm -f "$HOME/.bash-disable-blesh"
rm -f "$HOME/.bash-disable-colors"
}

if [[ "$1" = "bash-power" ]]; then
bash_power
elif [[ "$1" = "bash-normal" ]]; then
if [[ ! -e "$HOME/.blerc" ]]; then
bash_power
fi
echo 1 > "$HOME/.bash-disable-blesh"
echo 1 > "$HOME/.bash-disable-colors"
elif [[ "$1" = "zsh" ]]; then
sed -i 's|DefaultProfile=.*|DefaultProfile=Zsh.profile|g' "$HOME/.config/konsolerc"
else
echo $"Utilize uma das opções:"
echo "bash-power - " $"Bash + ble.sh + fzf e recursos para adicionar mais cores aos resultados"
echo "bash-normal - " $"Bash + fzf"
echo "zsh - " $"Zsh com diversos recursos inclusos"
fi
19 changes: 19 additions & 0 deletions usr/bin/fzf-finder
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash

# https://github.com/junegunn/fzf/blob/master/ADVANCED.md#using-fzf-as-interative-ripgrep-launcher
# Switch between Ripgrep launcher mode (CTRL-R) and fzf filtering mode (CTRL-F)
rm -f /tmp/rg-fzf-{r,f}
RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case "
INITIAL_QUERY="${*:-}"
: | fzf --ansi --disabled --query "$INITIAL_QUERY" \
--bind "start:reload($RG_PREFIX {q})+unbind(ctrl-r)" \
--bind "change:reload:sleep 0.1; $RG_PREFIX {q} || true" \
--bind "ctrl-f:unbind(change,ctrl-f)+change-prompt(2. fzf> )+enable-search+rebind(ctrl-r)+transform-query(echo {q} > /tmp/rg-fzf-r; cat /tmp/rg-fzf-f)" \
--bind "ctrl-r:unbind(ctrl-r)+change-prompt(1. ripgrep> )+disable-search+reload($RG_PREFIX {q} || true)+rebind(change,ctrl-f)+transform-query(echo {q} > /tmp/rg-fzf-f; cat /tmp/rg-fzf-r)" \
--color "hl:-1:underline,hl+:-1:underline:reverse" \
--prompt '1. ripgrep> ' \
--delimiter : \
--header '╱ CTRL-R (ripgrep mode) ╱ CTRL-F (fzf mode) ╱' \
--preview 'bat --color=always {1} --highlight-line {2}' \
--preview-window 'up,60%,border-bottom,+{2}+3/3,~3' \
--bind 'enter:become(vim {1} +{2})'
4 changes: 4 additions & 0 deletions usr/bin/fzf-pacman-install
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash

# https://aur.archlinux.org/packages/paruz
pacman --color always -Sl | sed -e "s: :/:; /installed/d" | cut -f 1 -d " " | fzf --multi --ansi --preview "pacman -Si {1}" | xargs -ro sudo pacman -S
4 changes: 4 additions & 0 deletions usr/bin/fzf-pacman-remove
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash

# https://aur.archlinux.org/packages/paruz
pacman --color always -Q | cut -f 1 -d ' ' | fzf --multi --ansi --preview 'pacman -Qi {1}' | xargs -ro sudo pacman -Rns
36 changes: 36 additions & 0 deletions usr/share/biglinux/bash-config/KonsoleBash.profile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[Appearance]
AntiAliasFonts=true
BoldIntense=false
ColorScheme=BigLinux Dark
EmojiFont=Noto Color Emoji,17,-1,5,50,0,0,0,0,0
Font=Hack,13,-1,5,50,0,0,0,0,0
LineSpacing=0
UseFontLineChararacters=false
WordModeAttr=false

[Cursor Options]
CursorShape=0
CustomCursorColor=0,0,127
UseCustomCursorColor=false

[General]
Command=/bin/bash
InvertSelectionColors=false
Name=Bash
Parent=FALLBACK/
TerminalCenter=false
TerminalMargin=0

[Interaction Options]
OpenLinksByDirectClickEnabled=false
UnderlineFilesEnabled=true

[Keyboard]
KeyBindings=default

[Scrolling]
HistorySize=500

[Terminal Features]
BidiTableDirOverride=true
BlinkingCursorEnabled=false
145 changes: 145 additions & 0 deletions usr/share/biglinux/bash-config/bashrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# -------------------------------------------------
# .bashrc Configuration
# -------------------------------------------------

# ----- PATH Configuration -----
# Add custom and standard binary locations to PATH
PATH="$HOME/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/usr/games:/sbin:$HOME/bin:$HOME/.local/bin"

# Only apply settings if bash is running interactively
case $- in
*i*) ;;
*) return;;
esac

# Load Blesh for enhanced interactive shell experience
if [[ -f /usr/share/blesh/ble.sh ]] && [[ ! -f ~/.bash-disable-blesh ]]; then
source /usr/share/blesh/ble.sh --noattach
fi

# ----- History Configuration -----
HISTCONTROL=ignoreboth # Prevent saving commands that start with a space and duplicates
shopt -s histappend # Append history rather than overwrite
HISTSIZE=1000 # Store up to 1000 commands in memory
HISTFILESIZE=2000 # Store up to 2000 commands in history file
shopt -s checkwinsize # Automatically adjust window size after each command

# ----- Color Support & Aliases -----
# Enable color support and set related 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'
fi

if [ ! -f ~/.bash-disable-colors ]; then
# GRC Configuration for colorizing command outputs
GRC_ALIASES=true
GRC="/usr/bin/grc"
if tty -s && [ -n "$TERM" ] && [ "$TERM" != "dumb" ] && [ -n "$GRC" ]; then
alias colourify="$GRC -es"
alias blkid='colourify blkid'
alias configure='colourify ./configure'
alias df='colourify df'
alias diff='colourify diff'
alias docker='colourify docker'
alias docker-compose='colourify docker-compose'
alias docker-machine='colourify docker-machine'
alias du='colourify du'
alias env='colourify env'
alias free='colourify free'
alias fdisk='colourify fdisk'
alias findmnt='colourify findmnt'
alias make='colourify make'
alias gcc='colourify gcc'
alias g++='colourify g++'
alias id='colourify id'
alias ip='colourify ip'
alias iptables='colourify iptables'
alias as='colourify as'
alias gas='colourify gas'
# alias journalctl='colourify journalctl'
alias kubectl='colourify kubectl'
alias ld='colourify ld'
# alias ls='colourify ls'
alias lsof='colourify lsof'
alias lsblk='colourify lsblk'
alias lspci='colourify lspci'
alias netstat='colourify netstat'
alias ping='colourify ping'
alias ss='colourify ss'
alias traceroute='colourify traceroute'
alias traceroute6='colourify traceroute6'
alias head='colourify head'
alias tail='colourify tail'
alias dig='colourify dig'
alias mount='colourify mount'
alias ps='colourify ps'
alias mtr='colourify mtr'
alias semanage='colourify semanage'
alias getsebool='colourify getsebool'
alias ifconfig='colourify ifconfig'
alias sockstat='colourify sockstat'
fi

# Color settings for GCC outputs
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# Use bat for cat if available
if [ -f /usr/bin/bat ]; then
alias cat='bat --paging=never'
fi

# eza Configuration for enhanced directory listings
if [ -f /usr/bin/eza ]; then
alias ls='eza --icons --group-directories-first' # ls
alias l='eza -lbF --git --icons--group-directories-first' # list, size, type, git
alias ll='eza -lbGF --git --icons--group-directories-first' # long list
alias llm='eza -lbGF --git --sort=modified --icons' # long list, modified date sort
alias la='eza -lbhHigUmuSa --time-style=long-iso --git --color-scale --icons' # all list
alias lx='eza -lbhHigUmuSa@ --time-style=long-iso --git --color-scale --icons' # all + extended list

# speciality views
alias lS='eza -1 --icons' # one column, just names
alias lt='eza --tree --level=2 --icons' # tree
fi
fi

# More ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'

# Load custom aliases
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

# Auto completion Configuration
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

# ----- NVM Configuration -----
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

# FZF Configuration
if [ -f /usr/share/fzf/key-bindings.bash ]; then
_ble_contrib_fzf_base=/usr/share/fzf/
. /usr/share/fzf/completion.bash
. /usr/share/fzf/key-bindings.bash
fi

# Load Pureline Theme
source /usr/share/pureline/pureline ~/.pureline.conf

# Attach Blesh if available
[[ ${BLE_VERSION-} ]] && ble-attach
Loading

0 comments on commit 492ea15

Please sign in to comment.