{"id":17978620,"url":"https://github.com/ad-si/dotfiles","last_synced_at":"2025-10-24T11:36:04.321Z","repository":{"id":8493416,"uuid":"10100084","full_name":"ad-si/dotfiles","owner":"ad-si","description":"My precious dotfiles","archived":false,"fork":false,"pushed_at":"2024-10-15T18:49:31.000Z","size":10473,"stargazers_count":10,"open_issues_count":13,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-21T14:38:09.343Z","etag":null,"topics":["dotfiles","fish","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/ad-si.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":"2013-05-16T11:48:45.000Z","updated_at":"2024-10-15T18:49:36.000Z","dependencies_parsed_at":"2024-03-18T14:49:24.895Z","dependency_job_id":"dfc0a46c-d3c5-44a8-becc-b7da971965c2","html_url":"https://github.com/ad-si/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/ad-si%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ad-si%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ad-si","download_url":"https://codeload.github.com/ad-si/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228129006,"owners_count":17873889,"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","fish","shell"],"created_at":"2024-10-29T17:34:33.466Z","updated_at":"2025-10-24T11:36:04.314Z","avatar_url":"https://github.com/ad-si.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nAll configuration files and scripts\nfor setting up a new macOS or Linux machine.\n\nCheck out [phone.md](./phone.md) for setup instructions on a new phone.\n\n\n## Structure\n\n* `bin` — custom scripts\n* `home` — files that are symlinked to `$HOME` directory\n* `terminal` — terminal config\n\n\n## Installation\n\n1. Install XCode via the macOS App Store\n1. Accept XCode license agreement\n1. `cd ~ \u0026\u0026 git clone https://github.com/ad-si/dotfiles.git`\n1. `cd dotfiles \u0026\u0026 ./install.sh` \\\n    **Attention:** The user must have sudo rights to install dependencies\n\n\n## Manual Steps\n\nCopy all relevant files from backup to new Machine.\n(Check out [bin/backup](./bin/backup) for a list of all files.)\n\n\n### MacOS\n\n#### System Preferences\n\n- General\n  - Date \u0026 Time: Change date and time preferences\n    - Deactivate automatic setting of time zone by location\n    - Change time zone to UTC:\n        `sudo ln -sf /usr/share/zoneinfo/UTC /etc/localtime`\n        or\n        `sudo systemsetup -settimezone GMT` (will error, but still work)\n    - Display the time with seconds\n    - Use a 24-hour clock\n    - Show the day of the week\n    - Show date\n\n  - Language \u0026 Region\n    - Preferred languages: English (US)\n    - First day of the week: Monday\n    - Calendar: ISO 8601\n    - Temperature: Celsius\n    - Advanced:\n      - General:\n        - Grouping: Space\n        - Decimal: .\n        - Measurement: Metric\n      - Dates:\n        - Short: y-MM-dd\n        - Medium: y-MM-dd\n        - Long: y-MM-dd\n        - Full: y-MM-dd, D', W'w, EEEE\n      - Times:\n        - Short: HH:mmZZZZZ\n        - Medium: HH:mm:ssZZZZZ\n        - Long: HH:mm:ssZZZZZ\n        - Full: HH:mm:ss.SSSZZZZZ\n\n- Appearance\n  - Light Mode (Use Nightfall to switch between light and dark mode)\n  - Show scroll bars: When scrolling\n  - Click in the scroll bar to: Jump to the spot that's clicked\n\n- Control Center\n  - Battery: Show Percentage\n  - Keyboard Brightness: Show in Control Center\n  - Spotlight: Don't show in menu bar\n\n- Desktop \u0026 Dock\n  - Show suggested and recent apps in Dock: Off\n\n  - Widgets\n    - Default web browser: Brave\n\n  - Windows\n    - Tiled windows have margins: Off\n\n  - Mission Control\n    - Automatically rearrange Spaces based on most recent use: Off\n    - Hot Corners\n      - Top Left: Put Display to Sleep Launchpad\n      - Top Right: -\n      - Bottom Left: Desktop\n      - Bottom Right: Mission Control\n\n- Displays:\n  - Change primary display\n  - Set resolution to \"More Space\"\n  - Night Shift: Off\n\n- Keyboard\n  - Keyboard\n    - Key Repeat: Fast\n    - Delay Until Repeat: Short\n    - Press 🌐 key to Start Dictation\n    - Keyboard navigation ☑️\n    - Keyboard Shortcuts\n      - Launchpad \u0026 Dock\n        - Turn Dock hiding on/off: Off\n      - Display\n        - Disable all\n      - Input Sources\n        - Select the previous input source: Off\n      - Presenter Overlay\n        - Disable all\n      - Spotlight\n        - Show Spotlight search \"^ Space\"\n      - App shortcuts\n          ![](./images/overwrite_shortcut.png)\n      - Modifier Keys\n        - Remap Caps Lock key to `^ Control`\n  - Text Input\n    - Input Sources\n      - Use \"ABC - Extended\" keyboard layout\n          to have correct direct output of \"\\~\" and \"\\`\"\n      - Delete all other input sources\n      - Disable\n        - Correct spelling automatically\n        - Capitalize words automatically\n        - Add period with double-space\n        - Use smart quotes and dashes\n\n- Open at Login\n  - Brave\n  - Calendar\n  - Dropbox\n  - Google Drive\n  - Hammerspoon\n  - iTerm\n  - Slack\n  - Spotify\n  - Thunderbird\n  - WhatsApp\n\n\n#### Apps\n\n##### Calendar\n\n- General:\n  - Scroll in week view by: Week, Stop on Today\n- Accounts: Add all accounts, but disable Mail for them\n- Advanced:\n  - Turn on time zone support\n  - Show week numbers\n- Enable notifications\n\n\n##### Finder\n\n- Preferences\n  - Show nothing on the Desktop\n  - New Finder windows show \\\u003cusername\\\u003e\n  - Sync Desktop \u0026 Documents folders\n  - Sidebar:\n      - Applications\n      - Downloads\n      - \\\u003cusername\\\u003e\n      - iCloud Drive\n      - Desktop\n      - Locations: All\n      - Tags\n  - Advanced:\n    - Show all filename extensions\n    - Show warning before removing from iCloud Drive\n    - Show warning before emptying the Trash\n    - Remove items from the Trash after 30 days\n    - When performing a search: Search the Current Folder\n- Sidebar:\n  - Sort directories in \"Favorites\" section\n\n\n##### iTerm\n\nGeneral \u003e Settings:\n\n- Load preferences from a custom folder or URL: `~/dotfiles/terminal`\n- Save changes to folder when iTerm2 quits\n- Set Fish as the default shell:\n    ```sh\n    echo /opt/homebrew/bin/fish | sudo tee -a /etc/shells\n    chsh -s /opt/homebrew/bin/fish\n    ```\n    More details: https://fishshell.com/docs/current/#default-shell\n\n\n##### Hammerspoon\n\n- Deactivate all settings except:\n  - Launch Hammerspoon at login\n  - Show Menu Icon\n- Enable Accessibility\n\n\n##### Logic Pro X\n\n- Download all additional content\n\n\n#### Scripts\n\nJxa macOS automation scripts are symlinked from\n`~/dotfiles/scripts` to `~/Library/Scripts`\nand are displayed in the scripts editor sub-menu in the menu bar.\n(Enable via\n`Script Editor.app \u003e Preferences \u003e General \u003e Show Script menu in menu bar`)\nAdd sub-directories with app names for app specific scripts.\n\nThe `symlink-dotfiles` script must be run after adding new scripts.\n\n\n#### Script Libraries\n\nScript libraries are symlinked from\n`~/dotfiles/script-libraries` to `~/Library/Script Libraries/dotfiles`\nand can be imported like this:\n\n```js\nconst tools = Library('dotfiles/tools')\n```\n\n\n#### General\n\nWith descending priority:\n\n- Set GitHub API token for Homebrew\n- Install TaskLite\n- Run `npm install` in the dotfiles directory\n- Add Hunspell dictionaries after installation\n    (e.g. https://github.com/titoBouzout/Dictionaries to\n    `~/dotfiles/dictionaries`)\n- Install languages for Tesseract\n    (e.g. https://github.com/tesseract-ocr/tessdata_best/blob/master/deu.traineddata?raw=true)\n    to `/usr/local/Cellar/tesseract/4.0.0/share/tessdata`\n- Printer driver software\n  - Install and setup Brother QL-810W label printer\n\n\n### Git\n\n```sh\ngh auth login\n```\n\n\n### OpenJDK\n\nIs installed by Homebrew,\nbut for the system Java wrappers to find `openjdk`, symlink it with:\n\n```sh\nsudo ln -sfn \\\n  /opt/homebrew/opt/openjdk/libexec/openjdk.jdk \\\n  /Library/Java/JavaVirtualMachines/openjdk.jdk\n```\n\n\n### Brave\n\n1. Set Brave as default browser\n    (Should pop up when opening Brave for the first time)\n1. Go to [Brave Sync](brave://settings/braveSync/setup)\n1. Join Sync Chain\n1. Disable swipe history navigation:\n    `defaults write com.brave.Browser AppleEnableSwipeNavigateWithScrolls -bool FALSE`\n1. Set \"Page zoom\" to 90%\n\nInstalled extensions should then include\nMidnight Lizard, Automatic Metric Conversion, …\n\n\n### Firefox\n\n- Login to Firefox Sync\n- Do not print headers, footers, and margins.\n\n\n### Dropbox\n\nSign in and enable sync for important directories.\nEspecially `Settings`, which is needed for Sublime Text/Merge sync.\n\n\n### GPG\n\n1. `brew install pinentry-mac`\n1. Then add to gpg-agent config (skip if `.gnupg` was copied from backup):\n    ```sh\n    echo \"pinentry-program /opt/homebrew/bin/pinentry-mac\" \\\n      \u003e\u003e ~/.gnupg/gpg-agent.conf\n    ```\n1. `killall gpg-agent`\n1. Restart shell\n\n\n### Gopass\n\n1. Make sure GPG is set up correctly.\n1. Clone https://github.com/ad-si/password-store with GitHub CLI:\n    `gh repo clone ad-si/password-store` and move to `~/.password-store`.\n1. `gopass fsck`\n\n\n### Sublime Text\n\n- Activate installation\n  - Get license key with `gopass sublimetext.com/license-key`\n  - Apply under Help \u003e Enter License\n- Install Package Control\n    (will then automatically install all packages from the synced list)\n- Sync via Dropbox as described in https://packagecontrol.io/docs/syncing\n- Set up GitHub Copilot: https://packagecontrol.io/packages/LSP-copilot#Setup\n- Install additional dictionaries for spell checking:\n    ```sh\n    cd ~/Library/Application\\ Support/Sublime\\ Text/Packages/\n    git clone https://github.com/titoBouzout/Dictionaries\n    ```\n\n\n### Sublime Merge\n\n- Activate installation\n  - Get license key from Passwords app\n  - Apply under Help \u003e Enter License\n- Sync via Dropbox as described in https://packagecontrol.io/docs/syncing\n\n\n### Visual Studio Code\n\nSign in via GitHub to sync preferences.\n\n\n### Modern CSV\n\nOpen app and enter license key from Passwords app.\n\n\n### Thunderbird\n\nFollow following instructions to migrate the data folder to the new computer:\nhttps://support.mozilla.org/en-US/kb/moving-thunderbird-data-to-a-new-computer\n\n\n### Element\n\nLog in to home server `synapse.feram.io`.\n\n\n### Telegram\n\nLog in\n\n\n### WhatsApp\n\nLog in\n\n\n### Discord\n\nLog in\n\n\n### Logitech\n\n- Log into Logitech Options account to sync mouse settings\n  - Scroll direction Natural\n- Logitech Options config\n- Activate the Logitech Options Daemon at\n    `System Preferences → Security \u0026 Privacy → Accessibility`\n\n\n### Spotify\n\n- Stream quality: Very High\n- Download: Very High\n\n\n### Slack\n\n- Add all accounts\n\n\n## Related\n\n- [`sd`] - My **s**cript **d**irectory.\n\n[`sd`]: https://github.com/ianthehenry/sd\n\n\n## TODO\n\n- iterm settings\n- Setup git (via `gh`?)\n- Use https://github.com/Homebrew/homebrew-bundle\n- Backup fish history\n- Backup ngrok config\n- Install Stack and HLS with ghcup\n- Backup \"$HOME/Library/Application Support/harper-ls/dictionary.txt\"\n- `.aws` directory\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad-si%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fad-si%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad-si%2Fdotfiles/lists"}