Besser coden mit Keratokonus – Fonts, Themes & Tricks für macOS, WezTerm und VS Code

von Robin Willig
Besser coden mit Keratokonus – Fonts, Themes & Tricks für macOS, WezTerm und VS Code

WezTerm – Terminal klarer machen

Mein Terminal ist für mich ein Dauerarbeitsplatz – da muss jede Zeile sofort erkennbar sein. Mit Keratokonus heißt das: klare Fonts, kräftiger Cursor, keine unnötige Transparenz.

Meine aktuelle Config

local wezterm = require("wezterm")
local config = wezterm.config_builder()

-- 🎨 Farben & Font
config.color_scheme = "nord"

config.font = wezterm.font_with_fallback({
  { family = "Monaspace Argon", weight = "Medium" }, -- klare Glyphen
  "Symbols Nerd Font Mono",                          -- liefert Powerline/Devicons
  "CaskaydiaMono Nerd Font",                         -- optionaler Fallback
  "Apple Color Emoji",
})

config.freetype_load_target = "Light"

config.font_size = 12.5
config.line_height = 1.25
config.cursor_thickness = 3.0

-- 💻 Performance
config.front_end = "WebGpu"
config.enable_wayland = true
config.scrollback_lines = 10000
config.animation_fps = 60
config.max_fps = 120

-- 🖼️ Optik
config.window_background_opacity = 0.94
config.macos_window_background_blur = 12
config.window_padding = { left = 8, right = 8, top = 4, bottom = 4 }
config.default_cursor_style = "SteadyBar"

-- 🔧 Verhalten
config.send_composed_key_when_left_alt_is_pressed = true
config.send_composed_key_when_right_alt_is_pressed = true
config.hide_tab_bar_if_only_one_tab = true
config.adjust_window_size_when_changing_font_size = false

-- ⌨️ Keybindings
config.keys = {
  {
    key = "f",
    mods = "SUPER",
    action = wezterm.action_callback(function(win, pane)
      local cwd = pane:get_current_working_dir()
      if cwd then
        local path = cwd:sub(8) -- remove "file://"
        win:perform_action(
          wezterm.action.SpawnCommandInNewTab{
            args = { "fzf-open", path },
          },
          pane
        )
      end
    end),
  },
}

return config

Warum diese Einstellungen?

  • Nord Theme → klare Farben, angenehmer Kontrast.
  • Monaspace Argon Medium → als Hauptfont für klare, gut lesbare Glyphen.
  • Nerd Font Fallback → sichert Icons für Powerline, Devicons und Co. ab.
  • Freetype Load Target "Light" → leichte Kantenglättung für bessere Lesbarkeit.
  • Performance-Settings → WebGPU-Frontend, hohe FPS, großer Scrollback für flüssiges Arbeiten.
  • Optik → Transparenz leicht reduziert, Blur für angenehme Tiefe, Padding für entspannte Optik.
  • Cursor → dicker Balken, damit man ihn sofort findet.
  • Verhalten → Alt-Key Settings für bessere Tastaturkompatibilität, Tab-Bar wird ausgeblendet, wenn nur ein Tab offen ist, und Fenstergröße bleibt stabil beim Schriftgrößenwechsel.
  • Keybinding mit fzf → schnelles Öffnen von Dateien im aktuellen Verzeichnis mit SUPER+f.

VS Code / Windsurf – Lesbarkeit & Setup

Gerade beim Coden in VS Code oder Windsurf ist Lesbarkeit alles – ein klarer Font, hoher Kontrast und ein ruhiges Interface helfen enorm. Hier meine wichtigsten Einstellungen für settings.json:

