{"id":19299189,"url":"https://github.com/bmatcuk/dotfiles","last_synced_at":"2025-11-15T06:16:34.178Z","repository":{"id":50657216,"uuid":"218881011","full_name":"bmatcuk/dotfiles","owner":"bmatcuk","description":"My dotfiles","archived":false,"fork":false,"pushed_at":"2025-02-13T20:04:20.000Z","size":568,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-13T21:22:43.014Z","etag":null,"topics":["dotfiles"],"latest_commit_sha":null,"homepage":null,"language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bmatcuk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-10-31T23:59:01.000Z","updated_at":"2025-02-13T20:04:24.000Z","dependencies_parsed_at":"2023-12-31T20:30:12.243Z","dependency_job_id":"299f8975-4de3-4357-9d05-3a4e97ae4b92","html_url":"https://github.com/bmatcuk/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/bmatcuk%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmatcuk%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmatcuk%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmatcuk%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmatcuk","download_url":"https://codeload.github.com/bmatcuk/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240400334,"owners_count":19795333,"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":["dotfiles"],"created_at":"2024-11-09T23:10:29.579Z","updated_at":"2025-11-15T06:16:34.172Z","avatar_url":"https://github.com/bmatcuk.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My dotfiles\nThese dotfiles are configured for OSX, but you may find that some of it applies\nto other *NIX systems. I'm using [alacritty] as my terminal, and the [nord]\ntheme. The configuration relies on [Nerd Font] symbols; personally I'm using\n[Hack] (which is installed by the Brewfile), but any [Nerd Font] will work.\n\nThe Brewfile will install a suite of software I tend to install on all of my\nmachines. For development, I use [asdf] to manage CLI tool versions, [neovim]\nas my editor, [bash] as my shell, and [tmux] to make my terminal more powerful;\nthe latest version of these will be installed by the Brewfile, as well as a few\nother command line tools I find useful as a developer:\n* [bat] - like cat but better\n* [fd] - like find but way easier\n* [fzf] - fuzzy matching for file names and command completion\n* [jq] - parse json on the command line\n* [ripgrep] - like grep but way faster\n* [thefuck] - for fixing common typos\n* [tig] - for navigating git history\n* [tldr] - like man pages but more condensed\n\nThe Brewfile will also install some other programs that I tend to install on\nall of my machines, such as:\n* [alfred] - like Spotlight but more powerful\n* [discord] - for keeping in touch with friends\n* [flux] - save your eyes from the blue light\n* [keybase] - encryption with friends\n* messenger - for keeping in touch with friends who refuse to change\n* [obsidian] - for note taking\n* [slack] - for work and play\n* [stay] - make windows stay put, even when switching monitors\n* [tailscale] - private vpn\n\n## Installation\nAll of the software you'll need is installed by [homebrew], so the first thing\nyou'll want to do is install that. See the website for instructions.\n\nClone this repo to your home directory. The name you give the repo doesn't\nmatter, but it'll make your life easier if it's in your home directory. For\nexample, this will name the directory `~/.dotfiles`:\n```bash\ngit clone https://github.com/bmatcuk/dotfiles.git ~/.dotfiles\n```\n\nNext, run the following in this directory to install all the software:\n```bash\ncd ~/.dotfiles\nbrew bundle\n```\n\n## Setup\nAfter all of the software is installed, you'll need to run a few commands to\nsetup the software:\n\nInstall the tmux-256color.terminfo:\n```bash\nsudo tic -xe tmux-256color tmux-256color.terminfo\n```\n\nTo use the version of [bash] installed by [homebrew] instead of OSX's default\n(outdated) version of bash, run:\n```bash\necho \"$(brew --prefix bash)/bin/bash\" | sudo tee -a /etc/shells\nchsh -s \"$(brew --prefix bash)/bin/bash\"\n```\n\n## dotfiles\nNow that everything is setup, you can use [stow] to create symbolic links to\nthe dotfiles. These instructions assume that you've cloned this repo to your\nhome directory as suggested above. If you have not, you'll need to set [stow]'s\n\"target directory\" to your home directory. See [stow]'s documentation.\n\nNote that some of the dotfiles end up in shared directories, which might not\nexist yet. For example, `~/.config` or `~/.local`. If these directories do not\nexist, [stow] will do the simpliest thing, which is symlink them. Later, when\nsome other program tries to save something in those directories, they'll end up\ncopied into this dotfiles repo because of the symlink. To avoid that, we'll\ncreate a few directories first:\n```bash\nmkdir -p ~/.config/nvim\n\nmkdir -p ~/.local/share\nmkdir ~/.local/state\n\nmkdir ~/.gnupg\nchmod 0700 ~/.gnupg\n\nmkdir ~/.ssh\n```\n\ndotfiles for each utility are in their own directory. For example, to install\nmy bash dotfiles, you'd simply run the following while in this repo's\ndirectory:\n```bash\nstow bash\n```\n\nEach dotfile can be installed individually by running [stow] on the appropriate\ndirectories.\n\nIn addition to configuration for various command line tools, I also have some\nconfiguration for a few linting tools. These are located in directories named\nafter the programming language, such as javascript or css.\n\n### bat\nIf you decide to use the bat dotfiles, you'll need to run the following after\nrunning `stow bat`:\n```bash\nbat cache --build\n```\n\n### bash and fzf\nAfter installing fzf and running `stow bash`, you need to install the fzf bash\nscripts:\n```bash\n$(brew --prefix fzf)/install --no-zsh --no-fish\n```\n\nAnswer yes to auto-completion and key bindings, but answer no to updating the\nshell configuration file.\n\n### tmux\nAfter running `stow tmux` and starting tmux, install plugins by typing\n`prefix + I` - that's the tmux prefix (typically Ctrl+B) followed by Shift+i.\n\n### nvim\nAfter running `stow nvim`, you'll need to install python2, python3, and node\n(via asdf). Next, you'll need to run:\n```bash\npip3 install pynvim\nnpm install -g neovim\nnvim +PlugInstall +UpdateRemotePlugins\n```\n\n### Fortune and Cowsay\nThe files for fortune and [cowsay] must be linked to the respective `share`\ndirectories. If these were installed via [homebrew], the following will work:\n```bash\nstow -t \"$(brew --prefix fortune)/share\" fortune\nstow -t \"$(brew --prefix cowsay)/share/cowsay\" cowsay\n```\n\nOtherwise, this will probably work:\n```bash\nstow -t /usr/local/share fortune\nstow -t /usr/local/share cowsay\n```\n\nThe [cowsay] files come from Paul Kaefer's excellent [cowsay-files] repo. I\nhave not included the true color cows, and I removed ghostbusters.cow and\nvader.cow because my install of cowsay already included them.\n\n## Local Modifications\nSometimes you want to make changes to configs on a per-machine basis. For\nexample, you might need some work-specific environment variables. Some configs\nhave support for importing files for this purpose so you don't need to worry\nabout accidentally committing these things to git:\n* `~/.bash_profile.local`\n* `~/.gitconfig.local`\n* `~/.ssh/config.local`\n* `~/.config/nvim/local.vim`\n\n## Some Manual Changes\nHere are a few manual changes I make when setting up a new system:\n\n### Set the Dock size and make the size immutable\n```\ndefaults write com.apple.dock tilesize -int 32\ndefaults write com.apple.dock size-immutable -bool yes\nkillall Dock\n```\n\n[Hack]: http://sourcefoundry.org/hack/\n[Nerd Font]: https://github.com/ryanoasis/nerd-fonts\n[alacritty]: https://github.com/jwilm/alacritty\n[alfred]: https://www.alfredapp.com/\n[asdf]: https://asdf-vm.com/#/\n[bash]: https://www.gnu.org/software/bash/\n[bat]: https://github.com/sharkdp/bat\n[cowsay-files]: https://github.com/paulkaefer/cowsay-files\n[cowsay]: https://github.com/tnalpgge/rank-amateur-cowsay\n[discord]: https://discord.com/\n[fd]: https://github.com/sharkdp/fd\n[flux]: https://justgetflux.com/\n[fzf]: https://github.com/junegunn/fzf\n[homebrew]: https://brew.sh/\n[jq]: https://stedolan.github.io/jq/\n[keybase]: https://keybase.io/\n[neovim]: https://neovim.io/\n[nord]: https://www.nordtheme.com/\n[obsidian]: https://obsidian.md/\n[ripgrep]: https://github.com/BurntSushi/ripgrep\n[slack]: https://slack.com/\n[stay]: https://cordlessdog.com/stay/\n[stow]: https://www.gnu.org/software/stow/\n[tailscale]: https://tailscale.com/\n[thefuck]: https://github.com/nvbn/thefuck\n[tig]: https://jonas.github.io/tig/\n[tldr]: https://tldr.sh/\n[tmux]: https://tmux.github.io/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmatcuk%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmatcuk%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmatcuk%2Fdotfiles/lists"}