All Projects → narze → dotfiles

narze / dotfiles

Licence: MIT license
macOS / Linux / Codespaces dotfiles with 1-line setup script. Tested on Apple Silicon Macs. Supports both zsh and fish. Now managed with https://github.com/twpayne/chezmoi

Programming Languages

shell
77523 projects
lua
6591 projects

Projects that are alternatives of or similar to dotfiles

AwsTerm
A collection of awesome terminal utilities
Stars: ✭ 37 (-54.88%)
Mutual labels:  fish, homebrew, fish-shell
dotfiles
Dotfiles for Neovim (0.7+), Fish shell, git, Kitty, tmux, and more.
Stars: ✭ 54 (-34.15%)
Mutual labels:  fish, homebrew, fish-shell
dotfiles
This is a dotfiles repository created and maintained by @erdaltsksn. It contains a collection of `.files`.
Stars: ✭ 16 (-80.49%)
Mutual labels:  fish, homebrew, dotfiles-macos
dotfiles
~nickTD
Stars: ✭ 13 (-84.15%)
Mutual labels:  fish, homebrew, fish-shell
Dotfiles
My personal dotfiles.
Stars: ✭ 162 (+97.56%)
Mutual labels:  fish, fish-shell
Sdkman For Fish
Adds support for SDKMAN! to fish
Stars: ✭ 139 (+69.51%)
Mutual labels:  fish, fish-shell
fish-symnav
Symbolic link navigation for Fish shell
Stars: ✭ 11 (-86.59%)
Mutual labels:  fish, fish-shell
Iterm Fish Fisher Osx
Complete guide and Bash script to install Command Line Tools + Homebrew + iTerm2 + Fish Shell + Fisher + Plugins for development purposes
Stars: ✭ 249 (+203.66%)
Mutual labels:  fish, homebrew
Fish Utils
🔧 My utility belt of fish functions, writing these has saved me many hours in the long run... I hope...
Stars: ✭ 94 (+14.63%)
Mutual labels:  fish, fish-shell
Zoxide
A smarter cd command. Supports all major shells.
Stars: ✭ 4,422 (+5292.68%)
Mutual labels:  fish, fish-shell
fish
Fish config with awesome flexible prompt, unicode symbols, better fzf integration and lot of handy functions.
Stars: ✭ 27 (-67.07%)
Mutual labels:  fish, fish-shell
Packages Main
Primary Oh My Fish package repository.
Stars: ✭ 138 (+68.29%)
Mutual labels:  fish, fish-shell
dotfiles
My collection of dotfiles
Stars: ✭ 77 (-6.1%)
Mutual labels:  fish, chezmoi
dotfiles
🔯 A collection of my rc files (tmux, neovim, zsh, fish, poetry, git, ...etc) and utilities that make everyday coding fun!
Stars: ✭ 23 (-71.95%)
Mutual labels:  homebrew, fish-shell
Plugin Nvm
Node version manager wrapper for Fish shell
Stars: ✭ 173 (+110.98%)
Mutual labels:  fish, fish-shell
Fish Bd
Quickly go back to a parent directory up in your current working directory tree. Don't write 'cd ../../..' redundantly, use bd instead.
Stars: ✭ 113 (+37.8%)
Mutual labels:  fish, fish-shell
Pisces
♓️ Fish shell plugin that helps you to work with paired symbols in the command line
Stars: ✭ 210 (+156.1%)
Mutual labels:  fish, fish-shell
fish-color-scheme-switcher
A fish shell 🐟 plugin to switch color schemes 🌈
Stars: ✭ 48 (-41.46%)
Mutual labels:  fish, fish-shell
To Fish
Bookmarks for Fish Shell
Stars: ✭ 44 (-46.34%)
Mutual labels:  fish, fish-shell
Breeze
git tool for fish-shell
Stars: ✭ 52 (-36.59%)
Mutual labels:  fish, fish-shell

Dotfiles

I don't want to waste time setting up my machines, so I spent years maintaining dotfiles.

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.

Chezmoi

The latest version of my dotfiles are managed with Chezmoi. I was using Dotbot & Ansible before.

