Skip to content

Repository files navigation

dotfiles

Personal configuration files for a minimalist development environment focused on visibility, flexibility, and efficiency.

Desktop Preview


Table of Contents


Philosophy

This setup prioritizes:

  • Visibility - Everything relevant should be visible at a glance, no hidden states
  • Flexibility - Quick context switching without losing focus
  • Minimalism - Only what's necessary, nothing more

Workflow

My daily workflow revolves around tmux as the central hub for all terminal operations.

Terminal Session Management

+------------------------------------------------------------------+
| ghostty (auto-attaches to tmux) |
| +------------------------------------------------------------+ |
| | nvim (LazyVim) | |
| | - Main editing area | |
| | - Oil.nvim for file navigation (-) | |
| | - CodeCompanion for AI assistance | |
| +------------------------------------------------------------+ |
| |
| Alt+G -> Floating scratch panel (servers: npm/go/python) |
| |
| +------------------------+ +-----------------------------+ |
| | Prefix + - | | Prefix + | | |
| | Additional server | | Free panel (commands, AI) | |
| +------------------------+ +-----------------------------+ |
+------------------------------------------------------------------+

Typical Session

  1. Open ghostty - automatically attaches to existing tmux session or creates new one
  2. Main pane runs nvim with the project
  3. Alt+G opens a floating scratch session for running dev servers
  4. If more processes are needed: Ctrl+a - splits horizontally for another server
  5. Ctrl+a | splits vertically for a free panel (git commands, claude-code, etc.)

This layout keeps all processes visible while maintaining focus on the code.


What's Included

PackageDescription
zshShell with oh-my-zsh, powerlevel10k, and plugins
tmuxTerminal multiplexer with catppuccin theme
nvimLazyVim configuration
i3Tiling window manager with catppuccin
polybarStatus bar
rofiApplication launcher
ghosttyGPU-accelerated terminal
fzfFuzzy finder integration
lazygitTerminal UI for git
btopSystem monitor
cavaAudio visualizer
neofetchSystem info display
zedCode editor settings

Requirements

Core Dependencies

# Package manager
sudo apt install stow git zsh tmux
# Terminal# Install ghostty from https://ghostty.org# Window manager (optional, for i3 setup)
sudo apt install i3 polybar rofi feh

Shell Setup

# oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"# powerlevel10k
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# zsh plugins
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Tmux Plugins

# TPM (Tmux Plugin Manager)
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Catppuccin theme
git clone https://github.com/catppuccin/tmux.git ~/.tmux/plugins/tmux

Fonts

Install a Nerd Font for icons to display correctly:

# Example: FiraCode Nerd Font# Download from https://www.nerdfonts.com/font-downloads

Installation

Full Installation

Clone and stow all packages:

git clone git@github.com:thewizardshell/dotfiles.git ~/dotfiles
cd~/dotfiles
stow zsh tmux fzf nvim i3 polybar rofi ghostty cava btop lazygit neofetch zed

Selective Installation

Install only specific packages:

cd~/dotfiles
# Just shell configuration
stow zsh fzf
# Just tmux
stow tmux
# Just neovim
stow nvim
# Window manager setup
stow i3 polybar rofi

Uninstall a Package

cd~/dotfiles
stow -D package_name

Update

Pull changes and restow:

cd~/dotfiles
git pull
stow -R zsh tmux nvim # restow packages

Configuration Details

Tmux

Prefix:Ctrl+a

Key features:

  • Floating scratch session for running dev servers
  • Catppuccin mocha theme
  • Status bar showing application, session, and directory
  • vim-tmux-navigator for seamless pane navigation
  • Session persistence with tmux-resurrect and tmux-continuum
  • Mouse support enabled

Plugins:

  • tpm (plugin manager)
  • tmux-sensible
  • vim-tmux-navigator
  • tmux-yank
  • tmux-resurrect
  • tmux-continuum
  • tmux-plugin-sysstat
  • tmux-prefix-highlight
  • tmux-fzf

Zsh

Configuration:

  • Theme: powerlevel10k
  • Framework: oh-my-zsh

Plugins:

  • git
  • zsh-autosuggestions
  • zsh-syntax-highlighting
  • fzf
  • docker
  • npm
  • python
  • z (directory jumping)

Neovim

Based on LazyVim with additional customizations:

  • Oil.nvim for file navigation
  • CodeCompanion for AI assistance
  • Minty color tools (Shades, Huefy)

i3

  • Mod key: Super (Windows key)
  • Terminal: ghostty
  • Launcher: rofi
  • Theme: Catppuccin Mocha
  • Status bar: polybar

Ghostty

  • Theme: Catppuccin Mocha
  • Font: FiraCode Nerd Font (size 12)
  • Background opacity: 95%
  • Auto-starts tmux on launch

Rofi

  • Theme: Custom dark with pink accents
  • Modes: drun, run, window
  • Font: JetBrains Mono 12

Polybar

  • Theme: Catppuccin Mocha
  • Modules: workspaces, window title, filesystem, volume, memory, cpu, wifi, time

Keybindings Reference

Tmux

KeyAction
Alt+GToggle floating scratch session
Ctrl+a -Split pane horizontally
Ctrl+a |Split pane vertically
Ctrl+a cNew window
Ctrl+a xKill pane
Ctrl+a XKill window
Alt+h/j/k/lNavigate panes
Ctrl+a >Swap pane right
Ctrl+a <Swap pane left
Ctrl+a SNew named session
Ctrl+a BList sessions
Prefix+Ftmux-fzf menu

i3

KeyAction
Super+ReturnOpen terminal (ghostty)
Super+dOpen rofi launcher
Super+Shift+qKill focused window
Super+h/vSplit horizontal/vertical
Super+fToggle fullscreen
Super+1-0Switch to workspace
Super+Shift+1-0Move window to workspace
Super+rResize mode
Super+Shift+rRestart i3

Neovim (Custom)

KeyAction
-Open Oil file browser
<leader>acToggle AI chat
<leader>anNew AI chat
<leader>aaAI actions menu
<leader>aeAI explain selection
<leader>cpsColor shades picker
<leader>cphHuefy color picker

Directory Structure

dotfiles/
├── btop/ # System monitor config
├── cava/ # Audio visualizer config
├── fzf/ # Fuzzy finder config
├── ghostty/ # Terminal config
├── i3/ # Window manager config
├── lazygit/ # Git TUI config
├── neofetch/ # System info config
├── nvim/ # Neovim config (LazyVim)
├── polybar/ # Status bar config
├── rofi/ # Launcher config
├── tmux/ # Terminal multiplexer config
├── zed/ # Zed editor config
└── zsh/ # Shell config

License

MIT

About

A collection of my personal configurations for various tools and environments

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages