Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/2kabhishek/mac2k

Ultimate Dev Setup for Mac OS 🚀🍎
https://github.com/2kabhishek/mac2k

cli command-line dev dotfiles macos nvim tiling tooling vim

Last synced: 6 days ago
JSON representation

Ultimate Dev Setup for Mac OS 🚀🍎

Awesome Lists containing this project

README

        

mac2k


License


People


Stars


Forks


Watches


Last Updated

Ultimate Dev Setup for Mac OS 🚀🍎

mac2k in action


mac2k in action

mac2k is a set of handcrafted configs for setting up a complete dev environment on Mac OS.

It makes developing on Mac much more pleasant for CLI lovers.

## ✨ Features

- Sets up a complete dev environment within minutes
- Sets up brew and installs essential packages with Brewfile
- Configures optimal settings for developers
- All the power and tools provider by [dots2k](https://github.com/2kabhishek/dots2k)
- Powerful personalized editing with [nvim2k](https://github.com/2kabhishek/nvim2k)
- Keyboard driven browsing support with [qute2k](https://github.com/2kabhishek/qute2k)
- Tiling window management with [Aerospace](https://github.com/nikitabobko/AeroSpace)
- More!!

## Setup

### 🚀 Installation

```bash
git clone https://github.com/2kabhishek/mac2k
cd mac2k

./setup.sh
```

This will install all necessary packages, symlinks and setup symlinks for you.

To manually run steps from [dots2k setup](https://github.com/2kabhishek/dots2k/tree/main/setup.sh) you can run `https://github.com/2kabhishek/dots2k/tree/main/setup.sh`

### 💻 Usage

#### Keybindings

I also set up some keybindings manually, you can find them in the following docs.

> Hint: Cmd = ⌘/Command/Windows, Opt = ⌥/Option/Alt, Ctrl = ⌃/Control, fn = Function

- [MacOS](./docs/macos.md)
- [Raycast](./docs/raycast.md)
- [Aerospace](./docs/aerospace.md)
- [Arc Browser](./docs/arc.md)
- [Uses vimium from dots2k](https://github.com/2kabhishek/dots2k/tree/main/docs/vimium.md)
- [Alacritty from dots2k](https://github.com/2kabhishek/dots2k/tree/main/docs/alacritty.md)
- [Tmux from tmux-tilit](https://github.com/2kabhishek/tmux-tilit)
- [Neovim from nvim2k](https://github.com/2kabhishek/nvim2k)
- [Qutebrowser from qute2k](https://github.com/2kabhishek/qute2k)

#### Aliases

This also comes with a bunch of mac aliases in [dots2k shell/aliases.sh](https://github.com/2kabhishek/dots2k/tree/main/config/shell/aliases.sh) to make your life easier.

- `aerr`, `aert`, `aerc` for aeropace reload config, toggle and editing config
- `bri`, `brr`, `brc`, `brs`, `bru` to brew install, uninstall, cleanup, search, update respectively
- `macdis` to disable mac's internal display, useful when using external display, needs restart to re-enable

#### Other Configs

For most tools I'm symlinking configs over from [dots2k](https://github.com/2kabhishek/dots2k).

##### Setting up iTerm

> I use Alacritty as my default terminal now

Run iTerm and open "Preferences", Go to "Profiles" tab and click on "Other Actions" and then click on "Import JSON Profiles"

Select the [./configs/iterm/preofile.json](./configs/profile.json) file and import it.

You can also use the [helper script](./config/iterm/iterm) to open iterm from terminal by symlinking it to your path and running `iterm`.

##### Tiling Window Management

> I use [Aerospace](./config/aerospace/aerospace.toml) as my tiling window manager now

`yabai` and `skhd` together provide a tiling window management system for MacOS.

```bash
# Symlink yabai and skhd configs
ln -sfn "$PWD/config/.yabairc" "$HOME/"
ln -sfn "$PWD/config/.skhdrc" "$HOME/"

# Start yabai and skhd
yabai --start-service
skhd --start-service

# Add alias to restart yabai and skhd
alias macres="yabai --restart-service && skhd --restart-service"
```

## Behind The Code

### 🌈 Inspiration

I am a big fan of CLI and Tiling WMs, MacOS by default doesn't provide a good solution for those, so I decided to configure my own.

### 💡 Challenges/Learnings

- Some hiccups with brew and services
- Learned and implemented recursive git submodules

### 🧰 Tooling

- [dots2k](https://github.com/2kabhishek/dots2k) — Personalized Dev Environment
- [nvim2k](https://github.com/2kabhishek/nvim2k) — Personalized Editor


⭐ hit the star button if you found this useful ⭐

Source
| Blog
| Twitter
| LinkedIn
| More Links
| Other Projects