Compare commits
	
		
			46 Commits
		
	
	
		
			60a32a46bd
			...
			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 | |||
| e37c74db15 | |||
| a15ae06486 | |||
| e266c8ab7c | |||
| a4800db0f5 | |||
| bd8ff47bf2 | 
							
								
								
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -17,15 +17,26 @@ zsh/* | |||||||
| !zsh/.zshrc | !zsh/.zshrc | ||||||
| !zsh/.zshenv | !zsh/.zshenv | ||||||
| !zsh/.zprofile | !zsh/.zprofile | ||||||
|  | !zsh/.zsh_plugins.txt | ||||||
| !zsh/scripts.zsh | !zsh/scripts.zsh | ||||||
| !zsh/aliases.zsh | !zsh/aliases.zsh | ||||||
| !zsh/completions/.keep | !zsh/completions/.keep | ||||||
|  | !zsh/ssh-menu | ||||||
|  | !zsh/get-dump | ||||||
|  |  | ||||||
|  | # starship | ||||||
|  | !starship | ||||||
|  | starship/* | ||||||
|  | !starship/config.toml | ||||||
|  |  | ||||||
| # tmux | # tmux | ||||||
| !tmux | !tmux | ||||||
| tmux/* | tmux/* | ||||||
| !tmux/tmux.conf | !tmux/tmux.conf | ||||||
|  | !tmux/tmux-new-project | ||||||
| !tmux/tmux-sessionizer | !tmux/tmux-sessionizer | ||||||
|  | !tmux/tmux-ggclone | ||||||
|  | !tmux/tmux-ssher | ||||||
|  |  | ||||||
| # git | # git | ||||||
| !git | !git | ||||||
| @@ -33,3 +44,9 @@ git/* | |||||||
| !git/config | !git/config | ||||||
| !git/gitignore | !git/gitignore | ||||||
| !git/aflabs | !git/aflabs | ||||||
|  |  | ||||||
|  | # ghostty | ||||||
|  | !ghostty | ||||||
|  | ghostty/* | ||||||
|  | !ghostty/config | ||||||
|  | !ghostty/themes | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +1,3 @@ | |||||||
| [submodule "nvim"] | [submodule "nvim"] | ||||||
| 	path = nvim | 	path = nvim | ||||||
| 	url = git@github.com:janezicmatej/nvim.git | 	url = git@git.janezic.dev:janezicmatej/nvim.git | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| # Neovim should be able to run anywhere | # Neovim should be able to run anywhere | ||||||
| neovim | pynvim | ||||||
|  |  | ||||||
| # Upgrade pip while we're at it. | # Upgrade pip while we're at it. | ||||||
| pip | pip | ||||||
|   | |||||||
							
								
								
									
										77
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										77
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,21 +1,62 @@ | |||||||
| # .dotfiles | # .dotfiles | ||||||
|  |  | ||||||
| ## setup cheat sheet | ## Alacritty | ||||||
|  |  | ||||||
| - install [alacritty](https://github.com/alacritty/alacritty) | Install [alacritty](https://github.com/alacritty/alacritty) and `JetBrainsMono` font from [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) | ||||||
|     - install `JetBrainsMonoNL` font from [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) |  | ||||||
| - install [zsh](https://www.zsh.org/) | ## ZSH  | ||||||
| - install [oh-my-zsh](https://ohmyz.sh/) |  | ||||||
|     - install [zsh-nvm](https://github.com/lukechilds/zsh-nvm) | Install [zsh](https://www.zsh.org/). | ||||||
|     - install [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) |  | ||||||
|     - install [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) | ### $ZDOTDIR | ||||||
| - install [go](https://go.dev/) |  | ||||||
| - install [ggman](https://github.com/tkw1536/ggman) | To change the location of zsh config files run one of these | ||||||
| - 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) | ```sh | ||||||
|     - install [pyenv-default-packages](https://github.com/jawshooah/pyenv-default-packages.git) | # for linux | ||||||
|     - symlink `.pyenv/default-packages` to `$PYENV_ROOT/default-packages` | echo 'export ZDOTDIR="$HOME/.config/zsh"' > /etc/zsh/zshenv  | ||||||
| - install [neovim](https://neovim.io/) | # for macos | ||||||
|     - follow `README.md` in [janezicmatej/nvim](https://github.com/janezicmatej/nvim/) | echo 'export ZDOTDIR="$HOME/.config/zsh"' > /etc/zshenv  | ||||||
| - install [tmux](https://github.com/tmux/tmux) | ``` | ||||||
|     - install [tmp](https://github.com/tmux-plugins/tpm) for plugins |  | ||||||
|  | ### 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 | 	autocrlf = input | ||||||
| 	excludesfile = ~/.config/git/gitignore | 	excludesfile = ~/.config/git/gitignore | ||||||
| 	editor = nvim | 	editor = nvim | ||||||
| [init] |  | ||||||
| 	defaultBranch = master |  | ||||||
| [include] | [include] | ||||||
| 	path = ~/.config/git/alias | 	path = ~/.config/git/alias | ||||||
| [include] | [include] | ||||||
| @@ -14,3 +12,7 @@ | |||||||
| [includeIf "gitdir:~/Desktop/git/git.aflabs.org/"] | [includeIf "gitdir:~/Desktop/git/git.aflabs.org/"] | ||||||
| 	path = ~/.config/git/aflabs | 	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: 47d786ff47...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 | if [[ $# -eq 1 ]]; then | ||||||
|     selected=$1 |     selected=$1 | ||||||
| else | else | ||||||
|     selected=$(find -L $GGROOT -mindepth 1 -maxdepth 5 -type d -name .git  -prune | xargs -n 1 dirname | fzf) |     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 | fi | ||||||
|  |  | ||||||
| if [[ -z $selected ]]; then | if [[ -z $selected ]]; then | ||||||
|     exit 0 |     exit 0 | ||||||
| fi | 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) | tmux_running=$(pgrep tmux) | ||||||
|  |  | ||||||
| if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then | 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 -s escape-time 0 | ||||||
|  |  | ||||||
|  | set-option -g focus-events on | ||||||
|  |  | ||||||
| unbind C-b | unbind C-b | ||||||
| set-option -g prefix C-s | set-option -g prefix C-s | ||||||
| bind-key C-s send-prefix |  | ||||||
|  |  | ||||||
| bind r source-file "$XDG_CONFIG_HOME/tmux/tmux.conf" | bind r source-file "$XDG_CONFIG_HOME/tmux/tmux.conf" | ||||||
| set -g base-index 1 | set -g base-index 1 | ||||||
|  |  | ||||||
| set -g status-style 'bg=#45403d fg=#d4be98' | 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 | set-window-option -g mode-keys vi | ||||||
| bind -T copy-mode-vi v send-keys -X begin-selection | bind -T copy-mode-vi v send-keys -X begin-selection | ||||||
| bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy' |  | ||||||
|  | # 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 | # vim-like pane switching | ||||||
| bind -r ^ last-window | bind ^ last-window | ||||||
| bind -r k select-pane -U | bind k select-pane -U | ||||||
| bind -r j select-pane -D | bind j select-pane -D | ||||||
| bind -r h select-pane -L | bind h select-pane -L | ||||||
| bind -r l select-pane -R | bind l select-pane -R | ||||||
|  |  | ||||||
| bind -r D neww -c "#{pane_current_path}" "nvim TODO.md" | # sessionizer | ||||||
| bind -r t neww -c "~" "nvim ~/.TODO.md" | 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" | # clone | ||||||
| bind-key -r g run-shell "tmux neww ~/.config/tmux/tmux-sessionizer $XDG_CONFIG_HOME" | bind-key G run-shell "tmux neww ~/.config/tmux/tmux-ggclone" | ||||||
| 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 ~" |  | ||||||
|  |  | ||||||
| # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | # ssh | ||||||
| run '~/.config/tmux/plugins/tpm/tpm' | 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 | ||||||
							
								
								
									
										24
									
								
								zsh/.zshenv
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								zsh/.zshenv
									
									
									
									
									
								
							| @@ -4,6 +4,9 @@ export XDG_CACHE_HOME="$HOME/.cache" | |||||||
| export XDG_DATA_HOME="$HOME/.local/share" | export XDG_DATA_HOME="$HOME/.local/share" | ||||||
| export XDG_STATE_HOME="$HOME/.local/state" | export XDG_STATE_HOME="$HOME/.local/state" | ||||||
|  |  | ||||||
|  | # ~/.local/bin | ||||||
|  | export PATH="$HOME/.local/bin:$PATH" | ||||||
|  |  | ||||||
| # brew sbin | # brew sbin | ||||||
| export PATH="/opt/homebrew/sbin:$PATH" | export PATH="/opt/homebrew/sbin:$PATH" | ||||||
|  |  | ||||||
| @@ -20,9 +23,9 @@ export LANG=en_US.UTF-8 | |||||||
| export EDITOR=nvim | export EDITOR=nvim | ||||||
|  |  | ||||||
| # go | # go | ||||||
| export GOHOME="$XDG_DATA_HOME/go" | export GOPATH="$XDG_DATA_HOME/go" | ||||||
| export GOMODCACHE="$XDG_CACHE_HOME/go/mod" | export GOMODCACHE="$XDG_CACHE_HOME/go/mod" | ||||||
| export PATH="$GOHOME/bin:$PATH" | export PATH="$GOPATH/bin:$PATH" | ||||||
|  |  | ||||||
| # ggman | # ggman | ||||||
| export GGROOT="$HOME/git" | export GGROOT="$HOME/git" | ||||||
| @@ -34,6 +37,23 @@ export PATH="$XDG_DATA_HOME/neovim/bin:$PATH" | |||||||
| export PYENV_ROOT="$XDG_DATA_HOME/.pyenv" | export PYENV_ROOT="$XDG_DATA_HOME/.pyenv" | ||||||
| command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" | 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 | # poetry | ||||||
| export POETRY_HOME="$XDG_DATA_HOME/poetry" | export POETRY_HOME="$XDG_DATA_HOME/poetry" | ||||||
| command -v poetry >/dev/null || export PATH="$POETRY_HOME/bin:$PATH" | 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" | ||||||
|   | |||||||
							
								
								
									
										73
									
								
								zsh/.zshrc
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								zsh/.zshrc
									
									
									
									
									
								
							| @@ -1,12 +1,29 @@ | |||||||
| # zsh history file  | # zsh history file  | ||||||
| export HISTFILE="$XDG_STATE_HOME/zsh/history" | export HISTFILE="$XDG_STATE_HOME/zsh/history" | ||||||
|  | export HISTSIZE=100 | ||||||
|  |  | ||||||
| # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.config/zsh/.zshrc. | ## pre plugin load | ||||||
| # Initialization code that may require console input (password prompts, [y/n] | # nvm | ||||||
| # confirmations, etc.) must go above this block; everything else may go below. | export NVM_COMPLETION=true | ||||||
| if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then | # zsh autosugestions | ||||||
|   source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" | export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ffffff,bg=cyan,bold,underline" | ||||||
| fi |  | ||||||
|  | # 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 | # completion | ||||||
| fpath=($ZDOTDIR/completions $fpath) | fpath=($ZDOTDIR/completions $fpath) | ||||||
| @@ -14,47 +31,7 @@ autoload -Uz compinit | |||||||
| compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION | compinit -d $XDG_CACHE_HOME/zsh/zcompdump-$ZSH_VERSION | ||||||
| zstyle ':completion:*' cache-path $XDG_CACHE_HOME/zsh/zcompcache | 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 | # 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. | eval "$(starship init zsh)" | ||||||
| [[ ! -f ~/.config/zsh/.p10k.zsh ]] || source ~/.config/zsh/.p10k.zsh |  | ||||||
|   | |||||||
| @@ -1,7 +1,8 @@ | |||||||
| alias z="exec zsh" | 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 n=nvim_ve | ||||||
| alias vim=nvim_ve | # alias vim=nvim_ve | ||||||
|  | alias s="ssh-menu" | ||||||
|  |  | ||||||
| # navigation | # navigation | ||||||
| alias cdgit="cd $GGROOT" | alias cdgit="cd $GGROOT" | ||||||
| @@ -12,13 +13,18 @@ alias temp="cd $HOME/Desktop/temp" | |||||||
| alias accenton="defaults write -g ApplePressAndHoldEnabled -bool true" | alias accenton="defaults write -g ApplePressAndHoldEnabled -bool true" | ||||||
| alias accentoff="defaults write -g ApplePressAndHoldEnabled -bool false" | alias accentoff="defaults write -g ApplePressAndHoldEnabled -bool false" | ||||||
|  |  | ||||||
| # docker | # git | ||||||
| alias dps="docker ps --format table'{{ .ID }}\t{{ .Image }}\t{{ .Ports}}\t{{ .Names }}'" |  | ||||||
|  |  | ||||||
| alias gros="git reset origin/$(git_current_branch) --soft" | alias gros="git reset origin/$(git_current_branch) --soft" | ||||||
|  | alias gcan="git commit -v --amend --no-edit" | ||||||
|  |  | ||||||
| # unsorted | # unsorted | ||||||
| alias ci="glab ci list" | alias ci="glab ci list" | ||||||
| alias bm=batman | alias bm=batman | ||||||
| alias grow="~/.local/bin/cbonsai -liWC -M 15 -t 2 -w 60 -s $(date +%s)" | 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' | 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 "$@" | ||||||
							
								
								
									
										121
									
								
								zsh/scripts.zsh
									
									
									
									
									
								
							
							
						
						
									
										121
									
								
								zsh/scripts.zsh
									
									
									
									
									
								
							| @@ -1,82 +1,81 @@ | |||||||
|  |  | ||||||
| function nvim_ve { | 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" |         source "$VIRTUAL_ENV/bin/activate" | ||||||
|     command nvim $@ |         command nvim $@ | ||||||
|     deactivate |         deactivate | ||||||
|   else |     else | ||||||
|     command nvim $@ |         command nvim $@ | ||||||
|   fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
| alias nvim=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 { | function afm { | ||||||
|   RES=$(curl -s "https://$1/api/monitoring/requirements") |     RES=$(curl -s "https://$1/api/monitoring/requirements") | ||||||
|   COUNT=$(echo "$RES" | grep -c $2) |     COUNT=$(echo "$RES" | grep -c $2) | ||||||
|   if [[ $COUNT -ge 0 ]]; then |     if [[ $COUNT -ge 0 ]]; then | ||||||
|     VER=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).version') |         VER=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).version') | ||||||
|     # OP=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).requirement?[0][0]') |         # OP=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).requirement?[0][0]') | ||||||
|     # echo "$2""$(echo "$OP" | tr -d '"')""$(echo "$VER" | tr -d '"')" |         # echo "$2""$(echo "$OP" | tr -d '"')""$(echo "$VER" | tr -d '"')" | ||||||
|     echo "$2""==""$(echo "$VER" | tr -d '"')" |         echo "${2}==$(echo "$VER" | tr -d '"')" | ||||||
|   fi |     fi | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| function nukepip { | function nukepip { | ||||||
|   pip uninstall $(pip freeze) -y |     pip uninstall $(pip freeze) -y | ||||||
|   pip install -r $(pyenv root)/default-packages |     pip install -r $(pyenv root)/default-packages | ||||||
| } | } | ||||||
|  |  | ||||||
| function pyinit { | function pyinit { | ||||||
|   if [[ -f .python-version ]]; then  |     if [[ -f .python-version ]]; then | ||||||
|     echo "found .python-version, stopping" |         echo "found .python-version, stopping" | ||||||
|     return |         return | ||||||
|   fi |     fi | ||||||
|  |  | ||||||
|   DIRNAME=$(basename "$PWD") |     DIRNAME=$(basename "$PWD") | ||||||
|  |  | ||||||
|   if [[ $(pyenv versions | grep "$DIRNAME") ]]; then |     if [[ $(pyenv versions | grep -E "/${DIRNAME}$") ]]; then | ||||||
|     echo "found existing version with this name, setting..." |         echo "found existing version with this name, setting..." | ||||||
|  |         pyenv local "$DIRNAME" | ||||||
|  |         return | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     if [[ -z $1 ]]; then | ||||||
|  |         echo "no python version provided, defaulting to $(pyenv version-name)" | ||||||
|  |         VERSION=$(pyenv version-name) | ||||||
|  |     else | ||||||
|  |         VERSION=$1 | ||||||
|  |     fi | ||||||
|  |  | ||||||
|  |     pyenv virtualenv "$VERSION" "$DIRNAME" | ||||||
|     pyenv local "$DIRNAME" |     pyenv local "$DIRNAME" | ||||||
|     return |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   if [[ -z $1 ]]; then |  | ||||||
|     echo "no python version provided, defaulting to $(pyenv version-name)" |  | ||||||
|     VERSION=$(pyenv version-name) |  | ||||||
|   else |  | ||||||
|     VERSION=$1 |  | ||||||
|   fi |  | ||||||
|  |  | ||||||
|   pyenv virtualenv "$VERSION" "$DIRNAME" |  | ||||||
|   pyenv local "$DIRNAME" |  | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function lh { | function lh { | ||||||
|   if [[ -z $1 ]]; then |     if [[ -z $1 ]]; then | ||||||
|     PORT=8000 |         PORT=7999 | ||||||
|   else |     else | ||||||
|     PORT=$1 |         PORT=$1 | ||||||
|   fi |     fi | ||||||
|  |  | ||||||
|   open "http://localhost:$PORT" |     open "http://localhost:$PORT" | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function dps { | ||||||
|  |     if [[ -z $1 ]]; then | ||||||
|  |         docker ps --format table'{{ .ID }}\t{{ .Image }}\t{{ .Ports}}\t{{ .Names }}' | ||||||
|  |     else | ||||||
|  |         docker ps --format table'{{ .ID }}\t{{ .Image }}\t{{ .Ports}}\t{{ .Names }}' | grep $1 | ||||||
|  |     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