Compare commits
	
		
			41 Commits
		
	
	
		
			e37c74db15
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 360afecb75 | |||
| 5fb9b3618b | |||
| 41fb0c639a | |||
| 4b17d5db2d | |||
| cf85fb6372 | |||
| 475c183ff7 | |||
| f39f21b624 | |||
| afef09e9a8 | |||
| 290ed36719 | |||
| 5fbc0bca6b | |||
| 6120bd900f | |||
| 71fa00e26b | |||
| 1507b0c3c4 | |||
| 9837828c72 | |||
| dbc860d89d | |||
| 5cc4dac594 | |||
| 5de5edca67 | |||
| 875ee44e7c | |||
| 781edd5bf2 | |||
| 90c71a0316 | |||
| d7f8b52c98 | |||
| a9fe95254a | |||
| 0cadba2ad4 | |||
| a1b422e29e | |||
| 62ccbf5d4b | |||
| fc639f1fe4 | |||
| 791500431a | |||
| 66bb08a653 | |||
| d3bf12cd5e | |||
| 170c3acb55 | |||
| c269c6e175 | |||
| aeaedd8411 | |||
| 3fd73e311a | |||
| 17b524edf4 | |||
| afc6af93ca | |||
| f1e8dc27e5 | |||
| adde03a577 | |||
| 97843e8958 | |||
| 22de7135d6 | |||
| 27a4e03a65 | |||
| 4040342a3c | 
							
								
								
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -17,15 +17,26 @@ zsh/* | ||||
| !zsh/.zshrc | ||||
| !zsh/.zshenv | ||||
| !zsh/.zprofile | ||||
| !zsh/.zsh_plugins.txt | ||||
| !zsh/scripts.zsh | ||||
| !zsh/aliases.zsh | ||||
| !zsh/completions/.keep | ||||
| !zsh/ssh-menu | ||||
| !zsh/get-dump | ||||
|  | ||||
| # starship | ||||
| !starship | ||||
| starship/* | ||||
| !starship/config.toml | ||||
|  | ||||
| # tmux | ||||
| !tmux | ||||
| tmux/* | ||||
| !tmux/tmux.conf | ||||
| !tmux/tmux-new-project | ||||
| !tmux/tmux-sessionizer | ||||
| !tmux/tmux-ggclone | ||||
| !tmux/tmux-ssher | ||||
|  | ||||
| # git | ||||
| !git | ||||
| @@ -33,3 +44,9 @@ git/* | ||||
| !git/config | ||||
| !git/gitignore | ||||
| !git/aflabs | ||||
|  | ||||
| # ghostty | ||||
| !ghostty | ||||
| ghostty/* | ||||
| !ghostty/config | ||||
| !ghostty/themes | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| # Neovim should be able to run anywhere | ||||
| neovim | ||||
| pynvim | ||||
|  | ||||
| # Upgrade pip while we're at it. | ||||
| pip | ||||
|   | ||||
							
								
								
									
										77
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										77
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,21 +1,62 @@ | ||||
| # .dotfiles | ||||
|  | ||||
| ## setup cheat sheet | ||||
| ## Alacritty | ||||
|  | ||||
| - install [alacritty](https://github.com/alacritty/alacritty) | ||||
|     - install `JetBrainsMonoNL` font from [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) | ||||
| - install [zsh](https://www.zsh.org/) | ||||
| - install [oh-my-zsh](https://ohmyz.sh/) | ||||
|     - install [zsh-nvm](https://github.com/lukechilds/zsh-nvm) | ||||
|     - install [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) | ||||
|     - install [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) | ||||
| - install [go](https://go.dev/) | ||||
| - install [ggman](https://github.com/tkw1536/ggman) | ||||
| - install [pyenv](https://github.com/pyenv/pyenv) to $XDG_DATA_HOME/.pyenv | ||||
|     - set `PYENV_ROOT` and use [pyenv-installer](https://github.com/pyenv/pyenv-installer) | ||||
|     - install [pyenv-default-packages](https://github.com/jawshooah/pyenv-default-packages.git) | ||||
|     - symlink `.pyenv/default-packages` to `$PYENV_ROOT/default-packages` | ||||
| - install [neovim](https://neovim.io/) | ||||
|     - follow `README.md` in [janezicmatej/nvim](https://github.com/janezicmatej/nvim/) | ||||
| - install [tmux](https://github.com/tmux/tmux) | ||||
|     - install [tmp](https://github.com/tmux-plugins/tpm) for plugins | ||||
| Install [alacritty](https://github.com/alacritty/alacritty) and `JetBrainsMono` font from [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) | ||||
|  | ||||
| ## ZSH  | ||||
|  | ||||
| Install [zsh](https://www.zsh.org/). | ||||
|  | ||||
| ### $ZDOTDIR | ||||
|  | ||||
| To change the location of zsh config files run one of these | ||||
|  | ||||
| ```sh | ||||
| # for linux | ||||
| echo 'export ZDOTDIR="$HOME/.config/zsh"' > /etc/zsh/zshenv  | ||||
| # for macos | ||||
| echo 'export ZDOTDIR="$HOME/.config/zsh"' > /etc/zshenv  | ||||
| ``` | ||||
|  | ||||
| ### Antigen | ||||
|  | ||||
| Install [antigen](https://github.com/zsh-users/antigen) | ||||
|  | ||||
| ```sh | ||||
| curl -L git.io/antigen > antigen.zsh | ||||
| # or use git.io/antigen-nightly for the latest version | ||||
| ``` | ||||
|  | ||||
| ## Go | ||||
|  | ||||
| Install [go](https://go.dev/) as it is required for building `ggman` | ||||
|  | ||||
| ## ggman | ||||
|  | ||||
| Create `$HOME/git` directory (`$GGROOT` is set to here) and install [ggman](https://github.com/tkw1536/ggman) | ||||
|  | ||||
| ```sh | ||||
| git clone https://github.com/tkw1536/ggman $HOME/git/ggman | ||||
| cd $HOME/git/ggman | ||||
| make | ||||
| make install | ||||
| ``` | ||||
|  | ||||
| ## pyenv | ||||
|  | ||||
| Install [pyenv](https://github.com/pyenv/pyenv) to `$XDG_DATA_HOME/.pyenv` (this is already taken care for in `.zshenv`) using [pyenv-installer](https://github.com/pyenv/pyenv-installer) and install [build-dependencies](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) | ||||
|  | ||||
| ### pyenv-default-packages | ||||
| Install [pyenv-default-packages](https://github.com/jawshooah/pyenv-default-packages.git) as pyenv plugin and symlink `.pyenv/default-packages` to `$PYENV_ROOT` | ||||
|  | ||||
| ```sh | ||||
| git clone https://github.com/jawshooah/pyenv-default-packages.git $(pyenv root)/plugins/pyenv-default-packages | ||||
| ln -s "$XDG_CONFIG_HOME/.pyenv/default-packages" "$(pyenv root)/default-packages" | ||||
| ``` | ||||
|  | ||||
| ## neovim | ||||
| Install [neovim](https://neovim.io/) and follow `README.md` in [git.janezic.dev/janezicmatej/nvim](https://git.janezic.dev/janezicmatej/nvim/) | ||||
|  | ||||
| ## tmux | ||||
| Install [tmux](https://github.com/tmux/tmux) and [`fzf`](https://github.com/junegunn/fzf) for `tmux-sessionizer` | ||||
|   | ||||
							
								
								
									
										82
									
								
								alacritty/alacritty.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								alacritty/alacritty.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,82 @@ | ||||
| [colors] | ||||
| draw_bold_text_with_bright_colors = true | ||||
|  | ||||
| [colors.bright] | ||||
| black = "0x45403d" | ||||
| blue = "0x7daea3" | ||||
| cyan = "0x89b482" | ||||
| green = "0xa9b665" | ||||
| magenta = "0xd3869b" | ||||
| red = "0xea6962" | ||||
| white = "0xd4be98" | ||||
| yellow = "0xd8a657" | ||||
|  | ||||
| [colors.normal] | ||||
| black = "0x45403d" | ||||
| blue = "0x7daea3" | ||||
| cyan = "0x89b482" | ||||
| green = "0xa9b665" | ||||
| magenta = "0xd3869b" | ||||
| red = "0xea6962" | ||||
| white = "0xd4be98" | ||||
| yellow = "0xd8a657" | ||||
|  | ||||
| [colors.primary] | ||||
| background = "0x32302f" | ||||
| foreground = "0xd4be98" | ||||
|  | ||||
| [cursor] | ||||
| unfocused_hollow = true | ||||
|  | ||||
| [cursor.style] | ||||
| blinking = "On" | ||||
| shape = "Block" | ||||
|  | ||||
| [env] | ||||
| TERM = "xterm-256color" | ||||
|  | ||||
| [font] | ||||
| size = 15 | ||||
|  | ||||
| [font.bold] | ||||
| family = "JetBrainsMono Nerd Font" | ||||
| style = "Bold" | ||||
|  | ||||
| [font.bold_italic] | ||||
| family = "JetBrainsMono Nerd Font" | ||||
| style = "Bold Italic" | ||||
|  | ||||
| [font.italic] | ||||
| family = "JetBrainsMono Nerd Font" | ||||
| style = "Italic" | ||||
|  | ||||
| [font.normal] | ||||
| family = "JetBrainsMono Nerd Font" | ||||
| style = "Regular" | ||||
|  | ||||
| [[keyboard.bindings]] | ||||
| chars = "\f" | ||||
| key = "R" | ||||
| mode = "~Vi|~Search" | ||||
| mods = "Command" | ||||
|  | ||||
| [[keyboard.bindings]] | ||||
| action = "ScrollPageUp" | ||||
| key = "PageUp" | ||||
| mode = "~Alt" | ||||
|  | ||||
| [[keyboard.bindings]] | ||||
| action = "ScrollPageDown" | ||||
| key = "PageDown" | ||||
| mode = "~Alt" | ||||
|  | ||||
| [scrolling] | ||||
| history = 10000 | ||||
|  | ||||
| [window] | ||||
| dynamic_title = true | ||||
| option_as_alt = "Both" | ||||
|  | ||||
| [window.dimensions] | ||||
| columns = 150 | ||||
| lines = 36 | ||||
| @@ -1,152 +0,0 @@ | ||||
| # https://gist.github.com/sainnhe/ad5cbc4f05c4ced83f80e54d9a75d22f | ||||
| colors: | ||||
|   primary: | ||||
|     background: '0x32302f' | ||||
|     foreground: '0xd4be98' | ||||
|   normal: | ||||
|     black:   '0x45403d' | ||||
|     red:     '0xea6962' | ||||
|     green:   '0xa9b665' | ||||
|     yellow:  '0xd8a657' | ||||
|     blue:    '0x7daea3' | ||||
|     magenta: '0xd3869b' | ||||
|     cyan:    '0x89b482' | ||||
|     white:   '0xd4be98' | ||||
|   bright: | ||||
|     black:   '0x45403d' | ||||
|     red:     '0xea6962' | ||||
|     green:   '0xa9b665' | ||||
|     yellow:  '0xd8a657' | ||||
|     blue:    '0x7daea3' | ||||
|     magenta: '0xd3869b' | ||||
|     cyan:    '0x89b482' | ||||
|     white:   '0xd4be98' | ||||
|  | ||||
| # Any items in the `env` entry below will be added as | ||||
| # environment variables. Some entries may override variables | ||||
| # set by alacritty itself. | ||||
| env: | ||||
|   TERM: xterm-256color | ||||
|  | ||||
| window: | ||||
|   # window dimensions | ||||
|   dimensions: | ||||
|    columns: 150 | ||||
|    lines: 36 | ||||
|  | ||||
|   # allow programs to dynamically change title | ||||
|   dynamic_title: true | ||||
|  | ||||
| scrolling: | ||||
|   # Maximum number of lines in the scrollback buffer. | ||||
|   history: 10000 | ||||
|  | ||||
| # https://github.com/ryanoasis/nerd-fonts | ||||
| font: | ||||
|   size: 14 | ||||
|  | ||||
|   normal: | ||||
|     family: JetBrainsMonoNL Nerd Font | ||||
|     style: Regular | ||||
|  | ||||
|   italic: | ||||
|     family: JetBrainsMonoNL Nerd Font | ||||
|     style: Italic | ||||
|  | ||||
|   bold: | ||||
|     family: JetBrainsMonoNL Nerd Font | ||||
|     style: Bold | ||||
|  | ||||
|   bold_italic: | ||||
|     family: JetBrainsMonoNL Nerd Font | ||||
|     style: Bold Italic | ||||
|  | ||||
| draw_bold_text_with_bright_colors: true | ||||
|  | ||||
| cursor: | ||||
|   unfocused_hollow: true | ||||
|   style: | ||||
|     shape: Block | ||||
|     blinking: On | ||||
|  | ||||
| key_bindings: | ||||
|   - { key: R,         mods: Command, mode: ~Vi|~Search, chars: "\x0c"                 } | ||||
|   - { key: PageUp,    mode: ~Alt,                       action:  ScrollPageUp         } | ||||
|   - { key: PageDown,  mode: ~Alt,                       action:  ScrollPageDown         } | ||||
|   # remap option to alt for mac | ||||
|   - { key: A,         mods: Alt,       chars: "\x1ba"                       } | ||||
|   - { key: B,         mods: Alt,       chars: "\x1bb"                       } | ||||
|   - { key: C,         mods: Alt,       chars: "\x1bc"                       } | ||||
|   - { key: D,         mods: Alt,       chars: "\x1bd"                       } | ||||
|   - { key: E,         mods: Alt,       chars: "\x1be"                       } | ||||
|   - { key: F,         mods: Alt,       chars: "\x1bf"                       } | ||||
|   - { key: G,         mods: Alt,       chars: "\x1bg"                       } | ||||
|   - { key: H,         mods: Alt,       chars: "\x1bh"                       } | ||||
|   - { key: I,         mods: Alt,       chars: "\x1bi"                       } | ||||
|   - { key: J,         mods: Alt,       chars: "\x1bj"                       } | ||||
|   - { key: K,         mods: Alt,       chars: "\x1bk"                       } | ||||
|   - { key: L,         mods: Alt,       chars: "\x1bl"                       } | ||||
|   - { key: M,         mods: Alt,       chars: "\x1bm"                       } | ||||
|   - { key: N,         mods: Alt,       chars: "\x1bn"                       } | ||||
|   - { key: O,         mods: Alt,       chars: "\x1bo"                       } | ||||
|   - { key: P,         mods: Alt,       chars: "\x1bp"                       } | ||||
|   - { key: Q,         mods: Alt,       chars: "\x1bq"                       } | ||||
|   - { key: R,         mods: Alt,       chars: "\x1br"                       } | ||||
|   - { key: S,         mods: Alt,       chars: "\x1bs"                       } | ||||
|   - { key: T,         mods: Alt,       chars: "\x1bt"                       } | ||||
|   - { key: U,         mods: Alt,       chars: "\x1bu"                       } | ||||
|   - { key: V,         mods: Alt,       chars: "\x1bv"                       } | ||||
|   - { key: W,         mods: Alt,       chars: "\x1bw"                       } | ||||
|   - { key: X,         mods: Alt,       chars: "\x1bx"                       } | ||||
|   - { key: Y,         mods: Alt,       chars: "\x1by"                       } | ||||
|   - { key: Z,         mods: Alt,       chars: "\x1bz"                       } | ||||
|   - { key: A,         mods: Alt|Shift, chars: "\x1bA"                       } | ||||
|   - { key: B,         mods: Alt|Shift, chars: "\x1bB"                       } | ||||
|   - { key: C,         mods: Alt|Shift, chars: "\x1bC"                       } | ||||
|   - { key: D,         mods: Alt|Shift, chars: "\x1bD"                       } | ||||
|   - { key: E,         mods: Alt|Shift, chars: "\x1bE"                       } | ||||
|   - { key: F,         mods: Alt|Shift, chars: "\x1bF"                       } | ||||
|   - { key: G,         mods: Alt|Shift, chars: "\x1bG"                       } | ||||
|   - { key: H,         mods: Alt|Shift, chars: "\x1bH"                       } | ||||
|   - { key: I,         mods: Alt|Shift, chars: "\x1bI"                       } | ||||
|   - { key: J,         mods: Alt|Shift, chars: "\x1bJ"                       } | ||||
|   - { key: K,         mods: Alt|Shift, chars: "\x1bK"                       } | ||||
|   - { key: L,         mods: Alt|Shift, chars: "\x1bL"                       } | ||||
|   - { key: M,         mods: Alt|Shift, chars: "\x1bM"                       } | ||||
|   - { key: N,         mods: Alt|Shift, chars: "\x1bN"                       } | ||||
|   - { key: O,         mods: Alt|Shift, chars: "\x1bO"                       } | ||||
|   - { key: P,         mods: Alt|Shift, chars: "\x1bP"                       } | ||||
|   - { key: Q,         mods: Alt|Shift, chars: "\x1bQ"                       } | ||||
|   - { key: R,         mods: Alt|Shift, chars: "\x1bR"                       } | ||||
|   - { key: S,         mods: Alt|Shift, chars: "\x1bS"                       } | ||||
|   - { key: T,         mods: Alt|Shift, chars: "\x1bT"                       } | ||||
|   - { key: U,         mods: Alt|Shift, chars: "\x1bU"                       } | ||||
|   - { key: V,         mods: Alt|Shift, chars: "\x1bV"                       } | ||||
|   - { key: W,         mods: Alt|Shift, chars: "\x1bW"                       } | ||||
|   - { key: X,         mods: Alt|Shift, chars: "\x1bX"                       } | ||||
|   - { key: Y,         mods: Alt|Shift, chars: "\x1bY"                       } | ||||
|   - { key: Z,         mods: Alt|Shift, chars: "\x1bZ"                       } | ||||
|   - { key: Key1,      mods: Alt,       chars: "\x1b1"                       } | ||||
|   - { key: Key2,      mods: Alt,       chars: "\x1b2"                       } | ||||
|   - { key: Key3,      mods: Alt,       chars: "\x1b3"                       } | ||||
|   - { key: Key4,      mods: Alt,       chars: "\x1b4"                       } | ||||
|   - { key: Key5,      mods: Alt,       chars: "\x1b5"                       } | ||||
|   - { key: Key6,      mods: Alt,       chars: "\x1b6"                       } | ||||
|   - { key: Key7,      mods: Alt,       chars: "\x1b7"                       } | ||||
|   - { key: Key8,      mods: Alt,       chars: "\x1b8"                       } | ||||
|   - { key: Key9,      mods: Alt,       chars: "\x1b9"                       } | ||||
|   - { key: Key0,      mods: Alt,       chars: "\x1b0"                       } | ||||
|   - { key: Space,     mods: Control,   chars: "\x00"                        } # Ctrl + Space | ||||
|   - { key: Grave,     mods: Alt,       chars: "\x1b`"                       } # Alt + ` | ||||
|   - { key: Grave,     mods: Alt|Shift, chars: "\x1b~"                       } # Alt + ~ | ||||
|   - { key: Period,    mods: Alt,       chars: "\x1b."                       } # Alt + . | ||||
|   - { key: Key8,      mods: Alt|Shift, chars: "\x1b*"                       } # Alt + * | ||||
|   - { key: Key3,      mods: Alt|Shift, chars: "\x1b#"                       } # Alt + # | ||||
|   - { key: Period,    mods: Alt|Shift, chars: "\x1b>"                       } # Alt + > | ||||
|   - { key: Comma,     mods: Alt|Shift, chars: "\x1b<"                       } # Alt + < | ||||
|   - { key: Minus,     mods: Alt|Shift, chars: "\x1b_"                       } # Alt + _ | ||||
|   - { key: Key5,      mods: Alt|Shift, chars: "\x1b%"                       } # Alt + % | ||||
|   - { key: Key6,      mods: Alt|Shift, chars: "\x1b^"                       } # Alt + ^ | ||||
|   - { key: Backslash, mods: Alt,       chars: "\x1b\\"                      } # Alt + \ | ||||
|   - { key: Backslash, mods: Alt|Shift, chars: "\x1b|"                       } # Alt + | | ||||
|  | ||||
							
								
								
									
										46
									
								
								ghostty/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								ghostty/config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| # theme | ||||
| # theme = light:gruvbox-material-soft-light,dark:gruvbox-material-soft-dark | ||||
| theme = gruvbox-material-soft-dark | ||||
|  | ||||
| # cursor | ||||
| cursor-style = block | ||||
| cursor-style-blink = true | ||||
|  | ||||
| # mouse | ||||
| mouse-hide-while-typing = true | ||||
|  | ||||
| # font stuff | ||||
| font-family = JetBrainsMono Nerd Font | ||||
| font-size = 15 | ||||
| font-thicken = true | ||||
| bold-is-bright = true | ||||
|  | ||||
| # disable ligatures | ||||
| font-feature=-calt | ||||
| font-feature=-liga | ||||
| font-feature=-dlig | ||||
|  | ||||
| # window | ||||
| window-theme = dark | ||||
| window-height = 36 | ||||
| window-width = 150 | ||||
|  | ||||
| # macos send option as alt | ||||
| macos-option-as-alt = true | ||||
|  | ||||
| # no warning full close | ||||
| confirm-close-surface = false | ||||
| # quit-after-last-window-closed = true | ||||
|  | ||||
| # keybinds | ||||
| keybind = global:cmd+enter=new_window | ||||
|  | ||||
| # shell integrations for zsh | ||||
| # https://ghostty.org/docs/features/shell-integration  | ||||
| shell-integration = zsh | ||||
|  | ||||
| # gtk | ||||
| gtk-titlebar = false | ||||
|  | ||||
| # paste protection | ||||
| clipboard-paste-protection = false | ||||
							
								
								
									
										21
									
								
								ghostty/themes/gruvbox-material-soft-dark
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ghostty/themes/gruvbox-material-soft-dark
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| palette = 0=252423 | ||||
| palette = 1=#ea6962 | ||||
| palette = 2=#a9b665 | ||||
| palette = 3=#d8a657 | ||||
| palette = 4=#7daea3 | ||||
| palette = 5=#d3869b | ||||
| palette = 6=#89b482 | ||||
| palette = 7=#d4be98 | ||||
| palette = 8=#32302f | ||||
| palette = 9=#ea6962 | ||||
| palette = 10=#a9b665 | ||||
| palette = 11=#d8a657 | ||||
| palette = 12=#7daea3 | ||||
| palette = 13=#d3869b | ||||
| palette = 14=#89b482 | ||||
| palette = 15=#d4be98 | ||||
| background = #32302f | ||||
| foreground = #d4be98 | ||||
| cursor-color = #d4be98 | ||||
| selection-background = #45403d | ||||
| selection-foreground = #d4be98 | ||||
							
								
								
									
										21
									
								
								ghostty/themes/gruvbox-material-soft-light
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ghostty/themes/gruvbox-material-soft-light
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| palette = 0=#ebdbb2 | ||||
| palette = 1=#c14a4a | ||||
| palette = 2=#6c782e | ||||
| palette = 3=#b47109 | ||||
| palette = 4=#45707a | ||||
| palette = 5=#945e80 | ||||
| palette = 6=#4c7a5d | ||||
| palette = 7=#654735 | ||||
| palette = 8=#f3eac7 | ||||
| palette = 9=#c14a4a | ||||
| palette = 10=#6c782e | ||||
| palette = 11=#b47109 | ||||
| palette = 12=#45707a | ||||
| palette = 13=#945e80 | ||||
| palette = 14=#4c7a5d | ||||
| palette = 15=#654735 | ||||
| background = #f2e5bc | ||||
| foreground = #654735 | ||||
| cursor-color = #654735 | ||||
| selection-background = #ebdbb2 | ||||
| selection-foreground = #654735 | ||||
| @@ -5,8 +5,6 @@ | ||||
| 	autocrlf = input | ||||
| 	excludesfile = ~/.config/git/gitignore | ||||
| 	editor = nvim | ||||
| [init] | ||||
| 	defaultBranch = master | ||||
| [include] | ||||
| 	path = ~/.config/git/alias | ||||
| [include] | ||||
| @@ -14,3 +12,7 @@ | ||||
| [includeIf "gitdir:~/Desktop/git/git.aflabs.org/"] | ||||
| 	path = ~/.config/git/aflabs | ||||
|  | ||||
| [init] | ||||
| 	defaultBranch = main | ||||
| [alias] | ||||
| 	blame = "!f() { [ -f .git-blame-ignore-revs ] && git blame --ignore-revs-file .git-blame-ignore-revs \"$@\" || git blame \"$@\"; }; f" | ||||
|   | ||||
							
								
								
									
										2
									
								
								nvim
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								nvim
									
									
									
									
									
								
							 Submodule nvim updated: cb15af601e...d97244ca10
									
								
							
							
								
								
									
										58
									
								
								starship/config.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								starship/config.toml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| add_newline = false | ||||
|  | ||||
| format = """\ | ||||
| $hostname\ | ||||
| [$directory](cyan)\ | ||||
| $git_branch\ | ||||
| $git_commit\ | ||||
| $git_state\ | ||||
| $git_status\ | ||||
| $character\ | ||||
| """ | ||||
|  | ||||
| right_format = """\ | ||||
| $golang\ | ||||
| $lua\ | ||||
| $nodejs\ | ||||
| $python\ | ||||
| $rust\ | ||||
| $cmd_duration\ | ||||
| """ | ||||
|  | ||||
| [character] | ||||
| success_symbol = '[>](bold green)' | ||||
| error_symbol = '[>](bold red)' | ||||
|  | ||||
| [directory] | ||||
| truncation_length = 1 | ||||
| truncate_to_repo = false | ||||
| fish_style_pwd_dir_length = 1 | ||||
|  | ||||
| [git_commit] | ||||
| tag_symbol = '' | ||||
|  | ||||
| [git_branch] | ||||
| symbol = '' | ||||
|  | ||||
| [git_status] | ||||
| format = '[$all_status$ahead_behind]($style)' | ||||
| ahead = '[↑${count}](green) ' | ||||
| diverged = '[↑${ahead_count}↓${behind_count}](red) ' | ||||
| behind = '[↓${count}](green) ' | ||||
| modified = '[!${count}](yellow) ' | ||||
| untracked = '[?${count}](blue) ' | ||||
| staged = '[+${count}](yellow) ' | ||||
| stashed = '[*${count}](green) ' | ||||
| deleted = '[x${count}](red) ' | ||||
| renamed = '[r${count}](yellow) ' | ||||
|  | ||||
| [python] | ||||
| format = 'via [${symbol}${pyenv_prefix}(${version} )(\($virtualenv\) )]($style)' | ||||
| python_binary = 'python' | ||||
| pyenv_version_name = false | ||||
| detect_files = [ '.python-version' ] | ||||
|  | ||||
| [hostname] | ||||
| ssh_only = false | ||||
| style = 'bold yellow' | ||||
| format = '[$hostname]($style) on ' | ||||
							
								
								
									
										16
									
								
								tmux/tmux-ggclone
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								tmux/tmux-ggclone
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| source "$XDG_CONFIG_HOME/zsh/scripts.zsh" | ||||
|  | ||||
| if [[ $# -eq 1 ]]; then | ||||
|     selected=$1 | ||||
| else | ||||
|     read -p "ssh url: " selected | ||||
| fi | ||||
|  | ||||
| if [[ -z $selected ]]; then | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| ggman clone "$selected" | ||||
| ggcompile | ||||
							
								
								
									
										50
									
								
								tmux/tmux-new-project
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										50
									
								
								tmux/tmux-new-project
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| if [[ -z ${NAME:+x} ]]; then | ||||
|     echo "missing name" | ||||
|     sleep 2 | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| source "$XDG_CONFIG_HOME/zsh/scripts.zsh" | ||||
|  | ||||
| read -p "name: " project_name | ||||
|  | ||||
| if [[ -z $project_name ]]; then | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| if [[ -d "$GGROOT/no-remote/$project_name" ]]; then | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| project="$GGROOT/no-remote/$project_name" | ||||
| git init $project | ||||
| echo "# $project_name" >>"$project/README.md" | ||||
|  | ||||
| gitignore_template=$( | ||||
|     find "$GGROOT"/github.com/github/gitignore/*.gitignore -exec basename {} \; \ | ||||
|         | sed 's/\(.*\)\.gitignore/\1/' \ | ||||
|         | fzf --cycle --bind 'tab:toggle-up,btab:toggle-down' | ||||
| ) | ||||
|  | ||||
| if ! [[ -z $gitignore_template ]]; then | ||||
|     gitignore="$GGROOT/github.com/github/gitignore/$gitignore_template.gitignore" | ||||
|     echo "$gitignore" | ||||
|     echo "$project/.gitignore" | ||||
|     cat "$gitignore" >>"$project/.gitignore" | ||||
| fi | ||||
|  | ||||
| license_template=$( | ||||
|     find "$GGROOT"/git.janezic.dev/janezicmatej/license/*.license -exec basename {} \; \ | ||||
|         | sed 's/\(.*\)\.license/\1/' \ | ||||
|         | fzf --cycle --bind 'tab:toggle-up,btab:toggle-down' | ||||
| ) | ||||
|  | ||||
| if ! [[ -z $license_template ]]; then | ||||
|     license="$GGROOT/git.janezic.dev/janezicmatej/license/$license_template.license" | ||||
|     export YEAR="$(date '+%Y')" | ||||
|     envsubst <"$license" >"$project/LICENSE" | ||||
| fi | ||||
|  | ||||
| ggcompile | ||||
| @@ -3,15 +3,27 @@ | ||||
| if [[ $# -eq 1 ]]; then | ||||
|     selected=$1 | ||||
| else | ||||
|     selected=$(find -L $GGROOT -mindepth 1 -maxdepth 5 -type d -name .git  -prune | xargs -n 1 dirname | fzf --cycle --multi --bind 'tab:toggle-up,btab:toggle-down') | ||||
|     selected=$(ggman exec pwd 2>&1 >/dev/null \ | ||||
|         | fzf --cycle \ | ||||
|         --bind 'tab:toggle-up,btab:toggle-down' \ | ||||
|         --header "Navigate with ARROW KEYS or TAB/S-TAB. Select with ENTER." \ | ||||
|         --border "double" \ | ||||
|         --border-label "tmux-sessionizer" \ | ||||
|         --ansi \ | ||||
|         --highlight-line \ | ||||
|     ) | ||||
| fi | ||||
|  | ||||
| if [[ -z $selected ]]; then | ||||
|     exit 0 | ||||
| fi | ||||
|  | ||||
| path=$selected | ||||
| while [[ "$path" != "" && ! -e "$path/.sessionizer" ]]; do | ||||
|     path=${path%/*} | ||||
| done | ||||
|  | ||||
| selected_name=$(basename "$selected" | tr . _) | ||||
| selected_name="$(cat $path/.sessionizer)_$(basename $selected | tr . _ | head -c 10)_$(echo $selected | shasum -a 256 | head -c 4)" | ||||
| tmux_running=$(pgrep tmux) | ||||
|  | ||||
| if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then | ||||
|   | ||||
							
								
								
									
										77
									
								
								tmux/tmux-ssher
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										77
									
								
								tmux/tmux-ssher
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,77 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| function _preview { | ||||
|     file=$1; shift | ||||
|     host=$1; shift | ||||
|  | ||||
|     j=$(cat $file \ | ||||
|         | jc --ssh-conf \ | ||||
|         | jq -r ".[] \ | ||||
|             | select(.host == \"$host\") \ | ||||
|             | .jumps = (if (.proxyjump | type == \"array\" and length > 0) then (.proxyjump | join(\",\")) else \"null\" end)" \ | ||||
|         ) | ||||
|  | ||||
|     user=$(jq -r '.user' <<<$j) | ||||
|     port=$(jq -r '.port' <<<$j) | ||||
|     hostname=$(jq -r '.hostname' <<<$j) | ||||
|     jumps=$(jq -r '.jumps' <<<$j) | ||||
|  | ||||
|  | ||||
|     echo "$(cat <<EOF | ||||
| User $user | ||||
| HostName $hostname\ | ||||
| $([[ $port != "null" ]] && echo -e "\nPort $port")\ | ||||
| $([[ $jumps != "null" ]] && echo -e "\nProxyJump $jumps") | ||||
|  | ||||
| command: | ||||
|     ssh $user@$hostname$([[ $port != "null" ]] && echo -n " -p $port")$([[ $jumps != "null" ]] && echo -n " -J $jumps") | ||||
| EOF)" | ||||
|  | ||||
|     echo "" | ||||
|  | ||||
|     host $hostname  | ||||
|  | ||||
|     echo "" | ||||
|  | ||||
|     ping -c 1 -W 1 $hostname &>/dev/null \ | ||||
|         && echo "Host is reachable!" \ | ||||
|         || echo "Host is not reachable!" | ||||
| } | ||||
|  | ||||
| export -f _preview | ||||
|  | ||||
| function main() { | ||||
|     if [[ $# -eq 1 ]]; then | ||||
|         selected=$1 | ||||
|     else | ||||
|         selected="$(rg -N --no-heading 'Host .*' ~/.ssh \ | ||||
|             | sed 's/Host \(.*\)/\1/' \ | ||||
|             | SHELL=$(which bash) fzf --cycle \ | ||||
|                 --bind 'tab:toggle-up,btab:toggle-down' \ | ||||
|                 --delimiter ':' \ | ||||
|                 --with-nth 2 \ | ||||
|                 --preview "_preview {1} {2}" \ | ||||
|             | cut -d ":" -f2 | ||||
|             )" | ||||
|     fi | ||||
|  | ||||
|     if [[ -z $selected ]]; then | ||||
|         exit 0 | ||||
|     fi | ||||
|  | ||||
|     selected_name="ssh_$selected" | ||||
|     tmux_running=$(pgrep tmux) | ||||
|  | ||||
|     if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then | ||||
|         tmux new-session -s $selected_name -c $selected ssh "$selected" | ||||
|         exit 0 | ||||
|     fi | ||||
|  | ||||
|     if ! tmux has-session -t=$selected_name 2> /dev/null; then | ||||
|         tmux new-session -ds $selected_name -c $selected ssh "$selected" | ||||
|     fi | ||||
|  | ||||
|     tmux switch-client -t $selected_name | ||||
| } | ||||
|  | ||||
| main "$@" | ||||
| @@ -3,34 +3,47 @@ set -ag terminal-overrides ",xterm-256color:RGB" | ||||
|  | ||||
| set -s escape-time 0 | ||||
|  | ||||
| set-option -g focus-events on | ||||
|  | ||||
| unbind C-b | ||||
| set-option -g prefix C-s | ||||
| bind-key C-s send-prefix | ||||
|  | ||||
| bind r source-file "$XDG_CONFIG_HOME/tmux/tmux.conf" | ||||
| set -g base-index 1 | ||||
|  | ||||
| set -g status-style 'bg=#45403d fg=#d4be98' | ||||
| set -g status-left-length 30 | ||||
| set -g status-left-length 20 | ||||
|  | ||||
| set-window-option -g mode-keys vi | ||||
| bind -T copy-mode-vi v send-keys -X begin-selection | ||||
|  | ||||
| # differentiate copy on linux and max | ||||
| if-shell -b '[ "$(uname -s)" = "Linux" ]' { | ||||
| 	bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard' | ||||
| } | ||||
|  | ||||
| if-shell -b '[ "$(uname -s)" = "Darwin" ]' { | ||||
| 	bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy' | ||||
| } | ||||
|  | ||||
| # vim-like pane switching | ||||
| bind -r ^ last-window | ||||
| bind -r k select-pane -U | ||||
| bind -r j select-pane -D | ||||
| bind -r h select-pane -L | ||||
| bind -r l select-pane -R | ||||
| bind ^ last-window | ||||
| bind k select-pane -U | ||||
| bind j select-pane -D | ||||
| bind h select-pane -L | ||||
| bind l select-pane -R | ||||
|  | ||||
| bind -r D neww -c "#{pane_current_path}" "nvim TODO.md" | ||||
| bind -r t neww -c "~" "nvim ~/.TODO.md" | ||||
| # sessionizer | ||||
| bind-key f run-shell "tmux neww ~/.config/tmux/tmux-sessionizer" | ||||
| bind-key R run-shell "tmux neww ~/.config/tmux/tmux-sessionizer ~" | ||||
| bind-key g run-shell "tmux neww ~/.config/tmux/tmux-sessionizer ~/.config" | ||||
| bind-key T run-shell "tmux neww ~/.config/tmux/tmux-sessionizer ~/temp" | ||||
|  | ||||
| bind-key -r f run-shell "tmux neww ~/.config/tmux/tmux-sessionizer" | ||||
| bind-key -r g run-shell "tmux neww ~/.config/tmux/tmux-sessionizer $XDG_CONFIG_HOME" | ||||
| bind-key -r T run-shell "tmux neww ~/.config/tmux/tmux-sessionizer ~/Desktop/temp" | ||||
| bind-key -r R run-shell "tmux neww ~/.config/tmux/tmux-sessionizer ~" | ||||
| # clone | ||||
| bind-key G run-shell "tmux neww ~/.config/tmux/tmux-ggclone" | ||||
|  | ||||
| # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | ||||
| run '~/.config/tmux/plugins/tpm/tpm' | ||||
| # ssh | ||||
| bind-key F run-shell "tmux neww ~/.config/tmux/tmux-ssher" | ||||
|  | ||||
| # project | ||||
| bind-key N run-shell "tmux neww ~/.config/tmux/tmux-new-project" | ||||
|   | ||||
| @@ -1 +1,2 @@ | ||||
| export PATH="/usr/local/bin:/opt/homebrew/bin:$Home/neovim/bin:${PATH}" | ||||
| export PATH="/usr/local/bin:/opt/homebrew/bin:$HOME/neovim/bin:$HOME/bin:${PATH}" | ||||
|  | ||||
|   | ||||
							
								
								
									
										14
									
								
								zsh/.zsh_plugins.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								zsh/.zsh_plugins.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| # set up Zsh completions with plugins | ||||
| # mattmc3/ez-compinit | ||||
| zsh-users/zsh-completions kind:fpath path:src | ||||
|  | ||||
| # frameworks like oh-my-zsh are supported | ||||
| getantidote/use-omz        # handle OMZ dependencies | ||||
| ohmyzsh/ohmyzsh path:lib   # load OMZ's library | ||||
| ohmyzsh/ohmyzsh path:plugins/git | ||||
|  | ||||
| # popular fish-like plugins | ||||
| zsh-users/zsh-autosuggestions | ||||
|  | ||||
| # nvm | ||||
| lukechilds/zsh-nvm | ||||
							
								
								
									
										20
									
								
								zsh/.zshenv
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								zsh/.zshenv
									
									
									
									
									
								
							| @@ -4,6 +4,9 @@ export XDG_CACHE_HOME="$HOME/.cache" | ||||
| export XDG_DATA_HOME="$HOME/.local/share" | ||||
| export XDG_STATE_HOME="$HOME/.local/state" | ||||
|  | ||||
| # ~/.local/bin | ||||
| export PATH="$HOME/.local/bin:$PATH" | ||||
|  | ||||
| # brew sbin | ||||
| export PATH="/opt/homebrew/sbin:$PATH" | ||||
|  | ||||
| @@ -34,6 +37,23 @@ export PATH="$XDG_DATA_HOME/neovim/bin:$PATH" | ||||
| export PYENV_ROOT="$XDG_DATA_HOME/.pyenv" | ||||
| command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" | ||||
|  | ||||
| # pyenv-virtualenv | ||||
| # leave python promt to starship | ||||
| export PYENV_VIRTUALENV_DISABLE_PROMPT=1 | ||||
|  | ||||
| # poetry | ||||
| export POETRY_HOME="$XDG_DATA_HOME/poetry" | ||||
| command -v poetry >/dev/null || export PATH="$POETRY_HOME/bin:$PATH" | ||||
|  | ||||
| # gnupg | ||||
| export GPG_TTY=$TTY | ||||
|  | ||||
| # aflabs | ||||
| export USER_UID=$(id -u) | ||||
| export USER_GID=$(id -g) | ||||
|  | ||||
| # name | ||||
| export NAME="Matej Janežič" | ||||
|  | ||||
| # starship nest config into a folder, default is ~/.config/startship.toml | ||||
| export STARSHIP_CONFIG="$XDG_CONFIG_HOME/starship/config.toml" | ||||
|   | ||||
							
								
								
									
										72
									
								
								zsh/.zshrc
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								zsh/.zshrc
									
									
									
									
									
								
							| @@ -2,12 +2,28 @@ | ||||
| export HISTFILE="$XDG_STATE_HOME/zsh/history" | ||||
| export HISTSIZE=100 | ||||
|  | ||||
| # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.config/zsh/.zshrc. | ||||
| # Initialization code that may require console input (password prompts, [y/n] | ||||
| # confirmations, etc.) must go above this block; everything else may go below. | ||||
| if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then | ||||
|   source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" | ||||
| fi | ||||
| ## pre plugin load | ||||
| # nvm | ||||
| export NVM_COMPLETION=true | ||||
| # zsh autosugestions | ||||
| export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ffffff,bg=cyan,bold,underline" | ||||
|  | ||||
| # source antidote | ||||
| source $ZDOTDIR/.antidote/antidote.zsh | ||||
| antidote load | ||||
|  | ||||
| unsetopt autocd | ||||
|  | ||||
| # pyenv | ||||
| eval "$(pyenv init - zsh)" | ||||
| eval "$(pyenv virtualenv-init - zsh)" | ||||
|  | ||||
| # ggman | ||||
| eval "$(ggman shellrc)" | ||||
|  | ||||
| # custom functions and aliases | ||||
| source "$ZDOTDIR/aliases.zsh" | ||||
| source "$ZDOTDIR/scripts.zsh" | ||||
|  | ||||
| # completion | ||||
| fpath=($ZDOTDIR/completions $fpath) | ||||
| @@ -15,47 +31,7 @@ autoload -Uz compinit | ||||
| compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION | ||||
| zstyle ':completion:*' cache-path $XDG_CACHE_HOME/zsh/zcompcache | ||||
|  | ||||
| # pre plugin load | ||||
| export NVM_COMPLETION=true | ||||
| export NVM_AUTO_USE=true | ||||
|  | ||||
| # load antigen | ||||
| typeset -a ANTIGEN_CHECK_FILES=(${ZDOTDIR:-~}/.zshrc ${ZDOTDIR:-~}/antigen.zsh) | ||||
| source $ZDOTDIR/antigen.zsh | ||||
|  | ||||
| # oh-my-zsh library and git plugin | ||||
| antigen use oh-my-zsh | ||||
| antigen bundle git | ||||
|  | ||||
| # zsh users plugin | ||||
| antigen bundle zsh-users/zsh-syntax-highlighting | ||||
| antigen bundle zsh-users/zsh-autosuggestions | ||||
|  | ||||
| # other | ||||
| antigen bundle lukechilds/zsh-nvm | ||||
|  | ||||
| # theme | ||||
| antigen theme romkatv/powerlevel10k | ||||
|  | ||||
| # apply plugin load | ||||
| antigen apply | ||||
|  | ||||
| # pyenv | ||||
| eval "$(pyenv init -)" | ||||
| eval "$(pyenv virtualenv-init -)" | ||||
|  | ||||
| # ggman | ||||
| eval "$(ggman shellrc)" | ||||
|  | ||||
| # gpg | ||||
| export GPG_TTY=$(tty) | ||||
|  | ||||
| # custom functions and aliases | ||||
| source "$ZDOTDIR/aliases.zsh" | ||||
| source "$ZDOTDIR/scripts.zsh" | ||||
|  | ||||
| # opam configuration | ||||
| [[ ! -r /Users/janezicmatej/.opam/opam-init/init.zsh ]] || source /Users/janezicmatej/.opam/opam-init/init.zsh  > /dev/null 2> /dev/null | ||||
| # [[ ! -r /Users/janezicmatej/.opam/opam-init/init.zsh ]] || source /Users/janezicmatej/.opam/opam-init/init.zsh  > /dev/null 2> /dev/null | ||||
|  | ||||
| # To customize prompt, run `p10k configure` or edit ~/.config/zsh/.p10k.zsh. | ||||
| [[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh | ||||
| eval "$(starship init zsh)" | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| alias z="exec zsh" | ||||
| alias t="tmux a || tmux new-session -s janezicmatej -c ~" | ||||
| alias t="tmux a || ~/.config/tmux/tmux-sessionizer ~" | ||||
| alias n=nvim_ve | ||||
| alias vim=nvim_ve | ||||
| # alias vim=nvim_ve | ||||
| alias s="ssh-menu" | ||||
|  | ||||
| # navigation | ||||
| alias cdgit="cd $GGROOT" | ||||
| @@ -21,3 +22,9 @@ alias ci="glab ci list" | ||||
| alias bm=batman | ||||
| alias grow="~/.local/bin/cbonsai -liWC -M 15 -t 2 -w 60 -s $(date +%s)" | ||||
| alias clean_ds_store='find . -name ".DS_Store" -type f -delete -print' | ||||
|  | ||||
| # ruff | ||||
| alias ruffme="ruff format && ruff check --fix" | ||||
|  | ||||
| # clipboard | ||||
| alias xcp="xclip -selection c" | ||||
|   | ||||
							
								
								
									
										51
									
								
								zsh/get-dump
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										51
									
								
								zsh/get-dump
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| function get-dump { | ||||
|     if [[ -z $1 ]]; then | ||||
|         host="$(rg -N --no-heading 'Host .*' ~/.ssh \ | ||||
|             | sed 's/Host \(.*\)/\1/' \ | ||||
|             | fzf --cycle \ | ||||
|                 --bind 'tab:toggle-up,btab:toggle-down' \ | ||||
|                 --delimiter ':' \ | ||||
|                 --with-nth 2 \ | ||||
|                 --header "Navigate with ARROW KEYS or TAB/S-TAB. Select with ENTER." \ | ||||
|                 --border "double" \ | ||||
|                 --border-label "get-dump" \ | ||||
|                 --ansi \ | ||||
|                 --highlight-line \ | ||||
|             | cut -d ":" -f2 | ||||
|         )" | ||||
|         if [[ -z $host ]]; then | ||||
|             return | ||||
|         fi | ||||
|     else | ||||
|         host=$1 | ||||
|     fi | ||||
|  | ||||
|     selected=$(ssh "$host" docker ps --format "{{.Names}}" \ | ||||
|         | fzf --cycle \ | ||||
|             --bind 'tab:toggle-up,btab:toggle-down' \ | ||||
|             --header "Navigate with ARROW KEYS or TAB/S-TAB. Select with ENTER." \ | ||||
|             --border "double" \ | ||||
|             --border-label "get-dump" \ | ||||
|             --ansi \ | ||||
|             --highlight-line \ | ||||
|     ) | ||||
|  | ||||
|     if [[ -z $selected ]]; then | ||||
|         echo "not provided" | ||||
|         return | ||||
|     fi | ||||
|  | ||||
|     if ! [[ -d "./dumps" ]]; then | ||||
|         mkdir "./dumps" | ||||
|     fi | ||||
|  | ||||
|     location="./dumps/${host}_${selected}_$(date +'%s')" | ||||
|  | ||||
|     echo "dumping to $location" | ||||
|  | ||||
|     ssh "$host" docker exec "$selected" pg_dump -U db --format=c db >"$location" | ||||
| } | ||||
|  | ||||
| get-dump "$@" | ||||
| @@ -1,6 +1,5 @@ | ||||
|  | ||||
| function nvim_ve { | ||||
|   if [[ -e "$VIRTUAL_ENV" && -f "$VIRTUAL_ENV/bin/activate" ]]; then | ||||
|     if [[ -e $VIRTUAL_ENV && -f "$VIRTUAL_ENV/bin/activate" ]]; then | ||||
|         source "$VIRTUAL_ENV/bin/activate" | ||||
|         command nvim $@ | ||||
|         deactivate | ||||
| @@ -11,23 +10,6 @@ function nvim_ve { | ||||
|  | ||||
| alias nvim=nvim_ve | ||||
|  | ||||
| function ffb { | ||||
|   if ! [[ -f package.json ]]; then | ||||
|     echo "no package.json" | ||||
|     return | ||||
|   fi | ||||
|  | ||||
|   if [[ -f yarn.lock ]]; then | ||||
|     PACKAGE_MANAGER=yarn | ||||
|   else | ||||
|     PACKAGE_MANAGER=npm | ||||
|   fi | ||||
|  | ||||
|   if [[ -n $(grep "react-scripts" package.json) ]]; then | ||||
|     BROWSER=none FORCE_COLOR=true "$PACKAGE_MANAGER" start | cat | ||||
|   fi | ||||
| } | ||||
|  | ||||
| function afm { | ||||
|     RES=$(curl -s "https://$1/api/monitoring/requirements") | ||||
|     COUNT=$(echo "$RES" | grep -c $2) | ||||
| @@ -35,11 +17,10 @@ function afm { | ||||
|         VER=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).version') | ||||
|         # OP=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).requirement?[0][0]') | ||||
|         # echo "$2""$(echo "$OP" | tr -d '"')""$(echo "$VER" | tr -d '"')" | ||||
|     echo "$2""==""$(echo "$VER" | tr -d '"')" | ||||
|         echo "${2}==$(echo "$VER" | tr -d '"')" | ||||
|     fi | ||||
| } | ||||
|  | ||||
|  | ||||
| function nukepip { | ||||
|     pip uninstall $(pip freeze) -y | ||||
|     pip install -r $(pyenv root)/default-packages | ||||
| @@ -53,7 +34,7 @@ function pyinit { | ||||
|  | ||||
|     DIRNAME=$(basename "$PWD") | ||||
|  | ||||
|   if [[ $(pyenv versions | grep "$DIRNAME") ]]; then | ||||
|     if [[ $(pyenv versions | grep -E "/${DIRNAME}$") ]]; then | ||||
|         echo "found existing version with this name, setting..." | ||||
|         pyenv local "$DIRNAME" | ||||
|         return | ||||
| @@ -73,7 +54,7 @@ function pyinit { | ||||
|  | ||||
| function lh { | ||||
|     if [[ -z $1 ]]; then | ||||
|     PORT=8000 | ||||
|         PORT=7999 | ||||
|     else | ||||
|         PORT=$1 | ||||
|     fi | ||||
| @@ -89,3 +70,12 @@ function dps { | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function tssh { | ||||
|     if [[ -z $1 ]]; then | ||||
|         echo "provide ssh host" | ||||
|         return | ||||
|     fi | ||||
|  | ||||
|     ssh -t "$@" "command -v tmux && (tmux a || tmux new-session -s gorazd -c ~) || bash" | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										75
									
								
								zsh/ssh-menu
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										75
									
								
								zsh/ssh-menu
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| function _ssh_menu_preview { | ||||
|     file=$1; shift | ||||
|     host=$1; shift | ||||
|  | ||||
|     j=$(cat $file \ | ||||
|         | jc --ssh-conf \ | ||||
|         | jq -r ".[] \ | ||||
|             | select(.host == \"$host\") \ | ||||
|             | .jumps = (\ | ||||
|                 if (.proxyjump | type == \"array\" and length > 0) then \ | ||||
|                     (.proxyjump | join(\",\")) \ | ||||
|                 else \ | ||||
|                     \"null\" \ | ||||
|                 end \ | ||||
|             )" \ | ||||
|         ) | ||||
|  | ||||
|     user=$(jq -r '.user' <<<$j) | ||||
|     port=$(jq -r '.port' <<<$j) | ||||
|     hostname=$(jq -r '.hostname' <<<$j) | ||||
|     jumps=$(jq -r '.jumps' <<<$j) | ||||
|  | ||||
|  | ||||
|     echo "$(cat <<EOF | ||||
| User $user | ||||
| HostName $hostname\ | ||||
| $([[ $port != "null" ]] && echo -e "\nPort $port")\ | ||||
| $([[ $jumps != "null" ]] && echo -e "\nProxyJump $jumps") | ||||
|  | ||||
| command: | ||||
|     ssh $user@$hostname$([[ $port != "null" ]] && echo -n " -p $port")$([[ $jumps != "null" ]] && echo -n " -J $jumps") | ||||
| EOF | ||||
|     )" | ||||
|  | ||||
|     echo "" | ||||
|  | ||||
|     if command -v host 2>&1 >/dev/null; then | ||||
|         host $hostname | ||||
|         echo "" | ||||
|     fi | ||||
|  | ||||
|     ping -c 1 -W 1 $hostname &>/dev/null \ | ||||
|         && echo "Host is reachable!" \ | ||||
|         || echo "Host is not reachable!" | ||||
| } | ||||
|  | ||||
| export -f _ssh_menu_preview | ||||
|  | ||||
| function ssh-menu { | ||||
|     selected="$(rg -N --no-heading 'Host .*' ~/.ssh \ | ||||
|         | sed 's/Host \(.*\)/\1/' \ | ||||
|         | SHELL=$(which bash) fzf --cycle \ | ||||
|             --bind 'tab:toggle-up,btab:toggle-down' \ | ||||
|             --delimiter ':' \ | ||||
|             --with-nth 2 \ | ||||
|             --preview "_ssh_menu_preview {1} {2}" \ | ||||
|             --preview-label "ssh config info" \ | ||||
|             --header "Navigate with ARROW KEYS or TAB/S-TAB. Select with ENTER." \ | ||||
|             --border "double" \ | ||||
|             --border-label "ssh-menu" \ | ||||
|             --ansi \ | ||||
|             --highlight-line \ | ||||
|         | cut -d ":" -f2 | ||||
|         )" | ||||
|  | ||||
|     if [[ -z $selected ]]; then | ||||
|         return | ||||
|     fi | ||||
|  | ||||
|     ssh "$selected" | ||||
| } | ||||
|  | ||||
| ssh-menu | ||||
		Reference in New Issue
	
	Block a user