{"id":13572570,"url":"https://github.com/narze/dotfiles","last_synced_at":"2025-04-05T02:08:02.026Z","repository":{"id":44847336,"uuid":"101657113","full_name":"narze/dotfiles","owner":"narze","description":"macOS / Linux / Codespaces compatible dotfiles with 1-line setup script. Tested on Apple Silicon Macs. Supports both zsh and fish. Managed with Chezmoi","archived":false,"fork":false,"pushed_at":"2025-03-27T08:20:07.000Z","size":1831,"stargazers_count":149,"open_issues_count":0,"forks_count":19,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-29T01:12:03.471Z","etag":null,"topics":["ansible","chezmoi","dotbot","dotfiles","dotfiles-macos","fish","fish-shell","homebrew","laptop","macos","shell","shell-script","zsh"],"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/narze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"ko_fi":"narze"}},"created_at":"2017-08-28T15:22:32.000Z","updated_at":"2025-03-27T08:20:12.000Z","dependencies_parsed_at":"2023-02-16T04:16:12.313Z","dependency_job_id":"845bd3b4-773a-4369-a6d1-6af7c8af563f","html_url":"https://github.com/narze/dotfiles","commit_stats":{"total_commits":1261,"total_committers":3,"mean_commits":420.3333333333333,"dds":"0.016653449643140417","last_synced_commit":"f37492de51520c0e204b50e7f160bc4b7a2fe9ac"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narze%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narze%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narze%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narze%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/narze","download_url":"https://codeload.github.com/narze/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276164,"owners_count":20912288,"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":["ansible","chezmoi","dotbot","dotfiles","dotfiles-macos","fish","fish-shell","homebrew","laptop","macos","shell","shell-script","zsh"],"created_at":"2024-08-01T14:01:27.113Z","updated_at":"2025-04-05T02:08:02.019Z","avatar_url":"https://github.com/narze.png","language":"Shell","readme":"# Dotfiles\n\nI don't want to waste time setting up my machines, so I spent years maintaining dotfiles.\n\n[Dotfiles are meant to be forked,](https://zachholman.com/2010/08/dotfiles-are-meant-to-be-forked) but mine aren't. These scripts install many things you won't ever use. Feel free to look around and copy some of my script to fit your needs.\n\n## Chezmoi\n\nThe latest version of my dotfiles are managed with [Chezmoi](https://chezmoi.io). I was using [Dotbot](https://github.com/narze/dotfiles/tree/dotbot) \u0026 [Ansible](https://github.com/narze/dotfiles/tree/ansible) before.\n\n### TODOs\n\n- [x] Fix Fish shell broken in clean install\n- [x] Add Homebrew install script (run-once)\n- [x] Update this readme\n- [x] Cleanup dotbot\n- [x] Linux / Github Codespaces install scripts\n- [x] Github Codespaces for development\n- [ ] `Fish`\n- [ ] Documentation website\n- [ ] Instructions to import GPG keys\n- [x] 1password integration\n\n## Usage\n\n```shell\nASK=1 sh -c \"$(curl -fsSL https://raw.githubusercontent.com/narze/dotfiles/master/remote_install.sh) -k -v\"\n```\n\nFirst installation will ask for your name so you can customize a bit, and it will skip the encryped files, since you have to retrieve the GPG private key manually later. Removing `ASK=1` will use my names for the machine.\n\nMostly the script will not run completely on the first go, run `chezmoi -k apply` again until everything is setup properly.\n\nAfter the first installation you can always change the variables via `ASK=1 chezmoi init` or run `chezmoi edit-config`\n\nTo change the data or script, `chezmoi cd`, edit them, then run `chezmoi apply`.\n\n## Manual tasks (One-time per machine)\n\n- macOS\n  - Syncthing\n    - Run Syncthing and sync default folder to `~/Sync`\n  - Karabiner Elements\n    - Rename default profile to `Default`\n    - Allow permissions, reboot\n  - Keyboard Maestro\n    - Open sync file `~/Sync/Apps/Keyboard Maestro/Keyboard Maestro Macros.kmsync`\n  - Raycast\n    - Setup shortcut key to `Ctrl+Space`\n    - Import data from iCloud drive\n  - Vivaldi Browser\n    - Login \u0026 sync data\n    - Manually mirror settings \u0026 keyboard shortcuts\n    - Manually add workspace rules\n  - Install apps in Setapp\n  - Cleanshot\n    - Set keyboard shortcuts \u0026 disable system shortcuts\n  - Session\n    - Enable \"break_start\" shortcut trigger\n  - Time Out\n    - Add \"Normal\" \u0026 \"Micro\" break but disabled them\n  - Login to Mac App Store\n  - System Settings\n    - Keyboard Shortcuts\n      - Change input source switch to CMD+Space, and Spotlight search to Option+Space\n  - Connect to Tailscale to mount NAS\n  - Disable Boom 3D keyboard shortcuts\n  - Set enrcyption password `SETPASS=1 chezmoi init`\n\n## Features\n\n```shell\n$ make\nhelp                           Print command list\ndotfiles                       Update dotfiles\napply                          Run chezmoi apply\nmacos                          Run macos script\n```\n\n### Installed Applications \u0026 Tools\n\n- macOS\n  - [Homebrew](https://brew.sh)\n  - [Homebrew Cask](https://github.com/Homebrew/homebrew-cask)\n  - [Mas](https://github.com/mas-cli/mas)\n  - [Chezmoi](https://chezmoi.io)\n  - [zsh](https://zsh.org) with [zsh4humans](https://github.com/romkatv/zsh4humans) + [Powerlevel10k](https://github.com/romkatv/powerlevel10k) theme\n  - [fish](https://fishshell.com) with [fisher](https://github.com/jorgebucaran/fisher) + [Tide](https://github.com/IlanCosman/tide) theme\n  - [mise](https://mise.jdx.dev)\n  - [zellij](https://zellij.dev)\n  - [macOS defaults](https://mths.be/macos)\n  - etc.\n- Linux\n  - Dotfiles only\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eNotes\u003c/b\u003e (If you have some time to read)\u003c/summary\u003e\n\n### Zsh + Fish\n\nAfter the recent [drama with Zinit](https://github.com/zdharma-continuum/I_WANT_TO_HELP), I decided to give [Fish](https://fishshell.com) a try, it is good but I also want to still maintain my Zsh configuration. I migrated the settings to [zsh4human](https://github.com/romkatv/zsh4humans) which is maintained by the one who made Powerlevel10k. It's 2-3x faster than Zinit as of now.\n\nI'll separate the dotfiles script to install zsh or fish separately to save some space. You can also install both like mine.\n\n### Development on Github Codespaces\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true\u0026ref=master\u0026repo=101657113\u0026machine=standardLinux32gb)\n\n- `chezmoi cd` (Change directory into `~/.local/share/chezmoi`)\n- Update config and/or scripts\n- `chezmoi apply -k` (--keep-going)\n\n### Apple Silicon\n\nHere are the list of issues I've found on running the script on M1 Macbooks (Tested on both Macbook Air \u0026 Macbook Pro)\n\n- ~~dotbot/brew fails silently : Now they need XCode to be installed first (via App Store), rather than just XCode CLT~~ Seems to be fixed now\n- ~~Kitty.app installing binaries from Homebrew does get you x86, now you have to [Build from source](https://sw.kovidgoyal.net/kitty/build.html)~~\n\n  - ```shell\n    ghq get -l kovidgoyal/kitty\n    /opt/homebrew/bin/python3 setup.py kitty.app # Needs python3 from brew\n    cp -r kitty.app /Applications/kitty.app\n\n    # Replace CLI\n    rm /opt/homebrew/bin/kitty\n    ln -s $PWD/kitty/launcher/kitty /opt/homebrew/bin/kitty\n    ```\n\n  - If you want both versions, download the executable and rename it (`kitty_x86.app`)\n\n- ~~Docker for Mac : Replace with [Tech Preview version](https://docs.docker.com/docker-for-mac/apple-m1)~~\n- ~~Some brew/asdf packages cannot be installed on arm64~~ See \"Apple Silicon specific commands\"\n- Setup both versions of Homebrew, then use shell script to point to the correct `brew`\n\n  ```shell\n  # Install both versions\n  arch -arm64 /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n  arch -x86_64 /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\n  # .zshrc\n  if [ \"$(uname -m)\" == \"arm64\" ]; then\n    # Use arm64 brew, with fallback to x86 brew\n    if [ -f /opt/homebrew/bin/brew ]; then\n      export PATH=\"/usr/local/bin${PATH+:$PATH}\";\n      eval $(/opt/homebrew/bin/brew shellenv)\n    fi\n  else\n    # Use x86 brew, with fallback to arm64 brew\n    if [ -f /usr/local/bin/brew ]; then\n      export PATH=\"/opt/homebrew/bin${PATH+:$PATH}\";\n      eval $(/usr/local/bin/brew shellenv)\n    fi\n  fi\n  ```\n\n- Rubygems : Specific bundler config is needed (See `bundle config`)\n- Yabai : Cannot use space switch commands (eg. `yabai -m space --focus 1`) even if SIP is disabled\n  \u003cdetails\u003e\n    \u003csummary\u003eWorkaround\u003c/summary\u003e\n\n  Setup native shortcut keys manually and use non-consuming shortcut settings (`-\u003e`) in `skhd`\n  ![image](https://user-images.githubusercontent.com/248741/111079897-a77e6380-852e-11eb-92d5-42f743dc3060.png)\n  \u003c/details\u003e\n\n### ~~Apple Silicon specific commands~~\n\n- `make brew-x86` : Install packages which cannot be instaled with `arm64` arch right now (eg. ~~`kubectl`, `kubectx`~~ Both are now supported!)\n- \u003c/details\u003e\n","funding_links":["https://ko-fi.com/narze"],"categories":["Shell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnarze%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnarze%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnarze%2Fdotfiles/lists"}