From 4037b9ce0a1f224eaec6dd90f18312b1fbaa2d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borja=20Paz=20Rodr=C3=ADguez?= Date: Mon, 13 May 2024 20:13:53 +0200 Subject: [PATCH] refactor(config): update zshrc settings --- .github/workflows/ci.yml | 8 ++--- README.md | 2 +- git/.gitconfig | 7 ++++ git/.gitignore_global | 4 ++- scripts/core/_main.sh | 2 +- scripts/core/selector.sh | 8 +++++ scripts/docker/logs | 25 ++++++++++++++ scripts/system/empty_trash | 68 ++++++++++++++++++++++++++++++++++++++ shell/zsh/.zshrc | 11 ++++++ 9 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 scripts/core/selector.sh create mode 100755 scripts/docker/logs create mode 100755 scripts/system/empty_trash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50dea20..9368d81 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: steps: - name: ⬇️ Checkout project - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: ⚪️ Set needed environment variables run: | @@ -29,10 +29,10 @@ jobs: steps: - name: ⬇️ Checkout project - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: 🐿️ Setup go version - uses: actions/setup-go@v2 + uses: actions/setup-go@v5 with: go-version: "^1.16.1" @@ -59,7 +59,7 @@ jobs: steps: - name: ⬇️ Checkout project - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: 📥 Install .dotfiles run: echo "$HOME/.dotfiles" | bash installer diff --git a/README.md b/README.md index ae2244e..b0d1349 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

