diff options
| author | Craig Jennings <c@cjennings.net> | 2026-01-26 16:57:37 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-01-26 16:57:37 -0600 |
| commit | 7d490453085ae084ce0e3875952eae1d3ad7b1ab (patch) | |
| tree | d6f76ded02d541107271dc2b04cac34435c81a26 /dotfiles/system/.bashrc.d/emacs.sh | |
| parent | feb8dfaae9b0172c9d24e7e0d115754a467b4627 (diff) | |
refactor(shell): reorganize shell config for proper separation
Restructure shell configuration to follow standard conventions:
- .profile: Environment variables only (POSIX compatible)
- .bash_profile: NEW - sources .profile and .bashrc for login shells
- .bashrc: Bash-specific settings, sources .bashrc.d/
- .zshrc: Zsh-specific settings, sources .zshrc.d/
New modular directories:
- .bashrc.d/: aliases, emacs, fzf, git, media, utilities
- .zshrc.d/: same as bashrc.d plus arch-downgrade (zsh-only)
- .profile.d/: reduced to env-only files (display, framework, auto-tmux)
Fixes:
- Remove duplicate .profile sourcing in .bashrc
- Remove broken XDG_CURRENT_DESKTOP=GNOME line from display.sh
- Move aliases/functions from .profile to appropriate .d/ directories
- Shell-specific init (zoxide, fzf) now in .bashrc/.zshrc directly
- FreeBSD bindkey fix now in .zshrc directly
Also adds CLAUDE.md session context file.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'dotfiles/system/.bashrc.d/emacs.sh')
| -rw-r--r-- | dotfiles/system/.bashrc.d/emacs.sh | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/dotfiles/system/.bashrc.d/emacs.sh b/dotfiles/system/.bashrc.d/emacs.sh new file mode 100644 index 0000000..0a8444b --- /dev/null +++ b/dotfiles/system/.bashrc.d/emacs.sh @@ -0,0 +1,24 @@ +# emacs.sh +# Craig Jennings <c@cjennings.net> +# Emacs-specific settings and functions + +# GTK/Emacs accessibility bug workaround +# https://unix.stackexchange.com/questions/230238/ +export NO_AT_BRIDGE=1 + +# Wake emacs from elisp freeze +alias emacswake='for i in $(seq 1 500); do killall -s USR2 emacs; done' + +# Vterm shell integration +# Allows shell to send information to vterm via escape sequences +vterm_printf() { + if [ -n "$TMUX" ] && { [ "${TERM%%-*}" = "tmux" ] || [ "${TERM%%-*}" = "screen" ]; }; then + # Tell tmux to pass the escape sequences through + printf "\ePtmux;\e\e]%s\007\e\\" "$1" + elif [ "${TERM%%-*}" = "screen" ]; then + # GNU screen + printf "\eP\e]%s\007\e\\" "$1" + else + printf "\e]%s\e\\" "$1" + fi +} |
