From 982a5b56595d7e69f56de42bc464d0c3d2818be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robin-Charles=20Guih=C3=A9neuf?= Date: Sat, 12 Sep 2020 23:47:46 +0200 Subject: [PATCH] zsh: Migration from Nextcloud --- .bash_aliases | 223 ++++++++++++++++++++++++++++++++++++++++++++ .zshrc | 108 +++++++++++++++++++++ vulporuza.zsh-theme | 45 +++++++++ 3 files changed, 376 insertions(+) create mode 100644 .bash_aliases create mode 100644 .zshrc create mode 100644 vulporuza.zsh-theme diff --git a/.bash_aliases b/.bash_aliases new file mode 100644 index 0000000..ce52f28 --- /dev/null +++ b/.bash_aliases @@ -0,0 +1,223 @@ +export CONFIG_DIR="$HOME/.dotfiles" + +# Refresh +if [ -z "${ZSH}" ]; then + alias refresh=". $HOME/.bashrc" +else + alias refresh=". $HOME/.zshrc" +fi + +# Nautilus +alias open="nautilus ." + +# Install scripts +alias install_cli="$CONFIG_DIR/auto-config-cli.sh" +alias install_gui="$CONFIG_DIR/auto-config.sh" + +# Go to config directory +alias config="cd $CONFIG_DIR" + +function config_update { + cd $CONFIG_DIR + git pull + cd - +} + +# Editor +alias c='codium' + +# Find +alias find='find . -name' + +# Minicom serial +alias com='minicom -c on -D' + +# Aliases de retour +alias b='cd ../' +alias bb='cd ../../' +alias bbb='cd ../../../' +alias bbbb='cd ../../../../' +alias bbbbb='cd ../../../../../' + +# Folder size +alias sizes='du -h -d1 | sort -hr' +alias size='du -h -d0' + +# Swap +alias s_off='sudo swapoff -a' +alias s_on='sudo swapon -a' + +function s_clean { + s_off + s_on +} + +# VPN +alias vpn="sudo openvpn --config $HOME/Nextcloud/#\ -\ Configs/rguiheneuf.ovpn" + +# Git +alias gst='git status' +alias gc='git checkout' +alias gcm='git checkout master' +alias gpl='git pull' +alias gph='git push' +alias pull='git pull' +alias push='git push' +alias gsu='git submodule update --init' + +alias add='git add' +alias commit='git commit -m "To fixup"' +alias cont='git rebase --continue' + +alias branch_clean='git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d' + +function branch_create { + git checkout -b $1 + git push -u origin $1 +} + +# Tag +alias tag_clean='git tag -l | xargs git tag -d && git fetch -t' + +function tag_create { + git tag $1 + git push origin $1 +} + +function tag_replace { + git tag --delete $1 + git push origin --delete $1 + git tag $1 + git push origin $1 +} + +function grb { + git rebase -i HEAD~$1 +} + +function g_save { + git add * + git commit -m "[skip ci] Save: do not merge" + git push -f +} + +function grbm { + # Save actual branch + BRANCH=$(git branch | grep \* | cut -d ' ' -f2) + + # Checkout master & pull + git checkout master + git pull + + # Back to previous branch + git checkout ${BRANCH} + git rebase -i master +} + +function grbr { + git rebase --interactive --autosquash --root +} + +function gam { + git autofixup master + git rebase --interactive --autosquash master +} + +function ga { + git autofixup HEAD~$1 + git rebase --interactive --autosquash HEAD~$1 +} + +# Repositories +alias bc='cd $HOME/Netatmo/embedded/firmware-bitcloud' +alias fw='cd $HOME/Netatmo/embedded/firmware' +alias nmr='cd $HOME/Netatmo/embedded/nmr' +alias py='cd $HOME/Netatmo/core/python-emb-tools' +alias mag='cd $HOME/Netatmo/embedded/magellan' +alias nsp='cd $HOME/Netatmo/embedded/nsp' +alias mulot='cd $HOME/mulot/firmware' + +# Repositories in editor +alias c_bc='c $HOME/Netatmo/firmware-bitcloud.code-workspace' +alias c_fw='c $HOME/Netatmo/firmware.code-workspace' +alias c_nmr='c $HOME/Netatmo/nmr.code-workspace' +alias c_py='c $HOME/Netatmo/python-emb-tools.code-workspace' +alias c_mag='c $HOME/Netatmo/magellan.code-workspace' +alias c_nsp='c $HOME/Netatmo/nsp.code-workspace' +alias c_mulot='c $HOME/mulot/mulot.code-workspace' + +# SSH keygen +function ssh_keygen { + cd $HOME/.ssh + ssh-keygen -t rsa -b 4096 -f "$1" + cat "$1.pub" + cd - +} + +# Flash sniffer nRF52 +function nrf52 { + arm-none-eabi-objcopy -O ihex output/nrf52840/bin/$1 $1.hex + nrfutil pkg generate --hw-version 52 --sd-req=0x00 --application $1.hex --application-version 1 $1.zip + + if [ -z "$2" ] + then + nrfutil dfu usb-serial -pkg $1.zip -p /dev/ttyACM0 + else + nrfutil dfu usb-serial -pkg $1.zip -p $2 + fi +} + +# Make +alias mk='make -j5' +alias mec='make' +alias mecque='make' + +# app.S +function generate_objdump { + arm-none-eabi-objdump -S $1.elf > app.S +} + +# Netatmo specific +alias flasher='flasher' + +# Skip USB mode +alias fpm='flasher -forceplugmode' + +alias py_wireshark='$HOME/Netatmo/core/python-emb-tools/python/bin/zigbee/python_zigbee_interface.py -p ' + +alias stflash='sudo stm32_sbm -f app.bin -s 0x1000 -d' +alias stflash_dfu='stm32_dfu -f app-jtag.bin -b' + +# Git prompt +if [ -z "${ZSH}" ]; then + if [ -f "$HOME/.bash-git-prompt/gitprompt.sh" ]; then + GIT_PROMPT_ONLY_IN_REPO=1 + source $HOME/.bash-git-prompt/gitprompt.sh + fi +else + if [ -f "$HOME/.zsh-git-prompt/zshrc.sh" ]; then + source $HOME/.zsh-git-prompt/zshrc.sh + fi +fi + +# Autofixup +export PATH=$PATH:$HOME/.git-autofixup + +# Netatmo +export NETATMO_WORK_DIR=$HOME/Netatmo + +# Cargo binaries (navi) +export PATH=$PATH:$HOME/.cargo/bin + +# Navi +if [ -z "${ZSH}" ]; then + source <(navi widget bash) +else + source <(navi widget zsh) +fi + +# Zephyr +[ -f $HOME/mulot/firmware/zephyr/zephyr-env.sh ] && source $HOME/mulot/firmware/zephyr/zephyr-env.sh + +# West +export WEST_DIR=$HOME/mulot/firmware/.west/west diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..6017f80 --- /dev/null +++ b/.zshrc @@ -0,0 +1,108 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="vulporuza" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# 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="true" + +# Uncomment the following line to automatically update without prompting. +# DISABLE_UPDATE_PROMPT="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# 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="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# 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" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + gitfast + zsh-syntax-highlighting + zsh-autosuggestions + # zsh-history-substring-search + ) + +source $HOME/.bash_aliases + +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='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh diff --git a/vulporuza.zsh-theme b/vulporuza.zsh-theme new file mode 100644 index 0000000..248d935 --- /dev/null +++ b/vulporuza.zsh-theme @@ -0,0 +1,45 @@ +# vulporuza.zsh-theme + +typeset my_gray="$FG[240]" + +# Primary prompt +if [ -z "${__GIT_PROMPT_DIR}" ]; then + PS1='$my_gray${(r:$COLUMNS::-:)}%{$reset_color%}╭ %T %{$FG[208]%}%~%{$reset_color%}$(git_prompt_info) +╰ %(!.#.») ' +else + PS1='$my_gray${(r:$COLUMNS::-:)}%{$reset_color%}╭ %T %{$FG[208]%}%~%{$reset_color%}$(git_super_status) +╰ %(!.#.») ' +fi +PS2='%{$fg[red]%}\ %{$reset_color%}' + +# Right prompt +RPS1='%(?..%{$fg[red]%}%? ↵%{$reset_color%}) $FG[245]%n@%m%{$reset_color%}%' + +# Git theme +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$reset_color%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}]" + +if [ -z "${__GIT_PROMPT_DIR}" ]; then + # git settings + ZSH_THEME_GIT_PROMPT_CLEAN="%{$reset_color%}|%{$FG[034]%}✔" + ZSH_THEME_GIT_PROMPT_DIRTY="%{$reset_color%}|%{$FG[075]%}…" +else + ZSH_THEME_GIT_PROMPT_HASH_PREFIX=":" + ZSH_THEME_GIT_PROMPT_SEPARATOR="|" + ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}" + ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{●%1G%}" + ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{✖%1G%}" + ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{✚%1G%}" + ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%1G%}" + ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%1G%}" + ZSH_THEME_GIT_PROMPT_STASHED="%{$fg_bold[blue]%}%{⚑%1G%}" + ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}%{…%1G%}" + ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{✔%1G%}" + ZSH_THEME_GIT_PROMPT_LOCAL=" L" + # The remote branch will be shown between these two + ZSH_THEME_GIT_PROMPT_UPSTREAM_FRONT=" {%{$fg[blue]%}" + ZSH_THEME_GIT_PROMPT_UPSTREAM_END="%{${reset_color}%}}" + ZSH_THEME_GIT_PROMPT_MERGING="%{$fg_bold[magenta]%}|MERGING%{${reset_color}%}" + ZSH_THEME_GIT_PROMPT_REBASE="%{$fg_bold[magenta]%}|REBASE%{${reset_color}%} " + ZSH_THEME_GIT_PROMPT_BISECT="%{$fg_bold[magenta]%}|BISECT%{${reset_color}%} " +fi