{"id":17920929,"url":"https://github.com/eth-p/my-dotfiles","last_synced_at":"2025-02-26T11:15:54.872Z","repository":{"id":47549096,"uuid":"389104664","full_name":"eth-p/my-dotfiles","owner":"eth-p","description":"A collection of dotfiles that I use to configure my terminal programs.","archived":false,"fork":false,"pushed_at":"2024-05-14T01:10:36.000Z","size":369,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-15T10:51:03.596Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eth-p.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-24T13:23:19.000Z","updated_at":"2024-05-30T06:28:09.788Z","dependencies_parsed_at":"2023-09-26T22:54:34.565Z","dependency_job_id":"47881848-d024-4538-a74d-60257534ac10","html_url":"https://github.com/eth-p/my-dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-p%2Fmy-dotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-p%2Fmy-dotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-p%2Fmy-dotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth-p%2Fmy-dotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eth-p","download_url":"https://codeload.github.com/eth-p/my-dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240840106,"owners_count":19866168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T20:29:41.733Z","updated_at":"2025-02-26T11:15:54.798Z","avatar_url":"https://github.com/eth-p.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# my-dotfiles\n\nA collection of dotfiles that I use to configure my terminal programs.\n\n![A screenshot of vim, cmatrix, and fish inside tmux.](SCREENSHOT.png)\n\n## Requirements\n\nMy setup is designed around using [tmux](https://github.com/tmux/tmux/wiki) and [fish](https://fishshell.com/) inside of the [alacritty](https://github.com/alacritty/alacritty) terminal emulator. It might work in other environments, but I'm not going to make any guarantees or promises.\n\n- [fisher](https://github.com/jorgebucaran/fisher) to install fish plugins.\n- [vivid](https://github.com/sharkdp/vivid) for colors in `ls`.\n- [vim-plug](https://github.com/junegunn/vim-plug) to install vim/nvim plugins.\n- [gitmux](https://github.com/arl/gitmux) for git info in the tmux status bar.\n- [ranger](https://github.com/ranger/ranger) for file browsing in the terminal.\n- `JetBrains Mono NL` font.\n\nRecommended:\n\n- [bat](https://github.com/sharkdp/bat) as a syntax-highlighted alternative to `cat`.\n- [eza](https://github.com/eza-community/eza) as an improved version of `ls`.\n- [git-delta](https://github.com/dandavison/delta) for better `git diff` and `git blame`.\n- [glow](https://github.com/charmbracelet/glow) for better Markdown previews in the terminal.\n\n\n\n\n## Features\n\n- Alacritty keybinds similar to iTerm2.\n- Advanced tmux integrations.\n  - Shell variables copied to new split panes or tmux windows.\n  - Special integrations for various command line programs.\n  - Program-specific context menu with \u003ckbd\u003eCtrl+X\u003c/kbd\u003e.\n  - Control-click to open links.\n- Built to work with fish shell.\n  - Simple, fast, and informative prompt using prompt using [promptfessional](https://github.com/eth-p/fish-promptfessional).\n  - Quickly change `fish`'s working directory to a `ranger` bookmark with \u003ckbd\u003eCtrl+Q\u003c/kbd\u003e.\n  - Contextual greeting messages for new tmux panes, SSH sessions, IDE terminals, etc.\n- Monokai theme.\n\n\n\n## Installation\n\n**Mac**  \nHomebrew and [some makefiles](.install/) provide an easy way to install everything.\n\n```console\n$ make requirements\n$ make install\n```\n\n\n\n\n## Configurations\n\nEnvironment\n\n- [alacritty](#alacritty)\n- [fish](#fish)\n- [tmux](#tmux)\n\nTools\n\n- [bat](#bat)\n- [glow](#glow)\n- [nvim](#nvim)\n- [ranger](#ranger)\n\n\n\n---\n\n### alacritty\n\n**Install**  \n\n1. Copy the alacritty config files.\n2. Install [BetterTouchTool](https://folivora.ai/).\n3. Install the BetterTouchTool [Alacritty preset](extra/BetterTouchTool).  \n   *This allows \u003ckbd\u003eCmd+\u0026grave;\u003c/kbd\u003e to work correctly.*\n\nNo special instructions, just copy the files.\n\n**Bindings**  \n\n|Key|Action|\n|:--|:--|\n|\u003ckbd\u003eCmd+K\u003c/kbd\u003e|Clears the current `tmux` pane.|\n|\u003ckbd\u003eCmd+N\u003c/kbd\u003e|Creates a new Alacritty window.|\n|\u003ckbd\u003eCmd+T\u003c/kbd\u003e|Creates a new `tmux` window.|\n|\u003ckbd\u003eCmd+W\u003c/kbd\u003e|Closes the current `tmux` pane, prompting if necessary.|\n|\u003ckbd\u003eCmd+D\u003c/kbd\u003e|Creates a new vertical split in `tmux`.|\n|\u003ckbd\u003eCmd+Shift+D\u003c/kbd\u003e|Creates a new horizontal split in `tmux`.|\n|\u003ckbd\u003eCmd+[1-9]\u003c/kbd\u003e|Switches the the `tmux` window.|\n|\u003ckbd\u003eCmd+\u0026grave;\u003c/kbd\u003e/\u003ckbd\u003eCmd+Shift+\u0026grave;\u003c/kbd\u003e|Switches between the next and previous `tmux` window.|\n|\u003ckbd\u003eCmd+C\u003c/kbd\u003e|Enters `tmux` copy mode.\u003cbr /\u003e*When in `vim`, this will copy visual mode highlighted text.*|\n|\u003ckbd\u003eCmd+S\u003c/kbd\u003e|Tells `tmux` to try to save the file in the active panel.|\n|\u003ckbd\u003eCmd+O\u003c/kbd\u003e|Open a new directory in `fish`, using `ranger` as a file chooser.|\n\n**Customizations.**  \n\n- If running `vim`, \u003ckbd\u003eCmd+W\u003c/kbd\u003e will attempt to close the `vim` buffer instead of the `tmux` pane.\n   You can disable this setting in `.local/libexec/tmux-close-pane`.\n\n---\n\n### bat\n\n**Install**  \nNo special instructions, just copy the files.\n\n---\n\n### fish\n\n**Install**  \n1. Install [fisher](https://github.com/jorgebucaran/fisher).\n2. Install [vivid](https://github.com/sharkdp/vivid).\n3. Copy the files.\n4. `fisher`\n\n**Features**\n\n- `kubectx`/`kubens` using [fish-kubeswitch](https://github.com/eth-p/fish-kubeswitch).\n- Contextual greeting messages using [fish-contextual-greeting](https://github.com/eth-p/fish-contextual-greeting).\n- Run and use multiple Java versions with `java#` commands. (e.g. `java11 -jar my.jar` or `java11 --use`)\n\n**Prompt**\n\n- Git status.\n- Command duration.\n- Hostname visible when connected through SSH.\n- Kubernetes context/namespace. (Enable with `set -g ethp_prompt_kubernetes true`)\n- Docker context. (Enable with `set -g ethp_prompt_docker true`)\n- Java version. (Enable with `set -g ethp_prompt_java true`)\n\n**Bindings**  \n|Key|Action|\n|:--|---|\n|\u003ckbd\u003eCtrl+S\u003c/kbd\u003e|Toggle `sudo`.|\n|\u003ckbd\u003eCtrl+Q\u003c/kbd\u003e|Navigate to a `ranger` bookmark.|\n\n**Aliases**\n|Alias|Needs|Description|\n|:--|---|---|\n|**Command Line**|||\n|`cdun`|`bettercd`|Undo the last `cd` command.|\n|`ls`|`eza`|List files using eza.|\n|`ll`|`eza`|List files in long format, including git status.|\n|`la`|`eza`|List all files in long format, including git status.|\n|`pbcopy`|`xclip`|Copy STDIN to the clipboard.|\n|`pbpaste`|`xclip`|Paste the clipboard to STDOUT.|\n|`top`|`gotop`||\n|**Kubernetes**|||\n|`k`|`kubectl`||\n|`kg`|`kubectl`|Alias for `kubectl get`|\n|`kd`|`kubectl`|Alias for `kubectl describe`|\n\n\n---\n\n### glow\n\n**Install**  \nNo special instructions, just copy the files.\n\n\n\n---\n\n\n### ranger\n\n**Install**  \nNo special instructions, just copy the files.\n\n**Extras**  \n\n- [glow](https://github.com/charmbracelet/glow) for better Markdown previews.\n\n---\n\n### nvim\n\n**Install**  \n1. Install [vim-plug](https://github.com/junegunn/vim-plug).\n2. Copy the files.\n3. Open vim and run `:PlugInstall`.\n\n**Bindings**  \n|Mode|Key|Action|\n|:--|:--|---|\n|Insert|\u003ckbd\u003eShift+Tab\u003c/kbd\u003e|Un-indent.|\n|Normal|\u003ckbd\u003eg\u003c/kbd\u003e\u003ckbd\u003eLeft\u003c/kbd\u003e/\u003ckbd\u003eShift+Up\u003c/kbd\u003e|Previous git change.|\n|Normal|\u003ckbd\u003eg\u003c/kbd\u003e\u003ckbd\u003eRight\u003c/kbd\u003e/\u003ckbd\u003eShift+Down\u003c/kbd\u003e|Next git change.|\n|Normal|\u003ckbd\u003eh\u003c/kbd\u003e|Toggle git change line highlighting.|\n|Normal|\u003ckbd\u003eAlt+/\u003c/kbd\u003e|View the warning/error at the current line.|\n|Any, Multiple Buffers|\u003ckbd\u003eF1\u003c/kbd\u003e|Previous buffer.|\n|Any, Multiple Buffers|\u003ckbd\u003eF2\u003c/kbd\u003e|Next buffer.|\n|Any, Single Buffer|\u003ckbd\u003eF1\u003c/kbd\u003e|Previous git conflict.|\n|Any, Single Buffer|\u003ckbd\u003eF2\u003c/kbd\u003e|Next git conflict.|\n|Visual|\u003ckbd\u003eF5\u003c/kbd\u003e|Copy the highlighted text to the system clipboard.|\n|Any|\u003ckbd\u003eF6\u003c/kbd\u003e|Save the current buffer.|\n|Any|\u003ckbd\u003eF8\u003c/kbd\u003e|Undo the last change.|\n|Any|\u003ckbd\u003eF9\u003c/kbd\u003e|Redo the last change.|\n\n**Integrations** (using [eth-p/vim-tmux](https://github.com/eth-p/vim-tmux))  \n\n- Command: `Wcmd [shell command...]`\n  Run a shell command on save.  \n  \n  Runs `[shell command...]` in the tmux pane that was marked when `Wcmd` was called.\n\n\n---\n\n### tmux\n\n**Install**  \n\n1. Copy the tmux config files.\n2. Copy the `.local/libexe/tmux-*` files to `$HOME/.local/libexec/`.\n3. Install [gitmux](https://github.com/arl/gitmux).\n\n**Bindings**  \n|Key|Action|\n|:--|:--|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e|Prefix key.|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003e\\|\u003c/kbd\u003e|Create a vertical split.|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003e\\-\u003c/kbd\u003e|Create a horizontal split.|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003eK\u003c/kbd\u003e|Clear the current pane. \\* \\*\\*|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003eX\u003c/kbd\u003e|Close the current pane. \\*|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003eR\u003c/kbd\u003e|Reload the tmux config.|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003eF6\u003c/kbd\u003e|Attempt to save the vim buffer in the current pane. \\*|\n|\u003ckbd\u003eCtrl+X\u003c/kbd\u003e|Open the pane context menu. \\*|\n|\u003ckbd\u003eCtrl+Alt+Left\u003c/kbd\u003e|Select the pane to the left of the current pane.|\n|\u003ckbd\u003eCtrl+Alt+Right\u003c/kbd\u003e|Select the pane to the right of the current pane.|\n|\u003ckbd\u003eCtrl+Alt+Up\u003c/kbd\u003e|Select the pane above the current pane.|\n|\u003ckbd\u003eCtrl+Alt+Down\u003c/kbd\u003e|Select the pane below the current pane.|\n|kbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003eShift+Left\u003c/kbd\u003e|Select the previous window.|\n|kbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003eShift+Right\u003c/kbd\u003e|Select the next window.|\n|\u003ckbd\u003eCtrl+A\u003c/kbd\u003e\u003ckbd\u003e\\ \u003c/kbd\u003e\u003ckbd\u003es\u003c/kbd\u003e|Save the active pane. *|\n\n\\* Requires an integration script.  \n\\*\\* Requires `10-ethp-integrations.fish`.  \n\n**Copy Mode Bindings**\n|Key|Action|\n|:--|:--|\n|\u003ckbd\u003eV\u003c/kbd\u003e|Toggle selection.|\n|\u003ckbd\u003eShift+V\u003c/kbd\u003e|Toggle line selection.|\n|\u003ckbd\u003eY\u003c/kbd\u003e|Save selection to system clipboard.|\n|\u003ckbd\u003eCtrl+C\u003c/kbd\u003e/\u003ckbd\u003eEscape\u003c/kbd\u003e|Cancel copy mode.|\n\n**Context Menu**  \nWith \u003ckbd\u003eCtrl+X\u003c/kbd\u003e, a context menu is displayed for the currently active pane.\nThis has additional menu items for:\n\n- `vim`\n- `fish`\n- `ranger`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feth-p%2Fmy-dotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feth-p%2Fmy-dotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feth-p%2Fmy-dotfiles/lists"}