Skip to content

Latest commit

 

History

History
148 lines (118 loc) · 6.44 KB

alacritty_configuration.md

File metadata and controls

148 lines (118 loc) · 6.44 KB

Alacritty Setup Guide

This directory contains the configuration for Alacritty, a GPU-accelerated terminal emulator that's fast, minimal, and ideal for development. It offers a modern terminal experience with customizability and performance in mind, perfectly suited for developers who prioritize speed and visual clarity.

Why Alacritty?

Alacritty is:

  • Blazing fast — leverages your GPU for rendering, making it one of the most responsive terminal emulators available.
  • Minimal — avoids built-in tabs or splits, encouraging integration with dedicated tools like Tmux (guide here)
  • Configurable — supports rich customization through a user-friendly TOML configuration file.
  • Cross-platform — runs on Linux, macOS, and Windows with a consistent experience.
  • Developer-friendly — no fluff, optimized for keyboard-based workflows and programming.

Alacritty is an excellent choice if you want a lightweight terminal that can be tailored to fit your aesthetic and functional preferences.


🗂 Default Config Location

~/.config/alacritty/alacritty.toml

Place your config file here to have it loaded automatically.

💡 If you don’t see the alacritty/ folder inside ~/.config, just create it manually.

⚙️ Configuration Overview

Below is a full explanation of Alacritty's configuration capabilities, including advanced features to get the most out of your terminal environment.

🌈 Appearance

[window]
dimensions = { columns = 100, lines = 30  }        # Set the initial terminal size (in cells)
padding = { x = 8, y = 6  }                        # Space around the terminal content
opacity = 0.92                                    # Background opacity (1.0 = opaque)
blur = true                                       # Enables background blur if supported by the compositor
decorations = "Buttonless"                        # Window decorations (full, none, or buttonless)
startup_mode = "Maximized"                        # How the window should appear initially
position = { x = 100, y = 100  }                   # Set initial window position (optional)
dynamic_padding = true                            # Enable padding adjustment for dynamic resizing
resize_increments = true                          # Resize in multiples of character cells

🔤 Fonts

[font]
normal = { family = "JetBrainsMono Nerd Font", style = "Regular"  }
bold = { family = "JetBrainsMono Nerd Font", style = "Bold"  }
italic = { family = "JetBrainsMono Nerd Font", style = "Italic"  }
size = 13.0                                       # Font size in points
builtin_box_drawing = true                        # Use built-in box drawing characters
offset = { x = 0, y = 0  }                         # Fine-tune font placement
glyph_offset = { x = 0, y = 0  }                   # Offset of glyphs for better alignment

You must install Nerd Fonts for proper rendering (guide here).

🐚 Shell

[shell]
program = "/usr/bin/zsh"

Using Zsh enhances the terminal experience (guide here).

🌍 Terminal Environment

[env]
TERM = "xterm-256color"                           # Set terminal type to support 256 colors

Ensure compatibility with applications expecting xterm-style color support.

🖱️ Mouse Configuration

[mouse]
bindings = []                                     # List of custom mouse event bindings
hide_when_typing = true                           # Auto-hide mouse while typing

⌨️ Key Bindings

[[keyboard.bindings]]
key = "V"
mods = "Control|Shift"
action = "Paste"                                  # Paste from clipboard using Ctrl+Shift+V

[[keyboard.bindings]]
key = "C"
mods = "Control|Shift"
action = "Copy"                                   # Copy selected text using Ctrl+Shift+C

[[keyboard.bindings]]
key = "PageUp"
action = "ScrollPageUp"                           # Scroll up one page

[[keyboard.bindings]]
key = "PageDown"
action = "ScrollPageDown"                         # Scroll down one page

[[keyboard.bindings]]
key = "Return"
mods = "Control|Shift"
action = "SpawnNewInstance"                       # Open a new Alacritty window with Ctrl+Shift+Enter

Create custom bindings to extend productivity with key combos.

🔊 Bell Behavior

[bell]
enabled = false                                   # Enable/disable terminal bell
animation = "EaseOutExpo"                         # Bell animation style (optional)
duration = 100                                    # Bell duration in milliseconds
color = "#ff0000"                                 # Color of visual bell (if enabled)

🧱 Scrolling

[scrolling]
history = 10000                                   # Number of scrollback lines to retain
multiplier = 3                                    # Scrolling speed multiplier
auto_scroll = false                               # Automatically scroll to bottom when output is received

🔧 Cursor Options

[cursor]
style = { shape = "Block", blinking = "On"  }      # Cursor style: Block, Underline, Beam
blink_interval = 750                              # Milliseconds between blinks
blink_timeout = 5                                 # Stop blinking after inactivity (in seconds)
unfocused_hollow = true                           # Show hollow cursor when window is unfocused

Extra Recommendations

  • Use Tmux for multiple sessions and split panes (guide here)
  • Pair with Zsh for advanced shell features (guide here)
  • Install Nerd Fonts to render all icons correctly (guide here)

Useful Links

⚠️ Note: Some features like background blur require a compositor (e.g., picom) and may not work in all environments.


This configuration provides a professional terminal environment tailored for developers who value speed, visual clarity, and full control over their workspace. It’s designed to integrate seamlessly into the ```clean-dev-terminal` ecosystem and can be extended further as your workflow evolves.