Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: MIT OS: Linux WM: i3 Editor: Neovim Terminal: Alacritty Multiplexer: tmux


dotfiles

Personal configuration files for a Linux development environment built around i3, Neovim, tmux, and Alacritty. Designed for a keyboard-driven, distraction-free workflow with a cohesive Tokyo Night color palette across all tools.


Table of Contents


Overview

This repository contains the source configuration for a tightly integrated Linux desktop environment. Each component is configured to complement the others:

  • Alacritty launches tmux automatically on startup
  • tmux provides session and window management with vim-style keybindings
  • Neovim integrates with tmux via vim-tmux-navigator for seamless pane navigation
  • i3 manages workspaces and windows with minimal overhead

The color scheme (Tokyo Night) and font (Nerd Fonts) are shared across all components for visual consistency.


Directory Structure

dotfiles/
├── src/
│   ├── alacritty/          # Terminal emulator
│   │   └── alacritty.toml
│   ├── i3/                 # Window manager + related services
│   │   ├── config
│   │   ├── install.sh
│   │   ├── lock.sh
│   │   ├── lightdm-gtk-greeter.conf
│   │   ├── scripts/
│   │   │   └── capture-menu
│   │   ├── dunst/
│   │   │   └── dunstrc
│   │   ├── i3status/
│   │   │   └── config
│   │   └── picom/
│   │       └── picom.conf
│   ├── nvim/               # Text editor
│   │   ├── init.lua
│   │   ├── lazyvim.json
│   │   └── lua/
│   │       ├── lsp.lua
│   │       ├── config/
│   │       │   ├── autocmds.lua
│   │       │   ├── filetypes.lua
│   │       │   ├── keymaps.lua
│   │       │   ├── lazy.lua
│   │       │   ├── options.lua
│   │       │   └── transparency.lua
│   │       └── plugins/
│   │           ├── autocomplete.lua
│   │           ├── autoformatter.lua
│   │           ├── bufferline.lua
│   │           ├── dashboard.lua
│   │           ├── indent-blankline.lua
│   │           ├── linting.lua
│   │           ├── lualine.lua
│   │           ├── markdown-preview.lua
│   │           ├── mason-lspconfig.lua
│   │           ├── neotree.lua
│   │           ├── notify.lua
│   │           ├── nvim-autopairs.lua
│   │           ├── supermaven.lua
│   │           ├── telescope.lua
│   │           ├── toggleterm.lua
│   │           ├── treesitter.lua
│   │           ├── trouble.lua
│   │           └── vim-tmux-navigator.lua
│   └── tmux/               # Terminal multiplexer
│       └── .tmux.conf
├── .github/
│   └── workflows/
│       └── ci.yml
├── docs/                   # Extended documentation
│   ├── i3.md
│   ├── neovim.md
│   ├── tmux.md
│   └── alacritty.md
├── .gitignore
├── LICENSE
└── README.md

Components

Alacritty

GPU-accelerated terminal emulator configured with:

  • Tokyo Night color scheme (imported from alacritty-themes)
  • FiraCode Nerd Font at 12pt
  • Borderless window with 85% opacity
  • Auto-launches tmux on startup (new session per window)
  • Maximized startup mode with dynamic padding

i3 Window Manager

Tiling window manager with a minimal 3-workspace setup:

  • Mod key: Alt (Mod1)
  • Navigation: Vim-style h/j/k/l
  • Launcher: Rofi (mod+d)
  • Lock screen: Blurred screenshot via i3lock (mod+Shift+x)
  • Capture menu: Screenshot & screen recording via rofi (mod+Shift+s)
  • Gaps: 8px inner, 4px outer with rounded corners (picom)
  • Notifications: Dunst with Yaru-blue-dark styling
  • Status bar: i3status with battery, Wi-Fi, CPU, memory, volume, date/time
  • Compositor: Picom with fading, shadows, and transparency
  • Video playback: mpv for instant recording review
  • Includes install.sh for automated package installation on Ubuntu/Debian

Neovim

