{"id":13661459,"url":"https://github.com/oalders/dot-files","last_synced_at":"2025-09-20T02:33:58.338Z","repository":{"id":5913019,"uuid":"2222452","full_name":"oalders/dot-files","owner":"oalders","description":"My dotfiles","archived":false,"fork":false,"pushed_at":"2024-10-29T19:05:57.000Z","size":4232,"stargazers_count":24,"open_issues_count":0,"forks_count":4,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-10-29T21:20:40.806Z","etag":null,"topics":["bash","dotfiles","tmux","vim"],"latest_commit_sha":null,"homepage":"","language":"Lua","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/oalders.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":"2011-08-17T15:12:40.000Z","updated_at":"2024-10-29T19:06:01.000Z","dependencies_parsed_at":"2023-01-14T11:45:34.653Z","dependency_job_id":"ad1c549b-e2a3-458c-a903-6356bf557e1d","html_url":"https://github.com/oalders/dot-files","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/oalders%2Fdot-files","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oalders%2Fdot-files/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oalders%2Fdot-files/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oalders%2Fdot-files/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oalders","download_url":"https://codeload.github.com/oalders/dot-files/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233619328,"owners_count":18703691,"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":["bash","dotfiles","tmux","vim"],"created_at":"2024-08-02T05:01:35.048Z","updated_at":"2025-09-20T02:33:52.922Z","avatar_url":"https://github.com/oalders.png","language":"Lua","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# My Dot Files\n\n\u003c!-- vim-markdown-toc GFM --\u003e\n\n* [Fresh macOS Installs](#fresh-macos-installs)\n  * [Clone Repo and Change Remote](#clone-repo-and-change-remote)\n  * [Change Default shell](#change-default-shell)\n  * [Trackpad and Dock defaults](#trackpad-and-dock-defaults)\n  * [Install App Store Apps](#install-app-store-apps)\n  * [Hammerspoon Spoon Installer](#hammerspoon-spoon-installer)\n  * [Alfred Workflows](#alfred-workflows)\n  * [Alfred Nord Theme](#alfred-nord-theme)\n  * [Alfred Configuration](#alfred-configuration)\n* [All Fresh Installs](#all-fresh-installs)\n  * [Plenv](#plenv)\n* [tmux](#tmux)\n  * [Prefix](#prefix)\n  * [Shortcuts](#shortcuts)\n  * [Plugins](#plugins)\n    * [tmux-resurrect](#tmux-resurrect)\n* [vim](#vim)\n  * [Mouse](#mouse)\n  * [Buffers](#buffers)\n  * [LSP](#lsp)\n  * [State](#state)\n  * [Mason](#mason)\n* [Alfred](#alfred)\n* [Bash](#bash)\n* [less](#less)\n* [gh -- GitHub CLI](#gh----github-cli)\n* [Testing with Docker](#testing-with-docker)\n  * [Fresh](#fresh)\n  * [Interactive](#interactive)\n* [Docker bashrc](#docker-bashrc)\n* [Hammerspoon](#hammerspoon)\n  * [Seal](#seal)\n    * [cpan-repo](#cpan-repo)\n    * [Slackify Name](#slackify-name)\n    * [xpasswd](#xpasswd)\n\n\u003c!-- vim-markdown-toc --\u003e\n\n[![Actions Status](https://github.com/oalders/dot-files/workflows/Build/badge.svg)](https://github.com/oalders/dot-files/actions)\n\n## Fresh macOS Installs\n\nSome of these scripts will need to be run manually on a fresh install. They may\nrequire manual intervention or be impractical to run regularly.\n\n### Clone Repo and Change Remote\n\n```text\ngit clone https://github.com/oalders/dot-files.git\ncd dot-files\n./bin/change-dot-files-origin.sh\n```\n\n### Change Default shell\n\nSee \u003chttps://apple.stackexchange.com/a/232983\u003e\n\nOn macOS:\n\n`sudo vi /etc/shells`\n\nAfterwards it should look something like:\n\n```text\n# List of acceptable shells for chpass(1).\n# Ftpd will not allow users to connect who are not using\n# one of these shells.\n\n/bin/bash\n/bin/csh\n/bin/dash\n/bin/ksh\n/bin/sh\n/bin/tcsh\n/bin/zsh\n/opt/homebrew/bin/bash\n```\n\nThen:\n\n```shell\nchsh -s /opt/homebrew/bin/bash $USER\n```\n\n### Trackpad and Dock defaults\n\n```shell\n./configure/macos.sh\n```\n\n### Install App Store Apps\n\nOn my personal machines after I'm logged in to the app store:\n\n```shell\nbrew bundle install --file=brew/mas\n```\n\n### Hammerspoon Spoon Installer\n\nLaunch `Hammerspoon` at least once *before* running this command. It may need\nto set up some directories for the spoon installation.\n\n```shell\n./installer/spoon-installer.sh\n```\n\nThen double-click the `SpoonInstall.spoon` file. This fixes the following error:\n\n\u003e Unable to load Spoon: SpoonInstall\n\n### Alfred Workflows\n\n```shell\ninstaller/alfred-workflows.sh\n```\n\nRun after Alfred has been installed. Confirm each install individually.\n\n### Alfred Nord Theme\n\n[Install Alfred Nord Theme](https://www.alfredapp.com/extras/theme/5Y8E7URIWQ/)\n[Install Alfred Tokyo Night Theme](https://www.alfredapp.com/extras/theme/puSaeqbft2/)\n\n### Alfred Configuration\n\n* Add `ta` as a keyword for Chrome Browser tab search\n* Record shortcuts for `div` workflow\n  * meta + 1 - left\n  * meta + 2 - right\n  * meta + 3 - full\n  * meta + 4 - top\n  * meta + 5 - bottom\n\n## All Fresh Installs\n\n### Plenv\n\n```shell\n./installer/plenv.sh\n```\n\nInstall `plenv` as well as the latest Perl version.\n\n## tmux\n\n### Prefix\n\n`ctrl-a`\n\n### Shortcuts\n\n`ctrl-a a`: toggle mouse\n`ctrl-a + L`: toggle session\n`ctrl-a + \u003cspace\u003e`: tmux which-key\n\n### Plugins\n\n* prefix + r # reload config\n* prefix + I # install plugins\n\n#### tmux-resurrect\n\n* prefix + Ctrl-s - save\n* prefix + Ctrl-r - restore\n* `rm -rf ~/.cache/tmux/resurrect` - clear saved sessions\n\n## vim\n\nRemind myself of vim shortcuts etc.\n\n* `:BCommits` - git commits for the current buffer\n* `:BLines` - fzf lines in current buffer\n* `:bn` or `]b` - next buffer\n* `:bp` or `[b` - previous buffer\n* `[c` and `]c` - navigate to next changed hunk\n* `\u003cspace\u003ern` - LSP rename\n* `crr` - LSP code action\n* `ctrl-l` - clear highlighted search terms\n* `ctrl-o` - return to previous position in file\n* `ctrl-w =` - equalize width and height of all windows\n* `ctrl-w m` - toggle zooming of splits\n* `ctrl-w r` - swap splits\n* `DiffviewOpen HEAD~1` - view diff. Probably follow with `:colo iceberg`\n* `]d` - next diagnostic\n* `[d` - previous diagnostic\n* `gc` - toggle commenting on a visual selection\n* `gcc` - toggle commenting on line under cursor\n* `gd` - go to definition\n* `:GenTocGFM` - generate GitHub flavoured markdown table of contents\n* `:GFiles` - `git ls-files | fzf`\n* `:GFiles?` - `git status | fzf` with preview pane\n* `:Gitsigns reset_hunk` - reset hunk at cursor\n* `gO` - open a loc list with the table of contents for a help file\n* `gr` - get references\n* `gwip` - reflow a block of text and maintain cursor position\n* `gx` - in normal mode calls `vim.ui.open()` on whatever is under the cursor\n* `\u003cleader\u003egm` - show commit message for line under cursor\n* `:Lines` - fzf lines in loaded buffers\n* `:Maps` - fzf normal mode mappings\n* `:Splitrun precious tidy --git` - run a command in a split\n* Terminals\n  * Switch between windows via `Ctrl-\\ Ctrl-n` and then `Ctrl-w` etc\n  * `:vert(ical) terminal` - vertical split into a terminal. `exit` to\n    close the terminal\n  * `:ToggleTerm to split into a terminal buffer`\n* `:w` in a Git commit buffer to enable a `typos` linter check\n\n### Mouse\n\nWhen mouse is enabled, clicking in the terminal automatically sets it to\n`normal` mode.\n\n* `:set mouse=a` to enable mouse\n* `:set mouse=` to disable mouse\n* `ctrl-a ctrl-m` to toggle mouse in `tmux`\n\n### Buffers\n\nSee `akinsho/bufferline.nvim` for buffer config.\n\n### LSP\n\n`:LspLog` displays path to log file at the top\n\nPrint results of `vim.lsp.log.get_filename()`:\n\n`:lua print(require('vim.lsp.log').get_filename())`\n\n### State\n\nPrint location of state directory:\n\n`:lua print(vim.fn.stdpath 'state')`\n\n`:h stdpath()` for args that can be passed.\n\n### Mason\n\nLockfiles. For instance, if it can't update or install `selene`, remove:\n`./local/share/nvim/mason/staging/selene.lock`\n\n## Alfred\n\nAfter Alfred and Dash are installed, click the `Integration` tab in `Dash` and\nthen choose `Alfred`.  If, for instance the `HTTP Status Codes` cheat sheet has\nbeen downloaded via `Dash`, this will then be available in Alfred using `http`\nto begin the search.\n\n## Bash\n\n* `ctrl-e` - open current line in `$EDITOR`\n* `fc` - open previous command in `$EDITOR`\n* `fc 2009` - open line 2009 of `history` in `$EDITOR`\n\n## less\n\nWhen using `less` as a pager for `psql`, you can pass `less` directives while\nviewing outpt.\n\n* `-S` toggle horizontal scrolling\n* `-N` toggle line numbers\n* `10 + arrow key` will now advance horizontal scroll by 10 characters when\n  arrow keys are pressed\n\n## gh -- GitHub CLI\n\n* `gh pr status`: status of all pull requests in repo\n* `gh pr view 1234`: view a single pull request\n  * `gh pr view --comments 1234`: view pull request and comments\n* `gh pr checks`: get status of checks for a PR in current branch\n\n## Testing with Docker\n\n### Fresh\n\n```shell\ndocker-compose up\n```\n\n### Interactive\n\n```shell\ndocker-compose run --rm app /bin/env bash\n```\n\nIn the Docker container:\n\n```shell\nUSER=root ./installer/inside-docker.sh \u0026\u0026 ./install.sh\n```\n\n## Docker bashrc\n\n```text\ndocker run --rm -it -p 5000:5000                  \\\n-v \"$HOME/dot-files/bashrc-docker:/root/.bashrc\"  \\\n--volume $PWD:/sandbox                            \\\npython:latest bashrc\n```\n\n## Hammerspoon\n\n### Seal\n\nLaunch Seal via `hyper` + `space`\n\n#### cpan-repo\n\n`hyper` + `space` + `cr OrePAN2`\n\n#### Slackify Name\n\nSelect name. Then: `hyper` + `space` + `sl`\n\n#### xpasswd\n\nEnter insert mode. Then `hyper` + `space` + `xp`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foalders%2Fdot-files","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foalders%2Fdot-files","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foalders%2Fdot-files/lists"}