diff --git a/tech_docs/dotfiles.git.md b/tech_docs/dotfiles.git.md new file mode 100644 index 0000000..99a1b40 --- /dev/null +++ b/tech_docs/dotfiles.git.md @@ -0,0 +1,189 @@ +Remember to save these files and reload the configurations for the changes to take effect: +- For `~/.bashrc`: `source ~/.bashrc` +- For `~/.tmux.conf`: `tmux source-file ~/.tmux.conf` +- For `~/.wezterm.lua`: Restart Wezterm + +--- + +1. `~/.bashrc`: +```bash +# ~/.bashrc: executed by bash(1) for non-login shells. + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# Append to the history file, don't overwrite it +shopt -s histappend + +# Check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# Enable color support of ls +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' +fi + +# Custom keybindings +bind '"\C-a": beginning-of-line' +bind '"\C-e": end-of-line' +bind '"\eb": backward-word' +bind '"\ef": forward-word' +bind '"\C-w": backward-kill-word' +bind '"\C-u": backward-kill-line' +bind '"\C-k": kill-line' + +# Alias definitions +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# Enable programmable completion features +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 + +# >>> conda initialize >>> +# !! Contents within this block are managed by 'conda init' !! +__conda_setup="$('/home/medusa/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" +if [ $? -eq 0 ]; then + eval "$__conda_setup" +else + if [ -f "/home/medusa/miniconda3/etc/profile.d/conda.sh" ]; then + . "/home/medusa/miniconda3/etc/profile.d/conda.sh" + else + export PATH="/home/medusa/miniconda3/bin:$PATH" + fi +fi +unset __conda_setup +# <<< conda initialize <<< + +# Launch tmux automatically when Wezterm is started +if [[ -n "$WEZTERM_PID" ]] && [[ -z "$TMUX" ]]; then + # Generate a unique session name based on the current directory + session_name="$(basename "$(pwd)")" + tmux new-session -A -s "$session_name" +fi +``` + +2. `~/.tmux.conf`: +```tmux +# Set the default terminal mode to 256color +set -g default-terminal "screen-256color" +set -ga terminal-overrides ",xterm-256color:Tc" + +# Enable mouse support +set -g mouse on + +# Set the prefix key to Ctrl+b +set -g prefix C-b +unbind C-a +bind C-b send-prefix + +# Pane navigation +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# Pane resizing +bind H resize-pane -L 5 +bind J resize-pane -D 5 +bind K resize-pane -U 5 +bind L resize-pane -R 5 + +# Window management +bind c new-window +bind n next-window +bind p previous-window +bind w choose-window + +# Session management +bind s choose-session +bind d detach-client + +# Reload configuration +bind r source-file ~/.tmux.conf +``` + +3. `~/.wezterm.lua`: +```lua +-- Pull in the wezterm API +local wezterm = require 'wezterm' + +-- This will hold the configuration +local config = wezterm.config_builder() + +-- Set the color scheme +config.color_scheme = 'AdventureTime' + +-- Increase the font size +config.font_size = 12 + +-- Enable true color support +config.set_environment_variables = { + COLORTERM = "truecolor", +} + +-- Return the configuration to wezterm +return config +``` + +And here's the content of `~/.bash_aliases`: +```bash +# Directory navigation +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' +alias ~='cd ~' + +# Listing files and directories +alias l='ls -CF' +alias la='ls -A' +alias ll='ls -alF' +alias ls='ls --color=auto' + +# Directory management +alias md='mkdir -p' +alias rd='rmdir' + +# File management +alias cp='cp -i' +alias mv='mv -i' +alias rm='rm -i' + +# System information +alias df='df -h' +alias du='du -h' +alias free='free -m' +alias ps='ps auxf' + +# Network utilities +alias ping='ping -c 5' +alias fastping='ping -c 100 -s.2' +alias ports='netstat -tulanp' + +# Git aliases +alias gs='git status' +alias gd='git diff' +alias ga='git add' +alias gc='git commit' +alias gp='git push' +alias gl='git log --oneline' + +# Miscellaneous +alias grep='grep --color=auto' +alias h='history' +alias j='jobs -l' +alias path='echo -e ${PATH//:/\\n}' +``` + +These configurations include all the updates we discussed, such as custom keybindings, aliases, tmux settings, and Wezterm configuration. Unnecessary parts have been removed to keep the configurations clean and concise. \ No newline at end of file