From 4104f504c6eb28f6072735c26ad82d53a7187d76 Mon Sep 17 00:00:00 2001 From: Mark Schmitz Date: Sun, 9 Jan 2022 22:10:01 +0000 Subject: [PATCH] add macos dotfiles --- macOS/.bash_profile | 33 ++++++ macOS/.bashrc | 153 ++++++++++++++++++++++++++ macOS/.gitconfig | 23 ++++ macOS/.profile | 1 + macOS/.ssh/authorized_keys | 2 + macOS/.ssh/config | 67 +++++++++++ macOS/.ssh/id_ed25519_dosmo-desig.pub | 1 + macOS/.ssh/id_rsa.pub | 1 + macOS/.tmux.conf | 25 +++++ macOS/.vimrc | 131 ++++++++++++++++++++++ 10 files changed, 437 insertions(+) create mode 100644 macOS/.bash_profile create mode 100644 macOS/.bashrc create mode 100644 macOS/.gitconfig create mode 100644 macOS/.profile create mode 100644 macOS/.ssh/authorized_keys create mode 100644 macOS/.ssh/config create mode 100644 macOS/.ssh/id_ed25519_dosmo-desig.pub create mode 100644 macOS/.ssh/id_rsa.pub create mode 100644 macOS/.tmux.conf create mode 100644 macOS/.vimrc diff --git a/macOS/.bash_profile b/macOS/.bash_profile new file mode 100644 index 0000000..ff655c9 --- /dev/null +++ b/macOS/.bash_profile @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# export PROMPT_COMMAND='echo -n "]1;$PWD"' +export PROMPT_COMMAND='echo -ne "\x1b]0;$PWD\x07"' + +[ -r "$HOME"/.bashrc ] && . "$HOME/.bashrc" + +# export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ " +# export PS1="\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ " +# PS1='$ ' + +# source ~/.git-prompt.sh + +# Ubuntu 18 PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]' +# PS1='\[\033[38;5;29m\]$(__git_ps1 "(%s)")\[\033[00m\]\[\e]0;\u@\h: \w\a\]\[\033[38;5;88m\]\u\[\033[38;5;138m\]@\[\033[38;5;28m\]\h:\[\033[38;5;26m\]\W \[\033[01;35m\]\$ \[\033[00m\]' + +# Debian 10 +# PS1='${debian_chroot:+($debian_chroot)}\[\e[1;31m\]\u\[\e[1;33m\]@\[\e[1;36m\]\h \[\e[1;33m\]\w \[\e[1;35m\]\$ \[\e[0m\]' + +# export TMPDIR=/var/tmp/ +# if [ -f /usr/local/share/bash-completion/bash_completion ]; then +# . /usr/local/share/bash-completion/bash_completion +# fi + + +# this is the supposed way to go for @2 - dunno why my version above works for me +# export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d" +# [[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" + +# Save and reload the history after each command finishes +# export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND" + +# # source /Users/mark/.config/broot/launcher/bash/br +. "$HOME/.cargo/env" diff --git a/macOS/.bashrc b/macOS/.bashrc new file mode 100644 index 0000000..cad622a --- /dev/null +++ b/macOS/.bashrc @@ -0,0 +1,153 @@ +#!/usr/bin/env bash +export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d" +[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" + +# this nees to run after bash-completion as __git functions are defined in there +if [[ $(type -t __git_ps1) == "function" ]] ; then + PS1='\[\033[32m\]$(__git_ps1 "(%s)")\[\033[00m\]\w \\$ ' +else + PS1='\w \\$ ' +fi + +# homebrew +export HOMEBREW_AUTO_UPDATE_SECS=86400 +export HOMEBREW_NO_ANALYTICS=1 +export HOMEBREW_NO_GITHUB_API=1 +export HOMEBREW_DISPLAY_INSTALL_TIMES=1 + +# hstr +export HSTR_CONFIG=hicolor,raw-history-view # get more colors + +# history +shopt -s histappend # append new history items to .bash_history +export HISTCONTROL=ignoredups:erasedups # no duplicate entries +export CLICOLOR=YES +export HISTFILESIZE=2500000 +export HISTSIZE=250000 + +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 + +export EDITOR=vim + +# ensure synchronization between Bash memory and history file +# export PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}" +# see: https://github.com/dvorka/hstr/issues/277 +export PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'history -a; history -n' +# export PROMPT_COMMAND='history -a; history -c; history -r;'"${PROMPT_COMMAND:+$PROMPT_COMMAND; }" # laut c't 20/2020 + +# if this is interactive shell, then bind hstr to Ctrl-r (for Vi mode check doc) +if [[ $- =~ .*i.* ]]; then bind '"\C-r": "\C-a hstr -- \C-j"'; fi +# if this is interactive shell, then bind 'kill last command' to Ctrl-x k +if [[ $- =~ .*i.* ]]; then bind '"\C-xk": "\C-a hstr -k \C-j"'; fi + +# aliases and functions +alias ll='ls -kahlFG' +alias la='ls -CAF' +alias l='ls -CF' +alias cd..='cd ..' +alias mkdir='mkdir -pv' +alias bashrc="vim ~/.bashrc && source ~/.bashrc" +alias git-root='cd "$(git rev-parse --show-toplevel)"' +alias pcat='pygmentize -f terminal256 -O style=tango -g' +alias tcat='tree-sitter highlight' + +qst() { xsv stats "$@" | gawk -v fmt="%.4g" -f ~/printf_g.awk | xsv table; } + +dcleanup(){ + docker rm -v "$(docker ps --filter status=exited -q 2>/dev/null)" 2>/dev/null + docker rmi "$(docker images --filter dangling=true -q 2>/dev/null)" 2>/dev/null +} + +append_path() { + for chkpth ; do + if [[ ! $PATH = *"$chkpth"* && -d "$chkpth" ]] ; then + PATH="$PATH":"$chkpth" + fi + done +} + +prepend_path() { + for chkpth ; do + if [[ ! $PATH = *"$chkpth"* && -d "$chkpth" ]] ; then + PATH="$chkpth":"$PATH" + fi + done +} + +export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH" + +export LDFLAGS="-L/usr/local/opt/ruby/lib" +export CPPFLAGS="-I/usr/local/opt/ruby/include" +export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig" + +export BAT_THEME="OneHalfLight" + +export INPUTRC=~/.inputr + +gems=$(find "$HOME"/.gem/ruby -maxdepth 2 -type d -name bin); + +prepend_path "/usr/local/bin" "$HOME/.cargo/bin" "/usr/local/opt/ruby/bin" "$gems" "$HOME/go/bin" "$HOME/bin" + +append_path "/usr/local/texlive/2018/bin/x86_64-darwin/" + +[[ -r "$HOME/.cargo/env" ]] && . "$HOME/.cargo/env" + +# if [[ ! $PATH = *usr/local* && -d /usr/local/bin ]] ; then +# # export PATH=/usr/local/sbin:$PATH +# export PATH=/usr/local/bin:$PATH +# fi + +# if [[ ! $PATH = *cargo/bin* && -d $HOME/.cargo/bin ]] ; then +# export PATH="$HOME/.cargo/bin:$PATH" +# fi + +# if [[ ! $PATH = *openjdk/bin* && -d /usr/local/opt/openjdk/bin ]] ; then +# export PATH="/usr/local/opt/openjdk/bin:$PATH" +# export CPPFLAGS="-I/usr/local/opt/openjdk/include" +# fi + +# if [[ ! $PATH = *texlive/2018* && -d /usr/local/texlive/2018/bin/x86_64-darwin/ ]] ; then +# export PATH=$PATH:/usr/local/texlive/2018/bin/x86_64-darwin/ +# fi + +# if [[ -d /usr/local/opt/ruby/bin ]]; then +# if [[ ! $PATH = *opt/ruby/bin* ]] ; then +# export PATH="/usr/local/opt/ruby/bin:$PATH" +# else +# export PATH=/usr/local/opt/ruby/bin:"${PATH/':/usr/local/opt/ruby/bin'/}"; +# fi +# fi + +# gems=$(find "$HOME"/.gem/ruby -maxdepth 2 -type d -name bin); +# if [[ -n $gems ]]; then +# if [[ ! $PATH = */.gem/ruby/* ]] ; then +# export PATH="$gems:$PATH"; +# fi +# fi + +ramdisk(){ + if [[ ! -d /Volumes/ramdisk ]]; then + local default=${1:-24} # 24 GB default + local size=$((1024*1024*2*default)) # a sector is 512 bytes, default in GB + set -x + diskutil erasevolume HFS+ "ramdisk" $(hdiutil attach -nomount ram://$size) # do not quote $(hdutil…) as it contains unwanted white-space; good work Apple + if [[ -d /Volumes/ramdisk/ ]]; then + rm -rfv /Volumes/ramdisk/.{,_.}{fseventsd,Spotlight-V*,Trashes} + mkdir -v /Volumes/ramdisk/.fseventsd + touch /Volumes/ramdisk/.fseventsd/no_log /Volumes/ramdisk/.metadata_never_index /Volumes/ramdisk/.Trashes + mdutil -i off /Volumes/ramdisk + echo -e "\n\tcd /Volumes/ramdisk/\n" + cd /Volumes/ramdisk/ || exit + fi + set +x + else + cd /Volumes/ramdisk/ || exit + fi +} + +if [[ -f ~/.config/broot/launcher/bash/br ]]; then + . ~/.config/broot/launcher/bash/br +fi + +export PATH diff --git a/macOS/.gitconfig b/macOS/.gitconfig new file mode 100644 index 0000000..4fb0432 --- /dev/null +++ b/macOS/.gitconfig @@ -0,0 +1,23 @@ +[merge] + tool = kdiff3 +[user] + name = Mark Schmitz + email = mark.schmitz@mailbox.org +[alias] + lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' +[filter "lfs"] + process = git-lfs filter-process + required = true + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f +[difftool "Kaleidoscope"] + cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\" +[mergetool "Kaleidoscope"] + cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot + trustexitcode = true +[core] + excludesfile = /Users/mark/.config/git/ignore +[pull] + rebase = false +[init] + defaultBranch = main diff --git a/macOS/.profile b/macOS/.profile new file mode 100644 index 0000000..c2f3182 --- /dev/null +++ b/macOS/.profile @@ -0,0 +1 @@ +. "$HOME/.cargo/env" diff --git a/macOS/.ssh/authorized_keys b/macOS/.ssh/authorized_keys new file mode 100644 index 0000000..16c4825 --- /dev/null +++ b/macOS/.ssh/authorized_keys @@ -0,0 +1,2 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCowOZg4u+Pyum9sT2m5ClIPqfFcVssRDLfkKFk3lFAqKQVk0JK/l9mtNn2Z0kc32n8fbaJKeZwoPf1Si0L5oBM6AWf7UY67RFL/0iASm4xv1bkdK63EDo8VKaEvTT69EP4fUoMyqVdS97EFDKle+fvXA1+GU1g6q2zNwAZNUkMiDgdYbHbWeujat6mRPe+O/8MBLzsDLJ8a0SGRTtf66LQjZbrcJyjrSCUmY4+n8+pt1VGcsaJdz2OwVup6t3Q3VOWWJ6SLzmRQviLQqtg4KmCftkOU57MYEvANLlT95B84KmeCTYY1BdZbP04R6YUqXMK0K4mlCo+dxeE47kd+lp7 +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcc4MOm59iaWMk+fGXMH2x1xZ4qePNMK3lnrwELT0UVK1in/Bg2PFPs5aJ+fcL8JZc+IQ+SsnfwRUA3ZmVBgUkzJlDPJLgUpNP5Ljkv63CteZ3mEDb7J0/nLjuoSH9G4Flgf/v10ZJIRzR6QOW66N4RtejSQy95Xof/3eIAb27Jwf0IjIU4lZYwfl3oq0TsZost26Y2S/0F2KKox7P/Xwx7wbbaw3ioYpyFabNshomJUxqoevz4ZjGDcr7pAnjdSr1IPjGJyQRyx5wkpZRPgLLSyAoaAKd2mbNjYtpJ5dsU1ZnKZQFl7TyCZ2JftAJrUJGM29D24qe1mnCbTnF1gYj diff --git a/macOS/.ssh/config b/macOS/.ssh/config new file mode 100644 index 0000000..a165745 --- /dev/null +++ b/macOS/.ssh/config @@ -0,0 +1,67 @@ +Host * + ServerAliveInterval 30 + ServerAliveCountMax 4 + UseKeychain yes + AddKeysToAgent yes + XAuthLocation /opt/X11/bin/xauth + +Host turris + Hostname 192.168.21.1 + User root + +Host pi + HostName pi3b.local + User pi + +Host dosmo.de + # Hostname 159.69.158.49 + HostName 195.201.254.40 + Port 65522 + User mark + +Host deb-3vcpu-4gb-80gb-nbg-CPX21 + HostName 157.90.25.58 + Port 65522 + User mark + +Host gitea.dosmo.de + HostName 195.201.254.40 + Port 6522 + User git + +Host toxo14 + HostName samesi.de + User sub10140_62 + +Host samesi + HostName samesi.de + User sub10140_62 + +Host mausbox + HostName mausbox.de + User web120 + +Host ax61-nvme-hel + HostName 95.217.201.19 + User root + Port 65522 + +Host storage100GB + Hostname u275981.your-storagebox.de + User u275981 + Port 23 + +Host evoldyn + HostName evoldyn.science + Port 2222 + User root + +Host sony_KE55XH90 + HostName 192.168.178.240 + Port 8022 + +Host iproxy_root + HostName 127.0.0.1 + Port 2222 + User root + \ No newline at end of file diff --git a/macOS/.ssh/id_ed25519_dosmo-desig.pub b/macOS/.ssh/id_ed25519_dosmo-desig.pub new file mode 100644 index 0000000..5c879d9 --- /dev/null +++ b/macOS/.ssh/id_ed25519_dosmo-desig.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaXXB7jmM1RlKMo82Xu1jCs1Uyk+W5SyYj319StmJRv dosmo-design@mailbox.org diff --git a/macOS/.ssh/id_rsa.pub b/macOS/.ssh/id_rsa.pub new file mode 100644 index 0000000..1a8d8a8 --- /dev/null +++ b/macOS/.ssh/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7gBTAl2PB3zDzHp9Hz9P/WGHBNU3+sVYUBPj3WfOc0Dfo0O4+6F2dF697tl57YWwP6SePQQLiIRQJIpU7gYEf97XR9Y+ArrIn3BiZ2wgEbbTO/KQNZnpcGFYKU9oS5QQasp9ziKtpjItu9b9l6Wk4t3HGsM9j18F9AW/XwYBkdpZn41ZokqLWMcvZ/LwDgqkOL3k1YsBLBYnT0QTYTdvPwMO3sDEfYgeaOR5SnKKjeKLFZZIukrjUfrZ86MyyygBEBcak5P+x/6OYc+1Q3IyevG7+wRCIV44Ja92g6x3w8A5N1+LDa/jCrzMt6P3gz31IejwmT+hIbCebM3wcdihBT95hu+pNABBpXSvXZIPbz1F93bs/pScresfCnAMjzfPLxA2O8QOnWIVXDZBXe67wxPJtqA8eL1rRzy3GF01fKHjSVB+sX2YnHAcS+N335z6srQHbg9fZLcmsUXZ26FQNEiYWw/92jiYq4eefv/gFOUpzukWyB0rI5KfAsaZ/ZvGb+ugFqBiO0Jixlyd12qi+ekbLTx4f8oc4P2mtv761F6LFPEU1HDnagfgjf9kwo4sZ6gEYPKDaZVwlQqiTsO/7C8QMFDrKG0mzDqqKf0i7S/NjgYvJIA/o4j5Q3Med3txA8Jq32eN/zOzNIXkJh76Im6Exhfqv0U2MIKnz7XRh4Q== mark@MB12Mark.local diff --git a/macOS/.tmux.conf b/macOS/.tmux.conf new file mode 100644 index 0000000..c316fef --- /dev/null +++ b/macOS/.tmux.conf @@ -0,0 +1,25 @@ +# set -g default-terminal "tmux-256color" +# Start numbering windows at 1 +set -g base-index 1 +set-option -g history-limit 125000 + +set-option -g status-style fg="#cccccc",bg="#444444" + +set-option -g message-style fg="#000000",bg="#bfbf40" +set-option -g pane-border-style fg="#777777" +set-option -g pane-active-border-style fg="#bfbf40" + +set -g status-interval 1 + +set -g status-justify centre # center align window list +set -g status-left-length 20 +set -g status-right-length 140 +set -g status-left '#H • #[default]' +set -g status-right '#(tmux-mem-cpu-load --interval 1) • #(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") • %a %H:%M:%S #[default] %Y-%m-%d' + +# Try screen256-color (https://github.com/tmux/tmux/issues/622): +if-shell "test '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -ge 6 \)'" 'set -g default-terminal "screen-256color"' +if-shell "test '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -ge 6 \)'" 'set -ga terminal-overrides ",screen-256color:Tc"' + +if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 6\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'set -g default-terminal "screen-256color"' + diff --git a/macOS/.vimrc b/macOS/.vimrc new file mode 100644 index 0000000..df46582 --- /dev/null +++ b/macOS/.vimrc @@ -0,0 +1,131 @@ +syntax enable " Turn on syntax highlighting +set hidden " Leave hidden buffers open +set history=100 "by default Vim saves your last 8 commands. We can handle more + +" Enable filetype plugins +filetype plugin on +filetype indent on + +"Always show current position +set ruler + +" Height of the command bar +set cmdheight=1 + +"""""""""""""""""""""""""""""" +" => Status line +"""""""""""""""""""""""""""""" +" Always show the status line +set laststatus=2 + +" Format the status line +" set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ \ Column:\ %c +set statusline=%t "tail of the filename +set statusline+=[%{strlen(&fenc)?&fenc:'none'}, "file encoding +set statusline+=%{&ff}] "file format +set statusline+=%h "help file flag +set statusline+=%m "modified flag +set statusline+=%r "read only flag +set statusline+=%y "filetype +set statusline+=%= "left/right separator +set statusline+=%c, "cursor column +set statusline+=%l/%L "cursor line/total lines +set statusline+=\ %P "percent through file + +" https://stackoverflow.com/a/10416234 +set statusline= +set statusline+=%7*\[%n] "buffernr +set statusline+=%1*\ %<%F\ "File+path +set statusline+=%2*\ %y\ "FileType +set statusline+=%3*\ %{''.(&fenc!=''?&fenc:&enc).''} "Encoding +set statusline+=%3*\ %{(&bomb?\",BOM\":\"\")}\ "Encoding2 +set statusline+=%4*\ %{&ff}\ "FileFormat (dos/unix..) +set statusline+=%5*\ %{&spelllang}\%{HighlightSearch()}\ "Spellanguage & Highlight on? +set statusline+=%8*\ %=\ row:%l/%L\ (%03p%%)\ "Rownumber/total (%) +set statusline+=%9*\ col:%03c\ "Colnr +set statusline+=%0*\ \ %m%r%w\ %P\ \ "Modified? Readonly? Top/bot. + +hi User1 ctermfg=15 ctermbg=88 guifg=#ffdad8 guibg=#880c0e "File+path +hi User2 ctermfg=0 ctermbg=173 guifg=#000000 guibg=#F4905C "FileType +hi User3 ctermfg=0 ctermbg=186 guifg=#292b00 guibg=#f4f597 "Encoding +hi User4 ctermfg=0 ctermbg=150 guifg=#112605 guibg=#aefe7B "FileFormat (dos/unix..) +hi User5 ctermfg=0 ctermbg=114 guifg=#051d00 guibg=#7dcc7d "Spellanguage & Highlight on? +hi User7 ctermfg=15 ctermbg=88 guifg=#ffffff guibg=#880c0e gui=bold cterm=bold "buffernr +hi User8 ctermfg=15 ctermbg=62 guifg=#ffffff guibg=#5b7fbb "Rownumber/total (%) +hi User9 ctermfg=15 ctermbg=90 guifg=#ffffff guibg=#810085 "Colnr +hi User0 ctermfg=7 ctermbg=8 guifg=#ffffff guibg=#094afe "Modified? Readonly? Top/bot. +hi StatusLine ctermfg=237 ctermbg=255 + +function! HighlightSearch() + if &hls + return 'H' + else + return '' + endif +endfunction + +" Configure backspace so it acts as it should act +set backspace=eol,start,indent +set whichwrap+=<,>,h,l + +" Ignore case when searching +set ignorecase + +" When searching try to be smart about cases +set smartcase + +" Highlight search results +set hlsearch + +" Makes search act like search in modern browsers +set incsearch + +" Don't redraw while executing macros (good performance config) +set lazyredraw +" For regular expressions turn magic on +set magic + +" Show matching brackets when text indicator is over them +set showmatch +" How many tenths of a second to blink when matching brackets +set mat=2 + +" No annoying sound on errors +set noerrorbells +set novisualbell +set t_vb= +set tm=500 + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Text, tab and indent related +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Use spaces instead of tabs +set expandtab + +" Be smart when using tabs ;) +set smarttab + +" 1 tab == 2 spaces +set shiftwidth=2 +set tabstop=2 + +" Linebreak on 500 characters +set lbr +set tw=500 + +set ai "Auto indent +set si "Smart indent +set wrap "Wrap lines + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Helper functions +" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" " Returns true if paste mode is enabled + +function! HasPaste() + if &paste + return 'PASTE MODE ' + endif + return '' +endfunction +