{"id":13572673,"url":"https://github.com/kevinjalbert/dotfiles","last_synced_at":"2025-03-26T22:30:34.264Z","repository":{"id":7007809,"uuid":"8275487","full_name":"kevinjalbert/dotfiles","owner":"kevinjalbert","description":"My dotfiles","archived":false,"fork":false,"pushed_at":"2024-04-13T17:34:15.000Z","size":1541,"stargazers_count":21,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T14:22:11.871Z","etag":null,"topics":["dotfiles","vim","zsh"],"latest_commit_sha":null,"homepage":"https://kevinjalbert.com/synchronizing-my-dotfiles/","language":"Vim Script","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/kevinjalbert.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":"2013-02-18T19:31:26.000Z","updated_at":"2024-07-26T12:03:09.000Z","dependencies_parsed_at":"2024-10-30T06:38:46.350Z","dependency_job_id":null,"html_url":"https://github.com/kevinjalbert/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/kevinjalbert%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinjalbert%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinjalbert%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevinjalbert%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevinjalbert","download_url":"https://codeload.github.com/kevinjalbert/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245747394,"owners_count":20665782,"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","vim","zsh"],"created_at":"2024-08-01T14:01:32.169Z","updated_at":"2025-03-26T22:30:33.786Z","avatar_url":"https://github.com/kevinjalbert.png","language":"Vim Script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"# Dotfiles\n\nTODO: Flesh this README out more, this is a WIP of how to use this on a fresh install.\n\n## Getting it all going\n\nTODO: get a shell script I can kick off like the homebrew one (URL based I can pass into bash)\n      /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n      kevinjalbert/dotfiles/HEAD/bootstrap.sh or something that gets everything _ready_\n\nA bunch of steps of things to do, will likely need to be refined:\n\n## Initial apps\n\n- Log in to App Store with Apple Id\n  - Install XCode\n\n- Install homebrew\n  - `/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"`\n\n- `brew install dropbox 1password`\n  - Login Dropbox\n  - Wait for files to sync of files (can take a while depending on amount of files)\n  - Login to 1Password (set the quick access shortcut to 'option+cmd+\\')\n\n## Rake commands\n\n- `cd ~/Dropbox/dotfiles`\n- `brew bundle --verbose`\n  - keep an eye on anything which failed\n- `rake install:mackup`\n- `rake update:mackup`\n  - Might want to double check first `DRY_RUN=true rake update:mackup`, although should be fine\n  - Accept overwrites as needed (should all be yes)\n- `rake mackup:uninstall`\n  - This is needed for now, as there is a bug with how mackup works with symlinks on macOS\n    - https://github.com/lra/mackup/issues/1924\n- `rake install:zplug`\n  - Enter password as needed (changing default shell)\n- `rake update:zplug` # Didn't work so I used `zplug install` in a new shell\n  - Before this, open a new shell or get into zsh first (need to see if I can force it via script)\n- `rake install:fzf_bindings`\n  - Yes to things, it should all be there anyways so it'll know\n- `rake install:vim_plug`\n- `rake update:vim`\n- `rake install:macos`\n- Restart\n\n## Manual setup (apps and other tweaks)\n\n- Might have to allow certain apps to run still due to increase security in macOS (https://github.com/toland/qlmarkdown/issues/98#issuecomment-607733093)\n- For most apps install required helpers, ensure notifications work, grant required permissions, and set to open on login\n\n- Setup keyboard function keys show all the time\n  - touchbar shows F# keys\n  - Fn key does nothing\n  - hold Fn Key shows control strip\n  - Use F# keys on external keyboard\n\n- Setup trackpad settings\n  - three finger drag (just search for it), and tap to click (if it didn't get set)\n  - Disable force click if possible\n\n- Set default view in finder\n  - Open finder\n  - Select your hard disc\n  - Command+J\n  - Check the top two check boxes (Always open in list view, browse in list view)\n  - Click use as defaults\n  - Probably don't need to use the .DS_Store delete given new system\n    - https://apple.stackexchange.com/a/284468\n\n- Setup Apple Watch to unlock Mac in System Settings \u003e Security and Privacy\n\n- Open Google Chrome\n  - Login with main gmail account (kevin.j.jalbert@gmail.com)\n  - Address extensions upon syncing\n  - Set as default browser in system preferences\n\n- Setup internet accounts\n  - iCloud\n    - disable contacts and photos\n  - joint (only contacts)\n  - main (only calendar)\n\n- Open Music\n  - Authorize computer (under Account in menu)\n  - Wait for everything to sync\n  - Identify the 'missing' songs on the original machine (if transferring from other machine) and copy them over\n\n- Open Messages\n  - Enable SMS linking from phone\n\n- Open Messenger\n  - Login\n\n- Open Bartender\n  - Set permissions\n  - Ensure license is set\n\n- Open iStats Menu\n  - Install component\n\n- Open NextDNS\n  - Set 'device config'\n\n- Open Qbserve\n  - Use license\n  - Set configs\n  - Pull over backup of user data (and exports)\n\n- Open Discord\n  - Login via QR code scan on mobile\n\n- Open KeepingYouAwake\n\n- Open Spark\n  - Login using kevin.j.jalbert@gmail.com account\n  - Ensure settings kinda match up\n    - General \u003e Main\n      - num of lines to 1\n      - Show labels in list\n      - Show avatars (both)\n    - Notifications\n      - Email notifications being 'Smart'\n      - Dock badge being all messages\n    - Accounts \u003e Disable calendars\n    - Shortcuts \u003e Custom (Archive is 'delete' backspace)\n\n- Open Books\n  - Account \u003e Authorize\n\n- Open TablePlus\n  - License has expired\n\n- Open VSCode\n  - Login with Github for Setting Sync\n  - Sync everything\n\n- Open Rectangle\n  - Grant permissions\n\n- Open Obsidian\n  - Connect up vault (icloud)\n  - Might have to ensure that all the 'files' are actually loaded locally in iCloud\n\n- Open Calendar\n  - Ensure right calendar accounts are showing up\n\n- Open Contacts\n  - Set default to join account\n\n- Open Dash\n  - Grant permissions\n  - Ensure that the sync is working (should be)\n  - Ensure that license is enabled\n\n- Open Karabiner Elements\n  - Grant permissions\n  - Set hyperkey for cap lock\n  - Set page up/down home/end to none (I don't use them, and they are sometimes mis-clicked)\n\n- Open Flux\n\n- Open HammerSpoon\n  - Grant permissions\n  - Open on login\n\n- Open ImageOptim\n  - Enable Guetzli\n  - Set image processing level to insane\n\n- Open Keybase\n  - Login\n  - Add new machine\n\n- Open Postman\n  - Login\n\n- Open ProxyMan\n  - Install helper\n  - Open preferences \u003e Advance and make it restore the previous HTTPS proxy when ProxyMan closes\n\n- Install Readwise for iBooks (https://readwise.io/ibooks)\n  - Install\n  - Open and Login\n\n- Install https://github.com/sbarex/SourceCodeSyntaxHighlight\n\n- Open Steam\n  - Login\n\n\u003c!-- # Might not be a good idea - Reduce spotlight indexing (so we don't waste CPU and SSD)\n  - Settings \u003e Spotlight\n    - Uncheck the search results (keep events/remidners -- so calendar search still works)\n    - Throw home directory in Privacy --\u003e\n\n- Open Raycast\n  - Ensure the hotkey is set to cmd+space\n  - Ensure settings carry over\n  - Look at the extensions (set up as needed)\n  - Clipboard settings\n    - history 3 months\n    - primary action is to copy\n    - Disable app: 1Password\n\n- Open Steam\n  - Login\n\n- Open Shottr\n  - Setup settings and set license\n  - Screenshots can go to Desktop\n  - Set hotkeys (fullscreen cmd+shift+3, area cmd+shift+4, OCR hyper+C)\n\n- Setup login in items\n\n- Set up dock\n  - Add spacers `defaults write com.apple.dock persistent-apps -array-add '{\"tile-type\"=\"spacer-tile\";}' \u0026\u0026 killall Dock`\n\n- Setup SSH and GPG\n  - Look at that section\n\n## Language Setup [asdf version manager](https://github.com/asdf-vm/asdf)\n\n### Setup Ruby\n\n`asdf plugin-add ruby https://github.com/asdf-vm/asdf-ruby.git`\n\n\u003e take a look at this -- https://github.com/asdf-vm/asdf-ruby#default-gems\n\n`asdf install ruby \u003cversion\u003e`\n\n### Setup Node.js\n\n`asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git`\n\n\u003e take a look at this -- https://github.com/asdf-vm/asdf-nodejs#default-npm-packages\n\n`asdf install nodejs \u003cversion\u003e`\n\n## Setup SSH/GPG\n\nUse passphrases for both SSH and GPG keys. They should exist in 1Password as secure notes.\n\nWhen setting up on a new machine, I like setting up a new SSH key. The old SSH Keys should be removed from GitHub\n\n### Setup SSH\n\n```bash\nssh-keygen -t rsa -b 4096 -C \"kevin.j.jalbert@gmail.com\"\neval \"$(ssh-agent -s)\"\nssh-add -K ~/.ssh/id_rsa\npbcopy \u003c ~/.ssh/id_rsa.pub\n```\n\nMake sure to add a passphrase (1password generated)\n\nTake the key and add it to GitHub's SSH settings (https://github.com/settings/keys)\n\n### Setup GPG\n\nFirst we need to set the right permissions for the `gnupg` directory/files:\n\n```bash\nsudo chown -R $(whoami) ~/.gnupg\nsudo find ~/.gnupg -type f -exec chmod 600 {} \\;\nsudo find ~/.gnupg -type d -exec chmod 700 {} \\;\n``\n\nNext we pull down the Keybase public/private GPG keys from 1Password and import them locally via `gpg`:\n\n```bash\ncat keybase-public.key | gpg --import\ncat keybase-private.key | gpg --allow-secret-key-import --import\n```\n\nUse the passphrase from 1Password\n\nThe following \"shouldn't be needed\", but incase a new GPG key is needed, it can be generated following this [guide](https://github.com/pstadler/keybase-gpg-github).\n\nAlso, don't remove older GPG keys from GitHub as it'll invalid the commits that have been signed with it in the past.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinjalbert%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinjalbert%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinjalbert%2Fdotfiles/lists"}