{"id":16801671,"url":"https://github.com/seem/dotfiles","last_synced_at":"2025-04-11T01:13:12.524Z","repository":{"id":48599131,"uuid":"144115657","full_name":"seeM/dotfiles","owner":"seeM","description":"Personal configuration","archived":false,"fork":false,"pushed_at":"2023-10-04T13:38:08.000Z","size":275,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-11T01:13:06.371Z","etag":null,"topics":["applications","curated","dotfiles","macos"],"latest_commit_sha":null,"homepage":"","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/seeM.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":"2018-08-09T07:20:46.000Z","updated_at":"2024-08-06T12:31:15.000Z","dependencies_parsed_at":"2025-02-18T09:32:59.615Z","dependency_job_id":"2403e044-81af-47ef-9ece-04afa801ad8a","html_url":"https://github.com/seeM/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/seeM%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seeM%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seeM%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seeM%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seeM","download_url":"https://codeload.github.com/seeM/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248322571,"owners_count":21084337,"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":["applications","curated","dotfiles","macos"],"created_at":"2024-10-13T09:37:29.458Z","updated_at":"2025-04-11T01:13:12.502Z","avatar_url":"https://github.com/seeM.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\n## Contents\n\n- [Installation](#installation)\n- [MacOS apps](#macos-apps)\n- [MacOS settings](#macos-settings)\n- [Terminal apps](#terminal-apps)\n- [How I use macOS](#how-i-use-macos)\n\n## Installation\n\n1. Manually configure [macOS settings](#macos-settings).\n2. Clone and `cd` into this repo _with submodules_:\n\n    ```bash\n    $ git clone --recurse-submodules git@github.com:seem/dotfiles ~/dotfiles\n    $ cd ~/dotfiles\n    ```\n3. Install [Homebrew](#homebrew).\n4. Install from Brewfile with `brew bundle`:\n\n    ```bash\n    brew bundle install\n    ```\n5. Install vim plugins using [packer](https://github.com/wbthomason/packer.nvim):\n\n    ```bash\n    $ nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync'\n    ```\n7. Manually install remaining [MacOS apps](#macos-apps).\n8. Link VSCode settings (replace `Code\\ -\\ Insiders` with `Code` if necessary):\n\n    ```bash\n    rm ~/Library/Application\\ Support/Code\\ -\\ Insiders/User/settings.json\n    rm ~/Library/Application\\ Support/Code\\ -\\ Insiders/User/keybindings.json\n    ln -s $(pwd)/vscode/keybindings.json ~/Library/Application\\ Support/Code\\ -\\ Insiders/User/keybindings.json\n    ln -s $(pwd)/vscode/settings.json ~/Library/Application\\ Support/Code\\ -\\ Insiders/User/settings.json\n    ```\n\n## MacOS apps\n\n### [1Password](https://1password.com/) - Password manager\n\n### [Alacritty](https://github.com/alacritty/alacritty) - Terminal emulator\n\nI used to use iTerm, but Alacritty feels more lightweight and better suited to how I use the terminal (with tmux).\n\n### [Alfred](https://www.alfredapp.com/) - Launcher\n\nAlfred's main advantage over the standard launcher is custom workflows.\n\n#### Disable \u003ckbd\u003ectrl\u003c/kbd\u003e to _Show Actions_\n\nSince I rebind \u003ckbd\u003ectrl-p/n\u003c/kbd\u003e to up/down using Karabiner, this option breaks browsing the search list.\n\nAlfred Preferences → Features → Universal Actions → General → Show Actions (uncheck ctrl).\n\n#### [`alfred-github-workflow`](https://github.com/gharlan/alfred-github-workflow)\n\n#### [`alfred-emoji`](https://github.com/jsumners/alfred-emoji)\n\n### [Flux](https://justgetflux.com/) - Blue light controller\n\n### [GIMP-2.10](https://www.gimp.org/) - Image manipulation\n\n### [Google Chrome](https://www.google.co.za/chrome/) - Browser\n\n**Extensions:**\n\n- 1Password\n- Vimium (only occasionally use it)\n- Twemex (Twitter sidebar)\n- Some ad blocker\n\n### [IINA](https://iina.io/) - Video player\n\n### [Inkscape](https://inkscape.org/) - Vector graphics\n\nLots of confusing installation instructions out there, but `brew install inkspace` seems to work fine.\n\n### [Karabiner](https://pqrs.org/osx/karabiner/) - Keyboard remapping\n\n[`karabiner.edn`](./karabiner/.config/karabiner.edn) is written in the Karabiner domain specific language [Goku](#goku).\n\nEnsure that both Karabiner and Goku are installed, then `stow` the `karabiner` package, and run `goku`.\n\n### [Keyboard Maestro](https://www.keyboardmaestro.com/) – Mac automation\n\n### [LibreOffice](https://www.libreoffice.org/) - Office suite\n\n### [Obsidian](https://obsidian.md/) - Writing\n\n### [Rectangle](https://rectangleapp.com/) - Window manager\n\n### [Spotify](https://www.spotify.com/us/) - Music\n\n### [Transmission](https://www.transmissionbt.com/) - BitTorrent client\n\n### [Zoom](https://zoom.us/) - Video calls\n\n### [Zotero](https://www.zotero.org/) - Reference manager\n\n## MacOS settings\n\n### Dock\n\n1. In the _Dock_ itself, remove all unneeded applications (probably everything except _Finder_, browser, terminal, notes).\n2. Open _Dock_ settings.\n3. Decrease _Size_ by eye.\n4. Set _Position on screen_ to _Bottom_.\n5. Check _Automatically hide and show the Dock_.\n6. Uncheck _Show recent applications in Dock_.\n\n### Finder\n\n1. In _Finder_ itself, set to list view.\n2. Open _Finder_ _Preferences_.\n3. Set _New Finder windows show:_ to your home directory.\n4. Uncheck _Open folders in tabs instead of new windows_.\n5. Select _Tags_.\n6. Uncheck all tags.\n7. Select _Sidebar_.\n8. Check your home directory.\n9. Select _Advanced_.\n10. Check _Show all filename extensions_.\n11. Set _When performing a search_ to _Search the Current Folder_.\n\n### Keyboard\n\n1. Open _Keyboard_ settings.\n2. Set _Key Repeat_ to fastest.\n3. Set _Delay Until Repeat_ to fastest.\n4. Check _Use F1, F2, etc. keys as standard function keys on external keyboards_.\n5. Select _Text_ tab.\n6. Remove _On my way!_ replacement.\n\n### Mouse\n\n1. Open _Mouse_ settings.\n2. Set _Tracking speed_ to fifth from the right.\n3. Open _Accessibility_ settings.\n4. Select _Display_ on the left.\n5. Select _Cursor_ tab.\n6. Uncheck _Shake mouse pointer to locate_.\n\n### Trackpad\n\n1. Open _Trackpad_ settings.\n2. Set _Click_ to _Light_.\n3. Set _Tracking speed_ to fastest.\n\n### Language \u0026 Region\n\n1. Open _Language \u0026 Region_ \u003e _Advanced_ settings.\n2. Set all cases of _Decimal_ to `.`.\n\n## Terminal apps\n\nSee my [`Brewfile`](./Brewfile) for the full list of terminal applications I use. The most important ones are listed here.\n\n### [Goku](https://github.com/yqrashawn/GokuRakuJoudo) - Simple Karabiner configuration\n\n### [Homebrew](https://brew.sh/) - Package manager\n\n### [Tmux](https://github.com/tmux/tmux) - Terminal window manager\n\n### [NeoVIM](https://neovim.io/) - Text editor\n\n## How I use macOS\n\n### Window management with Rectangle\n\n95% of the time I have a single application maximised with [Rectangle](https://github.com/rxhanson/Rectangle)–_not_ virtual desktops, I'll explain in a sec. I switch between applications using \u003ckbd\u003ecmd-tab\u003c/kbd\u003e (or \u003ckbd\u003ecmd-\\`\u003c/kbd\u003e for different windows of the same application), Alfred (my preferred launcher, via \u003ckbd\u003ecmd-space\u003c/kbd\u003e), or the dock when using my mouse. The other 15% of the time I have two windows open side-by-side. I resize the Dock to be quite small and set it to only show on hover so that I only see the application I'm using and the thin mac bar on the top (that can't be hidden last I checked).\n\nI never use more than one virtual desktop. I find it inflexible and clunky in terms of both keyboard shortcuts and the animations that you can't seem to disable–for example, when fullscreening a window, or switching between fullscreened windows.\n\nI instead use Rectangle to maximise windows in a single virtual desktop. You're supposed to be able to hold \u003ckbd\u003eoption\u003c/kbd\u003e and click on the green fullscreen button on the top-left of windows to do this, but I've found that it doesn't work properly for some applications. So I use [Rectangle](https://github.com/rxhanson/Rectangle) instead, which also has customiseable keyboard shortcuts. I only use these shortcuts:\n\n- \u003ckbd\u003econtrol-option-enter\u003c/kbd\u003e: Maximise\n- \u003ckbd\u003econtrol-option-left\u003c/kbd\u003e: Left Half\n- \u003ckbd\u003econtrol-option-right\u003c/kbd\u003e: Right Half\n\nI find it convenient to use the same keys to move windows across screens (there's an option for this: _Preferences_ → _Move to adjacent display on repeated left or right commands_). I much less frequently use these too:\n\n- \u003ckbd\u003econtrol-option-up\u003c/kbd\u003e: Top Half\n- \u003ckbd\u003econtrol-option-down\u003c/kbd\u003e: Bottom Half\n\nRectangle also has a _Snap windows by dragging_ option, like Windows, which I like too.\n\n### Mac oddities\n\nHere are some behaviours I found very unexpected coming from Windows:\n\n1. Some windows don't show up in \u003ckbd\u003ecmd-tab\u003c/kbd\u003e, usually application settings. When that happens I use the \"three finger drap up\" gesture or \u003ckbd\u003ectrl-up\u003c/kbd\u003e to show all windows on my virtual desktop.\n2. In mac, closing all windows of an application doesn't necessarily close the application. It still appears when you \u003ckbd\u003ecmd-tab\u003c/kbd\u003e and in the dock. Use \u003ckbd\u003ecmd-q\u003c/kbd\u003e to fully close an application. Caveat: for some reason you can't close the Finder application.\n3. Finder's copy vs cut and paste is _very_ unintuitive. You first \"select\" a file with \u003ckbd\u003ecmd-c\u003c/kbd\u003e, then use \u003ckbd\u003ecmd-v\u003c/kbd\u003e to copy-paste, or \u003ckbd\u003ecmd-option-v\u003c/kbd\u003e to cut-paste.\n\n### Mac keyboard shortcuts\n\nMac applications often use the same standard keyboard shortcuts. Mac sometimes assumes that you know these, so doesn't make them clear. Here are the shortcuts I use:\n\n- \u003ckbd\u003ecmd-\u003cnumber\u003e\u003c/kbd\u003e: Switch to a given tab. \u003ckbd\u003ecmd-9\u003c/kbd\u003e switches to the *last* tab\n- \u003ckbd\u003ecmd-{/}\u003c/kbd\u003e: Left/right tab\n- \u003ckbd\u003ecmd-t\u003c/kbd\u003e: New tab\n- \u003ckbd\u003ecmd-w\u003c/kbd\u003e: Close a window in an application (or close a tab, depending on the application)\n- \u003ckbd\u003ecmd-n\u003c/kbd\u003e: New window (I rarely use multiple windows)\n- \u003ckbd\u003ecmd-o\u003c/kbd\u003e: Open file\n- \u003ckbd\u003ecmd-s\u003c/kbd\u003e: Save\n- \u003ckbd\u003ecmd-q\u003c/kbd\u003e: Close an application (and all of its windows)\n- \u003ckbd\u003etouch id\u003c/kbd\u003e: You can press the Touch ID button to lock your screen\n\nI've setup tmux and Karabiner so that many of these work in the terminal too! I also have the following in my terminal:\n\n- \u003ckbd\u003ecmd-h/j/k/l\u003c/kbd\u003e: Left/down/up/right pane\n- \u003ckbd\u003ecmd-h/j/k/l\u003c/kbd\u003e: Left/down/up/right pane\n- \u003ckbd\u003ecmd-d\u003c/kbd\u003e: Split pane right (think \"duplicate\")\n- \u003ckbd\u003ecmd-D\u003c/kbd\u003e: Split pane down (think \"duplicate\")\n\n### Alfred - Launching \u0026 switching applications\n\nI use [Alfred](#alfred) instead of the defualt launcher. I don't use too many of its features or custom workflows anymore. It's also been a long time since I used the default launcher so I'm not even sure how much they differ anymore.\n\nI mostly use Alfred by pressing \u003ckbd\u003ecmd-space\u003c/kbd\u003e typing in a few characters to fuzzily search for the application I want to launch or switch to, and hitting \u003ckbd\u003ereturn\u003c/kbd\u003e. After a while, you remember short letter combinations (usually two letters) needed for each application. For example, \u003ckbd\u003ecmd-space\u003c/kbd\u003e \u003ckbd\u003e`ch`\u003c/kbd\u003e \u003ckbd\u003eenter\u003c/kbd\u003e switches to Chrome. Similarly, `al` for Alacritty (terminal), `ob` for Obsidian (notes), `di` for Discord, and so on.\n\nIt also has a built-in calculator which I find very convenient. You can type basic math directly into the search prompt and hit \u003ckbd\u003eenter\u003c/kbd\u003e to paste the result into your clipboard.\n\nThe only custom workflow I use these days is for emojis, since not every application has a nice emoji auto-completer. I used to use a custom workflow that I wrote to open GitHub repos in my browser without needing any access to GitHub itself (via the git remote URL). I don't know why I stopped–it's very convenient!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseem%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseem%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseem%2Fdotfiles/lists"}