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.
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-navigatorfor 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.
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
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
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.shfor automated package installation on Ubuntu/Debian
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
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
| 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.shClone 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.confAfter 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 launchDetailed per-component documentation is available in the docs/ directory:
docs/i3.md— i3 keybindings, workspace layout, and companion servicesdocs/neovim.md— Plugin list, LSP configuration, and keybinding referencedocs/tmux.md— Session workflow, keybindings, and theme detailsdocs/alacritty.md— Configuration options and themingdocs/credits.md— Tools, plugins, themes, and fonts used
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.
This project is licensed under the MIT License. See LICENSE for details.