From 4720ab81dc1e099d56fb577df50c00264eab0aef Mon Sep 17 00:00:00 2001 From: Gal Szkolnik Date: Sun, 22 May 2022 23:34:11 -0400 Subject: [PATCH] First commit + .bashrc loads scripts dynamically from .sz.shrc.d .sz.shrc.d processing: {shell-name}.pre/* (sorted) * (sorted) {shell-name}.post/* (sorted) + .sz.shrc.d includes: - chemoiz auto completion (bash) - gcloud auto completion (bash) + chemacs2 with deault profiles conifgured + spacemacs standard set as default emacs profile + *.desktop launch files created for - CopyQ Flatpak - Spacemacs (Emacs Daemon) - Spacemacs (Emacs Client) --- .chezmoiexternal.toml | 10 ++ dot_bashrc | 29 +++++ dot_emacs-profile | 1 + dot_emacs-profiles.el | 21 ++++ dot_sz.shrc.d/aliases | 5 + dot_sz.shrc.d/bash.post/99_chezmoi.complete | 1 + dot_sz.shrc.d/bash.post/99_gcloud.complete | 4 + dot_sz.shrc.d/bash.pre/00_default.pop_os | 117 ++++++++++++++++++ dot_sz.shrc.d/bin.path | 9 ++ .../copyq.flatpack.desktop | 9 ++ .../spacemacs.client.desktop | 10 ++ .../spacemacs.daemon.desktop | 10 ++ symlink_dot_emacs.d.tmpl | 1 + 13 files changed, 227 insertions(+) create mode 100644 .chezmoiexternal.toml create mode 100644 dot_bashrc create mode 100644 dot_emacs-profile create mode 100644 dot_emacs-profiles.el create mode 100644 dot_sz.shrc.d/aliases create mode 100644 dot_sz.shrc.d/bash.post/99_chezmoi.complete create mode 100644 dot_sz.shrc.d/bash.post/99_gcloud.complete create mode 100644 dot_sz.shrc.d/bash.pre/00_default.pop_os create mode 100644 dot_sz.shrc.d/bin.path create mode 100644 private_dot_local/private_share/private_applications/copyq.flatpack.desktop create mode 100644 private_dot_local/private_share/private_applications/spacemacs.client.desktop create mode 100644 private_dot_local/private_share/private_applications/spacemacs.daemon.desktop create mode 100644 symlink_dot_emacs.d.tmpl diff --git a/.chezmoiexternal.toml b/.chezmoiexternal.toml new file mode 100644 index 0000000..b9706b8 --- /dev/null +++ b/.chezmoiexternal.toml @@ -0,0 +1,10 @@ +["my/code/from_web/chemacs2"] + type = "git-repo" + url = "https://github.com/plexus/chemacs2.git" + refreshPeriod = "168h" # 7 days + +[".emacs.my/spacemacs/emacs.d"] + type = "git-repo" + url = "https://github.com/syl20bnr/spacemacs.git" + clone.args = ["--depth=1","--branch=develop"] + refreshPeriod = "168h" # 7 days diff --git a/dot_bashrc b/dot_bashrc new file mode 100644 index 0000000..842ad2c --- /dev/null +++ b/dot_bashrc @@ -0,0 +1,29 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +if [ -d ~/.sz.shrc.d ]; then + script_source=("$(find ~/.sz.shrc.d -maxdepth 1 -type d -name "$(ps -p$$ -ho comm).pre")") + script_source+=("$(find ~/.sz.shrc.d -maxdepth 0 -type d)") + script_source+=("$(find ~/.sz.shrc.d -maxdepth 1 -type d -name "$(ps -p$$ -ho comm).post")") + for script_src in ${script_source[@]}; do + scripts=$(find $script_src -maxdepth 1 -type f -not -name "*.off" | sort) + for script_name in $scripts; do + if [ -r $script_name ]; then + [ -z ${DBG_SZSHRC} ] || echo "Sourcing $script_name..." + . $script_name + fi + done + unset scripts + unset script_name + done + unset script_source +fi + +complete -C /usr/bin/terraform terraform diff --git a/dot_emacs-profile b/dot_emacs-profile new file mode 100644 index 0000000..ebf7263 --- /dev/null +++ b/dot_emacs-profile @@ -0,0 +1 @@ +spacemacs diff --git a/dot_emacs-profiles.el b/dot_emacs-profiles.el new file mode 100644 index 0000000..759f228 --- /dev/null +++ b/dot_emacs-profiles.el @@ -0,0 +1,21 @@ +(("default" . ( + (user-emacs-directory . "~/.emacs.my/deafult/emacs.d") + (server-name . "gnu") + )) + ("spacemacs" . ( + (user-emacs-directory . "~/.emacs.my/spacemacs/emacs.d") + (server-name . "spacemacs") + (env . (("SPACEMACSDIR" . "~/.emacs.my/spacemacs/config.std"))) + )) + ("spacemacs-min" . ( + (user-emacs-directory . "~/.emacs.my/spacemacs/emacs.d") + (server-name . "spacemacs-min") + (env . (("SPACEMACSDIR" . "~/.emacs.my/spacemacs/config.min"))) + )) + ("doom" . ( + (user-emacs-directory . "~/.emacs.my/doom/emacs.d") + (server-name . "doom") + (env . (("DOOMDIR" . "~/.emacs.my/doom/config"))) + )) +) + diff --git a/dot_sz.shrc.d/aliases b/dot_sz.shrc.d/aliases new file mode 100644 index 0000000..23088c4 --- /dev/null +++ b/dot_sz.shrc.d/aliases @@ -0,0 +1,5 @@ +alias sudo="sudo " +alias nvim="nvim -p " +alias vim="nvim " +alias vi="nvim " + diff --git a/dot_sz.shrc.d/bash.post/99_chezmoi.complete b/dot_sz.shrc.d/bash.post/99_chezmoi.complete new file mode 100644 index 0000000..95c04bd --- /dev/null +++ b/dot_sz.shrc.d/bash.post/99_chezmoi.complete @@ -0,0 +1 @@ +source <(chezmoi completion bash) diff --git a/dot_sz.shrc.d/bash.post/99_gcloud.complete b/dot_sz.shrc.d/bash.post/99_gcloud.complete new file mode 100644 index 0000000..52c7a2c --- /dev/null +++ b/dot_sz.shrc.d/bash.post/99_gcloud.complete @@ -0,0 +1,4 @@ +# The next line updates PATH for the Google Cloud SDK. +if [ -f '/usr/lib/google-cloud-sdk/path.bash.inc' ]; then source '/usr/lib/google-cloud-sdk/path.bash.inc'; fi +# The next line enables shell command completion for gcloud. +if [ -f '/usr/lib/google-cloud-sdk/completion.bash.inc' ]; then source '/usr/lib/google-cloud-sdk/completion.bash.inc'; fi diff --git a/dot_sz.shrc.d/bash.pre/00_default.pop_os b/dot_sz.shrc.d/bash.pre/00_default.pop_os new file mode 100644 index 0000000..b488fcc --- /dev/null +++ b/dot_sz.shrc.d/bash.pre/00_default.pop_os @@ -0,0 +1,117 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy 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' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +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 diff --git a/dot_sz.shrc.d/bin.path b/dot_sz.shrc.d/bin.path new file mode 100644 index 0000000..7789ed5 --- /dev/null +++ b/dot_sz.shrc.d/bin.path @@ -0,0 +1,9 @@ +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + export PATH="~/bin:$PATH" +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/.local/bin" ] ; then + export PATH="~/.local/bin:$PATH" +fi diff --git a/private_dot_local/private_share/private_applications/copyq.flatpack.desktop b/private_dot_local/private_share/private_applications/copyq.flatpack.desktop new file mode 100644 index 0000000..9fe8e86 --- /dev/null +++ b/private_dot_local/private_share/private_applications/copyq.flatpack.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=CopyQ (flatpak) +Comment=Clipboard manager +Icon=com.github.hluk.copyq +Type=Application +Terminal=false +Categories=Utility +Exec=/usr/bin/flatpak run com.github.hluk.copyq +Keywords=copyq;copy-q;clipboard; diff --git a/private_dot_local/private_share/private_applications/spacemacs.client.desktop b/private_dot_local/private_share/private_applications/spacemacs.client.desktop new file mode 100644 index 0000000..5f1e9ac --- /dev/null +++ b/private_dot_local/private_share/private_applications/spacemacs.client.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Spacemacs (Client) +Comment=GNU Emacs is an extensible, customizable text editor - and more +Icon=emacs +Type=Application +Exec=/usr/bin/emacs --create-frame --socker-name=spacemacs +Terminal=false +Categories=Utility;Development;TextEditor; +Keywords=Text;Editor; +Version=1.0 diff --git a/private_dot_local/private_share/private_applications/spacemacs.daemon.desktop b/private_dot_local/private_share/private_applications/spacemacs.daemon.desktop new file mode 100644 index 0000000..8b3d72b --- /dev/null +++ b/private_dot_local/private_share/private_applications/spacemacs.daemon.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=[Spacemacs Daemon] +Comment=GNU Emacs is an extensible, customizable text editor - and more +Icon=emacs +Type=Application +Exec=/usr/bin/emacs --with-profile spacemacs --daemon +Terminal=false +Categories=Utility;Development;TextEditor; +Keywords=Text;Editor; +Version=1.0 diff --git a/symlink_dot_emacs.d.tmpl b/symlink_dot_emacs.d.tmpl new file mode 100644 index 0000000..6098d7f --- /dev/null +++ b/symlink_dot_emacs.d.tmpl @@ -0,0 +1 @@ +{{ .chezmoi.homeDir }}/my/code/from_web/chemacs2