skip to content
Artur's Blog

My terminal setup

/ 2 min read

Currently I’m using a Mac with:

  • Ghostty (terminal)
  • Lazygit (git client)
  • Claude Code (agent)

Split setup

I split the terminal like the image below, and zoom on splits (rectangles below) as needed.

┌─────────────┐ ┌─────────────┐
│ │ │ │
│ │ │Build/Server │
│ │ │ │
│ Agent │ └─────────────┘
│ │ ┌─────────────┐
│ │ │ │
│ │ │ lazygit │
│ │ │ │
└─────────────┘ └─────────────┘

Lazygit setup

I’ve updated my lazygit setup like this:

gui:
theme:
selectedLineBgColor:
- "#2c2c2c" # background of selected line
selectedRangeBgColor:
- "#2c2c2c" # background of selected hunk/range
cherryPickedCommitFgColor:
- "#ff9e64"
screenMode: "full" # options: "normal", "half", "full"
git:
pagers:
- externalDiffCommand: difft --color=always
  1. I changed the colors so that the diffs don’t look like mud. The contrast by default is terrible
  2. I put the screen mode to “full”. I keep lazygit open, this way I quickly see the files changed. I rotate the views with + when I want to see the diffs
  3. I changed to difftastic, it’s easier to read the diffs

If you want to find your config.yml file run lazygit --print-config-dir.

zshrc setup

Terminal window
/usr/bin/ssh-add --apple-load-keychain -q
eval "$(starship init zsh)"
alias n="nvim"
alias g=lazygit
alias e=zed
alias c=clear
alias ll="eza --time-style 'long-iso' --icons --all --long --header --no-permissions --no-user"
alias .="cd .."
eval "$(zoxide init zsh)"
export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/go/bin:$PATH"
export EDITOR="zed --wait"
export VISUAL="zed --wait"
  1. I load my Mac keychain
  2. Then I start starship
  3. I load a bunch of very short aliases. I don’t know why more people don’t do this, it makes it snappy and I haven’t found conflicts
  4. I use zoxide (z shortcut) to remember previous folders. I don’t remap cd to it because some folders might get into the zoxide memory and it pollutes zoxide’s “memory”
  5. eza for a nicer ls
  6. . goes up one folder. Many people use .. but one works. This is very recent though, so probably I’ll have some issue
  7. I use zed and nvim (lazyvim) as my editors. I could just use one if zed worked on the terminal, or maybe nvim if it would have defaults more similar to zed (and wouldn’t be so slow)