TODOs

  • Fix Fish shell broken in clean install
  • Add Homebrew install script (run-once)
  • Update this readme
  • Cleanup dotbot
  • Linux / Github Codespaces install scripts
  • Github Codespaces for development
    • LunarVim (For ssh access)
    • tmux
  • Fish
  • Documentation website
  • Instructions to import GPG keys
  • 1password integration

Usage

ASK=1 sh -c "$(curl -fsSL https://raw.githubusercontent.com/narze/dotfiles/master/remote_install.sh) -k -v"

First 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.

After the first installation you can always change the variables via ASK=1 chezmoi init or run chezmoi edit-config

To change the data or script, chezmoi cd, edit them, then run chezmoi apply.

Manual tasks (One-time per machine)

  • macOS
    • Run Setapp installer manually after the brew script is run.
    • Login to App Store before running (If not mas will skip installation and open the App Store for you)
    • Preferences -> Change input source switch to CMD+Space, and Spotlight search to Option+Space
    • Run mackup restore once after Syncthing is installed, logged-in, and ~/Sync/Mackup is synced.
    • Connect to Zerotier private network to mount NAS
    • Setup Arq for backup
    • Disable Boom 3D keyboard shortcuts
    • Disable Timing keyboard shortcuts

Features

$ make
help                           Print command list
dotfiles                       Update dotfiles
apply                          Run chezmoi apply
macos                          Run macos script

Installed Applications & Tools

Notes (If you have some time to read)

Zsh + Fish

After the recent drama with Zinit, I decided to give Fish a try, it is good but I also want to still maintain my Zsh configuration. I migrated the settings to zsh4human which is maintained by the one who made Powerlevel10k. It's 2-3x faster than Zinit as of now.

I'll separate the dotfiles script to install zsh or fish separately to save some space. You can also install both like mine.

Development on Github Codespaces

Open in GitHub Codespaces

  • chezmoi cd (Change directory into ~/.local/share/chezmoi)
  • Update config and/or scripts
  • chezmoi apply -k (--keep-going)

Apple Silicon

Here are the list of issues I've found on running the script on M1 Macbooks (Tested on both Macbook Air & Macbook Pro)

  • 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

  • Kitty.app installing binaries from Homebrew does get you x86, now you have to Build from source

    • ghq get -l kovidgoyal/kitty
      /opt/homebrew/bin/python3 setup.py kitty.app # Needs python3 from brew
      cp -r kitty.app /Applications/kitty.app
      
      # Replace CLI
      rm /opt/homebrew/bin/kitty
      ln -s $PWD/kitty/launcher/kitty /opt/homebrew/bin/kitty
    • If you want both versions, download the executable and rename it (kitty_x86.app)

  • Docker for Mac : Replace with Tech Preview version

  • Some brew/asdf packages cannot be installed on arm64 See "Apple Silicon specific commands"

  • Setup both versions of Homebrew, then use shell script to point to the correct brew

    # Install both versions
    arch -arm64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    # .zshrc
    if [ "$(uname -m)" == "arm64" ]; then
      # Use arm64 brew, with fallback to x86 brew
      if [ -f /opt/homebrew/bin/brew ]; then
        export PATH="/usr/local/bin${PATH+:$PATH}";
        eval $(/opt/homebrew/bin/brew shellenv)
      fi
    else
      # Use x86 brew, with fallback to arm64 brew
      if [ -f /usr/local/bin/brew ]; then
        export PATH="/opt/homebrew/bin${PATH+:$PATH}";
        eval $(/usr/local/bin/brew shellenv)
      fi
    fi
  • Rubygems : Specific bundler config is needed (See bundle config)

  • Yabai : Cannot use space switch commands (eg. yabai -m space --focus 1) even if SIP is disabled

    Workaround

    Setup native shortcut keys manually and use non-consuming shortcut settings (->) in skhd image

Apple Silicon specific commands

  • make brew-x86 : Install packages which cannot be instaled with arm64 arch right now (eg. kubectl, kubectx Both are now supported!)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].