Skip to content

siliconwitch/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌈 Welcome to my dotfiles 👨🏻‍💻

Curated development environment that I use on my machines. Follow these instructions if you'd like to set up something similar, otherwise simply explore the dotfiles for inspiration.

Contents

  1. Initial MacOS Setup
  2. Initial Arch Linux Setup
  3. The Good Stuff

Fancy Terminal Preview

Initial MacOS Setup

  1. Install Git

    xcode-select --install
  2. Create a new ssh key

    ssh-keygen

Initial Arch Linux Setup

  1. Login as root and install Git

    ssh root@<remote.ip.address>
    pacman -Syu base-devel git --noconfirm
  2. Edit the /etc/sudoers file to allow wheel users to use sudo

  3. Create a user and close the connection

    useradd -m -G wheel raj
    passwd raj
    exit
  4. Copy an ssh key from the host machine

    # Run this on host, not remote
    ssh-copy-id raj@<remote.ip.address>
  5. SSH to the remote again as the new user

The Good Stuff

  1. Configure Git

    # Set up the git globals
    git config --global user.name "my name"
    git config --global user.email "[email protected]"
    git config --global core.excludesfile ~/.config/git/ignore
  2. Install the Homebrew package manager

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    # Temporarily export brew to the PATH
    export PATH=$PATH:<whatever the above gave as the bin path>
  3. Clone this repository into the .config folder

    mv ~/.config ~/old-config
    git clone --recursive https://github.com/siliconwitch/dotfiles.git ~/.config
  4. Install applications:

    # MacOS only
    brew install \
       affinity-photo \
       arc \
       blender \
       discord \
       drawio \
       dropbox \
       figma \
       font-roboto-mono-nerd-font \
       gtkwave \
       ical-buddy \
       jq \
       karabiner-elements \
       kicad \
       koekeishiya/formulae/yabai \
       nordic-nrf-command-line-tools \
       obs \
       raspberry-pi-imager \
       raycast \
       saleae-logic \
       segger-jlink \
       steam \
       the-unarchiver \
       visual-studio-code \
       vlc \
       vnc-viewer \
       wezterm \
       xmind \
       zoom \
    
    # MacOS & Linux
    brew install \
       arm-none-eabi-gcc \
       fish \
       fzf \
       gh \
       go \
       helix \
       htop \
       node \
       openfpgaloader \
       python \
       tmux \
  5. Set default terminal to fish

    echo $(which fish) | sudo tee -a /etc/shells
    chsh -s $(which fish)
    
    # Remove bash and zsh related files if you like
    rm -r .bash*
    rm -r .zsh*
  6. Install language servers for Helix

    # HTML, CSS, JSON
    npm i -g vscode-langservers-extracted
    
    # JavaScript
    npm i -g typescript typescript-language-server
    brew install delve gopls
    
    # Go
    gopls dlv
    
    # Verilog
    brew install verilator icarus-verilog
    npm install -g @imc-trading/svlangserver
    
    # Lua
    brew install lua-language-server
    
    # Markdown
    brew install marksman
  7. Symlink VSCode configuration

    ln -sf $HOME/.config/vscode/settings.json ~/Library/Application\ Support/Code/User
    ln -sf $HOME/.config/vscode/keybindings.json ~/Library/Application\ Support/Code/User
  8. Other manually installed apps

  9. Install dependencies for Verilog-HDL and GTKWave:

    cargo install svls
    sudo perl -MCPAN -e 'install Switch'

Custom keyboard shortcuts

MacOS windows

  • Capslock - Escape if clicked, or Ctrl if held
  • Fn-Space - Opens a new terminal
  • Fn-Escape - Toggles tiling window manager off and on
  • Fn-b - Balances titled windows
  • Fn-r - Rotates tiled windows clockwise

Fish

  • Ctrl-t - Fuzzy change directory
  • Ctrl-r - Fuzzy search history

Tmux

  • Ctrl-n - New window

  • Ctrl-a H - Navigate to previous window

  • Ctrl-a L - Navigate to next window

  • Ctrl-a Ctrl-h - Split window left

  • Ctrl-a Ctrl-j - Split window down

  • Ctrl-a Ctrl-k - Split window up

  • Ctrl-a Ctrl-l - Split window right

  • Ctrl-a h - Navigate one pane left

  • Ctrl-a j - Navigate one pane down

  • Ctrl-a k - Navigate one pane up

  • Ctrl-a l - Navigate one panel right

  • Ctrl-\ - Navigate to previous pane

  • Ctrl-a Ctrl-x - Kill pane

  • Ctrl-a Shift-1 - Show US Pacific time

  • Ctrl-a Shift-2 - Show US Central time

  • Ctrl-a Shift-3 - Show US East Coast time

  • Ctrl-a Shift-8 - Show London time

  • Ctrl-a Shift-9 - Show Central European time

  • Ctrl-a Shift-0 - Show China time

  • Ctrl-a _ - Hide calendar

  • Ctrl-a + - Show calendar and local time

Helix

TODO

About

My personal dev environment configuration

Resources

License

Stars

Watchers

Forks