{"id":28953431,"url":"https://github.com/scizzorz/dots","last_synced_at":"2025-06-23T18:08:56.895Z","repository":{"id":5144688,"uuid":"6311786","full_name":"scizzorz/dots","owner":"scizzorz","description":"My personal dotfiles for configurations","archived":false,"fork":false,"pushed_at":"2025-04-28T14:10:33.000Z","size":2742,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-20T01:09:32.337Z","etag":null,"topics":["shell","terminal","tmux","vim","zsh"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"rbonghi/4UDE","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scizzorz.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":"2012-10-20T17:40:49.000Z","updated_at":"2025-04-28T14:10:37.000Z","dependencies_parsed_at":"2023-12-14T20:52:25.459Z","dependency_job_id":"41baab34-14ed-4f22-ae1d-0a143a896c1a","html_url":"https://github.com/scizzorz/dots","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/scizzorz/dots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scizzorz%2Fdots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scizzorz%2Fdots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scizzorz%2Fdots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scizzorz%2Fdots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scizzorz","download_url":"https://codeload.github.com/scizzorz/dots/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scizzorz%2Fdots/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261528683,"owners_count":23172756,"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":["shell","terminal","tmux","vim","zsh"],"created_at":"2025-06-23T18:08:56.255Z","updated_at":"2025-06-23T18:08:56.871Z","avatar_url":"https://github.com/scizzorz.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dots\n\nMy personal configurations for various tools.\n\n## Color Scheme\n\nI use a bleeding-edge terminal with an 18 color palette. The colors are\ninspired by Solarized and are designed to be readable in a light or dark theme\nthat can be switched simply by swapping the shades of grey. The palette is\ngenerated with [`colors.py`](colors.py) using parameters from\n[`colors.yml`](colors.yml); there's more details about the algorithm inside the\nPython script.\n\n![Labeled Color Palette](colors-labeled.png)\n\n## Tooling\n\nMost of the interesting configuration here is for [vim](vimrc),\n[tmux](tmux.conf), and [zsh](zshrc). [openbox](openbox-rc.xml) has a fair\namount of custom keybindings to place windows on my screen, but it's hardcoded\nto a 3440x1440 resolution monitor.\n\n### Docker workspaces\n\nI describe my dev environment in a [Dockerfile](Dockerfile) and use this image\nto spin up clean instances to isolate my various projects and workstreams. This\nimage contains an up-to-date copy of my ideal dev environment. There is a zsh\nfunction `d()` for creating and entering these workspaces. Executing `d foo`\nwill create a new Docker workspace named `foo` if it doesn't exist, or enter an\nexisting `foo` workspace. Likewise, `d foo ls` will execute `ls` inside the\nworkspace. The `~/dev` container directory is persisted as a bind mount to\n`~/.workspaces/foo` on the host.\n\nUsing this method allows me to focus on a \"stateless\" development methodology:\nmy development environment is completely documented as code and can be deleted\n/ re-created completely automatically. This reduces investment and allows me to\nhave a consistent and reproducible environment on any box with Docker\ninstalled.\n\n### tmux\n\nBecause I use tmux so heavily in my workflow, there is a zsh function `t()`\nthat simplifies the process of creating new sessions and attaching to them.\nSimply typing `t foo` will create a new tmux session named `foo` if it doesn't\nexist, or attach to an existing `foo` session, while `t foo:bar` will ssh into\n`foo` and create/attach to `bar` and `t foo/bar` will enter the `foo` Docker\nworkspace and create/attach to `bar`.\n\nI have several custom tmux bindings that use alt chords instead of a prefix\nchain. Briefly:\n\n* alt+\\ splits the pane vertically\n* alt+- splits the pane horizontally\n* alt+hjkl switch between panes\n* alt+mn switch between windows\n* alt+, creates a new window\n* alt+d detaches from the session\n* alt+s switches sessions\n* alt+backspace switches pane layouts\n* alt+z toggles zoom on the current pane\n* alt+w toggles pane synchronization\n* alt+; enters the tmux command prompt\n* alt+c enters copy-mode; y will copy selection\n* alt+p pastes a copied selection\n\n### vim\n\nI use vim for editing all text. I have a relatively minimal plugin setup that\nmostly consists of syntax files. I do use\n[`skim.vim`](https://github.com/lotabout/skim.vim),\n[ALE](https://github.com/w0rp/ale), and\n[YouCompleteMe](https://github.com/Valloric/YouCompleteMe) fairly heavily.\n\nI have several custom vim bindings that are explained in my vimrc, but the ones\nthat I seem to miss the most when working on non-configured systems are\nctrl+hjkl to switch between splits, ctrl+mn to move between buffers, and ctrl+d\nto suspend. These mirror the corresponding alt bindings for tmux.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscizzorz%2Fdots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscizzorz%2Fdots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscizzorz%2Fdots/lists"}