Modern Lua-based configuration using lazy.nvim as the plugin manager:

  • LSP support: Lua, Python, TypeScript, Go, Rust, C/C++, C#, PHP, Django (filetype-scoped, only starts relevant servers)
  • AI completions: Supermaven (inline ghost text, toggleable with :SupermavenToggle)
  • Autocompletion: blink.cmp with LuaSnip
  • Formatting: conform.nvim with 3s timeout (Prettier, Black, gofmt, stylua, clang-format, rustfmt)
  • Linting: nvim-lint (Ruff, golangci-lint)
  • File explorer: Neo-tree (left panel)
  • Fuzzy finder: Telescope
  • Git integration: lualine branch/diff display
  • Terminal: ToggleTerm (vertical split)
  • tmux integration: vim-tmux-navigator + custom send-to-pane keymaps
  • Clipboard: Explicit <leader>y/<leader>p (avoids X11 hangs)
  • Swap/Undo: Swap disabled, persistent undo enabled
  • Transparency: Background cleared for terminal opacity passthrough
  • Dashboard: Custom ASCII art startup screen

tmux

Terminal multiplexer configured for development workflows:

  • Prefix: C-f
  • Pane navigation: Ctrl+h/j/k/l (no prefix, vim-tmux-navigator — seamless with Neovim splits)
  • Pane navigation (alt): Alt+h/j/k/l (no prefix, direct tmux)
  • Splits: prefix + Ctrl+v (side-by-side), prefix + Ctrl+b (top-bottom)
  • Window switching: Alt+q / Alt+w
  • Theme: Tokyo Night (matches Alacritty and Neovim)
  • Status bar: Top position with session name, host, and date/time
  • Auto-destroy: Sessions destroyed when terminal closes
  • Mouse: Enabled for selection and scrolling
  • Vi mode: Copy-mode with vi bindings and xclip integration

Prerequisites

Dependency Purpose
i3-wm Window manager
i3status Status bar
i3lock Screen locker
picom Compositor
dunst Notifications
rofi Application launcher
feh Wallpaper
flameshot Screenshots
scrot Screenshots (capture-menu)
mpv Video playback (recording review)
ffmpeg (static) Screen recording
Neovim >= 0.10 Text editor
tmux >= 3.0 Terminal multiplexer
Alacritty Terminal emulator
FiraCode Nerd Font Primary font
CaskaydiaCove Nerd Font i3/bar font
xclip Clipboard integration
Node.js Markdown preview plugin

For a quick installation of i3-related packages on Ubuntu/Debian:

sudo bash src/i3/install.sh

Installation

Clone the repository and create symbolic links to the appropriate locations:

git clone https://github.com/fjdvm/dotfiles-config.git ~/dotfiles
# Alacritty
ln -sf ~/dotfiles/src/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml

# i3
ln -sf ~/dotfiles/src/i3/config ~/.config/i3/config
ln -sf ~/dotfiles/src/i3/lock.sh ~/.config/i3/lock.sh
ln -sf ~/dotfiles/src/i3/install.sh ~/.config/i3/install.sh
ln -sf ~/dotfiles/src/i3/scripts/capture-menu ~/.local/bin/capture-menu
ln -sf ~/dotfiles/src/i3/i3status/config ~/.config/i3status/config
ln -sf ~/dotfiles/src/i3/picom/picom.conf ~/.config/picom/picom.conf
ln -sf ~/dotfiles/src/i3/dunst/dunstrc ~/.config/dunst/dunstrc

# Neovim
ln -sf ~/dotfiles/src/nvim/init.lua ~/.config/nvim/init.lua
ln -sf ~/dotfiles/src/nvim/lazyvim.json ~/.config/nvim/lazyvim.json
ln -sfn ~/dotfiles/src/nvim/lua ~/.config/nvim/lua

# tmux
ln -sf ~/dotfiles/src/tmux/.tmux.conf ~/.tmux.conf

After linking, reload each tool:

# i3
# Press mod+Shift+r

# tmux
tmux source-file ~/.tmux.conf

# Neovim
# Restart nvim — lazy.nvim will auto-install plugins on first launch

Documentation

Detailed per-component documentation is available in the docs/ directory:


Credits

This configuration builds on the work of many open-source projects. See docs/credits.md for the full list of tools, plugins, themes, and fonts used.


License

This project is licensed under the MIT License. See LICENSE for details.

About

My personal configuration for linux development environment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages