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