Skip to content

ciaranbor/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

245 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Dotfiles managed with a bare git repository. The git directory lives at ~/.dotfiles with $HOME as the work tree.

Overview

Gruvbox Material dark theme across the full stack: Hyprland, Neovim, Tmux, Ghostty, and Waybar. FiraCode Nerd Font throughout.

What's Included

Category Config Details
Shell .zshrc, .zprofile, .p10k.zsh Oh-My-Zsh, Powerlevel10k, zsh-vi-mode, autosuggestions, fast-syntax-highlighting
Editor .config/nvim/ LazyVim with gruvbox-material, claudecode.nvim, LaTeX, tmux.nvim
Terminal .config/ghostty/ Ghostty with gruvbox-material, FiraCode Nerd Font
Multiplexer .tmux.conf, .tmux/themes/ Gruvbox Material theme, tmux-resurrect/continuum, seamless Neovim navigation
Window Manager .config/hypr/ Hyprland: modular config (keybinds, rules, execs, idle, lock, sunset)
Status Bar .config/waybar/ Waybar with custom CSS
Launcher .config/wofi/ Wofi with custom styling
Notifications .config/dunst/ Dunst notification daemon
Git .gitconfig, .gitignore Neovim as diff/merge tool, default branch main
macOS WM .config/aerospace/ Aerospace tiling window manager for cross-platform use
Other Various wluma, spotify-launcher, GTK settings, Proton VPN

Key Workflow Features

  • Seamless navigation between Tmux panes and Neovim splits with Ctrl+hjkl
  • Session persistence via tmux-resurrect and tmux-continuum (auto-save every 10 min, auto-restore on boot)
  • Claude Code integration in Neovim with dedicated keybinds (<leader>a)
  • Vi keybindings everywhere: Zsh, Tmux copy mode, Neovim
  • Cross-platform support with Aerospace config for macOS alongside Hyprland for Linux

Dependencies

System packages that need to be installed before setup. Shell plugins (oh-my-zsh, p10k), Tmux plugins (tpm), and Neovim plugins (lazy.nvim) are installed automatically by their respective plugin managers.

Core

Package Purpose
zsh Shell
neovim Editor
tmux Terminal multiplexer
ghostty Terminal emulator
git Version control
lazygit Git TUI
fzf Fuzzy finder (used by LazyVim picker)
fd File finder (used by LazyVim picker)

Desktop (Hyprland/Wayland)

Package Purpose
hyprland Window manager
waybar Status bar
wofi Application launcher
dunst Notification daemon
hypridle Idle management
hyprlock Screen lock
hyprsunset Color temperature
swaybg Wallpaper
wluma Automatic brightness
grim Screenshots
slurp Region selection
wf-recorder Screen recording
wl-clipboard Wayland clipboard (wl-copy/wl-paste)
polkit-kde-agent Authentication agent
gnome-keyring Credential management

System and Media

Package Purpose
wireplumber PipeWire session manager
pavucontrol Audio control UI
brightnessctl Brightness control
playerctl Media player control
blueman Bluetooth manager
nm-applet NetworkManager applet
networkmanager Network management (provides nmtui)

Development

Package Purpose
rust/cargo Rust toolchain
pnpm Node.js package manager
ripgrep Fast search (used by LazyVim and scripts)
jq JSON processor
zathura PDF viewer (LaTeX workflow)
texlive LaTeX distribution (for vimtex)

Applications (optional)

firefox, signal-desktop, element-desktop, spotify, vlc, freetube, stremio, steam, tor-browser, zoom, jitsi-meet-desktop, protonvpn-app, dolphin, htop

Installation

Clone the bare repo and run the install script:

git clone --bare <repo-url> $HOME/.dotfiles
alias dfgit='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
dfgit checkout
scripts/install_or_update_config.sh

The install script sets up Oh-My-Zsh with plugins, Powerlevel10k, and the Tmux plugin manager.

If checkout fails due to existing files, back them up first or use dfgit checkout 2>&1 | grep "\t" | awk '{print $1}' | xargs -I{} mv {} {}.bak.

Machine-Specific Config

Per-machine settings use .local suffix files that are sourced but not tracked:

  • .zshrc.local, .zshrc.plugins.local — shell overrides
  • .p10k.zsh.local — prompt overrides
  • .tmux.conf.local — tmux overrides
  • .config/hypr/monitors.conf — display configuration

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors