Skip to main content

Terminal Customization

Personalize your terminal experience with custom themes, fonts, colors, and behavior settings to match your workflow and preferences.

Accessing Settings​

Quick Access​

Method 1: Keyboard Shortcut

  • Press Ctrl/Cmd + , (comma)
  • Settings window opens

Method 2: Menu Bar

  • Click "Xermius" → "Settings" (macOS)
  • Or "File" → "Settings" (Windows/Linux)

Method 3: From Terminal

  • Right-click in terminal
  • Select "Terminal Settings"

Appearance Settings​

Theme Selection​

Choose between light, dark, or system theme:

┌─────────────────────────────────────────┐
│ Appearance │
├─────────────────────────────────────────┤
│ Application Theme: │
│ [●] System [ ] Light [ ] Dark │
│ │
│ Follows system dark/light mode │
└─────────────────────────────────────────┘

Options:

  • System - Follows OS theme (recommended)
  • Light - Always light theme
  • Dark - Always dark theme

Keyboard: Ctrl/Cmd + Shift + D to toggle dark mode

Terminal Color Schemes​

Choose from built-in color schemes or create custom:

┌─────────────────────────────────────────────────┐
│ Terminal Color Scheme │
├─────────────────────────────────────────────────┤
│ Built-in Themes: │
│ │
│ [●] Monokai │
│ ■ Background: #272822 │
│ ■ Foreground: #F8F8F2 │
│ ■ Black: #272822 ■ Red: #F92672 │
│ ■ Green: #A6E22E ■ Yellow: #F4BF75 │
│ ■ Blue: #66D9EF ■ Magenta: #AE81FF │
│ ■ Cyan: #A1EFE4 ■ White: #F8F8F2 │
│ │
│ Other themes: │
│ [ ] Dracula │
│ [ ] Solarized Dark │
│ [ ] Solarized Light │
│ [ ] One Dark │
│ [ ] One Light │
│ [ ] Nord │
│ [ ] Gruvbox Dark │
│ [ ] Gruvbox Light │
│ [ ] Material │
│ [ ] Atom Dark │
│ [ ] Night Owl │
│ [ ] Cobalt │
│ │
│ [Create Custom Theme...] │
└─────────────────────────────────────────────────┘

Monokai (Default)

  • Dark background
  • High contrast
  • Vibrant colors
  • Great for long sessions

Dracula

  • Dark purple tones
  • Easy on the eyes
  • Modern, stylish
  • Popular among developers

Solarized Dark/Light

  • Scientifically designed
  • Reduces eye strain
  • Works in any lighting
  • Available in dark and light

Nord

  • Arctic, bluish palette
  • Cold color tones
  • Minimal, clean
  • Great for focus

Gruvbox

  • Retro groove colors
  • Warm tones
  • Comfortable contrast
  • Available in dark and light

Creating Custom Theme​

  1. Click "Create Custom Theme..."
  2. Customize colors:
┌──────────────────────────────────────────────┐
│ Create Custom Theme [X] │
├──────────────────────────────────────────────┤
│ Theme Name: │
│ [My Custom Theme ] │
│ │
│ Basic Colors: │
│ Background: [#1e1e1e] [🎨] │
│ Foreground: [#d4d4d4] [🎨] │
│ Cursor: [#aeafad] [🎨] │
│ Selection: [#264f78] [🎨] │
│ │
│ ANSI Colors: │
│ Black: [#000000] [🎨] │
│ Red: [#cd3131] [🎨] │
│ Green: [#0dbc79] [🎨] │
│ Yellow: [#e5e510] [🎨] │
│ Blue: [#2472c8] [🎨] │
│ Magenta: [#bc3fbc] [🎨] │
│ Cyan: [#11a8cd] [🎨] │
│ White: [#e5e5e5] [🎨] │
│ │
│ Bright Colors: │
│ Bright Black: [#666666] [🎨] │
│ Bright Red: [#f14c4c] [🎨] │
│ (... same for other colors) │
│ │
│ [Preview] [Import] [Save] [Cancel] │
└──────────────────────────────────────────────┘
  1. Click color boxes to pick colors
  2. Use "Preview" to test
  3. Click "Save" to keep

Import Theme​

Import themes from other terminal emulators:

Supported Formats:

  • .itermcolors (iTerm2)
  • .terminal (macOS Terminal)
  • .json (Windows Terminal)
  • .Xresources (Linux terminals)

To Import:

  1. Click "Import" in custom theme dialog
  2. Select theme file
  3. Colors are imported automatically
  4. Adjust if needed
  5. Save with new name

Font Settings​

Font Family​

Choose your preferred monospace font:

┌─────────────────────────────────────────┐
│ Font Family │
├─────────────────────────────────────────┤
│ [Fira Code ▼] │
│ │
│ Popular Fonts: │
│ • Fira Code (ligatures) │
│ • JetBrains Mono (ligatures) │
│ • Cascadia Code (ligatures) │
│ • Source Code Pro │
│ • Menlo (macOS default) │
│ • Consolas (Windows default) │
│ • Ubuntu Mono │
│ • DejaVu Sans Mono │
│ • Monaco │
│ │
│ [Download More Fonts...] │
└─────────────────────────────────────────┘

With Ligatures:

  • Fira Code - Beautiful ligatures, open source
  • JetBrains Mono - Designed for devs, clear
  • Cascadia Code - Microsoft's modern font
  • Hasklig - Based on Source Code Pro

Without Ligatures:

  • Source Code Pro - Clean, readable
  • Inconsolata - Compact, efficient
  • Monaco - Classic macOS font
  • Menlo - macOS default, reliable

Where to Get:

Font Size​

┌─────────────────────────────────────────┐
│ Font Size │
├─────────────────────────────────────────┤
│ [━━━━━●━━━━━━━━━━━] 14 px │
│ Range: 8-32 px │
│ │
│ Quick Sizes: │
│ [10] [12] [14] [16] [18] [20] │
│ │
│ Keyboard Shortcuts: │
│ Ctrl/Cmd + Plus = Increase │
│ Ctrl/Cmd + Minus = Decrease │
│ Ctrl/Cmd + 0 = Reset to Default │
└─────────────────────────────────────────┘

Recommendations:

  • Small screens (< 15"): 12-14px
  • Standard screens (15-17"): 14-16px
  • Large screens (> 17"): 16-18px
  • Presentations: 20-24px

Line Height​

Adjust spacing between lines:

┌─────────────────────────────────────────┐
│ Line Height │
├─────────────────────────────────────────┤
│ [━━━━━━━●━━━━━━━━━] 1.2 │
│ Range: 1.0-2.0 │
│ │
│ Presets: │
│ [Compact 1.0] [Normal 1.2] [Relaxed 1.5]│
│ │
│ Preview: │
│ ┌─────────────────────┐ │
│ │ Line 1 │ ← Line height │
│ │ Line 2 │ affects │
│ │ Line 3 │ spacing │
│ └─────────────────────┘ │
└─────────────────────────────────────────┘

Use Cases:

  • 1.0 (Compact) - More content visible
  • 1.2 (Normal) - Balanced (recommended)
  • 1.5 (Relaxed) - Easier to read, less dense

Font Weight​

┌─────────────────────────────────────────┐
│ Font Weight │
├─────────────────────────────────────────┤
│ [●] Normal [ ] Bold [ ] Light │
│ │
│ Custom Weight (if supported): │
│ [━━━━━━━●━━━━━━━━━] 400 │
│ Range: 100-900 │
│ │
│ Note: Not all fonts support all weights│
└─────────────────────────────────────────┘

Font Ligatures​

Enable programming ligatures (if font supports):

┌─────────────────────────────────────────┐
│ Font Ligatures │
├─────────────────────────────────────────┤
│ [✓] Enable font ligatures │
│ │
│ Examples with ligatures: │
│ != → ≠ >= → ≥ <= → ≤ │
│ === → ≡ !== → ≢ -> → → │
│ => → ⇒ ++ → ⧺ :: → ∷ │
│ │
│ Without ligatures: │
│ != >= <= === !== -> => ++ :: │
│ │
│ Fonts with ligatures: │
│ • Fira Code │
│ • JetBrains Mono │
│ • Cascadia Code │
│ • Hasklig │
└─────────────────────────────────────────┘

Ligatures?

  • Combines character sequences into single glyphs
  • Makes code more readable
  • Popular in modern editors
  • Optional - personal preference

Cursor Settings​

Cursor Style​

┌─────────────────────────────────────────┐
│ Cursor Style │
├─────────────────────────────────────────┤
│ [●] Block [ ] Underline [ ] Bar │
│ │
│ Preview: │
│ Block: █ursor │
│ Underline: C_ursor │
│ Bar: C|ursor │
└─────────────────────────────────────────┘

Styles:

  • Block - Classic, high visibility
  • Underline - Subtle, clean
  • Bar - Like text editors (VS Code style)

Cursor Blinking​

┌─────────────────────────────────────────┐
│ Cursor Blinking │
├─────────────────────────────────────────┤
│ [✓] Enable cursor blinking │
│ │
│ Blink Speed: │
│ [━━━━━●━━━━━━━━━━━] Medium │
│ Slow ←──────────────────→ Fast │
│ │
│ Blink Style: │
│ [●] Smooth [ ] Solid │
└─────────────────────────────────────────┘

Preferences:

  • Enable for easier cursor location
  • Disable if distracting
  • Adjust speed to comfort

Scrollback Settings​

Buffer Size​

How many lines to keep in history:

┌─────────────────────────────────────────┐
│ Scrollback Buffer │
├─────────────────────────────────────────┤
│ Lines to keep in history: │
│ [━━━━━━━●━━━━━━━━━] 1000 │
│ Range: 100-10,000 │
│ │
│ Quick Presets: │
│ [500] [1000] [5000] [10000] │
│ │
│ Memory Usage: ~2 MB per 1000 lines │
│ Current: ~2 MB │
│ │
│ [✓] Scroll to bottom on input │
│ [✓] Scroll to bottom on output │
└─────────────────────────────────────────┘

Recommendations:

  • Light use: 500-1000 lines
  • Normal use: 1000-3000 lines
  • Heavy logging: 5000-10000 lines

Trade-offs:

  • More lines = More memory
  • More lines = Slower scrolling
  • More lines = Better history

Scroll Speed​

┌─────────────────────────────────────────┐
│ Scroll Speed │
├─────────────────────────────────────────┤
│ Mouse wheel sensitivity: │
│ [━━━━━━━●━━━━━━━━━] Normal │
│ Slow ←──────────────────→ Fast │
│ │
│ Lines per scroll: │
│ [━━━━━━━●━━━━━━━━━] 3 lines │
│ Range: 1-10 lines │
└─────────────────────────────────────────┘

Bell Settings​

Visual/Audio Bell​

┌─────────────────────────────────────────┐
│ Bell Notification │
├─────────────────────────────────────────┤
│ When terminal bell (Ctrl+G) is sent: │
│ │
│ [●] Visual bell (flash screen) │
│ [ ] Audio bell (system sound) │
│ [ ] Both │
│ [ ] None (ignore) │
│ │
│ Visual Bell Style: │
│ Color: [#ffffff] [🎨] White flash │
│ Duration: [━━━●━━━] 100ms │
└─────────────────────────────────────────┘

Use Cases:

  • Visual - Open office, no sound wanted
  • Audio - Want to notice from distance
  • None - Disable annoying bells
  • Both - Maximum noticeability

Copy & Paste Settings​

Copy on Select​

┌─────────────────────────────────────────┐
│ Copy & Paste Behavior │
├─────────────────────────────────────────┤
│ [✓] Copy automatically on select │
│ (Linux terminal style) │
│ │
│ [ ] Trim trailing whitespace │
│ [✓] Include final newline │
│ │
│ Right-click behavior: │
│ [●] Context menu │
│ [ ] Paste (Linux terminal style) │
│ │
│ Middle-click behavior: │
│ [●] Paste selection │
│ [ ] Nothing │
└─────────────────────────────────────────┘

Word Separators​

Define what characters break words for double-click selection:

┌─────────────────────────────────────────┐
│ Word Separators │
├─────────────────────────────────────────┤
│ Characters that break words: │
│ [ ()<>[]{}'"`:;,│ │
│ │
│ Example: │
│ Double-click on: /var/www/html │
│ └────┘ Selected │
│ │
│ With "/" as separator: │
│ /var/www/html → "www" │
│ │
│ Without "/" as separator: │
│ /var/www/html → "/var/www/html" │
│ │
│ [Reset to Default] │
└─────────────────────────────────────────┘

Terminal Behavior​

Shell Configuration​

┌─────────────────────────────────────────┐
│ Shell Configuration │
├─────────────────────────────────────────┤
│ Default Shell: │
│ [/bin/bash ▼] │
│ │
│ Common Shells: │
│ • /bin/bash (Bourne Again Shell) │
│ • /bin/zsh (Z Shell) │
│ • /bin/fish (Friendly Interactive Shell)│
│ • /bin/sh (POSIX Shell) │
│ │
│ Shell Arguments: │
│ [-l ] │
│ │
│ [✓] Run command as login shell │
│ [✓] Start in home directory │
└─────────────────────────────────────────┘

Text Selection​

┌─────────────────────────────────────────┐
│ Text Selection │
├─────────────────────────────────────────┤
│ [✓] Allow click-to-select │
│ [✓] Allow drag-to-select │
│ [✓] Triple-click selects line │
│ │
│ Selection Mode: │
│ [●] Normal (characters) │
│ [ ] Block (rectangle) │
│ [ ] Line (entire lines) │
│ │
│ [✓] Extend selection with Shift+Click │
└─────────────────────────────────────────┘

Focus Settings​

┌─────────────────────────────────────────┐
│ Focus Behavior │
├─────────────────────────────────────────┤
│ [✓] Focus terminal on mouse enter │
│ [ ] Focus terminal on click only │
│ │
│ [✓] Show focus indicator (border) │
│ Focus color: [#007acc] [🎨] │
└─────────────────────────────────────────┘

Advanced Settings​

Rendering​

┌─────────────────────────────────────────┐
│ Rendering Options │
├─────────────────────────────────────────┤
│ Renderer: │
│ [●] WebGL (recommended) │
│ [ ] Canvas (fallback) │
│ [ ] DOM (slowest, most compatible) │
│ │
│ [✓] Enable GPU acceleration │
│ [✓] Smooth scrolling │
│ [✓] Allow transparency │
│ │
│ Background Opacity: │
│ [━━━━━━━━━━━━━━━━━●] 100% │
│ Transparent ←──────────→ Opaque │
└─────────────────────────────────────────┘

Renderer Notes:

  • WebGL - Fastest, best performance
  • Canvas - Use if WebGL has issues
  • DOM - Last resort, very slow

Unicode & Emoji​

┌─────────────────────────────────────────┐
│ Unicode Support │
├─────────────────────────────────────────┤
│ [✓] Enable Unicode 11 support │
│ [✓] Render emoji │
│ │
│ Emoji Rendering: │
│ [●] Native (system emojis) │
│ [ ] Monochrome (text style) │
│ │
│ Test: 😀 🎉 ✓ ✗ → ← ↑ ↓ ★ ♥ │
└─────────────────────────────────────────┘

Experimental Features​

┌─────────────────────────────────────────┐
│ Experimental Features │
├─────────────────────────────────────────┤
│ ⚠️ These may be unstable │
│ │
│ [ ] WebGL2 renderer (faster) │
│ [ ] True color support (24-bit) │
│ [ ] Sixel graphics support │
│ [ ] Custom shaders │
│ │
│ [Reset to Defaults] │
└─────────────────────────────────────────┘

Preset Configurations​

Quick Presets​

Load optimized settings for different use cases:

┌─────────────────────────────────────────────────┐
│ Configuration Presets │
├─────────────────────────────────────────────────┤
│ ⚡ Performance │
│ • Canvas renderer │
│ • Reduced scrollback (500 lines) │
│ • Minimal visual effects │
│ Best for: Older computers │
│ │
│ 🎨 Beautiful │
│ • WebGL renderer │
│ • Transparency enabled │
│ • Smooth scrolling │
│ • Font ligatures │
│ Best for: Modern computers, aesthetics │
│ │
│ 👀 Accessibility │
│ • High contrast theme │
│ • Large font (18px) │
│ • No cursor blinking │
│ • Clear focus indicators │
│ Best for: Visual accessibility │
│ │
│ 🖥️ Classic │
│ • Green on black (retro) │
│ • Monaco/Courier font │
│ • Block cursor │
│ • Classic bell │
│ Best for: Nostalgia │
│ │
│ [Load Preset] [Customize] [Reset to Default] │
└─────────────────────────────────────────────────┘

Profiles​

Managing Profiles​

Create multiple terminal profiles for different scenarios:

┌─────────────────────────────────────────┐
│ Terminal Profiles │
├─────────────────────────────────────────┤
│ [●] Default │
│ [ ] Development │
│ [ ] Production Servers │
│ [ ] Personal │
│ │
│ [+ New Profile] [Edit] [Delete] │
│ │
│ Profile "Development" settings: │
│ • Theme: Dracula │
│ • Font: Fira Code 14px │
│ • Shell: /bin/zsh │
│ • Scrollback: 5000 lines │
└─────────────────────────────────────────┘

Use Cases:

  • Default - General use
  • Development - Coding with ligatures
  • Production - High contrast, clear fonts
  • Personal - Custom aesthetics

Profile-Specific Settings​

Each profile can have different:

  • Color scheme
  • Font settings
  • Shell configuration
  • Scrollback size
  • Keyboard shortcuts
  • Cursor style

Switching Profiles​

Keyboard: Ctrl/Cmd + Shift + P → Select profile

Per-Tab: Right-click tab → Change profile

Per-Host: Assign profile to specific hosts

Export/Import Settings​

Export Settings​

Backup your customizations:

┌─────────────────────────────────────────┐
│ Export Settings │
├─────────────────────────────────────────┤
│ Export what? │
│ [✓] Terminal settings │
│ [✓] Color schemes │
│ [✓] Profiles │
│ [✓] Keyboard shortcuts │
│ │
│ Format: [JSON ▼] │
│ │
│ [Export to File...] │
└─────────────────────────────────────────┘

Import Settings​

Restore or share settings:

┌─────────────────────────────────────────┐
│ Import Settings │
├─────────────────────────────────────────┤
│ [Select Settings File...] │
│ │
│ Preview: │
│ ┌───────────────────────────────────┐ │
│ │ Will import: │ │
│ │ • 3 color schemes │ │
│ │ • 2 profiles │ │
│ │ • Terminal settings │ │
│ │ • Custom shortcuts │ │
│ └───────────────────────────────────┘ │
│ │
│ [✓] Overwrite existing settings │
│ [✓] Create backup before import │
│ │
│ [Import] [Cancel] │
└─────────────────────────────────────────┘

Tips & Best Practices​

1. Start with Defaults​

Don't over-customize immediately:

  • Use defaults for a week
  • Identify what bothers you
  • Change one thing at a time
  • Evaluate each change

2. Choose Readable Fonts​

Font selection matters:

  • Must be monospace
  • Clear character distinction (0 vs O, 1 vs l vs I)
  • Comfortable at your screen size
  • Consider ligatures if you like them

3. Contrast is Key​

Good contrast reduces eye strain:

  • Dark theme: Light text on dark bg
  • Light theme: Dark text on light bg
  • Test in your lighting conditions
  • Adjust if eyes feel strained

4. Don't Go Crazy with Transparency​

Transparency looks cool but:

  • Can reduce readability
  • May cause distractions
  • Increases GPU usage
  • 85-100% opacity recommended

5. Match Your Editor​

Consistent themes reduce context switching:

  • Use same theme in terminal and code editor
  • Same font family
  • Similar colors
  • Creates cohesive workflow

6. Save Your Settings​

Backup your customizations:

  • Export settings regularly
  • Store in cloud or Git
  • Easy to restore after reinstall
  • Share with team members

Common Customization Recipes​

Recipe 1: Modern Developer Setup​

Theme: One Dark
Font: JetBrains Mono 14px
Ligatures: Enabled
Cursor: Bar, blinking
Scrollback: 3000 lines
Renderer: WebGL
Transparency: 95%

Recipe 2: Classic Terminal Look​

Theme: Green on Black
Font: Monaco 12px
Ligatures: Disabled
Cursor: Block, non-blinking
Scrollback: 1000 lines
Renderer: Canvas
Transparency: 100% (opaque)

Recipe 3: High Contrast Accessibility​

Theme: High Contrast (custom)
Background: #000000
Foreground: #FFFFFF
Font: Source Code Pro Bold 18px
Ligatures: Disabled
Cursor: Block, slow blink
Focus: Thick colored border

Recipe 4: Minimalist Clean​

Theme: Solarized Light
Font: Source Code Pro 14px
Ligatures: Disabled
Cursor: Underline, no blink
Scrollback: 1000 lines
UI: Minimal borders

Troubleshooting​

Font Not Appearing​

Issue: Selected font doesn't show

Solutions:

  1. Install font system-wide
  2. Restart Xermius
  3. Check font is monospace
  4. Try different font

Colors Look Wrong​

Issue: Theme colors don't match preview

Solutions:

  1. Check terminal type: echo $TERM
  2. Should be xterm-256color
  3. Restart terminal
  4. Re-apply theme

Performance Issues​

Issue: Terminal is slow/laggy

Solutions:

  1. Switch to Canvas renderer
  2. Reduce scrollback buffer
  3. Disable transparency
  4. Disable smooth scrolling
  5. Update graphics drivers

Ligatures Not Working​

Issue: Font ligatures don't appear

Check:

  1. Font supports ligatures
  2. Ligatures enabled in settings
  3. Font installed correctly
  4. Terminal supports font features

Next Steps​