From 5f8e8f4dd5a2ef712ded6fada5bfdada71b97005 Mon Sep 17 00:00:00 2001 From: Morten Olsen Date: Tue, 21 Oct 2025 22:19:33 +0200 Subject: [PATCH] init --- .chezmoiexternal.toml | 4 + .chezmoiignore | 3 + dot_Brewfile | 70 +++++++ dot_aerospace.toml | 176 ++++++++++++++++++ dot_config/atuin/config.toml | 2 + dot_gitconfig | 53 ++++++ dot_shellrc/rc.d/01-env.sh | 10 + dot_shellrc/rc.d/01-nvim.sh | 3 + dot_shellrc/rc.d/05-nvm.sh | 4 + dot_ssh/config | 8 + dot_ssh/config.d/git-coder | 22 +++ dot_ssh/config.d/git-private | 13 ++ dot_ssh/config.d/git-zeronorth | 6 + dot_ssh/config.d/github | 4 + .../private_keys/private_github-private.pub | 1 + .../private_keys/private_github-zeronorth.pub | 1 + dot_tmux.conf | 105 +++++++++++ dot_zshrc | 74 ++++++++ private_Projects/dot_gitconfig | 23 +++ 19 files changed, 582 insertions(+) create mode 100644 .chezmoiexternal.toml create mode 100644 .chezmoiignore create mode 100644 dot_Brewfile create mode 100644 dot_aerospace.toml create mode 100644 dot_config/atuin/config.toml create mode 100644 dot_gitconfig create mode 100644 dot_shellrc/rc.d/01-env.sh create mode 100644 dot_shellrc/rc.d/01-nvim.sh create mode 100644 dot_shellrc/rc.d/05-nvm.sh create mode 100644 dot_ssh/config create mode 100644 dot_ssh/config.d/git-coder create mode 100644 dot_ssh/config.d/git-private create mode 100644 dot_ssh/config.d/git-zeronorth create mode 100644 dot_ssh/config.d/github create mode 100644 dot_ssh/private_keys/private_github-private.pub create mode 100644 dot_ssh/private_keys/private_github-zeronorth.pub create mode 100644 dot_tmux.conf create mode 100644 dot_zshrc create mode 100644 private_Projects/dot_gitconfig diff --git a/.chezmoiexternal.toml b/.chezmoiexternal.toml new file mode 100644 index 0000000..7eafa18 --- /dev/null +++ b/.chezmoiexternal.toml @@ -0,0 +1,4 @@ +[".ssh/authorized_keys"] + type = "file" + url = "https://github.com/morten-olsen.keys" + refreshPeriod = "168h" diff --git a/.chezmoiignore b/.chezmoiignore new file mode 100644 index 0000000..3eb44cd --- /dev/null +++ b/.chezmoiignore @@ -0,0 +1,3 @@ +{{- if ne .chezmoi.hostname "work-laptop" }} +Projects/.gitconfig +{{- end }} diff --git a/dot_Brewfile b/dot_Brewfile new file mode 100644 index 0000000..160db42 --- /dev/null +++ b/dot_Brewfile @@ -0,0 +1,70 @@ +tap "coder/coder" +tap "felixkratz/formulae" +tap "fluxcd/tap" +tap "nikitabobko/tap" +tap "sst/tap" +brew "python@3.13" +brew "ansible" +brew "atuin" +brew "bat" +brew "chezmoi" +brew "colima" +brew "curl" +brew "deno" +brew "direnv" +brew "docker" +brew "docker-buildx" +brew "docker-compose" +brew "eza" +brew "fd" +brew "ffmpeg" +brew "fzf" +brew "gh" +brew "git" +brew "git-delta" +brew "gnupg" +brew "graphviz" +brew "helm" +brew "helmfile" +brew "istioctl" +brew "jj" +brew "jq" +brew "k9s" +brew "kubernetes-cli" +brew "neovim" +brew "pyenv" +brew "ripgrep" +brew "rsync" +brew "rustup" +brew "sshpass" +brew "starship" +brew "terraform" +brew "tmux" +brew "unzip" +brew "uv" +brew "watch" +brew "zoxide" +brew "zsh" +brew "coder/coder/coder" +brew "fluxcd/tap/flux" +brew "sst/tap/opencode" +cask "1password" +cask "1password-cli" +cask "aerospace" +cask "dbeaver-community" +cask "ghostty" +cask "home-assistant" +cask "jellyfin-media-player" +cask "lens" +cask "localsend" +cask "mqtt-explorer" +cask "obsidian" +cask "ollama-app" +cask "raycast" + +cask "darktable" +cask "signal" +cask "proton-mail-bridge" +cask "proton-pass" +cask "protonvpn" +cask "steam" diff --git a/dot_aerospace.toml b/dot_aerospace.toml new file mode 100644 index 0000000..587e44f --- /dev/null +++ b/dot_aerospace.toml @@ -0,0 +1,176 @@ +# Place a copy of this config to ~/.aerospace.toml +# After that, you can edit ~/.aerospace.toml to your liking + +# You can use it to add commands that run after AeroSpace startup. +# Available commands : https://nikitabobko.github.io/AeroSpace/commands +after-startup-command = [] +exec-on-workspace-change = [ + '/bin/bash', + '-c', + 'sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE', + 'exec-and-forget borders active_color=0xffe1e3e4 inactive_color=0xff494d64 width=0', +] + +# Start AeroSpace at login +start-at-login = true + +# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization +enable-normalization-flatten-containers = true +enable-normalization-opposite-orientation-for-nested-containers = true + +# See: https://nikitabobko.github.io/AeroSpace/guide#layouts +# The 'accordion-padding' specifies the size of accordion padding +# You can set 0 to disable the padding feature +accordion-padding = 200 + +# Possible values: tiles|accordion +default-root-container-layout = 'tiles' + +# Possible values: horizontal|vertical|auto +# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation, +# tall monitor (anything higher than wide) gets vertical orientation +default-root-container-orientation = 'auto' +on-focused-monitor-changed = ['move-mouse monitor-lazy-center'] + +# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag +# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key +# Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app +automatically-unhide-macos-hidden-apps = false + +[[on-window-detected]] +if.app-name-regex-substring = 'elgato' +run = 'layout floating' + +# Possible values: (qwerty|dvorak|colemak) +# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping +[key-mapping] +preset = 'qwerty' + +# Gaps between windows (inner-*) and between monitor edges (outer-*). +# Possible values: +# - Constant: gaps.outer.top = 8 +# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24] +# In this example, 24 is a default value when there is no match. +# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'. +# See: +# https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors +[gaps] +inner.horizontal = 10 +inner.vertical = 10 +outer.left = 10 +outer.bottom = 10 +outer.top = 5 +outer.right = 10 + +# 'main' binding mode declaration +# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes +# 'main' binding mode must be always presented +# Fallback value (if you omit the key): mode.main.binding = {} +[mode.main.binding] + +# All possible keys: +# - Letters. a, b, c, ..., z +# - Numbers. 0, 1, 2, ..., 9 +# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9 +# - F-keys. f1, f2, ..., f20 +# - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon, +# backtick, leftSquareBracket, rightSquareBracket, space, enter, esc, +# backspace, tab, pageUp, pageDown, home, end, forwardDelete, +# sectionSign (ISO keyboards only, european keyboards only) +# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual, +# keypadMinus, keypadMultiply, keypadPlus +# - Arrows. left, down, up, right + +# All possible modifiers: cmd, alt, ctrl, shift + +# All possible commands: https://nikitabobko.github.io/AeroSpace/commands + +# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget +# You can uncomment the following lines to open up terminal with alt + enter shortcut +# (like in i3) +# alt-enter = '''exec-and-forget osascript -e ' +# tell application "Terminal" +# do script +# activate +# end tell' +# ''' + +alt-ctrl-f = 'fullscreen' +#alt-ctrl-f = 'layout floating tiling' + +# See: https://nikitabobko.github.io/AeroSpace/commands#layout +alt-slash = 'layout tiles horizontal vertical' +alt-comma = 'layout accordion horizontal vertical' + +# See: https://nikitabobko.github.io/AeroSpace/commands#focus +cmd-h = 'focus left' +cmd-j = 'focus down' +cmd-k = 'focus up' +cmd-l = 'focus right' + +# See: https://nikitabobko.github.io/AeroSpace/commands#move +cmd-shift-h = 'move left' +cmd-shift-j = 'move down' +cmd-shift-k = 'move up' +cmd-shift-l = 'move right' + +# See: https://nikitabobko.github.io/AeroSpace/commands#resize +alt-minus = 'resize smart -50' +alt-equal = 'resize smart +50' + +# See: https://nikitabobko.github.io/AeroSpace/commands#workspace +cmd-1 = 'workspace 1' +cmd-2 = 'workspace 2' +cmd-3 = 'workspace 3' +cmd-4 = 'workspace 4' +cmd-5 = 'workspace 5' +cmd-6 = 'workspace 6' +cmd-7 = 'workspace 7' +cmd-8 = 'workspace 8' +cmd-9 = 'workspace 9' + +# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace +cmd-shift-1 = 'move-node-to-workspace 1' +cmd-shift-2 = 'move-node-to-workspace 2' +cmd-shift-3 = 'move-node-to-workspace 3' +cmd-shift-4 = 'move-node-to-workspace 4' +cmd-shift-5 = 'move-node-to-workspace 5' +cmd-shift-6 = 'move-node-to-workspace 6' +cmd-shift-7 = 'move-node-to-workspace 7' +cmd-shift-8 = 'move-node-to-workspace 8' +cmd-shift-9 = 'move-node-to-workspace 9' + +# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth +alt-tab = 'workspace-back-and-forth' +# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor +alt-shift-tab = 'move-workspace-to-monitor --wrap-around next' + +# See: https://nikitabobko.github.io/AeroSpace/commands#mode +alt-shift-comma = 'mode service' +alt-shift-enter = 'mode apps' + +# 'service' binding mode declaration. +# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes +[mode.service.binding] +esc = ['reload-config', 'mode main'] +r = ['flatten-workspace-tree', 'mode main'] # reset layout +f = [ + 'layout floating tiling', + 'mode main', +] # Toggle between floating and tiling layout +backspace = ['close-all-windows-but-current', 'mode main'] + +# sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 +#s = ['layout sticky tiling', 'mode main'] + +alt-shift-h = ['join-with left', 'mode main'] +alt-shift-j = ['join-with down', 'mode main'] +alt-shift-k = ['join-with up', 'mode main'] +alt-shift-l = ['join-with right', 'mode main'] + +down = 'volume down' +up = 'volume up' +shift-down = ['volume set 0', 'mode main'] + +[mode.apps.binding] +alt-g = ['exec-and-forget open -a /Applications/Ghostty.app', 'mode main'] diff --git a/dot_config/atuin/config.toml b/dot_config/atuin/config.toml new file mode 100644 index 0000000..2deb563 --- /dev/null +++ b/dot_config/atuin/config.toml @@ -0,0 +1,2 @@ +style = "compact" +keymap_mode = "vim-normal" diff --git a/dot_gitconfig b/dot_gitconfig new file mode 100644 index 0000000..b6dd5f2 --- /dev/null +++ b/dot_gitconfig @@ -0,0 +1,53 @@ + +[alias] + graph = log --graph --color --pretty=format:"%C(yellow)%H%C(green)%d%C(reset)%n%x20%cd%n%x20%cn%C(blue)%x20(%ce)%x20%C(cyan)[gpg:%GK%x20%G?]%C(reset)%n%x20%s%n" + ll = log --oneline + st = status -sb + cm = commit -m + append = commit --amend --no-edit + sobmodules = submodule update --init --recursive + df = difftool -t nvimdiff -y + last = log -1 --stat + br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate + brr = branch --remote --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate + undo = reset HEAD~1 --mixed + unstage = reset HEAD -- + +[difftool "nvimdiff"] + cmd = "nvim -d \"$LOCAL\" \"$REMOTE\"" +[url "https://"] + insteadOf = git:// + +[core] + pager = delta + hooksPath = /dev/null + +[interactive] + diffFilter = delta --color-only + +[pull] + ff = only +[init] + defaultBranch = main + +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true + +[push] + autoSetupRemote = true + +[includeIf "gitdir:~/Projects/"] + path = "~/Projects/.gitconfig" + +[includeIf "gitdir:~/Projects/private"] + path = "~/Projects/private/.gitconfig" + +[includeIf "gitdir:~/Projects/zeronorth"] + path = "~/Projects/zeronorth/.gitconfig" + + + + diff --git a/dot_shellrc/rc.d/01-env.sh b/dot_shellrc/rc.d/01-env.sh new file mode 100644 index 0000000..81da0ea --- /dev/null +++ b/dot_shellrc/rc.d/01-env.sh @@ -0,0 +1,10 @@ +export TMPDIR="${TMPDIR:-/tmp}" +export PATH="/opt/homebrew/bin:$PATH:$HOME/.local/bin" + +alias ls=eza +alias cat=bat +alias grep=rg +alias diff=delta +alias less=bat +alias gr='if [ "`git rev-parse --show-cdup`" != "" ]; then cd `git rev-parse --show-cdup`; fi' + diff --git a/dot_shellrc/rc.d/01-nvim.sh b/dot_shellrc/rc.d/01-nvim.sh new file mode 100644 index 0000000..ffaea50 --- /dev/null +++ b/dot_shellrc/rc.d/01-nvim.sh @@ -0,0 +1,3 @@ +export EDITOR=nvim +alias vim=nvim + diff --git a/dot_shellrc/rc.d/05-nvm.sh b/dot_shellrc/rc.d/05-nvm.sh new file mode 100644 index 0000000..470257b --- /dev/null +++ b/dot_shellrc/rc.d/05-nvm.sh @@ -0,0 +1,4 @@ +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + diff --git a/dot_ssh/config b/dot_ssh/config new file mode 100644 index 0000000..89709af --- /dev/null +++ b/dot_ssh/config @@ -0,0 +1,8 @@ +Include ~/.colima/ssh_config +Include ~/.ssh/config.d/* + +Host * + Controlmaster auto + Controlpath /tmp/ssh-%r@%h:%p + IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" + ForwardAgent yes diff --git a/dot_ssh/config.d/git-coder b/dot_ssh/config.d/git-coder new file mode 100644 index 0000000..1bdd03d --- /dev/null +++ b/dot_ssh/config.d/git-coder @@ -0,0 +1,22 @@ +# ------------START-CODER----------- +# This section is managed by coder. DO NOT EDIT. +# +# You should not hand-edit this section unless you are removing it, all +# changes will be lost when running "coder config-ssh". +# +Host coder.* + ConnectTimeout=0 + StrictHostKeyChecking=no + UserKnownHostsFile=/dev/null + LogLevel ERROR + ProxyCommand /opt/homebrew/bin/coder --global-config "~/Library/Application Support/coderv2" ssh --stdio --ssh-host-prefix coder. %h + +Host *.coder + ConnectTimeout=0 + StrictHostKeyChecking=no + UserKnownHostsFile=/dev/null + LogLevel ERROR + +Match host *.coder !exec "/opt/homebrew/bin/coder connect exists %h" + ProxyCommand /opt/homebrew/bin/coder --global-config "~/Library/Application Support/coderv2" ssh --stdio --hostname-suffix coder %h +# ------------END-CODER------------ diff --git a/dot_ssh/config.d/git-private b/dot_ssh/config.d/git-private new file mode 100644 index 0000000..3171d04 --- /dev/null +++ b/dot_ssh/config.d/git-private @@ -0,0 +1,13 @@ +host github-private + hostname ssh.github.com + user git + port 443 + IdentityFile ~/.ssh/keys/github-private.pub + IdentitiesOnly yes + +host gitea-ssh.olsen.cloud + hostname gitea-ssh.olsen.cloud + user git + port 2202 + IdentityFile ~/.ssh/keys/github-private.pub + IdentitiesOnly yes diff --git a/dot_ssh/config.d/git-zeronorth b/dot_ssh/config.d/git-zeronorth new file mode 100644 index 0000000..5db03b0 --- /dev/null +++ b/dot_ssh/config.d/git-zeronorth @@ -0,0 +1,6 @@ +host github-zeronorth + hostname ssh.github.com + user git + port 443 + IdentityFile ~/.ssh/keys/github-zeronorth.pub + IdentitiesOnly yes diff --git a/dot_ssh/config.d/github b/dot_ssh/config.d/github new file mode 100644 index 0000000..0fe0cb1 --- /dev/null +++ b/dot_ssh/config.d/github @@ -0,0 +1,4 @@ +host github.com + hostname ssh.github.com + user git + port 443 diff --git a/dot_ssh/private_keys/private_github-private.pub b/dot_ssh/private_keys/private_github-private.pub new file mode 100644 index 0000000..5cc8503 --- /dev/null +++ b/dot_ssh/private_keys/private_github-private.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaIAP/ZJ7+7jeR44e1yIJjfQAB6MN351LDKJAXVF62P \ No newline at end of file diff --git a/dot_ssh/private_keys/private_github-zeronorth.pub b/dot_ssh/private_keys/private_github-zeronorth.pub new file mode 100644 index 0000000..d207b93 --- /dev/null +++ b/dot_ssh/private_keys/private_github-zeronorth.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKDbZITpz5QrVIxPn9gKVWMPK+3W3YZZGszFOQvO/h7M \ No newline at end of file diff --git a/dot_tmux.conf b/dot_tmux.conf new file mode 100644 index 0000000..0337c02 --- /dev/null +++ b/dot_tmux.conf @@ -0,0 +1,105 @@ +set -g mouse on +#set -g default-terminal "screen-256color-bce" +#set -g status-justify centre + +#set -ga terminal-overrides ',xterm-256color:Tc' +set -ag terminal-overrides ",xterm-256color:RGB" + + +set -g base-index 1 +set -g renumber-windows on +bind q lock-client + +unbind '"' +unbind % + +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +bind -r H resize-pane -L 10 +bind -r J resize-pane -D 10 +bind -r K resize-pane -U 10 +bind -r L resize-pane -R 10 + +bind o attach -c "#{pane_current_path}" + +# don't rename windows automatically +set-option -g allow-rename off + +set -g @plugin 'tmux-plugins/tpm' + +run -b '~/.tmux/plugins/tpm/tpm' +if "test ! -d ~/.tmux/plugins/tpm" \ + "run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'" + +# set -g @plugin "arcticicestudio/nord-tmux" +# set -g @plugin 'dracula/tmux' +# set -g @dracula-show-powerline true +set -g @plugin 'wfxr/tmux-power' +# set -g @plugin 'catppuccin/tmux' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @plugin 'tmux-plugins/tmux-sensible' + +# open pane in vim +bind-key / capture-pane -S -102400 -J \; new-window 'vim -c ":read !tmux save-buffer - ; tmux delete-buffer;" -c ":normal gg" -c ":set buftype=nofile" -c ":silent! ChompWhitespace"' + +set -g @catppuccin_date_time "%Y-%m-%d %H:%M" +set -g @catppuccin_window_tabs_enabled "on" + +# clear history +# bind k send-keys -R \; clear-history + +# copy mode +setw -g mode-keys vi +bind Escape copy-mode +unbind [ +unbind p +bind p paste-buffer +bind -Tcopy-mode-vi v send -X begin-selection +bind -Tcopy-mode-vi y send -X copy-selection +bind -Tcopy-mode-vi Escape send -X cancel + +# panes +bind - split-window -v -c "#{pane_current_path}" +bind | split-window -h -c "#{pane_current_path}" +bind C-z resize-pane -Z +bind g swap-pane -U +bind æ swap-pane -D + +# panes +#set -g window-active-style 'bg=colour236' +#set -g window-style 'bg=black' + + +# Smart pane switching with awareness of Vim splits. +# See: https://github.com/christoomey/vim-tmux-navigator +is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ + | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" +bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' +bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' +bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' +bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' + +bind -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'resize-pane -L 1' +bind -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'resize-pane -D 1' +bind -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'resize-pane -U 1' +bind -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'resize-pane -R 1' + +tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' +if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ + "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" +if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ + "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" + + +bind-key -T copy-mode-vi 'C-h' select-pane -L +bind-key -T copy-mode-vi 'C-j' select-pane -D +bind-key -T copy-mode-vi 'C-k' select-pane -U +bind-key -T copy-mode-vi 'C-l' select-pane -R +bind-key -T copy-mode-vi 'C-\' select-pane -l + +# Utils +bind -r g display-popup -d '#{pane_current_path}' -w80% -h80% -E lazygit + diff --git a/dot_zshrc b/dot_zshrc new file mode 100644 index 0000000..fd741db --- /dev/null +++ b/dot_zshrc @@ -0,0 +1,74 @@ +export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-$HOME/.cache} +export LANG=en_US.UTF-8 + +# Load all files from .shell/rc.d directory +if [ -d $HOME/.shellrc/rc.d ]; then + for file in $HOME/.shellrc/rc.d/*.sh; do + source $file + done +fi + +# Load all files from .shell/zshrc.d directory +if [ -d $HOME/.shellrc/zshrc.d ]; then + for file in $HOME/.shellrc/zshrc.d/*.zsh; do + source $file + done +fi +export GPG_TTY=$(tty) +if [[ -n "$SSH_CONNECTION" ]] ;then + export PINENTRY_USER_DATA="USE_CURSES=1" +fi + +[ -f ~/.env ] && source ~/.env + +if [ `tput cols` -gt "70" ]; then +function PRINT_CENTER { + COLS=`tput cols` + OFFSET=$(( ($COLS - $1) / 2 )) + PRE="" + for i in `seq $OFFSET`; do + PRE="$PRE " + done + while IFS= read -r line; do + echo "$PRE$line" + done <<< "$2" +} +PRINT_CENTER 60 " + + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + █░▄▄▀█▀▄▄▀█░▄▄░█▄░▄█▀▄▀██░▄░██░██░█░▄▄█░▄▄░█ + █░▀▀▄█░██░█░▀▄░██░██░█▀█░▀▀░▀█░██░█▄▄▀███▄██ + █▄█▄▄██▄▄██░▀▀░██▄███▄█████░███▄▄▄█▄▄▄█░▀▀░█ + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + + ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ + ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ + ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ + ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ + ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ + ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ + ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ + ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ + ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ + ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ + ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ +▄▄▄ . ▌ ▐·▪ ▄▄▌ ▄▄▌ ▐ ▄▌▪ ▄▄▄▄▄ ▄ .▄ ▄• ▄▌▄▄▄▄▄ +▀▄.▀·▪█·█▌██ ██• ██· █▌▐███ •██ ██▪▐█ ▄█▀▄ █▪██▌•██ +▐▀▀▪▄▐█▐█•▐█·██ ▪ ██▪▐█▐▐▌▐█· ▐█.▪██▀▀█▐█▌.▐▌█▌▐█▌ ▐█.▪ +▐█▄▄▌ ███ ▐█▌▐█▌ ▄ ▐█▌██▐█▌▐█▌ ▐█▌·██▌▐▀▐█▌.▐▌▐█▄█▌ ▐█▌· + ▀▀▀ . ▀ ▀▀▀.▀▀▀ ▀▀▀▀ ▀▪▀▀▀ ▀▀▀ ▀▀▀ · ▀█▄▀▪ ▀▀▀ ▀▀▀ + + > welcome x_x +" +fi + +export FZF_DEFAULT_OPTS=" \ +--color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \ +--color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \ +--color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8" + +which atuin &> /dev/null && eval "$(atuin init zsh)" +which direnv &> /dev/null && eval "$(direnv hook zsh)" +which starship &> /dev/null && eval "$(starship init zsh)" +which zoxide &> /dev/null && eval "$(zoxide init zsh)" +which pyenv &> /dev/null && eval "$(pyenv init --path)" diff --git a/private_Projects/dot_gitconfig b/private_Projects/dot_gitconfig new file mode 100644 index 0000000..8f20715 --- /dev/null +++ b/private_Projects/dot_gitconfig @@ -0,0 +1,23 @@ +[user] + email = fbtijfdq@void.black + name = Morten Olsen + signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFaIAP/ZJ7+7jeR44e1yIJjfQAB6MN351LDKJAXVF62P + +[commit] + gpgsign = true + +[gpg] + format = ssh + +[gpg "ssh"] + program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign" + + + +[url "ssh://git@ssh-gitea.olsen.cloud:2205/"] + insteadOf = "https://gitea.olsen.cloud/" + + +[url "git@github-private:"] + insteadOf = https://github.com/ +