-![GitHub CI Workflow Status](https://img.shields.io/github/workflow/status/borjapazr/dotfiles/CI?style=flat-square&logo=github&label=CI) +![GitHub CI Workflow Status](https://img.shields.io/github/actions/workflow/status/borjapazr/dotfiles/ci.yml?style=flat-square&logo=github&label=CI)

💻🚀 Custom dotfiles for UNIX based systems diff --git a/git/.gitconfig b/git/.gitconfig index dc4cb9b..2a6be0a 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -31,6 +31,7 @@ [push] default = simple + autoSetupRemote = true [apply] whitespace = fix @@ -81,6 +82,9 @@ [commit] gpgsign = true +[credential] + helper = osxkeychain + [tag] gpgsign = true @@ -90,3 +94,6 @@ [alias] nah = "!f(){ git reset --hard; git clean -df; if [ -d ".git/rebase-apply" ] || [ -d ".git/rebase-merge" ]; then git rebase --abort; fi; }; f" undo = "reset HEAD~1 --mixed" + +[init] + defaultBranch = main diff --git a/git/.gitignore_global b/git/.gitignore_global index eab484a..7a9685f 100644 --- a/git/.gitignore_global +++ b/git/.gitignore_global @@ -11,8 +11,10 @@ # Clojure .lein-repl-history .lein-failures -completer.hist +completer.histw .nrepl-port +.lsp +.clj-kondo # Scala libsigar-universal64-macosx.dylib diff --git a/scripts/core/_main.sh b/scripts/core/_main.sh index 42e0447..941c5b2 100755 --- a/scripts/core/_main.sh +++ b/scripts/core/_main.sh @@ -1,5 +1,5 @@ if ! ${DOT_MAIN_SOURCED:-false}; then - for file in $DOTFILES_PATH/scripts/core/{args,docs,dot,git,log,platform,str}.sh; do + for file in $DOTFILES_PATH/scripts/core/{args,docs,dot,git,log,platform,selector,str}.sh; do source "$file" done unset file diff --git a/scripts/core/selector.sh b/scripts/core/selector.sh new file mode 100644 index 0000000..d8940f0 --- /dev/null +++ b/scripts/core/selector.sh @@ -0,0 +1,8 @@ +selector::select() { + options="" + while read -r data; do + options="$options\n$data" + done + + printf "$options" | choose -c 31d6e0 +} diff --git a/scripts/docker/logs b/scripts/docker/logs new file mode 100755 index 0000000..0e28783 --- /dev/null +++ b/scripts/docker/logs @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source "$DOTFILES_PATH/scripts/core/_main.sh" + +##? Shows the logs of the selected container +##? +##? Usage: +##? logs +docs::parse "$@" + +if docker ps >/dev/null 2>&1; then + container=$(docker ps | awk '{if (NR!=1) print $1 ": " $(NF)}' | fzf --height 40%) + + if [[ -n $container ]]; then + container_id=$(echo $container | awk -F ': ' '{print $1}') + + docker logs -f --tail 100 $container_id + else + echo "You haven't selected any container! ༼つ◕_◕༽つ" + fi +else + echo "Docker daemon is not running! (ಠ_ಠ)" +fi diff --git a/scripts/system/empty_trash b/scripts/system/empty_trash new file mode 100755 index 0000000..4d9d022 --- /dev/null +++ b/scripts/system/empty_trash @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source "$DOTLY_PATH/scripts/core/_main.sh" + +##? Empty the trash and remove cache files +#?? 1.0.0 +##? +##? Usage: +##? empty_trash +docs::parse "$@" + +free_space_in_home() { + df -h ~ | tail -n1 | awk '{print $4}' +} + +free_space_before_empty=$(free_space_in_home) + +ls /Volumes | grep -v GoogleDrive | xargs -I_ sudo rm -rfv /Volumes/_/.Trashes +sudo rm -rfv ~/.Trash/* +echo '🗑 All trashes empty' + +sudo rm -rfv /private/var/log/asl/*.asl +sudo rm -rfv /var/log/asl/*.asl +echo '📜 Mac logs empty' + +sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent' +echo '⏬ Mac downloads history empty' + +rm -rf "$HOME/Movies/"*.fcpbundle"/"*"/Render Files/High Quality Media" +echo '🎬 Final Cut rendered media cleared' + +brew cleanup +brew cleanup --prune-prefix +rm -rf ~/Library/Caches/Homebrew +echo '🍺 Brew cache cleared' + +rm -rf ~/Library/Caches/com.tinyspeck.slackmacgap +rm -rf ~/Library/Caches/com.tinyspeck.slackmacgap.ShipIt +rm -rf ~/Library/Application Support/Slack/Cache +rm -rf "$HOME/Library/Application Support/Slack/Service Worker/CacheStorage" +echo '💬 Slack cache cleared' + +rm -rf ~/Library/Caches/com.spotify.client/Data +echo '🎶 Spotify cache cleared' + +rm -rf ~/Library/Caches/JetBrains +echo '🅸 JetBrains cache cleared' + +rm -rf ~/Library/Caches/Yarn/ +echo '💪 Yarn cache cleared' + +rm -rf ~/.gradle/wrapper/dists/ +rm -rf ~/.gradle/caches/ +echo '🐘 Gradle cache cleared' + +rm -rf ~/.composer/cache/ +echo '👨‍🎤 Composer cache cleared' + +rm -rf ~/Library/Caches/Google/Chrome || true +rm -rf "$HOME/Library/Application Support/Google/Chrome/"*"/Service Worker/CacheStorage" || true +rm -rf "$HOME/Library/Application Support/Google/Chrome/"*"/Application Cache/Cache" || true +echo '🟡 Chrome cache cleared' + +free_space_after_empty=$(free_space_in_home) + +echo "Done! Free space before: $free_space_before_empty, free space now: $free_space_after_empty" diff --git a/shell/zsh/.zshrc b/shell/zsh/.zshrc index 9bd86c5..9dce5ed 100644 --- a/shell/zsh/.zshrc +++ b/shell/zsh/.zshrc @@ -11,6 +11,11 @@ fi # Options setopt HIST_IGNORE_ALL_DUPS setopt HIST_FCNTL_LOCK +setopt HIST_SAVE_NO_DUPS +setopt HIST_REDUCE_BLANKS +setopt INC_APPEND_HISTORY_TIME +setopt EXTENDED_HISTORY +setopt HIST_NO_STORE setopt +o nomatch unset zle_bracketed_paste @@ -19,10 +24,16 @@ ZSH_THEME="powerlevel10k/powerlevel10k" ZLE_RPROMPT_INDENT=0 export LS_COLORS="no=00:rs=0:fi=00:di=01;34:ln=36:mh=04;36:pi=04;01;36:so=04;33:do=04;01;36:bd=01;33:cd=33:or=31:mi=01;37;41:ex=01;36:su=01;04;37:sg=01;04;37:ca=01;37:tw=01;37;44:ow=01;04;34:st=04;37;44:*.7z=01;32:*.ace=01;32:*.alz=01;32:*.arc=01;32:*.arj=01;32:*.bz=01;32:*.bz2=01;32:*.cab=01;32:*.cpio=01;32:*.deb=01;32:*.dz=01;32:*.ear=01;32:*.gz=01;32:*.jar=01;32:*.lha=01;32:*.lrz=01;32:*.lz=01;32:*.lz4=01;32:*.lzh=01;32:*.lzma=01;32:*.lzo=01;32:*.rar=01;32:*.rpm=01;32:*.rz=01;32:*.sar=01;32:*.t7z=01;32:*.tar=01;32:*.taz=01;32:*.tbz=01;32:*.tbz2=01;32:*.tgz=01;32:*.tlz=01;32:*.txz=01;32:*.tz=01;32:*.tzo=01;32:*.tzst=01;32:*.war=01;32:*.xz=01;32:*.z=01;32:*.Z=01;32:*.zip=01;32:*.zoo=01;32:*.zst=01;32:*.aac=32:*.au=32:*.flac=32:*.m4a=32:*.mid=32:*.midi=32:*.mka=32:*.mp3=32:*.mpa=32:*.mpeg=32:*.mpg=32:*.ogg=32:*.opus=32:*.ra=32:*.wav=32:*.3des=01;35:*.aes=01;35:*.gpg=01;35:*.pgp=01;35:*.doc=32:*.docx=32:*.dot=32:*.odg=32:*.odp=32:*.ods=32:*.odt=32:*.otg=32:*.otp=32:*.ots=32:*.ott=32:*.pdf=32:*.ppt=32:*.pptx=32:*.xls=32:*.xlsx=32:*.app=01;36:*.bat=01;36:*.btm=01;36:*.cmd=01;36:*.com=01;36:*.exe=01;36:*.reg=01;36:*~=02;37:*.bak=02;37:*.BAK=02;37:*.log=02;37:*.log=02;37:*.old=02;37:*.OLD=02;37:*.orig=02;37:*.ORIG=02;37:*.swo=02;37:*.swp=02;37:*.bmp=32:*.cgm=32:*.dl=32:*.dvi=32:*.emf=32:*.eps=32:*.gif=32:*.jpeg=32:*.jpg=32:*.JPG=32:*.mng=32:*.pbm=32:*.pcx=32:*.pgm=32:*.png=32:*.PNG=32:*.ppm=32:*.pps=32:*.ppsx=32:*.ps=32:*.svg=32:*.svgz=32:*.tga=32:*.tif=32:*.tiff=32:*.xbm=32:*.xcf=32:*.xpm=32:*.xwd=32:*.xwd=32:*.yuv=32:*.anx=32:*.asf=32:*.avi=32:*.axv=32:*.flc=32:*.fli=32:*.flv=32:*.gl=32:*.m2v=32:*.m4v=32:*.mkv=32:*.mov=32:*.MOV=32:*.mp4=32:*.mpeg=32:*.mpg=32:*.nuv=32:*.ogm=32:*.ogv=32:*.ogx=32:*.qt=32:*.rm=32:*.rmvb=32:*.swf=32:*.vob=32:*.webm=32:*.wmv=32:" zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} +if [[ -z $TMUX ]]; then + zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 --color=always $realpath' +else + zstyle ':fzf-tab:*' fzf-command ftb-tmux-popup +fi; # Configuration COMPLETION_WAITING_DOTS="false" ZSH_AUTOSUGGEST_USE_ASYNC=true +ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets) ZSH_HIGHLIGHT_MAXLENGTH=300 ZSH_DISABLE_COMPFIX="true" DEFAULT_USER=$(whoami)