{
  "window.autoDetectColorScheme": true,
  "workbench.preferredDarkColorTheme": "Nord",
  "workbench.preferredLightColorTheme": "Nord Light",
  "workbench.colorTheme": "Nord",
  "workbench.iconTheme": "material-icon-theme",
  "editor.fontFamily": "Monaspace Krypton, Monaspace Argon, Atkinson Hyperlegible, JetBrainsMono Nerd Font, Symbols Nerd Font Mono, Menlo, monospace, Apple Color Emoji",
  "editor.fontWeight": "500",
  "editor.fontSize": 14,
  "editor.lineHeight": 22,
  "editor.letterSpacing": 0.2,
  "editor.fontLigatures": "'calt', 'liga', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09'",
  "editor.minimap.enabled": false,
  "editor.renderLineHighlight": "all",
  "editor.guides.indentation": true,
  "editor.wordWrap": "on",
  "editor.smoothScrolling": false,
  "editor.scrollBeyondLastLine": false,
  "workbench.list.smoothScrolling": false,
  "editor.inlayHints.enabled": "offUnlessPressed",
  "workbench.colorCustomizations": {
    "editorLineNumber.foreground": "#88c0d0",
    "editorLineNumber.activeForeground": "#5e81ac"
  },
  "editor.inlineSuggest.fontFamily": "Monaspace Neon, Menlo, monospace",
  "editor.inlineSuggest.fontSize": 13,
  "terminal.integrated.fontFamily": "Monaspace Argon, JetBrainsMono Nerd Font, Symbols Nerd Font Mono, Menlo, monospace, Apple Color Emoji",
  "terminal.integrated.fontWeight": "500",
  "terminal.integrated.minimumContrastRatio": 7,
  "terminal.integrated.scrollback": 5000,
  "terminal.integrated.smoothScrolling": false,
  "terminal.integrated.cursorStyle": "block",
  "terminal.integrated.cursorBlinking": true,
  "terminal.integrated.confirmOnExit": "hasChildProcesses",
  "workbench.reduceMotion": true,
  "workbench.tree.indent": 14,
  "git.enableSmartCommit": true,
  "git.confirmSync": false,
  "git.autofetch": true,
  "git.rebaseWhenSync": true,
  "git.mergeEditor": true,
  "scm.diffDecorations": "gutter",
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 1500,
  "explorer.compactFolders": false,
  "explorer.confirmDragAndDrop": false,
  "breadcrumbs.enabled": true
}

Warum diese Settings?

  • Nord Theme: sanfte, kontrastreiche Farben, die nicht blenden.
  • Material Icon Theme: klare, gut erkennbare Icons.
  • Font + Fallbacks: Monaspace Krypton/Argon für Klarheit, Hyperlegible als Backup, Nerd Fonts für Icons.
  • Minimap aus: weniger Ablenkung, mehr Fokus auf Code.
  • Line-Highlight & Zeilennummern: Orientierung, Fokus und bessere Navigation.
  • Terminal-Kontrast: hohe Lesbarkeit im integrierten Terminal.
  • Autosave: schützt vor Datenverlust, entspanntes Arbeiten.

PhpStorm – Lesbarkeit & Setup

Für PhpStorm habe ich mir ein Setup gebastelt, das speziell auf Keratokonus zugeschnitten ist – mit klarem Theme, kontrastreicher Darstellung und optimierten Fonts.

🎨 Erscheinungsbild (Appearance & Behavior → Appearance)

  • Theme: Material Theme UI → Darker Solarized
  • Contrast Mode: aktiviert (Material Theme UI)
  • Scrollbars: High Contrast (PhpStorm Appearance-Settings)
  • UI-Einstellungen:
    • Use custom font: aus
    • Reduce motion: an
    • Show scrollbars: nur beim Scrollen

🔤 Editor → Font & Color Scheme

  • Font:
    • Primär: Monaspace Krypton (Frozen)
    • Größe: 14 pt
    • Zeilenabstand: 1.4
    • Gewicht: Medium/500
    • Ligaturen: an (Frozen verhindert unnötige OpenType-Ligaturen)
    • Fallback: JetBrains Mono
  • Color Scheme: Nord (über Plugin)
  • Line Numbers: an
  • Active Line Highlight: an
  • Method Separators: an

⌨️ Editor-Verhalten

  • Caret (Cursor):
    • Blinken: aus
    • Breite: 2–3 px
    • Stil: Block oder Steady Bar
  • Code Folding: nur Imports und Docs falten

🗂️ Project Tree & Navigation

  • File Colors: deaktiviert oder neutral gehalten
  • Explorer / Tree:
    • Indent: 14 px
    • Compact Folders: aus

⌨️ Keymap

  • Quick Switch Scheme: Shortcut eingerichtet
  • Toggle Distraction Free Mode: Shortcut eingerichtet

🧩 Erweiterungen / Plugins

  • Material Theme UI (für Darker Solarized Theme + Contrast Mode)
  • Nord Theme Plugin (für Color Scheme)

🧾 Ergebnis

Mit diesem Setup bekommst du:

  • 🌙 ruhiges Dark Theme (Darker Solarized) mit Contrast Mode für bessere Lesbarkeit
  • 🔤 Monaspace Krypton (Frozen) als Hauptfont – klare Buchstabenformen, kein Ligaturen-Matsch
  • 📏 größere Schrift + mehr Zeilenabstand → weniger Ghosting
  • 👁️ High Contrast Scrollbars + Cursor Tweaks → schneller Fokus
  • 🧘 reduzierte Bewegung & minimalistisches UI → weniger Ablenkung
  • 🛠️ Plugins & Vim-Tweaks → flexible Bedienung ohne visuelles Overload

Tags

macOSWezTermVS CodeWindsurfFontsKeratokonus